track_models
¶
Pydantic models for configuration and data validation.
MBArtist
¶
Bases: TypedDict
Type definition for MusicBrainz artist data structure.
MBArtistCredit
¶
Bases: TypedDict
Type definition for MusicBrainz artist credit data structure.
LogLevel
¶
Bases: StrEnum
Log level enumeration.
PreferredApi
¶
Bases: StrEnum
Preferred API enumeration.
ChangeDisplayMode
¶
Bases: StrEnum
Change display mode enumeration.
PythonSettings
¶
Bases: BaseModel
Python environment settings.
AppleScriptTimeoutsConfig
¶
Bases: BaseModel
Per-operation AppleScript timeout overrides.
AppleScriptRateLimitConfig
¶
Bases: BaseModel
AppleScript operation rate limiter settings.
ExperimentalConfig
¶
Bases: BaseModel
Experimental feature toggles.
AppleScriptRetryConfig
¶
Bases: BaseModel
AppleScript operation retry policy.
BatchProcessingConfig
¶
Bases: BaseModel
Batch processing size configuration.
ArtistRenamerConfig
¶
Bases: BaseModel
Artist renamer configuration.
PendingVerificationConfig
¶
Bases: BaseModel
Pending verification auto-run settings.
AlbumTypeDetectionConfig
¶
Bases: BaseModel
Album type detection patterns for year fallback logic.
Semantics for pattern fields
None(default): use built-in defaults[](empty list): explicitly disable the category["pattern", ...]: use the provided patterns
LibrarySnapshotConfig
¶
Bases: BaseModel
Library snapshot persistence settings.
CleaningConfig
¶
Bases: BaseModel
Cleaning configuration.
TrackCleaningException
¶
Bases: BaseModel
Track cleaning exception.
ExceptionsConfig
¶
Bases: BaseModel
Exceptions configuration.
DatabaseVerificationConfig
¶
Bases: BaseModel
Database verification configuration.
DevelopmentConfig
¶
Bases: BaseModel
Development configuration.
parse_test_artists
classmethod
¶
Convert comma-separated string, list, or tuple to list of strings.
Supports formats: - YAML list: [ Amon Amarth, Children of Bodom ] - Comma string: "Amon Amarth, Children of Bodom" - Tuple: ("Amon Amarth", "Children of Bodom")
Raises:
| Type | Description |
|---|---|
ValueError
|
If input is not a string, list, or tuple. |
TypeError
|
If list/tuple contains non-string elements. |
Source code in src/core/models/track_models.py
LogLevelsConfig
¶
Bases: BaseModel
Log levels configuration.
normalize_log_level
classmethod
¶
Accept case-insensitive log level names (e.g. 'debug' -> 'DEBUG').
Source code in src/core/models/track_models.py
LoggingConfig
¶
Bases: BaseModel
Logging configuration.
DurationThresholds
¶
Bases: BaseModel
Duration thresholds for analytics.
AnalyticsConfig
¶
Bases: BaseModel
Analytics configuration.
GenreUpdateConfig
¶
Bases: BaseModel
Genre update configuration.
ApiAuthConfig
¶
Bases: BaseModel
API authentication configuration.
RateLimitsConfig
¶
Bases: BaseModel
Rate limits configuration.
ProcessingConfig
¶
Bases: BaseModel
Processing configuration for year retrieval.
LogicConfig
¶
Bases: BaseModel
Year retrieval logic configuration.
ReissueDetectionConfig
¶
Bases: BaseModel
Reissue detection configuration.
ScoringConfig
¶
Bases: BaseModel
Scoring parameters for release year evaluation.
All numeric fields use int to match config.yaml values and
downstream consumers (ReleaseScorer uses them as-is without casts).
Penalties are constrained to le=0; bonuses are unconstrained.
FallbackConfig
¶
Bases: BaseModel
Year retrieval fallback settings.
ScriptApiPriority
¶
Bases: BaseModel
API priority configuration for a specific script type.
YearRetrievalConfig
¶
Bases: BaseModel
Year retrieval configuration.
CachingConfig
¶
Bases: BaseModel
Caching configuration.
ReportingConfig
¶
Bases: BaseModel
Reporting configuration.
AppConfig
¶
Bases: BaseModel
Main application configuration model.
migrate_legacy_test_artists
¶
Migrate top-level test_artists into development.test_artists.
Old configs may have a top-level test_artists key alongside an empty
development.test_artists. This validator copies the legacy value so
that consumers reading config.development.test_artists get the
expected list.
Source code in src/core/models/track_models.py
TrackDict
¶
Bases: BaseModel
Track information from Apple Music.
get
¶
Get attribute value with default, mimicking dict.get() behavior.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
key
|
str
|
The attribute name to retrieve |
required |
default
|
TrackFieldValue
|
The default value to return if attribute doesn't exist |
None
|
Returns:
| Type | Description |
|---|---|
TrackFieldValue
|
The attribute value if it exists, otherwise the default value |
Source code in src/core/models/track_models.py
copy
¶
Create a copy of the TrackDict with optional field updates.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
**kwargs
|
Any
|
Fields to update in the copy |
{}
|
Returns:
| Type | Description |
|---|---|
TrackDict
|
A new TrackDict instance with updated fields |
Source code in src/core/models/track_models.py
ChangeLogEntry
¶
Bases: BaseModel
Change log entry for track updates.
Supports genre updates, year updates, and metadata cleaning with optional fields.
CachedApiResult
¶
Bases: BaseModel
Cached API result.
model_dump
¶
Export model as dictionary (Pydantic v2 compatibility).
Source code in src/core/models/track_models.py
ScriptAction
¶
Bases: BaseModel
AppleScript action definition.
CodeAction
¶
Bases: BaseModel
AppleScript code action definition.
ScriptActionExtended
¶
Bases: BaseModel
Extended script action with type and path.
CodeActionExtended
¶
Bases: BaseModel
Extended code action with type.
MusicBrainzArtist
¶
Bases: BaseModel
MusicBrainz artist information.
MusicBrainzReleaseGroup
¶
Bases: BaseModel
MusicBrainz release group information.
MusicBrainzRelease
¶
Bases: BaseModel
MusicBrainz release information.
MusicBrainzSearchResult
¶
Bases: BaseModel
MusicBrainz search result.
DiscogsArtist
¶
Bases: BaseModel
Discogs artist information.