"""wordnet-editor: A pure Python editing library for WordNets."""

from wordnet_editor.editor import WordnetEditor
from wordnet_editor.exceptions import (
    ConflictError,
    DatabaseError,
    DataImportError,
    DuplicateEntityError,
    EntityNotFoundError,
    ExportError,
    RelationError,
    ValidationError,
    WordnetEditorError,
)
from wordnet_editor.models import (
    AdjPosition,
    CountModel,
    DefinitionModel,
    EditOperation,
    EditRecord,
    EntryModel,
    ExampleModel,
    FormModel,
    ILIModel,
    LexiconModel,
    PartOfSpeech,
    PronunciationModel,
    ProposedILIModel,
    RelationModel,
    SenseModel,
    SenseRelationType,
    SenseSynsetRelationType,
    SynsetModel,
    SynsetRelationType,
    SyntacticBehaviourModel,
    TagModel,
    ValidationResult,
    ValidationSeverity,
)
from wordnet_editor.relations import (
    SENSE_RELATION_INVERSES,
    SYNSET_RELATION_INVERSES,
)

__all__ = [
    "WordnetEditor",
    # Models
    "LexiconModel",
    "SynsetModel",
    "EntryModel",
    "SenseModel",
    "FormModel",
    "PronunciationModel",
    "TagModel",
    "DefinitionModel",
    "ExampleModel",
    "RelationModel",
    "ILIModel",
    "ProposedILIModel",
    "CountModel",
    "SyntacticBehaviourModel",
    "EditRecord",
    "ValidationResult",
    # Enums
    "PartOfSpeech",
    "AdjPosition",
    "SynsetRelationType",
    "SenseRelationType",
    "SenseSynsetRelationType",
    "EditOperation",
    "ValidationSeverity",
    # Exceptions
    "WordnetEditorError",
    "ValidationError",
    "EntityNotFoundError",
    "DuplicateEntityError",
    "RelationError",
    "ConflictError",
    "DataImportError",
    "ExportError",
    "DatabaseError",
    # Constants
    "SYNSET_RELATION_INVERSES",
    "SENSE_RELATION_INVERSES",
]
