diff --git a/doi2dataset/api/processors.py b/doi2dataset/api/processors.py index 4e8491b..d94cd57 100644 --- a/doi2dataset/api/processors.py +++ b/doi2dataset/api/processors.py @@ -6,14 +6,12 @@ including license processing and abstract extraction/cleaning. """ import re -from typing import TYPE_CHECKING, Any +from typing import Any from rich.console import Console from ..core.models import Abstract, License - -if TYPE_CHECKING: - from .client import APIClient +from .client import APIClient class LicenseProcessor: @@ -71,7 +69,7 @@ class AbstractProcessor: # Icons for console output - TODO: should be moved to a constants module ICONS = {"info": "ℹ️", "warning": "⚠️", "error": "❌"} - def __init__(self, api_client: "APIClient", console: Console | None = None): + def __init__(self, api_client: APIClient, console: Console | None = None): """ Initialize with an APIClient instance. diff --git a/doi2dataset/core/metadata_fields.py b/doi2dataset/core/metadata_fields.py index 8c66d86..1a22ade 100644 --- a/doi2dataset/core/metadata_fields.py +++ b/doi2dataset/core/metadata_fields.py @@ -9,10 +9,7 @@ from collections.abc import Sequence from dataclasses import dataclass, field from enum import Enum from functools import reduce -from typing import TYPE_CHECKING, Any - -if TYPE_CHECKING: - pass +from typing import Any class FieldType(Enum): diff --git a/doi2dataset/core/models.py b/doi2dataset/core/models.py index f4dd95b..18af874 100644 --- a/doi2dataset/core/models.py +++ b/doi2dataset/core/models.py @@ -6,13 +6,11 @@ for representing people, institutions, licenses, and abstracts. """ from dataclasses import dataclass -from typing import TYPE_CHECKING -if TYPE_CHECKING: - from .metadata_fields import ( - ControlledVocabularyMetadataField, - PrimitiveMetadataField, - ) +from .metadata_fields import ( + ControlledVocabularyMetadataField, + PrimitiveMetadataField, +) @dataclass @@ -28,7 +26,7 @@ class Institution: display_name: str ror: str = "" - def affiliation_field(self) -> "PrimitiveMetadataField": + def affiliation_field(self) -> PrimitiveMetadataField: """ Create a metadata field for the affiliation. @@ -36,7 +34,6 @@ class Institution: PrimitiveMetadataField: A metadata field representing the institution, using ROR ID when available. """ - from .metadata_fields import PrimitiveMetadataField if self.ror: expanded_value = { @@ -111,7 +108,7 @@ class Person: def author_fields( self, - ) -> list["PrimitiveMetadataField | ControlledVocabularyMetadataField"]: + ) -> list[PrimitiveMetadataField | ControlledVocabularyMetadataField]: """ Build metadata fields for the author. @@ -122,10 +119,6 @@ class Person: list: List of metadata fields representing the author, including name, affiliation, and optionally ORCID identifier information. """ - from .metadata_fields import ( - ControlledVocabularyMetadataField, - PrimitiveMetadataField, - ) affiliation_field = None if isinstance(self.affiliation, Institution): @@ -150,7 +143,7 @@ class Person: affiliation_field, ] - def dataset_contact_fields(self) -> list["PrimitiveMetadataField"]: + def dataset_contact_fields(self) -> list[PrimitiveMetadataField]: """ Generate metadata fields for dataset contact. @@ -161,7 +154,6 @@ class Person: list: List of metadata fields for the dataset contact including name, affiliation, and email address. """ - from .metadata_fields import PrimitiveMetadataField affiliation_field = None if isinstance(self.affiliation, Institution):