Skip to main content

requests-mauth

Build Status

requests-mauth is a python requests (http://docs.python-requests.org/en/latest/) Authentication implementation for Medidata's MAuth authentication system.

Prerequisites

To use MAuth authentication you will need:

  • An MAuth APP ID
  • An MAuth private key (with the public key registered with Medidata's MAuth server)

Using

import requests
from requests_mauth import MAuth

# MAuth configuration
APP_UUID = "<MAUTH_APP_UUID>"
private_key = open("private.key", "r").read()
mauth = MAuth(APP_UUID, private_key)

# Call an MAuth protected resource, in this case an iMedidata API
# listing the studies for a particular user
user_uuid = "10ac3b0e-9fe2-11df-a531-12313900d531"
url = "https://innovate.imedidata.com/api/v2/users/%s/studies.json" % user_uuid

# Make the requests call, passing the auth client
result = requests.get(url, auth=mauth)

# Print results
if result.status_code == 200:
    print([r["uuid"] for r in result.json()["studies"]])
print(result.text)

Development

We use travis for automated CI of the code (and status checks are required to pass prior to PR merges being accepted). We use travis to deploy updated versions to PyPI (only from master)

For local development (cross version) we use tox with pyenv to automate the running of unit tests against different python versions in virtualised python environments.

To setup your environment:

  1. Install Python
  2. Install Pyenv
    $ brew update
    $ brew install pyenv
    
  3. Install Pyenv versions for the Tox Suite
    $ pyenv install 2.7.16 3.3.6 3.4.6 3.5.3 3.6.1 3.7.2
    
  4. Install Tox
    $ pip install tox tox-pyenv
    
  5. Setup the local project versions (one for each env in the envlist)
     $ pyenv local 2.7.16 3.3.6 3.4.6 3.5.3 3.6.1 3.7.2
    
  6. Make any changes, update the tests and then run tests with tox
     Name                         Stmts   Miss  Cover
     ------------------------------------------------
     requests_mauth/__init__.py       3      0   100%
     requests_mauth/client.py        31      0   100%
     requests_mauth/rsa_sign.py      34      0   100%
     ------------------------------------------------
     TOTAL                           68      0   100%
     stats runtests: commands[1] | coverage html
     _________________________________________________________________________________________________________ summary __________________________________________________________________________________________________________
       clean: commands succeeded
       py27: commands succeeded
       py33: commands succeeded
       py34: commands succeeded
       py35: commands succeeded
       py36: commands succeeded
       stats: commands succeeded
       congratulations :)
    
  7. Coverage report can be viewed using open htmlcov/index.html
  8. Push your changes and create a PR to master
  9. Once the PR is complete, tag the branch and push it to github, this will trigger Travis to deploy to PyPI (make sure the version is consistent)
    $ git checkout master
    $ git pull
    $ git tag -a 1.0.2 -m "Requests MAuth 1.0.2"
    $ git push --tags
    

Metadata

Release files for requests-mauth 1.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for requests-mauth 1.1.0
File Size Uploaded
requests_mauth-1.1.0.tar.gz 6.3 kB Details

Built distributions (wheels)

Table of built distributions (wheels) for requests-mauth 1.1.0
File Interpreter ABI Platform
requests_mauth-1.1.0-py3.7.egg Legacy Egg format - - Details
requests_mauth-1.1.0-py2.py3-none-any.whl Python 3, Python 2 none any Details

Total release size: 22.8 kB

Release files / requests_mauth-1.1.0.tar.gz

Download URL requests_mauth-1.1.0.tar.gz
Size 6.3 kB
Tags Source
SHA-256 checksum
How to use checksums
71708f1b46008f6950cf29034b4d45531bc59524d3186d869a1f247a6da659de
BLAKE2b-256 checksum
How to use checksums
d4eb47d63ab35fc44e826b9426062b364daf9142be53dfc051801fc2a3a38690
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/46.0.0 requests-toolbelt/0.9.1 tqdm/4.43.0 CPython/3.7.1

Release files / requests_mauth-1.1.0-py3.7.egg

Download URL requests_mauth-1.1.0-py3.7.egg
Size 9.8 kB
Tags Egg
SHA-256 checksum
How to use checksums
f557825c481a5be3c71284cfacde3a5c59585667969ad12db7442fc81fe88206
BLAKE2b-256 checksum
How to use checksums
c0d33ca2de4fef593a7491ac1838533bb9a5d8fd2a12a8dcf5401f9f49dfea99
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/46.0.0 requests-toolbelt/0.9.1 tqdm/4.43.0 CPython/3.7.1

Release files / requests_mauth-1.1.0-py2.py3-none-any.whl

Download URL requests_mauth-1.1.0-py2.py3-none-any.whl
Size 6.7 kB
Tags Python 2 Python 3
SHA-256 checksum
How to use checksums
f5cf35f93f583ef26904b6cf425d8ec1d479dd8b006a2d540a5be5aa2360693d
BLAKE2b-256 checksum
How to use checksums
f6d98bef95d7a4df113606dbcc30d25d807534743430ef438760f6c5ba236b00
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/46.0.0 requests-toolbelt/0.9.1 tqdm/4.43.0 CPython/3.7.1

Release history Release notifications | RSS feed

This release

1.1.0 This release

3 release files

1.0.3

2 release files

1.0.2

1 release file

1.0.1

1 release file

1.0.0

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page