pyoscar
Pythonic API to WMO OSCAR
Overview
pyoscar provides a Pythonic API atop the WMO OSCAR HTTP API.
Installation
Requirements
- Python 3
- virtualenv or Conda
Dependencies
Dependencies are listed in requirements.txt. Dependencies are automatically installed during pyoscar installation.
Installing pyoscar
For users
To install the latest stable version:
pip install pyoscar
To keep up to date with stable updates:
pip install pyoscar -U
For developers
# setup virtualenv
python3 -m venv pyoscar
cd pyoscar
source bin/activate
# clone codebase and install
git clone https://github.com/wmo-cop/pyoscar.git
cd pyoscar
python setup.py build
python setup.py install
Running pyoscar via the Command Line
# help
pyoscar --help
# get version
pyoscar --version
# all subcommands support the following options:
# --env (depl or prod, default depl)
# --verbosity (ERROR, WARNING, INFO, DEBUG, default NONE)
# get all station identifiers
pyoscar stations
# get all station identifiers by country
pyoscar stations --country=CAN
# get all station identifiers by program affiliation
pyoscar stations --program=GAW
# get a single station by WIGOS identifier
pyoscar station --identifier 0-20000-0-71151
# get a single station by WIGOS identifier in WIGOS XML format
pyoscar station --identifier 0-20000-0-71151 --format=XML
# add verbose mode (ERROR, WARNING, INFO, DEBUG)
pyoscar station --identifier 0-20000-0-71151 --verbosity=DEBUG
# get contact by country
pyoscar contact -c Canada
# get contact by surname
pyoscar contact -s Karn
# get contact by organization
pyoscar contact -o "Environment Canada"
# upload WMDR XML (to production environment)
pyoscar upload -x /path/to/wmdr.xml -at API_TOKEN -e prod
# upload WMDR XML (to production environment) and save results to file
pyoscar upload -x /path/to/wmdr.xml -at API_TOKEN -e prod -l results.log
Using the pyoscar API
from pyoscar import OSCARClient
client = OSCARClient()
# get all Canadian stations
stations = client.get_stations(country='CAN')
# get all Canadian stations
stations = client.get_stations(program='GAW')
# get invididual station report
stn_leo = client.get_station_report('LEO')
# upload WMDR XML
## instantiate client to OSCAR DEPL (default)
client = OSCARClient(api_token='foo')
## ...or to OSCAR production
client = OSCARClient(api_token='foo', env='prod')
with open('some-wmdr-file.xml') as fh:
data = fh.read()
response = client.upload(data)
Development
Running Tests
# install dev requirements
pip install -r requirements-dev.txt
# run tests like this:
cd tests
python run_tests.py
# or like this:
python setup.py test
# measure code coverage
coverage run --source pyoscar setup.py test
coverage report -m
Releasing
python setup.py sdist bdist_wheel --universal
twine upload dist/*
Code Conventions
Bugs and Issues
All bugs, enhancements and issues are managed on GitHub.
Contact
Metadata
Release files for pyoscar 0.3.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| pyoscar-0.3.0.tar.gz | 7.4 kB | Without provenance | Details for pyoscar-0.3.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| pyoscar-0.3.0-py2.py3-none-any.whl | Python 2, Python 3 | none | any | Details for pyoscar-0.3.0-py2.py3-none-any.whl |
Total release size: 15.8 kB
Release files / pyoscar-0.3.0.tar.gz
| Download URL | pyoscar-0.3.0.tar.gz |
|---|---|
| Size | 7.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
90eec9b24c7ab565014baa0a4dd588baa75b8b48144c68ab0330d3faf8a6fb3d
|
|
BLAKE2b-256 checksum How to use checksums |
a658aad405e8dab2a2051e70105f9777f4f98e252f05c2a5814ce209eb8bb2f9
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.1.1 pkginfo/1.5.0.1 requests/2.24.0 setuptools/50.3.0.post20201006 requests-toolbelt/0.9.1 tqdm/4.50.2 CPython/3.7.6
|
Release files / pyoscar-0.3.0-py2.py3-none-any.whl
| Download URL | pyoscar-0.3.0-py2.py3-none-any.whl |
|---|---|
| Size | 8.4 kB |
| Tags | Python 2 Python 3 |
|
SHA-256 checksum How to use checksums |
dbf132099c33770082a7277110acdb0f99cfd7b8a2e3c056f1fa8a8b751b943f
|
|
BLAKE2b-256 checksum How to use checksums |
aa1d577ae1c840777a50c7e70b418ac7a1c18a3cf6898994f413fdb60565f00c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.1.1 pkginfo/1.5.0.1 requests/2.24.0 setuptools/50.3.0.post20201006 requests-toolbelt/0.9.1 tqdm/4.50.2 CPython/3.7.6
|
Security for pyoscar 0.3.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.