Skip to content

Set up rye linter in place of formattor #1752

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
wants to merge 4 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 6 additions & 3 deletions .github/workflows/python-package-shared.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ on:
test-env:
required: true
type: string
fixture-profile:
fixture-profile:
required: true
type: boolean

Expand All @@ -30,9 +30,12 @@ jobs:
with:
rye-version: ${{ vars.RYE_VERSION }}
python-version: ${{ inputs.python-version }}
- name: MyPy Type Checking
working-directory: libs/labelbox
run: rye run mypy-lint
- name: Linting
working-directory: libs/labelbox
run: rye run lint
run: rye lint
integration:
runs-on: ubuntu-latest
concurrency:
Expand Down Expand Up @@ -75,4 +78,4 @@ jobs:
run: |
rye sync -f --features labelbox/data
rye run unit -n 32
rye run data -n 32
rye run data -n 32
41 changes: 0 additions & 41 deletions libs/labelbox/src/labelbox/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,44 +2,3 @@

__version__ = "3.75.1"

from labelbox.client import Client
from labelbox.schema.project import Project
from labelbox.schema.model import Model
from labelbox.schema.model_config import ModelConfig
from labelbox.schema.bulk_import_request import BulkImportRequest
from labelbox.schema.annotation_import import MALPredictionImport, MEAPredictionImport, LabelImport, MEAToMALPredictionImport
from labelbox.schema.dataset import Dataset
from labelbox.schema.data_row import DataRow
from labelbox.schema.catalog import Catalog
from labelbox.schema.enums import AnnotationImportState
from labelbox.schema.label import Label
from labelbox.schema.batch import Batch
from labelbox.schema.review import Review
from labelbox.schema.user import User
from labelbox.schema.organization import Organization
from labelbox.schema.task import Task
from labelbox.schema.export_task import StreamType, ExportTask, JsonConverter, JsonConverterOutput, FileConverter, FileConverterOutput, BufferedJsonConverterOutput
from labelbox.schema.labeling_frontend import LabelingFrontend, LabelingFrontendOptions
from labelbox.schema.asset_attachment import AssetAttachment
from labelbox.schema.webhook import Webhook
from labelbox.schema.ontology import Ontology, OntologyBuilder, Classification, Option, Tool, FeatureSchema
from labelbox.schema.ontology import PromptResponseClassification
from labelbox.schema.ontology import ResponseOption
from labelbox.schema.role import Role, ProjectRole
from labelbox.schema.invite import Invite, InviteLimit
from labelbox.schema.data_row_metadata import DataRowMetadataOntology, DataRowMetadataField, DataRowMetadata, DeleteDataRowMetadata
from labelbox.schema.model_run import ModelRun, DataSplit
from labelbox.schema.benchmark import Benchmark
from labelbox.schema.iam_integration import IAMIntegration
from labelbox.schema.resource_tag import ResourceTag
from labelbox.schema.project_model_config import ProjectModelConfig
from labelbox.schema.project_resource_tag import ProjectResourceTag
from labelbox.schema.media_type import MediaType
from labelbox.schema.slice import Slice, CatalogSlice, ModelSlice
from labelbox.schema.queue_mode import QueueMode
from labelbox.schema.task_queue import TaskQueue
from labelbox.schema.label_score import LabelScore
from labelbox.schema.identifiables import UniqueIds, GlobalKeys, DataRowIds
from labelbox.schema.identifiable import UniqueId, GlobalKey
from labelbox.schema.ontology_kind import OntologyKind
from labelbox.schema.project_overview import ProjectOverview, ProjectOverviewDetailed
13 changes: 6 additions & 7 deletions libs/labelbox/src/labelbox/client.py
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,6 @@
from labelbox.orm.model import Entity, Field
from labelbox.pagination import PaginatedCollection
from labelbox.schema import role
from labelbox.schema.conflict_resolution_strategy import ConflictResolutionStrategy
from labelbox.schema.data_row import DataRow
from labelbox.schema.catalog import Catalog
from labelbox.schema.data_row_metadata import DataRowMetadataOntology
Expand Down Expand Up @@ -259,7 +258,7 @@ def check_errors(keywords, *path):
def get_error_status_code(error: dict) -> int:
try:
return int(error["extensions"].get("exception").get("status"))
except:
except: # noqa: E722
return 500

if check_errors(["AUTHENTICATION_ERROR"], "extensions",
Expand Down Expand Up @@ -454,7 +453,7 @@ def upload_data(self,
errors = response.json().get("errors", [])
error_msg = next(iter(errors), {}).get("message",
"Unknown error")
except Exception as e:
except Exception:
error_msg = "Unknown error"
raise labelbox.exceptions.LabelboxError(
"Failed to upload, message: %s" % error_msg)
Expand Down Expand Up @@ -538,7 +537,7 @@ def _get_all(self, db_object_type, where, filter_deleted=True):
An iterable of `db_object_type` instances.
"""
if filter_deleted:
not_deleted = db_object_type.deleted == False
not_deleted = db_object_type.deleted is False
where = not_deleted if where is None else where & not_deleted
query_str, params = query.get_all(db_object_type, where)

Expand Down Expand Up @@ -742,7 +741,7 @@ def create_dataset(self,

if not validation_result['validateDataset']['valid']:
raise labelbox.exceptions.LabelboxError(
f"IAMIntegration was not successfully added to the dataset."
"IAMIntegration was not successfully added to the dataset."
)
except Exception as e:
dataset.delete()
Expand Down Expand Up @@ -2072,11 +2071,11 @@ def delete_feature_schema_from_ontology(

if response.status_code == requests.codes.ok:
response_json = response.json()
if response_json['archived'] == True:
if response_json['archived'] is True:
logger.info(
'Feature schema was archived from the ontology because it had associated labels.'
)
elif response_json['deleted'] == True:
elif response_json['deleted'] is True:
logger.info(
'Feature schema was successfully removed from the ontology')
result = DeleteFeatureFromOntologyResult()
Expand Down
56 changes: 0 additions & 56 deletions libs/labelbox/src/labelbox/data/annotation_types/__init__.py
Original file line number Diff line number Diff line change
@@ -1,66 +1,10 @@
from .geometry import Line
from .geometry import Point
from .geometry import Mask
from .geometry import Polygon
from .geometry import Rectangle
from .geometry import Geometry
from .geometry import DocumentRectangle
from .geometry import RectangleUnit

from .annotation import ClassificationAnnotation
from .annotation import ObjectAnnotation

from .relationship import RelationshipAnnotation
from .relationship import Relationship

from .video import VideoClassificationAnnotation
from .video import VideoObjectAnnotation
from .video import DICOMObjectAnnotation
from .video import GroupKey
from .video import MaskFrame
from .video import MaskInstance
from .video import VideoMaskAnnotation
from .video import DICOMMaskAnnotation

from .ner import ConversationEntity
from .ner import DocumentEntity
from .ner import DocumentTextSelection
from .ner import TextEntity

from .classification import Checklist
from .classification import ClassificationAnswer
from .classification import Dropdown
from .classification import Radio
from .classification import Text

from .data import AudioData
from .data import ConversationData
from .data import DicomData
from .data import DocumentData
from .data import HTMLData
from .data import ImageData
from .data import MaskData
from .data import TextData
from .data import VideoData
from .data import LlmPromptResponseCreationData
from .data import LlmPromptCreationData
from .data import LlmResponseCreationData

from .label import Label
from .collection import LabelGenerator

from .metrics import ScalarMetric
from .metrics import ScalarMetricAggregation
from .metrics import ConfusionMatrixMetric
from .metrics import ConfusionMatrixAggregation
from .metrics import ScalarMetricValue
from .metrics import ConfusionMatrixMetricValue

from .data.tiled_image import EPSG
from .data.tiled_image import EPSGTransformer
from .data.tiled_image import TiledBounds
from .data.tiled_image import TiledImageData
from .data.tiled_image import TileLayer

from .llm_prompt_response.prompt import PromptText
from .llm_prompt_response.prompt import PromptClassificationAnnotation
Original file line number Diff line number Diff line change
@@ -1,2 +0,0 @@
from .classification import (Checklist, ClassificationAnswer, Dropdown, Radio,
Text)
Original file line number Diff line number Diff line change
@@ -1,13 +1,9 @@
from typing import Any, Dict, List, Union, Optional
from typing import Any, Dict, List, Union, Optional, Literal
import warnings
from labelbox.data.annotation_types.base_annotation import BaseAnnotation

from labelbox.data.mixins import ConfidenceMixin, CustomMetricsMixin

try:
from typing import Literal
except:
from typing_extensions import Literal

from labelbox import pydantic_compat
from ..feature import FeatureSchema
Expand Down
Original file line number Diff line number Diff line change
@@ -1,14 +1,10 @@
import logging
from concurrent.futures import ThreadPoolExecutor, as_completed
from typing import Callable, Generator, Iterable, Union, Optional
from uuid import uuid4
from typing import Callable, Generator, Iterable, Union
import warnings

from tqdm import tqdm

from labelbox.schema import ontology
from labelbox.orm.model import Entity
from ..ontology import get_classifications, get_tools
from ..generator import PrefetchGenerator
from .label import Label

Expand Down
Original file line number Diff line number Diff line change
@@ -1,12 +0,0 @@
from .audio import AudioData
from .conversation import ConversationData
from .dicom import DicomData
from .document import DocumentData
from .html import HTMLData
from .raster import ImageData
from .raster import MaskData
from .text import TextData
from .video import VideoData
from .llm_prompt_response_creation import LlmPromptResponseCreationData
from .llm_prompt_creation import LlmPromptCreationData
from .llm_response_creation import LlmResponseCreationData
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
from labelbox.typing_imports import Literal
from labelbox.utils import _NoCoercionMixin
from .base_data import BaseData


Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -163,7 +163,7 @@ def validate_args(cls, values):
arr = values.get("arr")
uid = values.get('uid')
global_key = values.get('global_key')
if uid == file_path == im_bytes == url == global_key == None and arr is None:
if uid == file_path == im_bytes == url == global_key is None and arr is None:
raise ValueError(
"One of `file_path`, `im_bytes`, `url`, `uid`, `global_key` or `arr` required."
)
Expand All @@ -179,7 +179,9 @@ def validate_args(cls, values):
return values

def __repr__(self) -> str:
symbol_or_none = lambda data: '...' if data is not None else None
def symbol_or_none(data):
return '...' if data is not None else None

return f"{self.__class__.__name__}(im_bytes={symbol_or_none(self.im_bytes)}," \
f"file_path={self.file_path}," \
f"url={self.url}," \
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,7 @@ def fetch_remote(self) -> str:
"""
response = requests.get(self.url)
if response.status_code in [500, 502, 503, 504]:
raise labelbox.exceptions.InternalServerError(response.text)
raise InternalServerError(response.text)
response.raise_for_status()
return response.text

Expand Down Expand Up @@ -97,7 +97,7 @@ def validate_date(cls, values):
url = values.get("url")
uid = values.get('uid')
global_key = values.get('global_key')
if uid == file_path == text == url == global_key == None:
if uid == file_path == text == url == global_key is None:
raise ValueError(
"One of `file_path`, `text`, `uid`, `global_key` or `url` required."
)
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
from functools import lru_cache
import math
import logging
from enum import Enum
Expand Down Expand Up @@ -288,7 +287,7 @@ def _fetch_image_for_bounds(self,
row.append(tiles[(x, y)].result())
else:
row.append(self._fetch_tile(x, y, zoom))
except:
except: # noqa: E722
row.append(
np.zeros(shape=(self.tile_size, self.tile_size, 3),
dtype=np.uint8))
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -156,7 +156,7 @@ def validate_data(cls, values):
uid = values.get("uid")
global_key = values.get("global_key")

if uid == file_path == frames == url == global_key == None:
if uid == file_path == frames == url == global_key is None:
raise ValueError(
"One of `file_path`, `frames`, `uid`, `global_key` or `url` required."
)
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +0,0 @@
from .line import Line
from .point import Point
from .mask import Mask
from .polygon import Polygon
from .rectangle import Rectangle
from .rectangle import DocumentRectangle
from .rectangle import RectangleUnit
from .geometry import Geometry
Original file line number Diff line number Diff line change
Expand Up @@ -222,6 +222,6 @@ def validate_union(cls, value):
prompt_count+=1
if prompt_count > 1:
raise TypeError(
f"Only one prompt annotation is allowed per label"
"Only one prompt annotation is allowed per label"
)
return value
Original file line number Diff line number Diff line change
@@ -1,2 +0,0 @@
from .prompt import PromptText
from .prompt import PromptClassificationAnnotation
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
from typing import Union

from labelbox.data.annotation_types.base_annotation import BaseAnnotation

Expand Down
Original file line number Diff line number Diff line change
@@ -1,2 +0,0 @@
from .scalar import ScalarMetric, ScalarMetricAggregation, ScalarMetricValue
from .confusion_matrix import ConfusionMatrixMetric, ConfusionMatrixAggregation, ConfusionMatrixMetricValue
Original file line number Diff line number Diff line change
@@ -1,3 +0,0 @@
from .conversation_entity import ConversationEntity
from .document_entity import DocumentEntity, DocumentTextSelection
from .text_entity import TextEntity
3 changes: 1 addition & 2 deletions libs/labelbox/src/labelbox/data/annotation_types/video.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@
from labelbox import pydantic_compat
from labelbox.data.annotation_types.annotation import ClassificationAnnotation, ObjectAnnotation

from labelbox.data.annotation_types.annotation import ClassificationAnnotation, ObjectAnnotation
from labelbox.data.annotation_types.feature import FeatureSchema
from labelbox.data.mixins import ConfidenceNotSupportedMixin, CustomMetricsNotSupportedMixin
from labelbox.utils import _CamelCaseMixin, is_valid_uri
Expand Down Expand Up @@ -97,7 +96,7 @@ def validate_args(cls, values):
im_bytes = values.get("im_bytes")
instance_uri = values.get("instance_uri")

if im_bytes == instance_uri == None:
if im_bytes == instance_uri is None:
raise ValueError("One of `instance_uri`, `im_bytes` required.")
return values

Expand Down
1 change: 0 additions & 1 deletion libs/labelbox/src/labelbox/data/generator.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@
import threading
from queue import Queue
from typing import Any, Iterable
import threading

logger = logging.getLogger(__name__)

Expand Down
2 changes: 0 additions & 2 deletions libs/labelbox/src/labelbox/data/metrics/__init__.py
Original file line number Diff line number Diff line change
@@ -1,2 +0,0 @@
from .confusion_matrix import confusion_matrix_metric, feature_confusion_matrix_metric
from .iou import miou_metric, feature_miou_metric
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
from .calculation import *
from .confusion_matrix import *
from .calculation import * # noqa: F403
from .confusion_matrix import * # noqa: F403
Loading
Loading