wags_tails.base_source#
Define core data source classes.
All source classes should inherit - directly or indirectly - from DataSource
. Each
class defined here is an abstract base class
and cannot be instantiated directly.
- exception wags_tails.base_source.RemoteDataError[source]#
Raise when unable to parse, navigate, or extract information from a remote resource, like a data API
- class wags_tails.base_source.DataSource(data_dir=None, silent=True)[source]#
Abstract base class for a data source.
- __init__(data_dir=None, silent=True)[source]#
Set common class parameters.
- Parameters:
data_dir (
Optional
[Path
]) – direct location to store data files in, if specified. Seeget_data_dir()
in thestorage_utils
module for further configuration details.silent (
bool
) – if True, don’t print any info/updates to console
- abstract _get_latest_version()[source]#
Acquire value of latest data version.
- Return type:
str
- Returns:
latest version value
- abstract _download_data(version, outfile)[source]#
Download data file to specified location.
- Parameters:
version (
str
) – version to acquireoutfile (
Path
) – location and filename for final data file
- Return type:
None
- get_latest(from_local=False, force_refresh=False)[source]#
Get path to latest version of data.
Provides logic for both versioned and unversioned data here, rather than in the
UnversionedDataSource
child class, to supportCustomData
instances regardless of whether they’re versioned.- Parameters:
from_local (
bool
) – if True, use latest available local fileforce_refresh (
bool
) – if True, fetch and return data from remote regardless of whether a local copy is present
- Return type:
Tuple
[Path
,str
]- Returns:
Path to location of data, and version value of it
- Raises:
ValueError – if both
force_refresh
andfrom_local
are True
- class wags_tails.base_source.UnversionedDataSource(data_dir=None, silent=True)[source]#
Data acess tool for unversioned data. Provides some additional defaults.
- class wags_tails.base_source.GitHubDataSource(data_dir=None, silent=True)[source]#
Class for data sources provided via GitHub releases, where versioning is defined by release tag names.