aind-metadata-validator
This package includes helper functions for validating metadata from aind-data-schema, individual files in a metadata.json file, and the fields within each file.
All validation returns a MetadataState enum, see utils.py
Get status
By ID
Use aind-data-access-api [todo]
Full table
You can get the entire redshift status table by running:
from aind_data_access_api.rds_tables import RDSCredentials
from aind_data_access_api.rds_tables import Client
import pandas as pd
DEV_OR_PROD = "dev" if "test" in API_GATEWAY_HOST else "prod"
REDSHIFT_SECRETS = f"/aind/{DEV_OR_PROD}/redshift/credentials/readwrite"
RDS_TABLE_NAME = f"metadata_status_{DEV_OR_PROD}"
rds_client = Client(
credentials=RDSCredentials(
aws_secrets_name=REDSHIFT_SECRETS
),
)
class MetadataState(int, Enum):
VALID = 2 # validates as it's class
PRESENT = 1 # present
OPTIONAL = 0 # missing, but it's optional
MISSING = -1 # missing, and it's required
CORRUPT = -3 # corrupt, can't be loaded from json
def _get_status() -> pd.DataFrame:
"""Get the status of the metadata
"""
response = rds_client.read_table(RDS_TABLE_NAME)
# returns int values, can be compared against MetadataState
return response
Metadata validation
Returns a dictionary where each key is metadata, a file, or a file.field and the value is the MetadataState.
from aind_metadata_validator.metadata_validator import validate_metadata
m = Metadata()
results_df = validate_metadata(m.model_dump())
Redshift sync
Run on Code Ocean
Two code ocean capsules run the sync nightly: https://codeocean.allenneuraldynamics.org/capsule/0257223/tree and https://codeocean.allenneuraldynamics-test.org/capsule/3640490/tree
Run locally
The package also includes a function run() in sync.py that will validate the entire DocDB and push the results to redshift.
pip install aind-metadata-validator
from aind_metadata_validator.sync import run
run()
Metadata
Release files for aind-metadata-validator 0.11.11
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| aind_metadata_validator-0.11.11.tar.gz | 92.7 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| aind_metadata_validator-0.11.11-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 103.7 kB
Release files / aind_metadata_validator-0.11.11.tar.gz
| Download URL | aind_metadata_validator-0.11.11.tar.gz |
|---|---|
| Size | 92.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
ebc02b50258c5e92ddf5cef2b261aec9e8c33c7ec4b73cdc8e7a95774d345b4a
|
|
BLAKE2b-256 checksum How to use checksums |
c7b1f7d67d93fe03128a62b59a724c2d4f31a6a56d145000f45c8afdb0a9f253
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Release files / aind_metadata_validator-0.11.11-py3-none-any.whl
| Download URL | aind_metadata_validator-0.11.11-py3-none-any.whl |
|---|---|
| Size | 11.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
d701c29a3c28ad257cf6e286faa4470c22ddbdf5685ce965cd789d09979e5914
|
|
BLAKE2b-256 checksum How to use checksums |
f5b7b4591b91ed9a14056670f739f827cfb615a4d32a551876c47d3d41a44421
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|