enable pre-commit lints from main ironic repo

Brought over the same lints as used in the main ironic repo via
pre-commit and ruff. Updated tox.ini to use pre-commit the same way.

Change-Id: Ic2138427fd408a581cfbcb9c9da84074d1a2bfa8
Signed-off-by: Doug Goldstein <cardoe@cardoe.com>
diff --git a/tox.ini b/tox.ini
index 3a67abc..bf8061c 100644
--- a/tox.ini
+++ b/tox.ini
@@ -1,5 +1,5 @@
 [tox]
-minversion = 3.18.0
+minversion = 4.4.0
 envlist = pep8
 ignore_basepython_conflict=true
 
@@ -14,11 +14,9 @@
 commands = stestr run --slowest {posargs}
 
 [testenv:pep8]
-deps =
-    hacking~=6.0.0 # Apache-2.0
-    flake8-import-order>=0.17.1 # LGPLv3
-    pycodestyle>=2.0.0,<3.0.0 # MIT
-commands = flake8 {posargs}
+deps = pre-commit
+allowlist_externals = pre-commit
+commands = pre-commit run --all-files --show-diff-on-failure {posargs}
 
 [testenv:venv]
 commands = {posargs}