Skip to content

Commit c3fbdfa

Browse files
jonasblanchaakonvt
andauthored
fix(Functions): skip pip validation on browser use (#2638)
Co-authored-by: Håkon V. Treider <haakonvt@gmail.com>
1 parent 003ed5d commit c3fbdfa

3 files changed

Lines changed: 19 additions & 2 deletions

File tree

cognite/client/_api/functions/__init__.py

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
import re
88
import sys
99
import textwrap
10+
import warnings
1011
from collections.abc import AsyncIterator, Callable, Sequence
1112
from inspect import getdoc, getsource, signature
1213
from multiprocessing import Process, Queue
@@ -873,7 +874,16 @@ def _validate_and_parse_requirements(requirements: list[str]) -> list[str]:
873874
Returns:
874875
list[str]: The parsed requirements
875876
"""
876-
constructors = local_import("pip._internal.req.constructors")
877+
if _RUNNING_IN_BROWSER:
878+
warnings.warn(
879+
"Running in a browser environment, skipping client-side validation of requirements.",
880+
UserWarning,
881+
stacklevel=2,
882+
)
883+
return [r for r in requirements if r.strip()]
884+
else:
885+
constructors = local_import("pip._internal.req.constructors")
886+
877887
install_req_from_line = constructors.install_req_from_line
878888
parsed_reqs: list[str] = []
879889
for req in requirements:

cognite/client/_sync_api/functions/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
"""
22
===============================================================================
3-
1862715b947706f15000fe1f49906d00
3+
9a58504453f212b9189304aa9ac90385
44
This file is auto-generated from the Async API modules, - do not edit manually!
55
===============================================================================
66
"""

tests/tests_unit/test_api/test_functions.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -729,6 +729,13 @@ def test_validate_requirements(self) -> None:
729729
parsed = _validate_and_parse_requirements(["asyncio==3.4.3", "numpy==1.23.0", "pandas==1.4.3"])
730730
assert parsed == ["asyncio==3.4.3", "numpy==1.23.0", "pandas==1.4.3"]
731731

732+
def test_validate_requirements_browser_skips_validation_and_warns(self) -> None:
733+
invalid_reqs = ["num py==1.23.0"]
734+
with patch("cognite.client._api.functions._RUNNING_IN_BROWSER", True):
735+
with pytest.warns(UserWarning, match="browser environment"):
736+
parsed = _validate_and_parse_requirements(invalid_reqs)
737+
assert parsed == invalid_reqs
738+
732739
def test_validate_requirements_error(self) -> None:
733740
reqs = [["asyncio=3.4.3"], ["num py==1.23.0"], ["pandas==1.4.3 python_version=='3.8'"]]
734741
for req in reqs:

0 commit comments

Comments
 (0)