Package: wepay-signer
TheSignerclass is designed for those who are signing data on
behalf of a public-private keypair.In principle, the “client party” has public key (i.e.,client_id)
and a matching private key (i.e.,client_secret) that can be
verified by both the signer and the client (but nobody else as we don’t
want to make forgeries possible).The “signing party” has a simple identifier which acts as an additional
piece of entropy in the algorithm, and can help differentiate between
multiple signing parties if the client party does something like try to
use the same public-private keypair independently of a signing party (as
is common with GPG signing).Based on a simplified version of the AWS Signature v4.This project usesSemantic Versioningfor
managing backwards-compatibility.API ReferenceExamplesfrom__future__importprint_functionfromwepay.signerimportSignerimporttextwrapclient_id='your_client_id'client_secret='your_client_secret'signer=Signer(client_id,client_secret)signature=signer.sign(token=your_token,page=wepay_page_to_visit,redirect_uri=partner_page_to_return_to)print(textwrap.wrap(signature,64))#=> dfbffab5b6f7156402da8147886bba3eba67bd5baf2e780ba9d39e8437db7c47#=> 35e9a0b834aa21ac76f98da8c52a2a0cd1b0192d0f0df5c98e3848b1b2e1a037querystring=signer.generate_query_string_params(token=your_token,page=wepay_page_to_visit,redirect_uri=partner_page_to_return_to)#=> client_id=your_client_id&#=> page=https://wepay.com/account/12345&#=> redirect_uri=https://partnersite.com/home&#=> token=dfbffab5b6f7156402da8147886bba3eba67bd5baf2e780ba9d39e8437db7c47...InstallationTesting occurs against the following versions:Python 2.7Python 3.3Python 3.4Python 3.5Python 3.6 (dev)Pypy (≈2.7.10)Pypy3 (≈3.2.5)pipinstallwepay-signerAnd include it in your scripts:fromwepay.signerimportSignerDevelopmentYou can develop in any supported version of Python.Usingpyenvto manage your
Pythons ishighly-recommended. Testing locallydependson it.InstallVirtualEnvfor
your development environment, andactivatethe environment.bash   pip install virtualenv   virtualenv .vendor   source .vendor/bin/activateInstall therequirements.txt.bash   pip install-rrequirements.txtWhen you make changes, make sure that you run the linter and fix
anything that’s broken.bash   make lintTestingWe usetoxto handle local testing
across multiple versions of Python. We install multiple versions of
Python at a time withpyenv.Installpyenvon your own before
running tests.You need to install all of the supported versions of Python. (This
will take a while.) If you would prefer to install your own copies of
the supported Python versions (listed above), feel free to manage
them yourself.bash    makeinstall-pythonYou can run the tests as follows:bash    make testAPI ReferenceBuilding local docsmakedocsopendocs/signer/index.htmlBuilding and pushing docsmakepushdocsDocs can be viewed athttps://wepay.github.io/signer-python/.DeployingTheMakefile(yes,Makefile) has a series of commands to
simplify the development and deployment process.Also installChag. This is
used for managing the CHANGELOG and annotating the Git release
correctly.Updating the CHANGELOGMake sure that the CHANGELOG.md is human-friendly. Seehttp://keepachangelog.comif you don’t know how.makeRunningmakeby itself will show you a list of available
sub-commands.$makeallbuildcleandocsinstallinstall-pythonlintpushpushdocsreadmetagtestversionmake readmeIf you make changes toREADME.md, then this will usePandocto output aREADME.rstfile in thereStructuredTextformat
used bydistutils,Sphinxand most of the Python community.You must havePandocinstalled on your local
system.NOTE:Initial install viabrew install pandoctakes about
8–10 hours. Updates are much faster.Using the
installerismuchfaster for initial installation, but updates are entirely manual.make versionSets the version number that will be used by othermaketasks
related to packaging and bundling.make tagThis will make sure that theCHANGELOG.mdis properly datestamped,
add the CHANGELOG contents to the Git commit message, commit them, then
create a Git commit which can be pushed upstream.make buildpipThis will bundle-up your package in preparation for uploading toPypi.make pushpipThis will take your bundled package and upload it securely toPypiusing thetwinepackage.Drafting a GitHub releaseGo tohttps://github.com/wepay/signer-python/tagsFind the new tag that you just pushed. Click the ellipsis (…) to
see the commit notes. Copy these.To the right, chooseAdd release notes. YourTag versionshould
be pre-filled.TheRelease titleshould match yourTag version.InsideDescribe this release, paste the notes that you copied on
the previous page.ChoosePublish release.Your release should now be the latest.https://github.com/wepay/signer-python/releases/latestContributingHere’s the process for contributing:Fork Signer to your GitHub account.Clone your GitHub copy of the repository into your local workspace.Write code, fix bugs, and add tests with 100% code coverage.Commit your changes to your local workspace and push them up to your
GitHub copy.You submit a GitHub pull request with a description of what the
change is.The contribution is reviewed. Maybe there will be some banter
back-and-forth in the comments.If all goes well, your pull request will be accepted and your changes
are merged in.Authors, Copyright & LicensingCopyright (c) 2015-2016WePaySee also the list ofcontributorswho participated in this project.Licensed for use under the terms of theApache
2.0license.