Flexible access to survey data
Project description
The surveydata Python package offers flexible access to survey data and support for multiple local and cloud storage options.
Installation
Installing the latest version with pip:
pip install surveydata
Overview
To use the surveydata package, you access data from specific survey platforms via an appropriate SurveyPlatform object:
SurveyCTOPlatform provides support for SurveyCTO data, including methods to process text audits and submit submission updates via the review and correction workflow (in support of SurveyCTO’s machine learning roadmap, with the ml4qc project)
ODKPlatform provides support for Open Data Kit data via an ODK Central server
All survey data must be stored somewhere, and storage is handled via an appropriate StorageSystem object:
FileStorage provides support for local file storage
S3Storage provides support for AWS S3 storage
DynamoDBStorage provides support for AWS DynamoDB storage
GoogleCloudStorage provides support for Google Cloud Storage
AzureBlobStorage provides support for Azure Blob Storage
SurveyCTOExportStorage provides support for local data exported with SurveyCTO Desktop (in wide format)
ODKExportStorage provides support for local data downloaded and unzipped from an ODK Central All data and Attachments export
In general, the workflow goes like this:
Initialize the survey platform
Initialize one or more storage systems
Synchronize data between the survey platform and the storage system(s) to ensure that data in storage is fully up-to-date (except for static export storage, via SurveyCTOExportStorage or ODKExportStorage, which doesn’t require synchronization)
Load data and/or attachments via the survey platform and storage API’s
Optionally: Save processed data and then, later, load it back again, for cases where ingestion and processing tasks are separated from actual analysis or use
Examples
See these notebooks for detailed usage examples:
Documentation
See the full reference documentation here:
Development
To develop locally:
git clone https://github.com/orangechairlabs/py-surveydata.git
cd py-surveydata
python -m venv venv
source venv/bin/activate
pip install -r requirements.txt
For convenience, the repo includes .idea project files for PyCharm.
To rebuild the documentation:
Update version number in /docs/source/conf.py
Update layout or options as needed in /docs/source/index.rst
- In a terminal window, from the project directory:
cd docs
SPHINX_APIDOC_OPTIONS=members,show-inheritance sphinx-apidoc -o source ../src/surveydata --separate --force
make clean html
To rebuild the distribution packages:
- For the PyPI package:
Update version number (and any build options) in /setup.py
Confirm credentials and settings in ~/.pypirc
Run /setup.py for the bdist_wheel and sdist build types (Tools… Run setup.py task… in PyCharm)
Delete old builds from /dist
- In a terminal window:
twine upload dist/* --verbose
- For GitHub:
Commit everything to GitHub and merge to main branch
Add new release, linking to new tag like v#.#.# in main branch
- For readthedocs.io:
Go to https://readthedocs.org/projects/surveydata/, log in, and click to rebuild from GitHub (only if it doesn’t automatically trigger)
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file surveydata-0.1.13.tar.gz
.
File metadata
- Download URL: surveydata-0.1.13.tar.gz
- Upload date:
- Size: 34.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.10.9
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | e293d702fb866c364cb73e9d54b8a3f30b7ec406ab9ccbc4cb5abfe1690a7c81 |
|
MD5 | 0d75b6a0758c64690cdc88b44df67b13 |
|
BLAKE2b-256 | 88d22392feb70b08148c124ab95c54d74b586dee2298ac9c56d11cf70cda4a64 |
File details
Details for the file surveydata-0.1.13-py3-none-any.whl
.
File metadata
- Download URL: surveydata-0.1.13-py3-none-any.whl
- Upload date:
- Size: 48.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.10.9
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0c5826e502c46ae0d1ffb80d5be90873f1d1db6cf7bf11cd26652af0f8fe648d |
|
MD5 | 5f5503f75bdb32d514031ce0e5cf10bd |
|
BLAKE2b-256 | 84900d7e1dc2141dc3602ef7df3664a1c6164b921f5ee52d88934fe2d8e203d1 |