Skip to content

Commit 1117a7c

Browse files
committed
➖ Remove pydantic-argparse dependency
1 parent fa5fc87 commit 1117a7c

File tree

3 files changed

+23
-41
lines changed

3 files changed

+23
-41
lines changed

pyproject.toml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@ requires-python = ">=3.12"
77
dependencies = [
88
"elasticsearch>=8.15.1",
99
"pandas>=2.2.3",
10-
"pydantic-argparse>=0.9.0",
1110
"pydantic-settings>=2.6.0",
1211
"requests>=2.32.3",
1312
"spotipy>=2.24.0",

sploty/app.py

Lines changed: 23 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -2,29 +2,33 @@
22

33
from pathlib import Path
44

5-
import pydantic_argparse
6-
from pydantic import Field, HttpUrl, v1
5+
from pydantic import Field, HttpUrl
76
from pydantic_settings import BaseSettings, SettingsConfigDict
87

98
from sploty import audio_features, concat, enrich, filter, metrics, to_elastic
109
from sploty.settings import logger
1110

1211

13-
class Arguments(v1.BaseModel):
14-
resources_path: str = v1.Field(description="a required string")
15-
previous_enriched_streaming_history_path: str = v1.Field(None, description="an optional string")
16-
chunk_size: int = v1.Field(default=100, description="an optional int")
17-
spotify_timeout: int = v1.Field(default=10, description="an optional int")
18-
spotify_sleep: int = v1.Field(default=60, description="an optional int")
19-
db_path: str = v1.Field(description="a required string")
20-
index_name: str = v1.Field(description="a required string")
21-
elastic_timeout: int = v1.Field(default=10, description="an optional int")
22-
concat: bool = v1.Field(default=True)
23-
filter: bool = v1.Field(default=True)
24-
enrich: bool = v1.Field(default=True)
25-
feature: bool = v1.Field(default=True)
26-
metric: bool = v1.Field(default=True)
27-
elastic: bool = v1.Field(default=True)
12+
class Arguments(BaseSettings, cli_implicit_flags=True, cli_enforce_required=True):
13+
model_config = SettingsConfigDict(cli_parse_args=True)
14+
resources_path: str = Field(alias="resources-path", description="a required string")
15+
previous_enriched_streaming_history_path: str | None = Field(
16+
alias="previous-enriched-streaming-history-path",
17+
default=None,
18+
description="an optional string",
19+
)
20+
chunk_size: int = Field(alias="chunk-size", default=100, description="an optional int")
21+
spotify_timeout: int = Field(alias="spotify-timeout", default=10, description="an optional int")
22+
spotify_sleep: int = Field(alias="spotify-sleep", default=60, description="an optional int")
23+
db_path: str = Field(alias="db-path", description="a required string")
24+
index_name: str = Field(alias="index-name", description="a required string")
25+
elastic_timeout: int = Field(alias="elastic-timeout", default=10, description="an optional int")
26+
concat: bool = Field(alias="concat", default=True)
27+
filter: bool = Field(alias="filter", default=True)
28+
enrich: bool = Field(alias="enrich", default=True)
29+
feature: bool = Field(alias="feature", default=True)
30+
metric: bool = Field(alias="metric", default=True)
31+
elastic: bool = Field(alias="elastic", default=True)
2832

2933

3034
class Environment(BaseSettings):
@@ -39,15 +43,8 @@ class Environment(BaseSettings):
3943

4044

4145
def main() -> None:
42-
# Create Parser and Parse Args
43-
parser = pydantic_argparse.ArgumentParser(
44-
model=Arguments,
45-
prog="Example Program",
46-
description="Example Description",
47-
version="0.0.1",
48-
epilog="Example Epilog",
49-
)
50-
args = parser.parse_typed_args()
46+
# Parse args and environment vars
47+
args = Arguments()
5148
env = Environment()
5249

5350
# Paths

uv.lock

Lines changed: 0 additions & 14 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)