Skip to main content

Minimal Python wrapper for the drugshortagescanada.ca database API

Project description

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: 
    # search() returns a batch of results.
    # Use the `limit` and `offset` parameters to adjust which batch to return.
    json_results = session.search(term="venlafaxine", offset=20)
    print("Total results {}".format(json_results['total']))

    # isearch() returns an iterator over all records returned by a search.
    # This may make several requests to the database if needed.
    results = session.isearch(term="venlafaxine", orderby='updated_date')
    for rec in results:
        print(rec['updated_date'],rec['en_drug_brand_name'],rec['drug_strength'])

    # Custom filter functions can also be supplied
    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'])
    
    # The export module provides utility functions for exporting results in tabular form
    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!

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pydrugshortagesca-0.1.3.tar.gz (6.5 kB view details)

Uploaded Source

Built Distribution

pydrugshortagesca-0.1.3-py3-none-any.whl (8.2 kB view details)

Uploaded Python 3

File details

Details for the file pydrugshortagesca-0.1.3.tar.gz.

File metadata

  • Download URL: pydrugshortagesca-0.1.3.tar.gz
  • Upload date:
  • Size: 6.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.0.5 CPython/3.7.5 Linux/5.3.0-46-generic

File hashes

Hashes for pydrugshortagesca-0.1.3.tar.gz
Algorithm Hash digest
SHA256 c650c827b81f7e1d6be0fb6597987bab2d84950b987f527cd0479f980f482434
MD5 d5df891aaaaa8fa5a35a932ba33c2db6
BLAKE2b-256 6fc3f3b5f6a0704e766be0ec282be5320f2a90682577c795f246b245b10ff9da

See more details on using hashes here.

File details

Details for the file pydrugshortagesca-0.1.3-py3-none-any.whl.

File metadata

  • Download URL: pydrugshortagesca-0.1.3-py3-none-any.whl
  • Upload date:
  • Size: 8.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.0.5 CPython/3.7.5 Linux/5.3.0-46-generic

File hashes

Hashes for pydrugshortagesca-0.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 e404b377592e276d1262164c2360eea85ed2971096d8e80a66ba280282bc483a
MD5 c7cb14a2ce270a2faee296e977187ab2
BLAKE2b-256 4bad726efcaff3cff57cc27c432a5a1cc45b5ecc3d7a0649727ec24f6a9069e8

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page