From bed315850b2e2a624e0738404b8687f1e0b1c78c Mon Sep 17 00:00:00 2001 From: James Date: Tue, 5 Nov 2024 10:54:02 +0100 Subject: [PATCH] refactor conans->conan of __version__ (#17276) * refactor conans->conan of __version__ * fix setup.py * fix setup_server.py too --------- Co-authored-by: czoido --- conan/__init__.py | 3 +-- conan/api/conan_api.py | 5 ++--- conan/api/subapi/new.py | 2 +- conan/cli/cli.py | 4 ++-- conan/cli/formatters/graph/build_order_html.py | 5 +++-- conan/cli/formatters/graph/graph.py | 4 ++-- conan/cli/formatters/list/list.py | 4 ++-- conan/internal/__init__.py | 3 +++ conan/test/utils/server_launcher.py | 2 +- conan/test/utils/tools.py | 2 +- conans/__init__.py | 4 ---- conans/client/rest/conan_requester.py | 4 ++-- conans/client/rest/rest_client.py | 4 +++- conans/model/version_range.py | 6 +++--- conans/server/__init__.py | 2 +- conans/server/launcher.py | 2 +- conans/server/migrate.py | 5 ++--- pyinstaller.py | 2 +- setup.py | 2 +- setup_server.py | 2 +- test/integration/command/help_test.py | 2 +- test/integration/command/new_test.py | 4 ++-- .../conanfile/required_conan_version_test.py | 6 +++--- test/integration/configuration/conf/test_conf.py | 2 +- test/integration/configuration/requester_test.py | 2 +- .../integration/configuration/required_version_test.py | 10 +++++----- test/integration/remote/server_error_test.py | 2 +- test/integration/tools/conan_version_test.py | 4 ++-- 28 files changed, 49 insertions(+), 50 deletions(-) diff --git a/conan/__init__.py b/conan/__init__.py index 01068d712e3..b824fa90497 100644 --- a/conan/__init__.py +++ b/conan/__init__.py @@ -1,6 +1,5 @@ from conans.model.conan_file import ConanFile from conan.tools.scm import Version as _Version -from conans import __version__ - +__version__ = '2.10.0-dev' conan_version = _Version(__version__) diff --git a/conan/api/conan_api.py b/conan/api/conan_api.py index 16049236704..cfa9740f9b3 100644 --- a/conan/api/conan_api.py +++ b/conan/api/conan_api.py @@ -5,7 +5,7 @@ from conan.api.subapi.command import CommandAPI from conan.api.subapi.local import LocalAPI from conan.api.subapi.lockfile import LockfileAPI -from conans import __version__ as client_version +from conan import conan_version from conan.api.subapi.config import ConfigAPI from conan.api.subapi.download import DownloadAPI from conan.api.subapi.export import ExportAPI @@ -20,7 +20,6 @@ from conan.api.subapi.upload import UploadAPI from conans.client.migrations import ClientMigrator from conan.errors import ConanException -from conans.model.version import Version from conan.internal.paths import get_conan_user_home from conans.model.version_range import validate_conan_version @@ -37,7 +36,7 @@ def __init__(self, cache_folder=None): self.home_folder = self.cache_folder # Lets call it home, deprecate "cache" # Migration system - migrator = ClientMigrator(self.cache_folder, Version(client_version)) + migrator = ClientMigrator(self.cache_folder, conan_version) migrator.migrate() self.command = CommandAPI(self) diff --git a/conan/api/subapi/new.py b/conan/api/subapi/new.py index ae26f9d13b2..b9732daea35 100644 --- a/conan/api/subapi/new.py +++ b/conan/api/subapi/new.py @@ -5,7 +5,7 @@ from conan.errors import ConanException from conans.util.files import load -from conans import __version__ +from conan import __version__ class NewAPI: diff --git a/conan/cli/cli.py b/conan/cli/cli.py index 68769f6e562..c30d9ac3086 100644 --- a/conan/cli/cli.py +++ b/conan/cli/cli.py @@ -16,7 +16,7 @@ from conan.cli.exit_codes import SUCCESS, ERROR_MIGRATION, ERROR_GENERAL, USER_CTRL_C, \ ERROR_SIGTERM, USER_CTRL_BREAK, ERROR_INVALID_CONFIGURATION, ERROR_UNEXPECTED from conan.internal.cache.home_paths import HomePaths -from conans import __version__ as client_version +from conan import __version__ from conan.errors import ConanException, ConanInvalidConfiguration, ConanMigrationError _CONAN_INTERNAL_CUSTOM_COMMANDS_PATH = "_CONAN_INTERNAL_CUSTOM_COMMANDS_PATH" @@ -176,7 +176,7 @@ def run(self, *args): command = self._commands[command_argument] except KeyError as exc: if command_argument in ["-v", "--version"]: - cli_out_write("Conan version %s" % client_version) + cli_out_write("Conan version %s" % __version__) return if command_argument in ["-h", "--help"]: diff --git a/conan/cli/formatters/graph/build_order_html.py b/conan/cli/formatters/graph/build_order_html.py index 07d6af46eeb..4d4ac9357a3 100644 --- a/conan/cli/formatters/graph/build_order_html.py +++ b/conan/cli/formatters/graph/build_order_html.py @@ -260,9 +260,10 @@ """ + def _render_build_order(build_order, template): - from conans import __version__ as client_version - context = {'build_order': build_order, 'version': client_version, } + from conan import __version__ + context = {'build_order': build_order, 'version': __version__} return template.render(context) diff --git a/conan/cli/formatters/graph/graph.py b/conan/cli/formatters/graph/graph.py index 7bec8ba658d..6b174f603cd 100644 --- a/conan/cli/formatters/graph/graph.py +++ b/conan/cli/formatters/graph/graph.py @@ -104,10 +104,10 @@ def binary_color(node): def _render_graph(graph, error, template, template_folder): deps_graph = graph.serialize() graph = _Grapher(graph) - from conans import __version__ as client_version + from conan import __version__ template = Template(template, autoescape=select_autoescape(['html', 'xml'])) return template.render(deps_graph=deps_graph, graph=graph, error=error, - base_template_path=template_folder, version=client_version) + base_template_path=template_folder, version=__version__) def format_graph_html(result): diff --git a/conan/cli/formatters/list/list.py b/conan/cli/formatters/list/list.py index 13c114f335b..3ac51e25073 100644 --- a/conan/cli/formatters/list/list.py +++ b/conan/cli/formatters/list/list.py @@ -6,7 +6,7 @@ from conan.api.output import cli_out_write from conan.cli.formatters.list.search_table_html import list_packages_html_template from conans.util.files import load -from conans import __version__ as client_version +from conan import __version__ def list_packages_html(result): @@ -18,5 +18,5 @@ def list_packages_html(result): template = load(user_template) if os.path.isfile(user_template) else list_packages_html_template template = Template(template, autoescape=select_autoescape(['html', 'xml'])) content = template.render(results=json.dumps(results), base_template_path=template_folder, - version=client_version, cli_args=cli_args) + version=__version__, cli_args=cli_args) cli_out_write(content) diff --git a/conan/internal/__init__.py b/conan/internal/__init__.py index 976bfcb41c2..b50650e7dc2 100644 --- a/conan/internal/__init__.py +++ b/conan/internal/__init__.py @@ -1,6 +1,9 @@ from conan.errors import ConanException +REVISIONS = "revisions" # capability + + def check_duplicated_generator(generator, conanfile): if generator.__class__.__name__ in conanfile.generators: raise ConanException(f"{generator.__class__.__name__} is declared in the generators " diff --git a/conan/test/utils/server_launcher.py b/conan/test/utils/server_launcher.py index bc062432fc7..93c08529316 100644 --- a/conan/test/utils/server_launcher.py +++ b/conan/test/utils/server_launcher.py @@ -3,7 +3,7 @@ import shutil import time -from conans import REVISIONS +from conan.internal import REVISIONS from conans.server import SERVER_CAPABILITIES from conans.server.conf import get_server_store from conans.server.crypto.jwt.jwt_credentials_manager import JWTCredentialsManager diff --git a/conan/test/utils/tools.py b/conan/test/utils/tools.py index 090a36c77f2..a84187934cf 100644 --- a/conan/test/utils/tools.py +++ b/conan/test/utils/tools.py @@ -27,7 +27,7 @@ from conan.cli.exit_codes import SUCCESS, ERROR_GENERAL from conan.internal.cache.cache import PackageLayout, RecipeLayout, PkgCache from conan.internal.cache.home_paths import HomePaths -from conans import REVISIONS +from conan.internal import REVISIONS from conan.api.conan_api import ConanAPI from conan.api.model import Remote from conan.cli.cli import Cli, _CONAN_INTERNAL_CUSTOM_COMMANDS_PATH diff --git a/conans/__init__.py b/conans/__init__.py index cbe2f0d7f36..e69de29bb2d 100644 --- a/conans/__init__.py +++ b/conans/__init__.py @@ -1,4 +0,0 @@ -CHECKSUM_DEPLOY = "checksum_deploy" # Only when v2 -REVISIONS = "revisions" # Only when enabled in config, not by default look at server_launcher.py - -__version__ = '2.10.0-dev' diff --git a/conans/client/rest/conan_requester.py b/conans/client/rest/conan_requester.py index 7b7762c7c9c..edb2ce98926 100644 --- a/conans/client/rest/conan_requester.py +++ b/conans/client/rest/conan_requester.py @@ -11,7 +11,7 @@ from conan.internal.cache.home_paths import HomePaths -from conans import __version__ as client_version +from conan import __version__ from conans.client.loader import load_python_file from conan.internal.errors import scoped_traceback from conan.errors import ConanException @@ -121,7 +121,7 @@ def __init__(self, config, cache_folder=None): platform_info = "; ".join([" ".join([platform.system(), platform.release()]), "Python " + platform.python_version(), platform.machine()]) - self._user_agent = "Conan/%s (%s)" % (client_version, platform_info) + self._user_agent = "Conan/%s (%s)" % (__version__, platform_info) @staticmethod def _get_retries(config): diff --git a/conans/client/rest/rest_client.py b/conans/client/rest/rest_client.py index 27099a3f09e..b35d1b16f73 100644 --- a/conans/client/rest/rest_client.py +++ b/conans/client/rest/rest_client.py @@ -1,7 +1,9 @@ -from conans import CHECKSUM_DEPLOY, REVISIONS +from conan.internal import REVISIONS from conans.client.rest.rest_client_v2 import RestV2Methods from conan.errors import ConanException +CHECKSUM_DEPLOY = "checksum_deploy" # capability + class RestApiClient: """ diff --git a/conans/model/version_range.py b/conans/model/version_range.py index ee4e5906ca5..841abb3d15f 100644 --- a/conans/model/version_range.py +++ b/conans/model/version_range.py @@ -1,9 +1,8 @@ from functools import total_ordering from typing import Optional +from conans.model.version import Version from conan.errors import ConanException -from conans.model.recipe_ref import Version -from conans import __version__ as client_version @total_ordering @@ -229,7 +228,8 @@ def version(self): def validate_conan_version(required_range): - clientver = Version(client_version) + from conan import __version__ # To avoid circular imports + clientver = Version(__version__) version_range = VersionRange(required_range) for conditions in version_range.condition_sets: conditions.prerelease = True diff --git a/conans/server/__init__.py b/conans/server/__init__.py index ca82a493050..6e493f6cb35 100644 --- a/conans/server/__init__.py +++ b/conans/server/__init__.py @@ -1,4 +1,4 @@ -from conans import REVISIONS +from conan.internal import REVISIONS COMPLEX_SEARCH_CAPABILITY = "complex_search" diff --git a/conans/server/launcher.py b/conans/server/launcher.py index 12ddb2a6073..7f1f9fd43ca 100644 --- a/conans/server/launcher.py +++ b/conans/server/launcher.py @@ -2,7 +2,7 @@ import os import sys -from conans import REVISIONS +from conan.internal import REVISIONS from conans.server import SERVER_CAPABILITIES from conans.server.conf import get_server_store diff --git a/conans/server/migrate.py b/conans/server/migrate.py index ed6a230dbac..3e79efeddd2 100644 --- a/conans/server/migrate.py +++ b/conans/server/migrate.py @@ -1,5 +1,4 @@ -from conans import __version__ as SERVER_VERSION -from conans.model.version import Version +from conan import conan_version from conans.server.conf import ConanServerConfigParser from conans.server.migrations import ServerMigrator @@ -8,7 +7,7 @@ def migrate_and_get_server_config(base_folder, force_migration=False, is_custom_ server_config = ConanServerConfigParser(base_folder, is_custom_path=is_custom_path) storage_path = server_config.disk_storage_path migrator = ServerMigrator(server_config.conan_folder, storage_path, - Version(SERVER_VERSION), force_migration) + conan_version, force_migration) migrator.migrate() # Init again server_config, migrator could change something diff --git a/pyinstaller.py b/pyinstaller.py index a4d6f22cbca..75323736ccf 100644 --- a/pyinstaller.py +++ b/pyinstaller.py @@ -21,7 +21,7 @@ import shutil import sys -from conans import __version__ +from conan import __version__ def _run_bin(pyinstaller_path): diff --git a/setup.py b/setup.py index 3c14b1b8758..d2d685a7dc8 100644 --- a/setup.py +++ b/setup.py @@ -29,7 +29,7 @@ def get_requires(filename): def load_version(): """ Loads a file content """ filename = os.path.abspath(os.path.join(os.path.dirname(os.path.abspath(__file__)), - "conans", "__init__.py")) + "conan", "__init__.py")) with open(filename, "rt") as version_file: conan_init = version_file.read() version = re.search(r"__version__ = '([0-9a-z.-]+)'", conan_init).group(1) diff --git a/setup_server.py b/setup_server.py index 821bdb07cba..4da63726487 100644 --- a/setup_server.py +++ b/setup_server.py @@ -32,7 +32,7 @@ def get_requires(filename): def load_version(): """ Loads a file content """ filename = os.path.abspath(os.path.join(os.path.dirname(os.path.abspath(__file__)), - "conans", "__init__.py")) + "conan", "__init__.py")) with open(filename, "rt") as version_file: conan_init = version_file.read() version = re.search(r"__version__ = '([0-9a-z.-]+)'", conan_init).group(1) diff --git a/test/integration/command/help_test.py b/test/integration/command/help_test.py index 0e5665da981..6003a8cda71 100644 --- a/test/integration/command/help_test.py +++ b/test/integration/command/help_test.py @@ -1,4 +1,4 @@ -from conans import __version__ +from conan import __version__ from conan.test.utils.tools import TestClient diff --git a/test/integration/command/new_test.py b/test/integration/command/new_test.py index 4700ede4e30..0dbb71deac3 100644 --- a/test/integration/command/new_test.py +++ b/test/integration/command/new_test.py @@ -3,7 +3,7 @@ import pytest -from conans import __version__ as client_version +from conan import __version__ from conan.test.utils.test_files import temp_folder from conan.test.utils.tools import TestClient from conans.util.files import save @@ -79,7 +79,7 @@ class Conan(ConanFile): conanfile = client.load("conanfile.py") assert 'name = "hello"' in conanfile assert 'version = "0.1"' in conanfile - assert 'conan_version = "{}"'.format(client_version) in conanfile + assert 'conan_version = "{}"'.format(__version__) in conanfile def test_user_template_abs(self): tmp_folder = temp_folder() diff --git a/test/integration/conanfile/required_conan_version_test.py b/test/integration/conanfile/required_conan_version_test.py index 3bde82da837..cc63cc089af 100644 --- a/test/integration/conanfile/required_conan_version_test.py +++ b/test/integration/conanfile/required_conan_version_test.py @@ -2,7 +2,7 @@ import mock -from conans import __version__ +from conan import __version__ from conan.test.utils.tools import TestClient @@ -22,10 +22,10 @@ class Lib(ConanFile): client.run("source . ", assert_error=True) assert f"Current Conan version ({__version__}) does not satisfy the defined one (>=100.0)" in client.out - with mock.patch("conans.model.version_range.client_version", "101.0"): + with mock.patch("conan.__version__", "101.0"): client.run("export . --name=pkg --version=1.0") - with mock.patch("conans.model.version_range.client_version", "101.0-dev"): + with mock.patch("conan.__version__", "101.0-dev"): client.run("export . --name=pkg --version=1.0") client.run("install --requires=pkg/1.0@", assert_error=True) diff --git a/test/integration/configuration/conf/test_conf.py b/test/integration/configuration/conf/test_conf.py index 52e2bf85857..dc0a2452066 100644 --- a/test/integration/configuration/conf/test_conf.py +++ b/test/integration/configuration/conf/test_conf.py @@ -134,7 +134,7 @@ def test_new_config_file(client): assert "[conf] Either 'cache:read_only' does not exist in configuration list" in client.out -@patch("conans.model.version_range.client_version", "1.26.0") +@patch("conan.__version__", "1.26.0") def test_new_config_file_required_version(): client = TestClient() conf = textwrap.dedent("""\ diff --git a/test/integration/configuration/requester_test.py b/test/integration/configuration/requester_test.py index fe41b5bef9f..5acb473602f 100644 --- a/test/integration/configuration/requester_test.py +++ b/test/integration/configuration/requester_test.py @@ -4,7 +4,7 @@ import mock from mock import Mock, MagicMock -from conans import __version__ +from conan import __version__ from conans.client.rest.conan_requester import ConanRequester from conans.model.conf import ConfDefinition from conan.test.utils.tools import temp_folder diff --git a/test/integration/configuration/required_version_test.py b/test/integration/configuration/required_version_test.py index 58714e856e2..8a352ce0608 100644 --- a/test/integration/configuration/required_version_test.py +++ b/test/integration/configuration/required_version_test.py @@ -2,7 +2,7 @@ import unittest import mock -from conans import __version__ +from conan import __version__ from conan.errors import ConanException from conan.test.utils.test_files import temp_folder from conan.test.utils.tools import TestClient @@ -11,7 +11,7 @@ class RequiredVersionTest(unittest.TestCase): - @mock.patch("conans.model.version_range.client_version", "1.26.0") + @mock.patch("conan.__version__", "1.26.0") def test_wrong_version(self): required_version = "1.23.0" client = TestClient() @@ -20,21 +20,21 @@ def test_wrong_version(self): self.assertIn("Current Conan version (1.26.0) does not satisfy the defined " "one ({})".format(required_version), client.out) - @mock.patch("conans.model.version_range.client_version", "1.22.0") + @mock.patch("conan.__version__", "1.22.0") def test_exact_version(self): required_version = "1.22.0" client = TestClient() client.save_home({"global.conf": f"core:required_conan_version={required_version}"}) client.run("--help") - @mock.patch("conans.model.version_range.client_version", "2.1.0") + @mock.patch("conan.__version__", "2.1.0") def test_lesser_version(self): required_version = "<3.0" client = TestClient() client.save_home({"global.conf": f"core:required_conan_version={required_version}"}) client.run("--help") - @mock.patch("conans.model.version_range.client_version", "1.0.0") + @mock.patch("conan.__version__", "1.0.0") def test_greater_version(self): required_version = ">0.1.0" client = TestClient() diff --git a/test/integration/remote/server_error_test.py b/test/integration/remote/server_error_test.py index d9868b273ec..ff0f72127c1 100644 --- a/test/integration/remote/server_error_test.py +++ b/test/integration/remote/server_error_test.py @@ -1,6 +1,6 @@ import unittest -from conans import REVISIONS +from conan.internal import REVISIONS from conan.test.utils.tools import TestClient, TestServer, TestRequester from collections import namedtuple diff --git a/test/integration/tools/conan_version_test.py b/test/integration/tools/conan_version_test.py index 740f3713995..32a6931f524 100644 --- a/test/integration/tools/conan_version_test.py +++ b/test/integration/tools/conan_version_test.py @@ -1,7 +1,7 @@ import textwrap from conan.test.utils.tools import TestClient -from conans import __version__ +from conan import __version__ def test_conan_version(): @@ -10,7 +10,7 @@ def test_conan_version(): from conan import ConanFile from conan import conan_version from conan.tools.scm import Version - from conans import __version__ + from conan import __version__ class pkg(ConanFile):