diff --git a/platformio/__init__.py b/platformio/__init__.py index 35aa5939..49b5bf77 100644 --- a/platformio/__init__.py +++ b/platformio/__init__.py @@ -38,15 +38,6 @@ __registry_mirror_hosts__ = [ ] __pioremote_endpoint__ = "ssl:host=remote.platformio.org:port=4413" -__core_packages__ = { - "contrib-piohome": "~3.4.2", - "contrib-pioremote": "~1.0.0", - "tool-scons": "~4.40600.0", - "tool-cppcheck": "~1.21100.0", - "tool-clangtidy": "~1.150005.0", - "tool-pvs-studio": "~7.18.0", -} - __check_internet_hosts__ = [ "185.199.110.153", # Github.com "88.198.170.159", # platformio.org diff --git a/platformio/commands/upgrade.py b/platformio/commands/upgrade.py index 129e3fa1..d8ba386e 100644 --- a/platformio/commands/upgrade.py +++ b/platformio/commands/upgrade.py @@ -19,9 +19,9 @@ import subprocess import click from platformio import VERSION, __version__, app, exception +from platformio.dependencies import get_pip_dependencies from platformio.http import fetch_remote_content from platformio.package.manager.core import update_core_packages -from platformio.pipdeps import get_pip_dependencies from platformio.proc import get_pythonexe_path PYPI_JSON_URL = "https://pypi.org/pypi/platformio/json" diff --git a/platformio/compat.py b/platformio/compat.py index 008dc7ae..6bd8029c 100644 --- a/platformio/compat.py +++ b/platformio/compat.py @@ -17,6 +17,7 @@ import importlib.util import inspect import locale +import os import shlex import sys @@ -45,6 +46,7 @@ else: PY2 = sys.version_info[0] == 2 # DO NOT REMOVE IT. ESP8266/ESP32 depend on it +PY36 = sys.version_info[0:2] == (3, 6) IS_CYGWIN = sys.platform.startswith("cygwin") IS_WINDOWS = WINDOWS = sys.platform.startswith("win") IS_MACOS = sys.platform.startswith("darwin") @@ -132,3 +134,12 @@ def path_to_unicode(path): and custom device monitor filters """ return path + + +def is_proxy_set(socks=False): + for var in ("HTTP_PROXY", "HTTPS_PROXY", "ALL_PROXY"): + value = os.getenv(var, os.getenv(var.lower())) + if not value or (socks and not value.startswith("socks5://")): + continue + return True + return False diff --git a/platformio/pipdeps.py b/platformio/dependencies.py similarity index 84% rename from platformio/pipdeps.py rename to platformio/dependencies.py index b76bc8ca..b8ae471f 100644 --- a/platformio/pipdeps.py +++ b/platformio/dependencies.py @@ -12,11 +12,20 @@ # See the License for the specific language governing permissions and # limitations under the License. -import os import platform -import sys -PY36 = sys.version_info[0:2] == (3, 6) +from platformio.compat import PY36, is_proxy_set + + +def get_core_dependencies(): + return { + "contrib-piohome": "~3.4.2", + "contrib-pioremote": "~1.0.0", + "tool-scons": "~4.40600.0", + "tool-cppcheck": "~1.21100.0", + "tool-clangtidy": "~1.150005.0", + "tool-pvs-studio": "~7.18.0", + } def get_pip_dependencies(): @@ -60,12 +69,3 @@ def get_pip_dependencies(): pass return core + home + extra - - -def is_proxy_set(socks=False): - for var in ("HTTP_PROXY", "HTTPS_PROXY", "ALL_PROXY"): - value = os.getenv(var, os.getenv(var.lower())) - if not value or (socks and not value.startswith("socks5://")): - continue - return True - return False diff --git a/platformio/http.py b/platformio/http.py index 18bb50c6..d82e4703 100644 --- a/platformio/http.py +++ b/platformio/http.py @@ -21,8 +21,8 @@ from urllib3.util.retry import Retry from platformio import __check_internet_hosts__, app, util from platformio.cache import ContentCache, cleanup_content_cache +from platformio.compat import is_proxy_set from platformio.exception import PlatformioException, UserSideException -from platformio.pipdeps import is_proxy_set __default_requests_timeout__ = (10, None) # (connect, read) diff --git a/platformio/package/manager/core.py b/platformio/package/manager/core.py index ca5c5e01..f4e0f50e 100644 --- a/platformio/package/manager/core.py +++ b/platformio/package/manager/core.py @@ -14,7 +14,8 @@ import os -from platformio import __core_packages__, exception +from platformio import exception +from platformio.dependencies import get_core_dependencies from platformio.package.exception import UnknownPackageError from platformio.package.manager.tool import ToolPackageManager from platformio.package.meta import PackageSpec @@ -23,7 +24,7 @@ from platformio.package.meta import PackageSpec def get_installed_core_packages(): result = [] pm = ToolPackageManager() - for name, requirements in __core_packages__.items(): + for name, requirements in get_core_dependencies().items(): spec = PackageSpec(owner="platformio", name=name, requirements=requirements) pkg = pm.get_package(spec) if pkg: @@ -32,11 +33,11 @@ def get_installed_core_packages(): def get_core_package_dir(name, spec=None, auto_install=True): - if name not in __core_packages__: + if name not in get_core_dependencies(): raise exception.PlatformioException("Please upgrade PlatformIO Core") pm = ToolPackageManager() spec = spec or PackageSpec( - owner="platformio", name=name, requirements=__core_packages__[name] + owner="platformio", name=name, requirements=get_core_dependencies()[name] ) pkg = pm.get_package(spec) if pkg: @@ -50,7 +51,7 @@ def get_core_package_dir(name, spec=None, auto_install=True): def update_core_packages(): pm = ToolPackageManager() - for name, requirements in __core_packages__.items(): + for name, requirements in get_core_dependencies().items(): spec = PackageSpec(owner="platformio", name=name, requirements=requirements) try: pm.update(spec, spec) @@ -65,7 +66,7 @@ def remove_unnecessary_core_packages(dry_run=False): pm = ToolPackageManager() best_pkg_versions = {} - for name, requirements in __core_packages__.items(): + for name, requirements in get_core_dependencies().items(): spec = PackageSpec(owner="platformio", name=name, requirements=requirements) pkg = pm.get_package(spec) if not pkg: diff --git a/setup.py b/setup.py index 7a7c5076..e4eae238 100644 --- a/setup.py +++ b/setup.py @@ -23,7 +23,7 @@ from platformio import ( __url__, __version__, ) -from platformio.pipdeps import get_pip_dependencies +from platformio.dependencies import get_pip_dependencies setup( name=__title__, diff --git a/tests/commands/pkg/test_install.py b/tests/commands/pkg/test_install.py index 22963ef9..2c623314 100644 --- a/tests/commands/pkg/test_install.py +++ b/tests/commands/pkg/test_install.py @@ -18,7 +18,8 @@ import os import pytest -from platformio import __core_packages__, fs +from platformio import fs +from platformio.dependencies import get_core_dependencies from platformio.package.commands.install import package_install_cmd from platformio.package.manager.library import LibraryPackageManager from platformio.package.manager.platform import PlatformPackageManager @@ -177,7 +178,7 @@ def test_baremetal_project( ), ] assert pkgs_to_specs(ToolPackageManager().get_installed()) == [ - PackageSpec("tool-scons@%s" % __core_packages__["tool-scons"][1:]), + PackageSpec("tool-scons@%s" % get_core_dependencies()["tool-scons"][1:]), PackageSpec("toolchain-atmelavr@1.70300.191015"), ] @@ -210,7 +211,7 @@ def test_project( ] assert pkgs_to_specs(ToolPackageManager().get_installed()) == [ PackageSpec("framework-arduino-avr-attiny@1.5.2"), - PackageSpec("tool-scons@%s" % __core_packages__["tool-scons"][1:]), + PackageSpec("tool-scons@%s" % get_core_dependencies()["tool-scons"][1:]), PackageSpec("toolchain-atmelavr@1.70300.191015"), ] assert config.get("env:devkit", "lib_deps") == [ diff --git a/tests/commands/pkg/test_update.py b/tests/commands/pkg/test_update.py index 1fd953ed..4ee4366a 100644 --- a/tests/commands/pkg/test_update.py +++ b/tests/commands/pkg/test_update.py @@ -16,7 +16,8 @@ import os -from platformio import __core_packages__, fs +from platformio import fs +from platformio.dependencies import get_core_dependencies from platformio.package.commands.install import package_install_cmd from platformio.package.commands.update import package_update_cmd from platformio.package.exception import UnknownPackageError @@ -174,7 +175,7 @@ def test_project( ] assert pkgs_to_specs(ToolPackageManager().get_installed()) == [ PackageSpec("framework-arduino-avr-attiny@1.3.2"), - PackageSpec("tool-scons@%s" % __core_packages__["tool-scons"][1:]), + PackageSpec("tool-scons@%s" % get_core_dependencies()["tool-scons"][1:]), PackageSpec("toolchain-atmelavr@1.50400.190710"), ] assert config.get("env:devkit", "lib_deps") == [ @@ -204,7 +205,7 @@ def test_project( ] assert pkgs_to_specs(ToolPackageManager().get_installed()) == [ PackageSpec("framework-arduino-avr-attiny@1.3.2"), - PackageSpec("tool-scons@%s" % __core_packages__["tool-scons"][1:]), + PackageSpec("tool-scons@%s" % get_core_dependencies()["tool-scons"][1:]), PackageSpec("toolchain-atmelavr@1.70300.191015"), PackageSpec("toolchain-atmelavr@1.50400.190710"), ]