From f3b8b2e33646c962bc2c5ea3a125e22517c4c412 Mon Sep 17 00:00:00 2001 From: ruhz3 <96fbgudwn@gmail.com> Date: Thu, 10 Oct 2024 03:36:33 +0900 Subject: [PATCH] First use environment variable as npm registry (#4082) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * First use environment variable as npm registry * use NPM_CONFIG_REGISTRY as env variable --------- Co-authored-by: 류형주/인공지능팀 --- reflex/utils/prerequisites.py | 4 ++-- reflex/utils/registry.py | 20 +++++++++++++++++--- 2 files changed, 19 insertions(+), 5 deletions(-) diff --git a/reflex/utils/prerequisites.py b/reflex/utils/prerequisites.py index 3c2875204..34ed5f53f 100644 --- a/reflex/utils/prerequisites.py +++ b/reflex/utils/prerequisites.py @@ -37,7 +37,7 @@ from reflex.config import Config, get_config from reflex.utils import console, net, path_ops, processes from reflex.utils.exceptions import GeneratedCodeHasNoFunctionDefs from reflex.utils.format import format_library_name -from reflex.utils.registry import _get_best_registry +from reflex.utils.registry import _get_npm_registry CURRENTLY_INSTALLING_NODE = False @@ -620,7 +620,7 @@ def initialize_package_json(): code = _compile_package_json() output_path.write_text(code) - best_registry = _get_best_registry() + best_registry = _get_npm_registry() bun_config_path = get_web_dir() / constants.Bun.CONFIG_PATH bun_config_path.write_text( f""" diff --git a/reflex/utils/registry.py b/reflex/utils/registry.py index 551292f2d..6b87c163d 100644 --- a/reflex/utils/registry.py +++ b/reflex/utils/registry.py @@ -1,8 +1,10 @@ """Utilities for working with registries.""" +import os + import httpx -from reflex.utils import console +from reflex.utils import console, net def latency(registry: str) -> int: @@ -15,7 +17,7 @@ def latency(registry: str) -> int: int: The latency of the registry in microseconds. """ try: - return httpx.get(registry).elapsed.microseconds + return net.get(registry).elapsed.microseconds except httpx.HTTPError: console.info(f"Failed to connect to {registry}.") return 10_000_000 @@ -34,7 +36,7 @@ def average_latency(registry, attempts: int = 3) -> int: return sum(latency(registry) for _ in range(attempts)) // attempts -def _get_best_registry() -> str: +def get_best_registry() -> str: """Get the best registry based on latency. Returns: @@ -46,3 +48,15 @@ def _get_best_registry() -> str: ] return min(registries, key=average_latency) + + +def _get_npm_registry() -> str: + """Get npm registry. If environment variable is set, use it first. + + Returns: + str: + """ + if npm_registry := os.environ.get("NPM_CONFIG_REGISTRY", ""): + return npm_registry + else: + return get_best_registry()