Move core/pip dependencies to the separate "dependencies" module

This commit is contained in:
Ivan Kravets
2024-03-18 13:14:22 +02:00
parent 56be27fb0b
commit 28bd200cd6
9 changed files with 41 additions and 36 deletions

View File

@ -38,15 +38,6 @@ __registry_mirror_hosts__ = [
] ]
__pioremote_endpoint__ = "ssl:host=remote.platformio.org:port=4413" __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__ = [ __check_internet_hosts__ = [
"185.199.110.153", # Github.com "185.199.110.153", # Github.com
"88.198.170.159", # platformio.org "88.198.170.159", # platformio.org

View File

@ -19,9 +19,9 @@ import subprocess
import click import click
from platformio import VERSION, __version__, app, exception from platformio import VERSION, __version__, app, exception
from platformio.dependencies import get_pip_dependencies
from platformio.http import fetch_remote_content from platformio.http import fetch_remote_content
from platformio.package.manager.core import update_core_packages from platformio.package.manager.core import update_core_packages
from platformio.pipdeps import get_pip_dependencies
from platformio.proc import get_pythonexe_path from platformio.proc import get_pythonexe_path
PYPI_JSON_URL = "https://pypi.org/pypi/platformio/json" PYPI_JSON_URL = "https://pypi.org/pypi/platformio/json"

View File

@ -17,6 +17,7 @@
import importlib.util import importlib.util
import inspect import inspect
import locale import locale
import os
import shlex import shlex
import sys import sys
@ -45,6 +46,7 @@ else:
PY2 = sys.version_info[0] == 2 # DO NOT REMOVE IT. ESP8266/ESP32 depend on it 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_CYGWIN = sys.platform.startswith("cygwin")
IS_WINDOWS = WINDOWS = sys.platform.startswith("win") IS_WINDOWS = WINDOWS = sys.platform.startswith("win")
IS_MACOS = sys.platform.startswith("darwin") IS_MACOS = sys.platform.startswith("darwin")
@ -132,3 +134,12 @@ def path_to_unicode(path):
and custom device monitor filters and custom device monitor filters
""" """
return path 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

View File

@ -12,11 +12,20 @@
# See the License for the specific language governing permissions and # See the License for the specific language governing permissions and
# limitations under the License. # limitations under the License.
import os
import platform 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(): def get_pip_dependencies():
@ -60,12 +69,3 @@ def get_pip_dependencies():
pass pass
return core + home + extra 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

View File

@ -21,8 +21,8 @@ from urllib3.util.retry import Retry
from platformio import __check_internet_hosts__, app, util from platformio import __check_internet_hosts__, app, util
from platformio.cache import ContentCache, cleanup_content_cache from platformio.cache import ContentCache, cleanup_content_cache
from platformio.compat import is_proxy_set
from platformio.exception import PlatformioException, UserSideException from platformio.exception import PlatformioException, UserSideException
from platformio.pipdeps import is_proxy_set
__default_requests_timeout__ = (10, None) # (connect, read) __default_requests_timeout__ = (10, None) # (connect, read)

View File

@ -14,7 +14,8 @@
import os 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.exception import UnknownPackageError
from platformio.package.manager.tool import ToolPackageManager from platformio.package.manager.tool import ToolPackageManager
from platformio.package.meta import PackageSpec from platformio.package.meta import PackageSpec
@ -23,7 +24,7 @@ from platformio.package.meta import PackageSpec
def get_installed_core_packages(): def get_installed_core_packages():
result = [] result = []
pm = ToolPackageManager() 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) spec = PackageSpec(owner="platformio", name=name, requirements=requirements)
pkg = pm.get_package(spec) pkg = pm.get_package(spec)
if pkg: if pkg:
@ -32,11 +33,11 @@ def get_installed_core_packages():
def get_core_package_dir(name, spec=None, auto_install=True): 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") raise exception.PlatformioException("Please upgrade PlatformIO Core")
pm = ToolPackageManager() pm = ToolPackageManager()
spec = spec or PackageSpec( 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) pkg = pm.get_package(spec)
if pkg: if pkg:
@ -50,7 +51,7 @@ def get_core_package_dir(name, spec=None, auto_install=True):
def update_core_packages(): def update_core_packages():
pm = ToolPackageManager() 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) spec = PackageSpec(owner="platformio", name=name, requirements=requirements)
try: try:
pm.update(spec, spec) pm.update(spec, spec)
@ -65,7 +66,7 @@ def remove_unnecessary_core_packages(dry_run=False):
pm = ToolPackageManager() pm = ToolPackageManager()
best_pkg_versions = {} 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) spec = PackageSpec(owner="platformio", name=name, requirements=requirements)
pkg = pm.get_package(spec) pkg = pm.get_package(spec)
if not pkg: if not pkg:

View File

@ -23,7 +23,7 @@ from platformio import (
__url__, __url__,
__version__, __version__,
) )
from platformio.pipdeps import get_pip_dependencies from platformio.dependencies import get_pip_dependencies
setup( setup(
name=__title__, name=__title__,

View File

@ -18,7 +18,8 @@ import os
import pytest 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.commands.install import package_install_cmd
from platformio.package.manager.library import LibraryPackageManager from platformio.package.manager.library import LibraryPackageManager
from platformio.package.manager.platform import PlatformPackageManager from platformio.package.manager.platform import PlatformPackageManager
@ -177,7 +178,7 @@ def test_baremetal_project(
), ),
] ]
assert pkgs_to_specs(ToolPackageManager().get_installed()) == [ 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"), PackageSpec("toolchain-atmelavr@1.70300.191015"),
] ]
@ -210,7 +211,7 @@ def test_project(
] ]
assert pkgs_to_specs(ToolPackageManager().get_installed()) == [ assert pkgs_to_specs(ToolPackageManager().get_installed()) == [
PackageSpec("framework-arduino-avr-attiny@1.5.2"), 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"), PackageSpec("toolchain-atmelavr@1.70300.191015"),
] ]
assert config.get("env:devkit", "lib_deps") == [ assert config.get("env:devkit", "lib_deps") == [

View File

@ -16,7 +16,8 @@
import os 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.install import package_install_cmd
from platformio.package.commands.update import package_update_cmd from platformio.package.commands.update import package_update_cmd
from platformio.package.exception import UnknownPackageError from platformio.package.exception import UnknownPackageError
@ -174,7 +175,7 @@ def test_project(
] ]
assert pkgs_to_specs(ToolPackageManager().get_installed()) == [ assert pkgs_to_specs(ToolPackageManager().get_installed()) == [
PackageSpec("framework-arduino-avr-attiny@1.3.2"), 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"), PackageSpec("toolchain-atmelavr@1.50400.190710"),
] ]
assert config.get("env:devkit", "lib_deps") == [ assert config.get("env:devkit", "lib_deps") == [
@ -204,7 +205,7 @@ def test_project(
] ]
assert pkgs_to_specs(ToolPackageManager().get_installed()) == [ assert pkgs_to_specs(ToolPackageManager().get_installed()) == [
PackageSpec("framework-arduino-avr-attiny@1.3.2"), 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.70300.191015"),
PackageSpec("toolchain-atmelavr@1.50400.190710"), PackageSpec("toolchain-atmelavr@1.50400.190710"),
] ]