diff --git a/.github/actions/lbox-matrix/index.js b/.github/actions/lbox-matrix/index.js index ac3975488..574a56381 100644 --- a/.github/actions/lbox-matrix/index.js +++ b/.github/actions/lbox-matrix/index.js @@ -26811,11 +26811,6 @@ const core = __nccwpck_require__(8611); try { const files = JSON.parse(core.getInput('files-changed')); const startingMatrix = [ - { - "python-version": "3.8", - "api-key": "STAGING_LABELBOX_API_KEY_2", - "da-test-key": "DA_GCP_LABELBOX_API_KEY" - }, { "python-version": "3.9", "api-key": "STAGING_LABELBOX_API_KEY_3", diff --git a/.github/workflows/lbox-develop.yml b/.github/workflows/lbox-develop.yml index efb642f66..ee05c5723 100644 --- a/.github/workflows/lbox-develop.yml +++ b/.github/workflows/lbox-develop.yml @@ -90,7 +90,7 @@ jobs: - uses: ./.github/actions/python-package-shared-setup with: rye-version: ${{ vars.RYE_VERSION }} - python-version: '3.8' + python-version: '3.9' - name: Create build id: create-build working-directory: libs/${{ matrix.package }} diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index d64123c60..4fcb10257 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -71,9 +71,6 @@ jobs: fail-fast: false matrix: include: - - python-version: 3.8 - prod-key: PROD_LABELBOX_API_KEY_2 - da-test-key: DA_GCP_LABELBOX_API_KEY - python-version: 3.9 prod-key: PROD_LABELBOX_API_KEY_3 da-test-key: DA_GCP_LABELBOX_API_KEY diff --git a/.github/workflows/python-package-develop.yml b/.github/workflows/python-package-develop.yml index 769d04c74..806c838e2 100644 --- a/.github/workflows/python-package-develop.yml +++ b/.github/workflows/python-package-develop.yml @@ -44,7 +44,7 @@ jobs: - name: Get Latest SDK versions id: get_sdk_versions run: | - sdk_versions=$(git tag --list --sort=-version:refname "v.*" | head -n 4 | jq -R -s -c 'split("\n")[:-1]') + sdk_versions=$(git tag --list --sort=-version:refname "v.*" | head -n 3 | jq -R -s -c 'split("\n")[:-1]') if [ -z "$sdk_versions" ]; then echo "No tags found" exit 1 @@ -58,10 +58,6 @@ jobs: fail-fast: false matrix: include: - - python-version: 3.8 - api-key: STAGING_LABELBOX_API_KEY_2 - da-test-key: DA_GCP_LABELBOX_API_KEY - sdk-version: ${{ fromJson(needs.get_sdk_versions.outputs.sdk_versions)[3] }} - python-version: 3.9 api-key: STAGING_LABELBOX_API_KEY_3 da-test-key: DA_GCP_LABELBOX_API_KEY @@ -103,7 +99,7 @@ jobs: - uses: ./.github/actions/python-package-shared-setup with: rye-version: ${{ vars.RYE_VERSION }} - python-version: '3.8' + python-version: '3.9' - name: Create build id: create-build working-directory: libs/labelbox diff --git a/.github/workflows/python-package-prod.yml b/.github/workflows/python-package-prod.yml index 1936af132..c0e24536f 100644 --- a/.github/workflows/python-package-prod.yml +++ b/.github/workflows/python-package-prod.yml @@ -13,9 +13,6 @@ jobs: fail-fast: false matrix: include: - - python-version: 3.8 - api-key: PROD_LABELBOX_API_KEY_2 - da-test-key: DA_GCP_LABELBOX_API_KEY - python-version: 3.9 api-key: PROD_LABELBOX_API_KEY_3 da-test-key: DA_GCP_LABELBOX_API_KEY diff --git a/.python-version b/.python-version index 9ad6380c1..43077b246 100644 --- a/.python-version +++ b/.python-version @@ -1 +1 @@ -3.8.18 +3.9.18 diff --git a/examples/pyproject.toml b/examples/pyproject.toml index 969454ecc..b620680e0 100644 --- a/examples/pyproject.toml +++ b/examples/pyproject.toml @@ -5,7 +5,7 @@ description = "Labelbox Python Example Notebooks" authors = [{ name = "Labelbox", email = "docs@labelbox.com" }] readme = "README.md" # Python version matches labelbox SDK -requires-python = ">=3.8" +requires-python = ">=3.9" dependencies = [] [project.urls] @@ -22,8 +22,8 @@ dev-dependencies = [ "yapf>=0.40.2", "black[jupyter]>=24.4.2", "databooks>=1.3.10", - # higher versions dont support python 3.8 - "pandas>=2.0.3", + # higher versions dont support python 3.9 + "pandas>=2.2.3", ] [tool.rye.scripts] diff --git a/libs/labelbox/Dockerfile b/libs/labelbox/Dockerfile index ddf451b14..386bdbc63 100644 --- a/libs/labelbox/Dockerfile +++ b/libs/labelbox/Dockerfile @@ -1,5 +1,5 @@ # https://github.com/ucyo/python-package-template/blob/master/Dockerfile -FROM python:3.8-slim as rye +FROM python:3.9-slim as rye ENV LANG="C.UTF-8" \ LC_ALL="C.UTF-8" \ @@ -38,7 +38,7 @@ WORKDIR /home/python/labelbox-python RUN rye config --set-bool behavior.global-python=true && \ rye config --set-bool behavior.use-uv=true && \ - rye pin 3.8 && \ + rye pin 3.9 && \ rye sync CMD cd libs/labelbox && rye run integration && rye sync -f --features labelbox/data && rye run unit && rye run data diff --git a/libs/labelbox/pyproject.toml b/libs/labelbox/pyproject.toml index 835e168c3..11ecb478b 100644 --- a/libs/labelbox/pyproject.toml +++ b/libs/labelbox/pyproject.toml @@ -15,7 +15,7 @@ dependencies = [ "lbox-clients==1.1.0", ] readme = "README.md" -requires-python = ">=3.8" +requires-python = ">=3.9" classifiers = [ # How mature is this project? "Development Status :: 5 - Production/Stable", @@ -29,7 +29,6 @@ classifiers = [ "License :: OSI Approved :: Apache Software License", # Specify the Python versions you support here. "Programming Language :: Python :: 3", - "Programming Language :: Python :: 3.8", "Programming Language :: Python :: 3.9", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", diff --git a/libs/labelbox/src/labelbox/annotated_types.py b/libs/labelbox/src/labelbox/annotated_types.py index d0fe93ef8..de2e1e01f 100644 --- a/libs/labelbox/src/labelbox/annotated_types.py +++ b/libs/labelbox/src/labelbox/annotated_types.py @@ -1,6 +1,5 @@ -from typing_extensions import Annotated +from typing import Annotated from pydantic import Field - Cuid = Annotated[str, Field(min_length=25, max_length=25)] diff --git a/libs/labelbox/src/labelbox/data/annotation_types/data/raster.py b/libs/labelbox/src/labelbox/data/annotation_types/data/raster.py index fc9acd50f..8702b8aeb 100644 --- a/libs/labelbox/src/labelbox/data/annotation_types/data/raster.py +++ b/libs/labelbox/src/labelbox/data/annotation_types/data/raster.py @@ -1,6 +1,6 @@ from abc import ABC from io import BytesIO -from typing import Callable, Optional, Union +from typing import Callable, Literal, Optional, Union import numpy as np import requests @@ -9,9 +9,6 @@ from PIL import Image from pydantic import BaseModel, ConfigDict, model_validator from requests.exceptions import ConnectTimeout -from typing_extensions import Literal - -from pydantic import BaseModel, model_validator, ConfigDict from ..types import TypedArray diff --git a/libs/labelbox/src/labelbox/data/annotation_types/geometry/mask.py b/libs/labelbox/src/labelbox/data/annotation_types/geometry/mask.py index 0d870f24f..03e1dd62c 100644 --- a/libs/labelbox/src/labelbox/data/annotation_types/geometry/mask.py +++ b/libs/labelbox/src/labelbox/data/annotation_types/geometry/mask.py @@ -1,15 +1,13 @@ -from typing import Callable, Optional, Tuple, Union, Dict, List +from typing import Callable, Dict, List, Optional, Tuple, Union -import numpy as np import cv2 - +import numpy as np +from pydantic import field_validator from shapely.geometry import MultiPolygon, Polygon from ..data import MaskData from .geometry import Geometry -from pydantic import field_validator - class Mask(Geometry): """Mask used to represent a single class in a larger segmentation mask @@ -91,7 +89,7 @@ def draw( as opposed to the mask that this object references which might have multiple objects determined by colors """ mask = self.mask.value - mask = np.alltrue(mask == self.color, axis=2).astype(np.uint8) + mask = np.all(mask == self.color, axis=2).astype(np.uint8) if height is not None or width is not None: mask = cv2.resize( diff --git a/libs/labelbox/src/labelbox/data/annotation_types/metrics/scalar.py b/libs/labelbox/src/labelbox/data/annotation_types/metrics/scalar.py index 13d0e9748..1434be427 100644 --- a/libs/labelbox/src/labelbox/data/annotation_types/metrics/scalar.py +++ b/libs/labelbox/src/labelbox/data/annotation_types/metrics/scalar.py @@ -1,11 +1,10 @@ -from typing import Dict, Optional, Union -from typing_extensions import Annotated from enum import Enum +from typing import Annotated, Dict, Optional, Union from pydantic import field_validator from pydantic.types import confloat -from .base import ConfidenceValue, BaseMetric +from .base import BaseMetric, ConfidenceValue ScalarMetricValue = Annotated[float, confloat(ge=0, le=100_000_000)] ScalarMetricConfidenceValue = Dict[ConfidenceValue, ScalarMetricValue] diff --git a/libs/labelbox/src/labelbox/data/annotation_types/types.py b/libs/labelbox/src/labelbox/data/annotation_types/types.py index adcadf306..f9b6ba492 100644 --- a/libs/labelbox/src/labelbox/data/annotation_types/types.py +++ b/libs/labelbox/src/labelbox/data/annotation_types/types.py @@ -1,11 +1,9 @@ import sys -from typing import Generic, TypeVar, Any +from typing import Annotated, Any, Generic, TypeVar -from typing_extensions import Annotated -from packaging import version import numpy as np - -from pydantic import StringConstraints, Field, ConfigDict +from packaging import version +from pydantic import ConfigDict, Field, StringConstraints from pydantic_core import core_schema DType = TypeVar("DType") diff --git a/libs/labelbox/src/labelbox/data/metrics/group.py b/libs/labelbox/src/labelbox/data/metrics/group.py index 88f4eae8b..9c4104c29 100644 --- a/libs/labelbox/src/labelbox/data/metrics/group.py +++ b/libs/labelbox/src/labelbox/data/metrics/group.py @@ -16,10 +16,10 @@ try: from typing import Literal except ImportError: - from typing_extensions import Literal + from typing import Literal +from ..annotation_types import ClassificationAnnotation, Label, ObjectAnnotation from ..annotation_types.feature import FeatureSchema -from ..annotation_types import ObjectAnnotation, ClassificationAnnotation, Label def get_identifying_key( diff --git a/libs/labelbox/src/labelbox/project_validation.py b/libs/labelbox/src/labelbox/project_validation.py index 0380e94f0..8940dd161 100644 --- a/libs/labelbox/src/labelbox/project_validation.py +++ b/libs/labelbox/src/labelbox/project_validation.py @@ -1,7 +1,6 @@ -from typing import Optional, Set +from typing import Annotated, Optional, Set from pydantic import BaseModel, ConfigDict, Field, model_validator -from typing_extensions import Annotated from labelbox.schema.media_type import MediaType from labelbox.schema.ontology_kind import EditorTaskType diff --git a/libs/labelbox/src/labelbox/schema/data_row_metadata.py b/libs/labelbox/src/labelbox/schema/data_row_metadata.py index 4f11170fd..2fd90e2f9 100644 --- a/libs/labelbox/src/labelbox/schema/data_row_metadata.py +++ b/libs/labelbox/src/labelbox/schema/data_row_metadata.py @@ -1,35 +1,35 @@ # type: ignore -from datetime import datetime +import warnings from copy import deepcopy +from datetime import datetime from enum import Enum from itertools import chain -import warnings - from typing import ( + Annotated, + Any, + Callable, + Dict, + Generator, List, Optional, - Dict, - Union, - Callable, Type, - Any, - Generator, + Union, overload, ) -from typing_extensions import Annotated -from labelbox.schema.identifiables import DataRowIdentifiers, UniqueIds -from labelbox.schema.identifiable import UniqueId, GlobalKey from pydantic import ( BaseModel, + BeforeValidator, + ConfigDict, Field, StringConstraints, conlist, - ConfigDict, model_serializer, - BeforeValidator, ) +from typing_extensions import Annotated +from labelbox.schema.identifiable import GlobalKey, UniqueId +from labelbox.schema.identifiables import DataRowIdentifiers, UniqueIds from labelbox.schema.ontology import SchemaId from labelbox.utils import ( _CamelCaseMixin, @@ -424,7 +424,7 @@ def update_enum_option( schema = self._validate_custom_schema_by_name(name) if schema.kind != DataRowMetadataKind.enum: raise ValueError( - f"Updating Enum option is only supported for Enum metadata schema" + "Updating Enum option is only supported for Enum metadata schema" ) valid_options: List[str] = [o.name for o in schema.options] @@ -758,10 +758,6 @@ def bulk_export(self, data_row_ids) -> List[DataRowMetadata]: and isinstance(data_row_ids[0], str) ): data_row_ids = UniqueIds(data_row_ids) - warnings.warn( - "Using data row ids will be deprecated. Please use " - "UniqueIds or GlobalKeys instead." - ) def _bulk_export( _data_row_ids: DataRowIdentifiers, diff --git a/libs/labelbox/src/labelbox/schema/export_filters.py b/libs/labelbox/src/labelbox/schema/export_filters.py index 641adc011..b0d0284c4 100644 --- a/libs/labelbox/src/labelbox/schema/export_filters.py +++ b/libs/labelbox/src/labelbox/schema/export_filters.py @@ -1,13 +1,5 @@ -import sys - from datetime import datetime, timezone -from typing import Collection, Dict, Tuple, List, Optional -from labelbox.typing_imports import Literal - -if sys.version_info >= (3, 8): - from typing import TypedDict -else: - from typing_extensions import TypedDict +from typing import Collection, Dict, List, Literal, Optional, Tuple, TypedDict SEARCH_LIMIT_PER_EXPORT_V2 = 2_000 ISO_8061_FORMAT = "%Y-%m-%dT%H:%M:%S%z" diff --git a/libs/labelbox/src/labelbox/schema/export_params.py b/libs/labelbox/src/labelbox/schema/export_params.py index d5024bd30..f921cdd31 100644 --- a/libs/labelbox/src/labelbox/schema/export_params.py +++ b/libs/labelbox/src/labelbox/schema/export_params.py @@ -1,14 +1,7 @@ -import sys - -from typing import Optional, List +from typing import List, Optional, TypedDict from labelbox.schema.media_type import MediaType -if sys.version_info >= (3, 8): - from typing import TypedDict -else: - from typing_extensions import TypedDict - EXPORT_LIMIT = 30 diff --git a/libs/labelbox/src/labelbox/schema/ontology.py b/libs/labelbox/src/labelbox/schema/ontology.py index 48fc19f32..a3b388ef2 100644 --- a/libs/labelbox/src/labelbox/schema/ontology.py +++ b/libs/labelbox/src/labelbox/schema/ontology.py @@ -5,11 +5,10 @@ import warnings from dataclasses import dataclass, field from enum import Enum -from typing import Any, Dict, List, Optional, Type, Union +from typing import Annotated, Any, Dict, List, Optional, Type, Union from lbox.exceptions import InconsistentOntologyException from pydantic import StringConstraints -from typing_extensions import Annotated from labelbox.orm.db_object import DbObject from labelbox.orm.model import Field, Relationship diff --git a/libs/labelbox/src/labelbox/schema/project.py b/libs/labelbox/src/labelbox/schema/project.py index bdbf9e665..3e2cca9d6 100644 --- a/libs/labelbox/src/labelbox/schema/project.py +++ b/libs/labelbox/src/labelbox/schema/project.py @@ -1339,10 +1339,6 @@ def update_data_row_labeling_priority( if isinstance(data_rows, list): data_rows = UniqueIds(data_rows) - warnings.warn( - "Using data row ids will be deprecated. Please use " - "UniqueIds or GlobalKeys instead." - ) method = "createQueuePriorityUpdateTask" priority_param = "priority" @@ -1513,10 +1509,6 @@ def move_data_rows_to_task_queue(self, data_row_ids, task_queue_id: str): """ if isinstance(data_row_ids, list): data_row_ids = UniqueIds(data_row_ids) - warnings.warn( - "Using data row ids will be deprecated. Please use " - "UniqueIds or GlobalKeys instead." - ) method = "createBulkAddRowsToQueueTask" query_str = ( diff --git a/libs/labelbox/src/labelbox/schema/project_overview.py b/libs/labelbox/src/labelbox/schema/project_overview.py index cee195c10..8be20fbda 100644 --- a/libs/labelbox/src/labelbox/schema/project_overview.py +++ b/libs/labelbox/src/labelbox/schema/project_overview.py @@ -1,6 +1,7 @@ from typing import Dict, List -from typing_extensions import TypedDict + from pydantic import BaseModel +from typing_extensions import TypedDict class ProjectOverview(BaseModel): diff --git a/libs/labelbox/src/labelbox/schema/search_filters.py b/libs/labelbox/src/labelbox/schema/search_filters.py index e61e29ad8..52330492d 100644 --- a/libs/labelbox/src/labelbox/schema/search_filters.py +++ b/libs/labelbox/src/labelbox/schema/search_filters.py @@ -1,11 +1,15 @@ import datetime from enum import Enum -from typing import List, Union -from pydantic import PlainSerializer, BaseModel, Field +from typing import Annotated, List, Union -from typing_extensions import Annotated +from pydantic import ( + BaseModel, + ConfigDict, + Field, + PlainSerializer, + field_validator, +) -from pydantic import BaseModel, Field, field_validator, ConfigDict from labelbox.schema.labeling_service_status import LabelingServiceStatus from labelbox.utils import format_iso_datetime diff --git a/libs/labelbox/src/labelbox/schema/send_to_annotate_params.py b/libs/labelbox/src/labelbox/schema/send_to_annotate_params.py index 18bd26637..fe09cf4c0 100644 --- a/libs/labelbox/src/labelbox/schema/send_to_annotate_params.py +++ b/libs/labelbox/src/labelbox/schema/send_to_annotate_params.py @@ -1,18 +1,11 @@ -import sys +from typing import Dict, Optional, TypedDict -from typing import Optional, Dict +from pydantic import BaseModel, model_validator from labelbox.schema.conflict_resolution_strategy import ( ConflictResolutionStrategy, ) -if sys.version_info >= (3, 8): - from typing import TypedDict -else: - from typing_extensions import TypedDict - -from pydantic import BaseModel, model_validator - class SendToAnnotateFromCatalogParams(BaseModel): """ diff --git a/libs/labelbox/src/labelbox/typing_imports.py b/libs/labelbox/src/labelbox/typing_imports.py deleted file mode 100644 index 6edfb9bef..000000000 --- a/libs/labelbox/src/labelbox/typing_imports.py +++ /dev/null @@ -1,11 +0,0 @@ -""" -This module imports types that differ across python versions, so other modules -don't have to worry about where they should be imported from. -""" - -import sys - -if sys.version_info >= (3, 8): - from typing import Literal -else: - from typing_extensions import Literal diff --git a/libs/labelbox/tests/conftest.py b/libs/labelbox/tests/conftest.py index fd68488ec..484370e54 100644 --- a/libs/labelbox/tests/conftest.py +++ b/libs/labelbox/tests/conftest.py @@ -12,13 +12,13 @@ import pytest import requests +from lbox.exceptions import LabelboxError from labelbox import ( Classification, Client, DataRow, Dataset, - LabelingFrontend, MediaType, OntologyBuilder, Option, diff --git a/libs/labelbox/tests/data/test_data_row_metadata.py b/libs/labelbox/tests/data/test_data_row_metadata.py index b32077f0b..edfe9b406 100644 --- a/libs/labelbox/tests/data/test_data_row_metadata.py +++ b/libs/labelbox/tests/data/test_data_row_metadata.py @@ -1,5 +1,5 @@ import uuid -from datetime import datetime +from datetime import datetime, timezone import pytest from lbox.exceptions import MalformedQueryException @@ -61,7 +61,7 @@ def big_dataset(dataset: Dataset, image_url): def make_metadata(dr_id: str = None, gk: str = None) -> DataRowMetadata: msg = "A message" - time = datetime.utcnow() + time = datetime.now(timezone.utc) metadata = DataRowMetadata( global_key=gk, @@ -124,7 +124,7 @@ def test_get_datarow_metadata_ontology(mdo): fields=[ DataRowMetadataField( schema_id=mdo.reserved_by_name["captureDateTime"].uid, - value=datetime.utcnow(), + value=datetime.now(timezone.utc), ), DataRowMetadataField(schema_id=split.parent, value=split.uid), DataRowMetadataField( diff --git a/libs/lbox-clients/.python-version b/libs/lbox-clients/.python-version new file mode 100644 index 000000000..43077b246 --- /dev/null +++ b/libs/lbox-clients/.python-version @@ -0,0 +1 @@ +3.9.18 diff --git a/libs/lbox-clients/Dockerfile b/libs/lbox-clients/Dockerfile index 2ee61ab7e..dd3b5147d 100644 --- a/libs/lbox-clients/Dockerfile +++ b/libs/lbox-clients/Dockerfile @@ -1,5 +1,5 @@ # https://github.com/ucyo/python-package-template/blob/master/Dockerfile -FROM python:3.8-slim as rye +FROM python:3.9-slim as rye ENV LANG="C.UTF-8" \ LC_ALL="C.UTF-8" \ @@ -38,7 +38,7 @@ WORKDIR /home/python/labelbox-python RUN rye config --set-bool behavior.global-python=true && \ rye config --set-bool behavior.use-uv=true && \ - rye pin 3.8 && \ + rye pin 3.9 && \ rye sync CMD rye run unit && rye integration \ No newline at end of file diff --git a/libs/lbox-clients/pyproject.toml b/libs/lbox-clients/pyproject.toml index 91ee3ac79..744cf7ee5 100644 --- a/libs/lbox-clients/pyproject.toml +++ b/libs/lbox-clients/pyproject.toml @@ -10,7 +10,7 @@ dependencies = [ "google-api-core>=1.22.1", ] readme = "README.md" -requires-python = ">= 3.8" +requires-python = ">= 3.9" classifiers=[ # How mature is this project? @@ -25,7 +25,6 @@ classifiers=[ "License :: OSI Approved :: Apache Software License", # Specify the Python versions you support here. "Programming Language :: Python :: 3", - "Programming Language :: Python :: 3.8", "Programming Language :: Python :: 3.9", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", diff --git a/libs/lbox-example/Dockerfile b/libs/lbox-example/Dockerfile index 2ee61ab7e..dd3b5147d 100644 --- a/libs/lbox-example/Dockerfile +++ b/libs/lbox-example/Dockerfile @@ -1,5 +1,5 @@ # https://github.com/ucyo/python-package-template/blob/master/Dockerfile -FROM python:3.8-slim as rye +FROM python:3.9-slim as rye ENV LANG="C.UTF-8" \ LC_ALL="C.UTF-8" \ @@ -38,7 +38,7 @@ WORKDIR /home/python/labelbox-python RUN rye config --set-bool behavior.global-python=true && \ rye config --set-bool behavior.use-uv=true && \ - rye pin 3.8 && \ + rye pin 3.9 && \ rye sync CMD rye run unit && rye integration \ No newline at end of file diff --git a/libs/lbox-example/pyproject.toml b/libs/lbox-example/pyproject.toml index a14f5a34f..a3fe0a13e 100644 --- a/libs/lbox-example/pyproject.toml +++ b/libs/lbox-example/pyproject.toml @@ -9,7 +9,7 @@ dependencies = [ "art>=6.2", ] readme = "README.md" -requires-python = ">= 3.8" +requires-python = ">= 3.9" classifiers=[ # How mature is this project? @@ -24,7 +24,6 @@ classifiers=[ "License :: OSI Approved :: Apache Software License", # Specify the Python versions you support here. "Programming Language :: Python :: 3", - "Programming Language :: Python :: 3.8", "Programming Language :: Python :: 3.9", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", diff --git a/pyproject.toml b/pyproject.toml index 1a4f19e04..7ab0a0b79 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -9,7 +9,7 @@ dependencies = [ "sphinx-rtd-theme>=2.0.0", ] readme = "README.md" -requires-python = ">= 3.8" +requires-python = ">= 3.9" [tool.rye] managed = true diff --git a/requirements-dev.lock b/requirements-dev.lock index fcca5b15d..7616ff075 100644 --- a/requirements-dev.lock +++ b/requirements-dev.lock @@ -90,9 +90,6 @@ importlib-metadata==8.0.0 # via sphinx # via typeguard # via yapf -importlib-resources==6.4.0 - # via jsonschema - # via jsonschema-specifications iniconfig==2.0.0 # via pytest ipython==8.12.3 @@ -163,8 +160,6 @@ pickleshare==0.7.5 # via ipython pillow==10.4.0 # via labelbox -pkgutil-resolve-name==1.3.10 - # via jsonschema platformdirs==4.2.2 # via black # via jupyter-core @@ -224,7 +219,6 @@ python-dateutil==2.9.0.post0 # via labelbox # via pandas pytz==2024.1 - # via babel # via pandas pyzmq==26.0.3 # via jupyter-client @@ -319,7 +313,6 @@ types-python-dateutil==2.9.0.20240316 types-requests==2.32.0.20240622 types-tqdm==4.66.0.20240417 typing-extensions==4.12.2 - # via annotated-types # via black # via databooks # via ipython @@ -327,7 +320,6 @@ typing-extensions==4.12.2 # via mypy # via pydantic # via pydantic-core - # via rich # via typeguard # via typer tzdata==2024.1 @@ -343,4 +335,3 @@ webencodings==0.5.1 yapf==0.40.2 zipp==3.19.2 # via importlib-metadata - # via importlib-resources diff --git a/requirements.lock b/requirements.lock index 3f32f3286..36871f22b 100644 --- a/requirements.lock +++ b/requirements.lock @@ -87,8 +87,6 @@ pyproj==3.5.0 # via labelbox python-dateutil==2.9.0.post0 # via labelbox -pytz==2024.1 - # via babel requests==2.32.3 # via google-api-core # via labelbox @@ -130,7 +128,6 @@ tqdm==4.66.4 typeguard==4.3.0 # via labelbox typing-extensions==4.12.2 - # via annotated-types # via labelbox # via mypy # via pydantic