mirror of
https://github.com/Unstructured-IO/unstructured.git
synced 2025-12-04 19:16:03 +00:00
Add CliMix class to wrap both BaseConfig and CliMixin (#1957)
### Description
Add new class to wrap base config and cli mixin to help with typing:
```python
class CliConfig(BaseConfig, CliMixin):
pass
```
This commit is contained in:
parent
901704b6c0
commit
b58d0dde3e
@ -1,4 +1,4 @@
|
||||
## 0.10.29-dev9
|
||||
## 0.10.29-dev10
|
||||
|
||||
### Enhancements
|
||||
|
||||
|
||||
@ -1 +1 @@
|
||||
__version__ = "0.10.29-dev9" # pragma: no cover
|
||||
__version__ = "0.10.29-dev10" # pragma: no cover
|
||||
|
||||
@ -2,7 +2,7 @@ import typing as t
|
||||
from abc import ABC
|
||||
from dataclasses import dataclass, field
|
||||
|
||||
from unstructured.ingest.cli.interfaces import CliMixin
|
||||
from unstructured.ingest.cli.interfaces import CliConfig
|
||||
from unstructured.ingest.interfaces import BaseConfig
|
||||
|
||||
|
||||
@ -10,7 +10,7 @@ from unstructured.ingest.interfaces import BaseConfig
|
||||
class BaseCmd(ABC):
|
||||
cmd_name: str
|
||||
cli_config: t.Optional[t.Type[BaseConfig]] = None
|
||||
additional_cli_options: t.List[t.Type[CliMixin]] = field(default_factory=list)
|
||||
additional_cli_options: t.List[t.Type[CliConfig]] = field(default_factory=list)
|
||||
addition_configs: t.Dict[str, t.Type[BaseConfig]] = field(default_factory=dict)
|
||||
is_fsspec: bool = False
|
||||
|
||||
|
||||
@ -5,13 +5,12 @@ import click
|
||||
|
||||
from unstructured.ingest.cli.base.src import BaseSrcCmd
|
||||
from unstructured.ingest.cli.interfaces import (
|
||||
CliMixin,
|
||||
CliConfig,
|
||||
)
|
||||
from unstructured.ingest.interfaces import BaseConfig
|
||||
|
||||
|
||||
@dataclass
|
||||
class AirtableCliConfig(BaseConfig, CliMixin):
|
||||
class AirtableCliConfig(CliConfig):
|
||||
personal_access_token: t.Optional[str] = None
|
||||
|
||||
@staticmethod
|
||||
|
||||
@ -5,15 +5,14 @@ import click
|
||||
|
||||
from unstructured.ingest.cli.base.src import BaseSrcCmd
|
||||
from unstructured.ingest.cli.interfaces import (
|
||||
CliMixin,
|
||||
CliConfig,
|
||||
)
|
||||
from unstructured.ingest.interfaces import BaseConfig
|
||||
|
||||
CMD_NAME = "azure"
|
||||
|
||||
|
||||
@dataclass
|
||||
class AzureCliConfig(BaseConfig, CliMixin):
|
||||
class AzureCliConfig(CliConfig):
|
||||
account_id: t.Optional[str] = None
|
||||
account_name: t.Optional[str] = None
|
||||
connection_string: t.Optional[str] = None
|
||||
|
||||
@ -4,13 +4,12 @@ from dataclasses import dataclass
|
||||
import click
|
||||
|
||||
from unstructured.ingest.cli.interfaces import (
|
||||
CliMixin,
|
||||
CliConfig,
|
||||
)
|
||||
from unstructured.ingest.interfaces import BaseConfig
|
||||
|
||||
|
||||
@dataclass
|
||||
class AzureCognitiveSearchCliWriteConfig(BaseConfig, CliMixin):
|
||||
class AzureCognitiveSearchCliWriteConfig(CliConfig):
|
||||
key: str
|
||||
endpoint: str
|
||||
index: str
|
||||
|
||||
@ -5,13 +5,12 @@ import click
|
||||
|
||||
from unstructured.ingest.cli.base.src import BaseSrcCmd
|
||||
from unstructured.ingest.cli.interfaces import (
|
||||
CliMixin,
|
||||
CliConfig,
|
||||
)
|
||||
from unstructured.ingest.interfaces import BaseConfig
|
||||
|
||||
|
||||
@dataclass
|
||||
class BiomedCliConfig(BaseConfig, CliMixin):
|
||||
class BiomedCliConfig(CliConfig):
|
||||
api_id: t.Optional[str] = None
|
||||
api_from: t.Optional[str] = None
|
||||
api_until: t.Optional[str] = None
|
||||
|
||||
@ -5,15 +5,14 @@ import click
|
||||
|
||||
from unstructured.ingest.cli.base.src import BaseSrcCmd
|
||||
from unstructured.ingest.cli.interfaces import (
|
||||
CliMixin,
|
||||
CliConfig,
|
||||
)
|
||||
from unstructured.ingest.interfaces import BaseConfig
|
||||
|
||||
CMD_NAME = "box"
|
||||
|
||||
|
||||
@dataclass
|
||||
class BoxCliConfig(BaseConfig, CliMixin):
|
||||
class BoxCliConfig(CliConfig):
|
||||
box_app_config: t.Optional[str] = None
|
||||
|
||||
@staticmethod
|
||||
|
||||
@ -5,14 +5,13 @@ import click
|
||||
|
||||
from unstructured.ingest.cli.base.src import BaseSrcCmd
|
||||
from unstructured.ingest.cli.interfaces import (
|
||||
CliMixin,
|
||||
CliConfig,
|
||||
DelimitedString,
|
||||
)
|
||||
from unstructured.ingest.interfaces import BaseConfig
|
||||
|
||||
|
||||
@dataclass
|
||||
class ConfluenceCliConfig(BaseConfig, CliMixin):
|
||||
class ConfluenceCliConfig(CliConfig):
|
||||
api_token: str
|
||||
url: str
|
||||
user_email: str
|
||||
|
||||
@ -5,15 +5,14 @@ import click
|
||||
|
||||
from unstructured.ingest.cli.base.src import BaseSrcCmd
|
||||
from unstructured.ingest.cli.interfaces import (
|
||||
CliMixin,
|
||||
CliConfig,
|
||||
)
|
||||
from unstructured.ingest.interfaces import BaseConfig
|
||||
|
||||
CMD_NAME = "delta-table"
|
||||
|
||||
|
||||
@dataclass
|
||||
class DeltaTableCliConfig(BaseConfig, CliMixin):
|
||||
class DeltaTableCliConfig(CliConfig):
|
||||
table_uri: str
|
||||
version: t.Optional[int] = None
|
||||
storage_options: t.Optional[str] = None
|
||||
@ -51,7 +50,7 @@ class DeltaTableCliConfig(BaseConfig, CliMixin):
|
||||
|
||||
|
||||
@dataclass
|
||||
class DeltaTableCliWriteConfig(BaseConfig, CliMixin):
|
||||
class DeltaTableCliWriteConfig(CliConfig):
|
||||
write_column: str
|
||||
mode: t.Literal["error", "append", "overwrite", "ignore"] = "error"
|
||||
|
||||
|
||||
@ -5,14 +5,13 @@ import click
|
||||
|
||||
from unstructured.ingest.cli.base.src import BaseSrcCmd
|
||||
from unstructured.ingest.cli.interfaces import (
|
||||
CliMixin,
|
||||
CliConfig,
|
||||
DelimitedString,
|
||||
)
|
||||
from unstructured.ingest.interfaces import BaseConfig
|
||||
|
||||
|
||||
@dataclass
|
||||
class DiscordCliConfig(BaseConfig, CliMixin):
|
||||
class DiscordCliConfig(CliConfig):
|
||||
channels: t.List[str]
|
||||
token: str
|
||||
period: t.Optional[int] = None
|
||||
|
||||
@ -5,15 +5,14 @@ import click
|
||||
|
||||
from unstructured.ingest.cli.base.src import BaseSrcCmd
|
||||
from unstructured.ingest.cli.interfaces import (
|
||||
CliMixin,
|
||||
CliConfig,
|
||||
)
|
||||
from unstructured.ingest.interfaces import BaseConfig
|
||||
|
||||
CMD_NAME = "dropbox"
|
||||
|
||||
|
||||
@dataclass
|
||||
class DropboxCliConfig(BaseConfig, CliMixin):
|
||||
class DropboxCliConfig(CliConfig):
|
||||
token: str
|
||||
|
||||
@staticmethod
|
||||
|
||||
@ -5,13 +5,12 @@ import click
|
||||
|
||||
from unstructured.ingest.cli.base.src import BaseSrcCmd
|
||||
from unstructured.ingest.cli.interfaces import (
|
||||
CliMixin,
|
||||
CliConfig,
|
||||
)
|
||||
from unstructured.ingest.interfaces import BaseConfig
|
||||
|
||||
|
||||
@dataclass
|
||||
class ElasticsearchCliConfig(BaseConfig, CliMixin):
|
||||
class ElasticsearchCliConfig(CliConfig):
|
||||
index_name: str
|
||||
url: str
|
||||
jq_query: t.Optional[str] = None
|
||||
|
||||
@ -4,14 +4,16 @@ from dataclasses import dataclass
|
||||
import click
|
||||
|
||||
from unstructured.ingest.cli.base.src import BaseSrcCmd
|
||||
from unstructured.ingest.cli.interfaces import CliMixin, FileOrJson
|
||||
from unstructured.ingest.interfaces import BaseConfig
|
||||
from unstructured.ingest.cli.interfaces import (
|
||||
CliConfig,
|
||||
FileOrJson,
|
||||
)
|
||||
|
||||
CMD_NAME = "gcs"
|
||||
|
||||
|
||||
@dataclass
|
||||
class GcsCliConfig(BaseConfig, CliMixin):
|
||||
class GcsCliConfig(CliConfig):
|
||||
service_account_key: t.Optional[t.Union[dict, str]] = None
|
||||
|
||||
@staticmethod
|
||||
|
||||
@ -5,13 +5,12 @@ import click
|
||||
|
||||
from unstructured.ingest.cli.base.src import BaseSrcCmd
|
||||
from unstructured.ingest.cli.interfaces import (
|
||||
CliMixin,
|
||||
CliConfig,
|
||||
)
|
||||
from unstructured.ingest.interfaces import BaseConfig
|
||||
|
||||
|
||||
@dataclass
|
||||
class GithubCliConfig(BaseConfig, CliMixin):
|
||||
class GithubCliConfig(CliConfig):
|
||||
url: str
|
||||
git_access_token: t.Optional[str] = None
|
||||
git_branch: t.Optional[str] = None
|
||||
|
||||
@ -5,13 +5,12 @@ import click
|
||||
|
||||
from unstructured.ingest.cli.base.src import BaseSrcCmd
|
||||
from unstructured.ingest.cli.interfaces import (
|
||||
CliMixin,
|
||||
CliConfig,
|
||||
)
|
||||
from unstructured.ingest.interfaces import BaseConfig
|
||||
|
||||
|
||||
@dataclass
|
||||
class GitlabCliConfig(BaseConfig, CliMixin):
|
||||
class GitlabCliConfig(CliConfig):
|
||||
url: str
|
||||
git_access_token: t.Optional[str] = None
|
||||
git_branch: t.Optional[str] = None
|
||||
|
||||
@ -4,12 +4,15 @@ from dataclasses import dataclass
|
||||
import click
|
||||
|
||||
from unstructured.ingest.cli.base.src import BaseSrcCmd
|
||||
from unstructured.ingest.cli.interfaces import CliMixin, CliRecursiveConfig, FileOrJson
|
||||
from unstructured.ingest.interfaces import BaseConfig
|
||||
from unstructured.ingest.cli.interfaces import (
|
||||
CliConfig,
|
||||
CliRecursiveConfig,
|
||||
FileOrJson,
|
||||
)
|
||||
|
||||
|
||||
@dataclass
|
||||
class GoogleDriveCliConfig(BaseConfig, CliMixin):
|
||||
class GoogleDriveCliConfig(CliConfig):
|
||||
drive_id: str
|
||||
service_account_key: t.Union[dict, str]
|
||||
extension: t.Optional[str] = None
|
||||
|
||||
@ -5,14 +5,13 @@ import click
|
||||
|
||||
from unstructured.ingest.cli.base.src import BaseSrcCmd
|
||||
from unstructured.ingest.cli.interfaces import (
|
||||
CliMixin,
|
||||
CliConfig,
|
||||
DelimitedString,
|
||||
)
|
||||
from unstructured.ingest.interfaces import BaseConfig
|
||||
|
||||
|
||||
@dataclass
|
||||
class JiraCliConfig(BaseConfig, CliMixin):
|
||||
class JiraCliConfig(CliConfig):
|
||||
api_token: str
|
||||
url: str
|
||||
user_email: str
|
||||
|
||||
@ -5,14 +5,13 @@ import click
|
||||
|
||||
from unstructured.ingest.cli.base.src import BaseSrcCmd
|
||||
from unstructured.ingest.cli.interfaces import (
|
||||
CliMixin,
|
||||
CliConfig,
|
||||
CliRecursiveConfig,
|
||||
)
|
||||
from unstructured.ingest.interfaces import BaseConfig
|
||||
|
||||
|
||||
@dataclass
|
||||
class LocalCliConfig(BaseConfig, CliMixin):
|
||||
class LocalCliConfig(CliConfig):
|
||||
input_path: str
|
||||
file_glob: t.Optional[str] = None
|
||||
|
||||
|
||||
@ -5,15 +5,14 @@ import click
|
||||
|
||||
from unstructured.ingest.cli.base.src import BaseSrcCmd
|
||||
from unstructured.ingest.cli.interfaces import (
|
||||
CliMixin,
|
||||
CliConfig,
|
||||
CliRecursiveConfig,
|
||||
DelimitedString,
|
||||
)
|
||||
from unstructured.ingest.interfaces import BaseConfig
|
||||
|
||||
|
||||
@dataclass
|
||||
class NotionCliConfig(BaseConfig, CliMixin):
|
||||
class NotionCliConfig(CliConfig):
|
||||
notion_api_key: str
|
||||
page_ids: t.Optional[t.List[str]]
|
||||
database_ids: t.Optional[t.List[str]]
|
||||
|
||||
@ -5,14 +5,13 @@ import click
|
||||
|
||||
from unstructured.ingest.cli.base.src import BaseSrcCmd
|
||||
from unstructured.ingest.cli.interfaces import (
|
||||
CliMixin,
|
||||
CliConfig,
|
||||
CliRecursiveConfig,
|
||||
)
|
||||
from unstructured.ingest.interfaces import BaseConfig
|
||||
|
||||
|
||||
@dataclass
|
||||
class OnedriveCliConfig(BaseConfig, CliMixin):
|
||||
class OnedriveCliConfig(CliConfig):
|
||||
client_id: str
|
||||
client_cred: str
|
||||
user_pname: str
|
||||
|
||||
@ -5,15 +5,14 @@ import click
|
||||
|
||||
from unstructured.ingest.cli.base.src import BaseSrcCmd
|
||||
from unstructured.ingest.cli.interfaces import (
|
||||
CliMixin,
|
||||
CliConfig,
|
||||
CliRecursiveConfig,
|
||||
DelimitedString,
|
||||
)
|
||||
from unstructured.ingest.interfaces import BaseConfig
|
||||
|
||||
|
||||
@dataclass
|
||||
class OutlookCliConfig(BaseConfig, CliMixin):
|
||||
class OutlookCliConfig(CliConfig):
|
||||
client_id: str
|
||||
user_email: str
|
||||
tenant: t.Optional[str] = "common"
|
||||
|
||||
@ -5,13 +5,12 @@ import click
|
||||
|
||||
from unstructured.ingest.cli.base.src import BaseSrcCmd
|
||||
from unstructured.ingest.cli.interfaces import (
|
||||
CliMixin,
|
||||
CliConfig,
|
||||
)
|
||||
from unstructured.ingest.interfaces import BaseConfig
|
||||
|
||||
|
||||
@dataclass
|
||||
class RedditCliConfig(BaseConfig, CliMixin):
|
||||
class RedditCliConfig(CliConfig):
|
||||
client_id: str
|
||||
client_secret: str
|
||||
subreddit_name: str
|
||||
|
||||
@ -5,15 +5,14 @@ import click
|
||||
|
||||
from unstructured.ingest.cli.base.src import BaseSrcCmd
|
||||
from unstructured.ingest.cli.interfaces import (
|
||||
CliMixin,
|
||||
CliConfig,
|
||||
)
|
||||
from unstructured.ingest.interfaces import BaseConfig
|
||||
|
||||
CMD_NAME = "s3"
|
||||
|
||||
|
||||
@dataclass
|
||||
class S3CliConfig(BaseConfig, CliMixin):
|
||||
class S3CliConfig(CliConfig):
|
||||
anonymous: bool = False
|
||||
endpoint_url: t.Optional[str] = None
|
||||
|
||||
|
||||
@ -5,15 +5,14 @@ import click
|
||||
|
||||
from unstructured.ingest.cli.base.src import BaseSrcCmd
|
||||
from unstructured.ingest.cli.interfaces import (
|
||||
CliMixin,
|
||||
CliConfig,
|
||||
CliRecursiveConfig,
|
||||
DelimitedString,
|
||||
)
|
||||
from unstructured.ingest.interfaces import BaseConfig
|
||||
|
||||
|
||||
@dataclass
|
||||
class SalesforceCliConfig(BaseConfig, CliMixin):
|
||||
class SalesforceCliConfig(CliConfig):
|
||||
username: str
|
||||
consumer_key: str
|
||||
private_key_path: str
|
||||
|
||||
@ -5,14 +5,13 @@ import click
|
||||
|
||||
from unstructured.ingest.cli.base.src import BaseSrcCmd
|
||||
from unstructured.ingest.cli.interfaces import (
|
||||
CliMixin,
|
||||
CliConfig,
|
||||
CliRecursiveConfig,
|
||||
)
|
||||
from unstructured.ingest.interfaces import BaseConfig
|
||||
|
||||
|
||||
@dataclass
|
||||
class SharepointCliConfig(BaseConfig, CliMixin):
|
||||
class SharepointCliConfig(CliConfig):
|
||||
client_id: t.Optional[str] = None
|
||||
client_cred: t.Optional[str] = None
|
||||
site: t.Optional[str] = None
|
||||
|
||||
@ -5,14 +5,13 @@ import click
|
||||
|
||||
from unstructured.ingest.cli.base.src import BaseSrcCmd
|
||||
from unstructured.ingest.cli.interfaces import (
|
||||
CliMixin,
|
||||
CliConfig,
|
||||
DelimitedString,
|
||||
)
|
||||
from unstructured.ingest.interfaces import BaseConfig
|
||||
|
||||
|
||||
@dataclass
|
||||
class SlackCliConfig(BaseConfig, CliMixin):
|
||||
class SlackCliConfig(CliConfig):
|
||||
token: str
|
||||
channels: t.List[str]
|
||||
start_date: t.Optional[str] = None
|
||||
|
||||
@ -5,13 +5,12 @@ import click
|
||||
|
||||
from unstructured.ingest.cli.base.src import BaseSrcCmd
|
||||
from unstructured.ingest.cli.interfaces import (
|
||||
CliMixin,
|
||||
CliConfig,
|
||||
)
|
||||
from unstructured.ingest.interfaces import BaseConfig
|
||||
|
||||
|
||||
@dataclass
|
||||
class WikipediaCliConfig(BaseConfig, CliMixin):
|
||||
class WikipediaCliConfig(CliConfig):
|
||||
page_title: str
|
||||
auto_suggest: bool = True
|
||||
|
||||
|
||||
@ -108,6 +108,10 @@ class CliMixin:
|
||||
cmd.params.append(param)
|
||||
|
||||
|
||||
class CliConfig(BaseConfig, CliMixin):
|
||||
pass
|
||||
|
||||
|
||||
class CliRetryStrategyConfig(RetryStrategyConfig, CliMixin):
|
||||
@staticmethod
|
||||
def get_cli_options() -> t.List[click.Option]:
|
||||
@ -319,7 +323,7 @@ class CliPartitionConfig(PartitionConfig, CliMixin):
|
||||
return options
|
||||
|
||||
|
||||
class CliRecursiveConfig(BaseConfig, CliMixin):
|
||||
class CliRecursiveConfig(CliConfig):
|
||||
recursive: bool
|
||||
|
||||
@staticmethod
|
||||
|
||||
@ -5,8 +5,8 @@ import click
|
||||
|
||||
from unstructured.ingest.cli.interfaces import (
|
||||
CliChunkingConfig,
|
||||
CliConfig,
|
||||
CliEmbeddingConfig,
|
||||
CliMixin,
|
||||
CliPartitionConfig,
|
||||
CliPermissionsConfig,
|
||||
CliProcessorConfig,
|
||||
@ -51,8 +51,8 @@ def extract_configs(
|
||||
return res
|
||||
|
||||
|
||||
def add_options(cmd: click.Command, extras=t.List[t.Type[CliMixin]], is_src=True) -> click.Command:
|
||||
configs: t.List[t.Type[CliMixin]] = (
|
||||
def add_options(cmd: click.Command, extras=t.List[t.Type[CliConfig]], is_src=True) -> click.Command:
|
||||
configs: t.List[t.Type[CliConfig]] = (
|
||||
[
|
||||
CliPartitionConfig,
|
||||
CliReadConfig,
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user