A marshmallow
schema for the National Wastewater Surveillance System.
# Install from PyPI
pip install nwss
# Install local copy
git clone https://github.com/datamade/nwss-data-standard.git && cd nwss-data-standard
pip install .
See Data dictionary version compatibility for historical versions of the schema.
The CDC uses semantic versioning to track changes to the expected format for
DCIPHER uploads.
This table maps versions of the nwss
Python package to versions of the data
dictionary.
Package version | CDC version |
---|---|
1.0.0 | 2.0.2 |
1.0.1 | 2.0.3 |
You can retrieve the CDC version from the nwss
module for use in your scripts:
>>> import nwss
>>> print(nwss.CDC_VERSION)
'2.0.2'
Head to https://datamade.github.io/nwss-data-standard/ to validate a file against the standard!
from marshmallow import ValidationError
from nwss.schemas import WaterSampleSchema
sample_data = [
# array of dictionaries
]
schema = WaterSampleSchema(many=True)
try:
schema.load(sample_data)
except ValidationError as e:
print(e.messages)
else:
print('Data is valid!')
Your patches are welcome. Here's our suggested workflow:
- Fork the project.
- Create a new branch, then make your feature addition or bug fix.
- Send us a pull request with a description of your work.
Install the app locally.
git clone https://github.com/datamade/nwss-data-standard.git && cd nwss-data-standard
pip install -e .[dev]
Make your changes, then run the tests.
pytest
nwss
comes with a Python implementation of the NWSS schema, as well as a
convenience script to translate it to a JSON schema:
python3 -m nwss.dump_to_jsonschema > schema.json
Much of the JSON schema is determined by the marshmallow
schema, however
some conditional validation is written into the convenience script. You may
need to update the script to make your desired change.
Run a local server and auto-bundle your scripts:
npm run develop
Navigate to the app: http://localhost:8000/docs/
If something is not behaving intuitively, it is a bug and should be reported. Report it here by creating an issue: https://github.com/datamade/nwss-data-standard/issues
Help us fix the problem as quickly as possible by following Mozilla's guidelines for reporting bugs.
Copyright (c) 2021 DataMade. Released under the MIT License.