Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
[Unreleased]
Fixed
- TypeError and mypy error in
Catalog.status(): now only string values are passed toPath()when checking local dataset paths, preventing errors iflocal_pathcontains NaN or non-string values.
[0.0.4] - 2026-04-02
Fixed
[0.0.3] - 2026-04-02
Changed
Config.from_file()now auto-discovers config files when called with no arguments: checksRADIENS_DRIVE_CATALOG_CONFIGenv var, then.secrets/config.json, thenconfig.jsonin the current working directory. RaisesFileNotFoundError(previouslyValueError) when no config is found.
[0.0.2] - 2026-04-02
Added
AssetEntryTypedDict for non-xdat Drive content (folders likelogs/, PowerPoints, writeups, etc.).scan_drive()now returns(datasets, assets)tuple. Assets are auto-discovered during scan: non-xdat files inside date or experiment folders become file assets; subfolders of experiment folders become folder assets and are still recursed for xdat datasets.download_asset()indrive.pyfor downloading file or folder assets; folder assets are downloaded recursively, mirroring the Drive subtree.Catalog.assets_dfproperty — full asset catalog as a pandas DataFrame.Catalog.list_assets()— query assets with optionaldate_folder,experiment, andasset_typefilters.Catalog.download_asset(drive_path, asset_name)— download an asset tolocal_data_dir/assets/{drive_path}/{asset_name}.Catalog.get_asset_path(drive_path, asset_name)— return local path, downloading automatically if needed.- Catalog JSON format changed from a bare list to
{"datasets": [...], "assets": [...]}. Old flat-list catalogs are migrated automatically on the nextscan(). AssetEntryexported from the top-level package.
Changed
Catalog.list()andCatalog.list_assets(): renamed thedateparameter todate_folderto match the catalog column name and make clear that an exact folder name (e.g."2026-02-15_batch") is required, not a date prefix.
[0.0.1] - 2026-04-02
Added
Configdataclass withfrom_file()classmethod; supports~and$ENV_VARexpansion in path fields andRADIENS_DRIVE_CATALOG_CONFIGenv var fallback.build_drive_service()for authenticating with a Google service account.scan_drive()for recursive Drive scanning; returnsDatasetEntryrecords withdate_folder,experiment,drive_path, anddrive_file_ids.download_dataset()for chunked download of xdat filesets to a local directory.Catalogclass withscan(),df,list(),download(),get_path(), andstatus().- MkDocs documentation site with Material theme, auto-generated API reference,
and versioned deployment via
mike. - CI/CD workflows: linting, type checking, tests, docs deployment, and PyPI publishing via GitHub Actions.