diff --git a/odoo_scripts/do_tests.py b/odoo_scripts/do_tests.py index 9de0f87075a693b76b55f8cbcb3cc56499dc8760_b2Rvb19zY3JpcHRzL2RvX3Rlc3RzLnB5..a467c19eedbf8ce0bbaeee53be4e5f0888b42160_b2Rvb19zY3JpcHRzL2RvX3Rlc3RzLnB5 100755 --- a/odoo_scripts/do_tests.py +++ b/odoo_scripts/do_tests.py @@ -246,7 +246,7 @@ args.append(dbport) apply_flake8(nmspc, odoo_type) - apply_isort(nmspc) + apply_isort(nmspc, odoo_type) if nmspc.log_handler: for lh in nmspc.log_handler: args.append("--log-handler") diff --git a/odoo_scripts/docker_dev_start.py b/odoo_scripts/docker_dev_start.py index 9de0f87075a693b76b55f8cbcb3cc56499dc8760_b2Rvb19zY3JpcHRzL2RvY2tlcl9kZXZfc3RhcnQucHk=..a467c19eedbf8ce0bbaeee53be4e5f0888b42160_b2Rvb19zY3JpcHRzL2RvY2tlcl9kZXZfc3RhcnQucHk= 100755 --- a/odoo_scripts/docker_dev_start.py +++ b/odoo_scripts/docker_dev_start.py @@ -793,7 +793,7 @@ arg.append(",".join(all_addons_dir)) apply_flake8(nmspc, odoo_type) - apply_isort(nmspc) + apply_isort(nmspc, odoo_type) # developer mode options if dev: diff --git a/odoo_scripts/docker_flake8.py b/odoo_scripts/docker_flake8.py index 9de0f87075a693b76b55f8cbcb3cc56499dc8760_b2Rvb19zY3JpcHRzL2RvY2tlcl9mbGFrZTgucHk=..a467c19eedbf8ce0bbaeee53be4e5f0888b42160_b2Rvb19zY3JpcHRzL2RvY2tlcl9mbGFrZTgucHk= 100644 --- a/odoo_scripts/docker_flake8.py +++ b/odoo_scripts/docker_flake8.py @@ -12,5 +12,5 @@ from .docker_client import DockerClient from .parsing import apply, basic_parser -__version__ = "1.0.0" +__version__ = "1.1.0" __date__ = "2020-09-10" @@ -16,5 +16,5 @@ __date__ = "2020-09-10" -__updated__ = "2020-09-10" +__updated__ = "2022-01-25" _logger = logging.getLogger(__name__) @@ -48,7 +48,7 @@ def parser_add_flake8_group(parser: argparse.ArgumentParser): """Add flake8 option (--flake8/--no-flake8) to the given parser. - Defaults to not using flake8.""" + Defaults to not running flake8.""" flake8_group = parser.add_mutually_exclusive_group() flake8_group.add_argument( "--flake8", @@ -82,6 +82,6 @@ return flake8(odoo_type) -def flake8(odoo_type: str): +def flake8(odoo_type: str, pull: bool = True): """Run flake8""" client = DockerClient.client @@ -86,4 +86,6 @@ """Run flake8""" client = DockerClient.client - repository = "xcgd/flake8" + + # determine image to use based on odoo version + repository = "quay.orus.io/odoo/odoo" if odoo_type in ("odoo7", "odoo8", "odoo9", "odoo10"): @@ -89,2 +91,3 @@ if odoo_type in ("odoo7", "odoo8", "odoo9", "odoo10"): + repository = "xcgd/flake8" tag = "2" @@ -90,3 +93,4 @@ tag = "2" - _logger.info("Running flake8 for Python 2") + elif odoo_type == "odoo15": + tag = "15.0" else: @@ -92,2 +96,3 @@ else: + repository = "xcgd/flake8" tag = "3" @@ -93,7 +98,11 @@ tag = "3" - _logger.info("Running flake8 for Python 3") - client.images.pull(repository, tag) - image = "{}:{}".format(repository, tag) + image = f"{repository}:{tag}" + + if pull: + _logger.info("Pulling flake8 (%s)", image) + client.images.pull(repository, tag) + + _logger.info("Running flake8 (%s)", image) container = None # XXX When pressing ctrl-c during the container creating, the container @@ -117,6 +126,7 @@ # of being None container = client.containers.create( image, + entrypoint="flake8", command=["."], volumes={os.environ["PWD"]: {"bind": "/mnt", "mode": "ro"}}, working_dir="/mnt", diff --git a/odoo_scripts/docker_isort.py b/odoo_scripts/docker_isort.py index 9de0f87075a693b76b55f8cbcb3cc56499dc8760_b2Rvb19zY3JpcHRzL2RvY2tlcl9pc29ydC5weQ==..a467c19eedbf8ce0bbaeee53be4e5f0888b42160_b2Rvb19zY3JpcHRzL2RvY2tlcl9pc29ydC5weQ== 100644 --- a/odoo_scripts/docker_isort.py +++ b/odoo_scripts/docker_isort.py @@ -10,6 +10,7 @@ import docker +from .config import Config from .docker_client import DockerClient from .parsing import apply, basic_parser @@ -13,5 +14,5 @@ from .docker_client import DockerClient from .parsing import apply, basic_parser -__version__ = "1.0.1" +__version__ = "1.1.0" __date__ = "2020-09-10" @@ -17,5 +18,5 @@ __date__ = "2020-09-10" -__updated__ = "2021-10-21" +__updated__ = "2022-01-25" _logger = logging.getLogger(__name__) @@ -67,6 +68,6 @@ ) -def apply_isort(namespace: argparse.Namespace): +def apply_isort(namespace: argparse.Namespace, odoo_type: str): """Run isort if the option was set.""" if namespace.isort: @@ -71,6 +72,6 @@ """Run isort if the option was set.""" if namespace.isort: - isort() + isort(odoo_type) def main(argv=None): @@ -78,7 +79,8 @@ parser = __parser() nmspc = parser.parse_args(argv) apply(nmspc) - isort() - return 0 + c = Config() + odoo_type = c.odoo_type + return isort(odoo_type) @@ -83,5 +85,5 @@ -def isort(pull=True): +def isort(odoo_type: str, pull: bool = True): """Run isort""" client = DockerClient.client @@ -86,3 +88,18 @@ """Run isort""" client = DockerClient.client + + # determine image to use based on odoo version + repository = "quay.orus.io/odoo/odoo" + command = ["--check", "."] + if odoo_type == "odoo15": + tag = "15.0" + elif odoo_type == "odoo13": + tag = "13.0" + command = ["--check"] + else: + repository = "xcgd/isort" + tag = "odoo" + command = ["--check"] + image = f"{repository}:{tag}" + if pull: @@ -88,5 +105,5 @@ if pull: - _logger.info("Pulling isort") + _logger.info("Pulling isort (%s)", image) # TODO find a better way to avoid error when pulling without a # connection try: @@ -90,8 +107,8 @@ # TODO find a better way to avoid error when pulling without a # connection try: - client.images.pull(repository="xcgd/isort", tag="odoo") + client.images.pull(repository=repository, tag=tag) except docker.errors.APIError: _logger.warning( "No connection to server, using existing version, if any" ) @@ -94,8 +111,9 @@ except docker.errors.APIError: _logger.warning( "No connection to server, using existing version, if any" ) - _logger.info("Running isort for Odoo") + + _logger.info("Running isort for Odoo (%s)", image) container = None # XXX When pressing ctrl-c during the container creating, the container @@ -118,8 +136,9 @@ # split create and start so in case of SIGTERM, container has fewer chances # of being None container = client.containers.create( - "xcgd/isort:odoo", - command=["isort", "--check"], + image, + entrypoint="isort", + command=command, volumes={os.environ["PWD"]: {"bind": "/mnt", "mode": "ro"}}, working_dir="/mnt", detach=True,