pydrugshortagesca
A minimal python wrapper around the drugshortagescanada.ca database API
Depends on requests
module and will pass through exceptions from that library when they occur.
Installation
Install the package:
pip install pydrugshortagesca
You can then configure your drugshortagescanada.ca
username and password in one of the following ways:
Create configuration file in ~/.config/pydrugshortagesca/config
:
email="username@domain.com"
password="s3cr3t!"
Or, set the following environment variables:
export DSC_EMAIL="username@domain.com"
export DSC_PASSWORD="s3cr3t!"
You can test your installation by running the command pydrugshortagesca
. You
should not be prompted for a username or password, and it should return some
results in JSON format.
Basic Usage
Interacting with the drugshortagescanada.ca
database is done via the
api.Session
object:
from pydrugshortagesca import api, export
import json
session = api.Session(email="name@domain.com", password="123456")
try:
session.login()
except Exception as e:
print("Error with log in", e)
print("Details:", session.response.content)
else:
json_results = session.search(term="venlafaxine", offset=20)
print("Total results {}".format(json_results['total']))
results = session.isearch(term="venlafaxine", orderby='updated_date')
for rec in results:
print(rec['updated_date'],rec['en_drug_brand_name'],rec['drug_strength'])
results = session.isearch(_filter=lambda x: x['drug_strength'] == '150.0MG',
term="venlafaxine", orderby='updated_date'):
for rec in results:
print(rec['updated_date'],rec['en_drug_brand_name'],rec['drug_strength'])
csvfile = open('shortages.csv','w')
export.as_csv(session, csvfile, shortages=True, term="venlafaxine")
CLI
There is also a commandline interface. See pydrugshortagesca --help
for details, but briefly:
$ pydrugshortagesca -p term venlafaxine --type shortages --fmt csv > shortages.csv
License
MIT
Contributing
Pull requests are very welcome!