You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Example CSV data file (data/data_example.csv) demonstrating the full column set.
Comprehensive test suite with coverage reporting via Codecov.
CI pipeline with Ruff linting, pytest + coverage, and Codecov upload (.github/workflows/ci.yml).
MkDocs documentation site with auto-generated API reference via mkdocstrings.
Tutorials rewritten to reflect the actual two-pass workflow (databus_example.py).
OpenSSF Best Practices badge tracking.
Changed
Major refactor of the validation/upload architecture (BU-334, BU-349): each validator now also handles insertion when a populated databus dict is supplied, eliminating the separate neotomaUploader module and reducing code duplication.
Refactored pull_params into smaller, testable helper functions in utils.py, removing the dependency on pandas.
Contact handling consolidated: all contact types (PI, collector, processor, analyst) now go through valid_contact, with chronology modeler assignment handled within valid_chronologies. This significantly reduces repeated code.
Data upload now tracks inserted IDs so that data uncertainties can be linked correctly.
Chronology handling improved to properly manage calendar years, default chronologies, and sample age linkage.
Geopolitical unit insertion updated to handle entities like Scotland under the UK.
Improved logging with logging_dict and per-file .valid.log output.
Adopted Ruff as the sole linter and formatter, replacing previous tooling.
Switched to uv for dependency management and script execution.
Fixed
Chron controls now handle calendar years properly.
U-Th series insertion works correctly when the number of geochron indices differs from sample indices.
Fixed dataset–publication and dataset–database linking during upload.
Fixed collector insertion for NODE community datasets.
Fixed variable validation to handle null values without comparing null against null.
Numerous typos across chroncontrols.py, sample.py, Chronology.py, and others.