diff --git a/.github/workflows/quick-ci.yml b/.github/workflows/quick-ci.yml index 2da70870436..5b390eb2576 100644 --- a/.github/workflows/quick-ci.yml +++ b/.github/workflows/quick-ci.yml @@ -50,3 +50,18 @@ jobs: name: quick-ci-jvm-err path: '**/*_pid*.log' if-no-files-found: ignore + + verify-python-min-version: + runs-on: ubuntu-22.04 + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-python@v5 + with: + python-version: '3.12' + cache: 'pip' + + - name: Install vermin + run: pip install vermin==1.6.0 + + - name: Verify minimum version support + run: vermin -t=3.8 --no-tips --eval-annotations --violations py/server/deephaven py/client py/client-ticking py/embedded-server diff --git a/py/server/deephaven/_udf.py b/py/server/deephaven/_udf.py index c4be8f5cf2e..2bfe947e3c5 100644 --- a/py/server/deephaven/_udf.py +++ b/py/server/deephaven/_udf.py @@ -250,7 +250,7 @@ def _parse_signature(fn: Callable) -> _ParsedSignature: else: p_sig = _ParsedSignature(fn=fn) if sys.version_info.major == 3 and sys.version_info.minor >= 10: - sig = inspect.signature(fn, eval_str=True) + sig = inspect.signature(fn, eval_str=True) # novermin else: sig = inspect.signature(fn) diff --git a/py/server/deephaven/dtypes.py b/py/server/deephaven/dtypes.py index b4a367c98ee..7da00a0fe37 100644 --- a/py/server/deephaven/dtypes.py +++ b/py/server/deephaven/dtypes.py @@ -443,7 +443,7 @@ def _np_ndarray_component_type(t: type) -> Optional[type]: # when np.ndarray is used, the 1st argument is the component type if not component_type and sys.version_info.major == 3 and sys.version_info.minor > 8: import types - if isinstance(t, types.GenericAlias) and (issubclass(t.__origin__, Sequence) or t.__origin__ == np.ndarray): + if isinstance(t, types.GenericAlias) and (issubclass(t.__origin__, Sequence) or t.__origin__ == np.ndarray): # novermin nargs = len(t.__args__) if nargs == 1: component_type = t.__args__[0] diff --git a/py/server/deephaven/time.py b/py/server/deephaven/time.py index 160c6deffd9..df89cbe0053 100644 --- a/py/server/deephaven/time.py +++ b/py/server/deephaven/time.py @@ -185,8 +185,8 @@ def _tzinfo_to_j_time_zone(tzi: datetime.tzinfo) -> TimeZone: return _JDateTimeUtils.parseTimeZone(tzi.zone) # Handle zoneinfo time zones - if sys.version_info >= (3, 9): + # novermin import zoneinfo if isinstance(tzi, zoneinfo.ZoneInfo): return _JDateTimeUtils.parseTimeZone(tzi.key)