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_utilsmodule 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
UnversionedDataSourcechild class, to supportCustomDatainstances 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_refreshandfrom_localare 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.