{ "info": { "author": "WePay", "author_email": "api@wepay.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Intended Audience :: Developers", "License :: OSI Approved :: Apache Software License", "Natural Language :: English", "Programming Language :: Python", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: Implementation :: PyPy" ], "description": "WePay Signer for Python\n=======================\n\n|Source| |Downloads| |Release| |Pypi Release| |Open Issues| |Build Status| |Implementation| |Python Versions| |Package Format| |Stability| |Coverage Status| |Code Climate| |Code Quality| |License| |Author|\n\nThe **Signer** class is designed for those who are signing data on\nbehalf of a public-private keypair.\n\nIn principle, the \"client party\" has public key (i.e., ``client_id``)\nand a matching private key (i.e., ``client_secret``) that can be\nverified by both the signer and the client (but nobody else as we don't\nwant to make forgeries possible).\n\nThe \"signing party\" has a simple identifier which acts as an additional\npiece of entropy in the algorithm, and can help differentiate between\nmultiple signing parties if the client party does something like try to\nuse the same public-private keypair independently of a signing party (as\nis common with GPG signing).\n\nBased on a simplified version of the AWS Signature v4.\n\nThis project uses `Semantic Versioning `__ for\nmanaging backwards-compatibility.\n\n- `API Reference `__\n\nExamples\n--------\n\n.. code:: python\n\n from __future__ import print_function\n from wepay.signer import Signer\n import textwrap\n\n client_id = 'your_client_id'\n client_secret = 'your_client_secret'\n\n signer = Signer(client_id, client_secret)\n signature = signer.sign(\n token=your_token,\n page=wepay_page_to_visit,\n redirect_uri=partner_page_to_return_to\n )\n\n print(textwrap.wrap(signature, 64))\n #=> dfbffab5b6f7156402da8147886bba3eba67bd5baf2e780ba9d39e8437db7c47\n #=> 35e9a0b834aa21ac76f98da8c52a2a0cd1b0192d0f0df5c98e3848b1b2e1a037\n\n querystring = signer.generate_query_string_params(\n token=your_token,\n page=wepay_page_to_visit,\n redirect_uri=partner_page_to_return_to\n )\n\n #=> client_id=your_client_id&\n #=> page=https://wepay.com/account/12345&\n #=> redirect_uri=https://partnersite.com/home&\n #=> token=dfbffab5b6f7156402da8147886bba3eba67bd5baf2e780ba9d39e8437db7c47...\n\nInstallation\n------------\n\nTesting occurs against the following versions:\n\n- Python 2.7\n- Python 3.3\n- Python 3.4\n- Python 3.5\n- Python 3.6 (dev)\n- Pypy (\u22482.7.10)\n- Pypy3 (\u22483.2.5)\n\n.. code:: bash\n\n pip install wepay-signer\n\nAnd include it in your scripts:\n\n.. code:: python\n\n from wepay.signer import Signer\n\nDevelopment\n-----------\n\n- You can develop in any supported version of Python.\n\n- Using `pyenv `__ to manage your\n Pythons is *highly-recommended*. Testing locally **depends** on it.\n\n- Install `VirtualEnv `__ for\n your development environment, and *activate* the environment.\n\n``bash pip install virtualenv virtualenv .vendor source .vendor/bin/activate``\n\n- Install the ``requirements.txt``.\n\n``bash pip install -r requirements.txt``\n\n- When you make changes, make sure that you run the linter and fix\n anything that's broken.\n\n``bash make lint``\n\nTesting\n-------\n\nWe use `tox `__ to handle local testing\nacross multiple versions of Python. We install multiple versions of\nPython at a time with `pyenv `__.\n\n#. Install `pyenv `__ on your own before\n running tests.\n\n#. You need to install all of the supported versions of Python. (This\n will take a while.) If you would prefer to install your own copies of\n the supported Python versions (listed above), feel free to manage\n them yourself.\n\n``bash make install-python``\n\n#. You can run the tests as follows:\n\n``bash make test``\n\nAPI Reference\n-------------\n\nBuilding local docs\n~~~~~~~~~~~~~~~~~~~\n\n.. code:: bash\n\n make docs\n open docs/signer/index.html\n\nBuilding and pushing docs\n~~~~~~~~~~~~~~~~~~~~~~~~~\n\n.. code:: bash\n\n make pushdocs\n\nDocs can be viewed at https://wepay.github.io/signer-python/.\n\nDeploying\n---------\n\n#. The ``Makefile`` (yes, ``Makefile``) has a series of commands to\n simplify the development and deployment process.\n#. Also install `Chag `__. This is\n used for managing the CHANGELOG and annotating the Git release\n correctly.\n\nUpdating the CHANGELOG\n~~~~~~~~~~~~~~~~~~~~~~\n\nMake sure that the CHANGELOG.md is human-friendly. See\nhttp://keepachangelog.com if you don\u2019t know how.\n\n``make``\n~~~~~~~~\n\nRunning ``make`` by itself will show you a list of available\nsub-commands.\n\n.. code:: bash\n\n $ make\n all\n build\n clean\n docs\n install\n install-python\n lint\n push\n pushdocs\n readme\n tag\n test\n version\n\n``make readme``\n~~~~~~~~~~~~~~~\n\nIf you make changes to ``README.md``, then this will use\n`Pandoc `__ to output a ``README.rst`` file in the\n`reStructuredText `__ format\nused by\n`distutils `__,\n`Sphinx `__ and most of the Python community.\n\nYou must have `Pandoc `__ installed on your local\nsystem.\n\n **NOTE:** Initial install via ``brew install pandoc`` takes about\n 8\u201310 hours. Updates are much faster. `Using the\n installer `__ is **much**\n faster for initial installation, but updates are entirely manual.\n\n``make version``\n~~~~~~~~~~~~~~~~\n\nSets the version number that will be used by other ``make`` tasks\nrelated to packaging and bundling.\n\n``make tag``\n~~~~~~~~~~~~\n\nThis will make sure that the ``CHANGELOG.md`` is properly datestamped,\nadd the CHANGELOG contents to the Git commit message, commit them, then\ncreate a Git commit which can be pushed upstream.\n\n``make buildpip``\n~~~~~~~~~~~~~~~~~\n\nThis will bundle-up your package in preparation for uploading to\n`Pypi `__.\n\n``make pushpip``\n~~~~~~~~~~~~~~~~\n\nThis will take your bundled package and upload it securely to\n`Pypi `__ using the ``twine`` package.\n\nDrafting a GitHub release\n~~~~~~~~~~~~~~~~~~~~~~~~~\n\n#. Go to https://github.com/wepay/signer-python/tags\n#. Find the new tag that you just pushed. Click the ellipsis (``\u2026``) to\n see the commit notes. Copy these.\n#. To the right, choose *Add release notes*. Your *Tag version* should\n be pre-filled.\n#. The *Release title* should match your *Tag version*.\n#. Inside *Describe this release*, paste the notes that you copied on\n the previous page.\n#. Choose *Publish release*.\n#. Your release should now be the latest.\n https://github.com/wepay/signer-python/releases/latest\n\nContributing\n------------\n\nHere's the process for contributing:\n\n#. Fork Signer to your GitHub account.\n#. Clone your GitHub copy of the repository into your local workspace.\n#. Write code, fix bugs, and add tests with 100% code coverage.\n#. Commit your changes to your local workspace and push them up to your\n GitHub copy.\n#. You submit a GitHub pull request with a description of what the\n change is.\n#. The contribution is reviewed. Maybe there will be some banter\n back-and-forth in the comments.\n#. If all goes well, your pull request will be accepted and your changes\n are merged in.\n\nAuthors, Copyright & Licensing\n------------------------------\n\n- Copyright (c) 2015-2016 `WePay `__\n\nSee also the list of\n`contributors `__\nwho participated in this project.\n\nLicensed for use under the terms of the `Apache\n2.0 `__ license.\n\n.. |Source| image:: http://img.shields.io/badge/source-wepay/signer\u2013python-blue.svg?style=flat-square\n :target: https://github.com/wepay/signer-python\n.. |Downloads| image:: https://img.shields.io/pypi/dm/wepay-signer.svg?style=flat-square\n :target: https://github.com/wepay/signer-python/releases\n.. |Release| image:: https://img.shields.io/github/release/wepay/signer-python.svg?style=flat-square\n :target: https://github.com/wepay/signer-python/releases\n.. |Pypi Release| image:: https://img.shields.io/pypi/v/wepay-signer.svg?style=flat-square\n :target: https://pypi.python.org/pypi/wepay-signer\n.. |Open Issues| image:: http://img.shields.io/github/issues/wepay/signer-python.svg?style=flat-square\n :target: https://github.com/wepay/signer-python/issues\n.. |Build Status| image:: http://img.shields.io/travis/wepay/signer-python/master.svg?style=flat-square\n :target: https://travis-ci.org/wepay/signer-python\n.. |Implementation| image:: https://img.shields.io/pypi/implementation/wepay-signer.svg?style=flat-square\n :target: https://python.org\n.. |Python Versions| image:: https://img.shields.io/pypi/pyversions/wepay-signer.svg?style=flat-square\n :target: https://python.org\n.. |Package Format| image:: https://img.shields.io/pypi/format/wepay-signer.svg?style=flat-square\n :target: http://pythonwheels.com\n.. |Stability| image:: https://img.shields.io/pypi/status/wepay-signer.svg?style=flat-square\n :target: https://pypi.python.org/pypi/wepay-signer\n.. |Coverage Status| image:: http://img.shields.io/coveralls/wepay/signer-python/master.svg?style=flat-square\n :target: https://coveralls.io/r/wepay/signer-python?branch=master\n.. |Code Climate| image:: http://img.shields.io/codeclimate/github/wepay/signer-python.svg?style=flat-square\n :target: https://codeclimate.com/github/wepay/signer-python\n.. |Code Quality| image:: http://img.shields.io/scrutinizer/g/wepay/signer-python.svg?style=flat-square\n :target: https://scrutinizer-ci.com/g/wepay/signer-python\n.. |License| image:: https://img.shields.io/github/license/wepay/signer-python.svg?style=flat-square\n :target: https://github.com/wepay/signer-python/blob/master/LICENSE.rst\n.. |Author| image:: http://img.shields.io/badge/author-@skyzyx-blue.svg?style=flat-square\n :target: https://github.com/skyzyx", "description_content_type": null, "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/wepay/signer-python", "keywords": "wepay signer", "license": "Apache License 2.0", "maintainer": "", "maintainer_email": "", "name": "wepay-signer", "package_url": "https://pypi.org/project/wepay-signer/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/wepay-signer/", "project_urls": { "Homepage": "https://github.com/wepay/signer-python" }, "release_url": "https://pypi.org/project/wepay-signer/2.0.0/", "requires_dist": [ "autoflake (==0.6.6)", "autopep8 (==1.2.4)", "pylint (==1.6.4)", "six (==1.10.0)" ], "requires_python": "", "summary": "A Modern Python 2/3 SDK for signing WePay requests.", "version": "2.0.0" }, "last_serial": 2281083, "releases": { "1.0.0": [], "2.0.0": [ { "comment_text": "", "digests": { "md5": "4927e759bcb493f8846c1ba764ed7df6", "sha256": "3865d9b7521e484adf0c898486066ef9d8925072f2f49b23a51624a136e1ca40" }, "downloads": -1, "filename": "wepay_signer-2.0.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "4927e759bcb493f8846c1ba764ed7df6", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 12247, "upload_time": "2016-08-14T20:56:18", "url": "https://files.pythonhosted.org/packages/5f/52/97d9b0e007855e2c30fb3de3d35b4718944f1d9cfeb12a67a9408e2772d2/wepay_signer-2.0.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "49c9277fbf027eecb4986bbd27ed0baf", "sha256": "d4e9b135ec58b1069df9a7f84f1ae3e9649a1f93216885eb3ebde005e1d1070f" }, "downloads": -1, "filename": "wepay-signer-2.0.0.tar.gz", "has_sig": false, "md5_digest": "49c9277fbf027eecb4986bbd27ed0baf", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12859, "upload_time": "2016-08-14T20:56:20", "url": "https://files.pythonhosted.org/packages/b6/42/8e7051ddb3ba31d6f7a05acafdc93df81a34b693064f826d5de4db98384f/wepay-signer-2.0.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "4927e759bcb493f8846c1ba764ed7df6", "sha256": "3865d9b7521e484adf0c898486066ef9d8925072f2f49b23a51624a136e1ca40" }, "downloads": -1, "filename": "wepay_signer-2.0.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "4927e759bcb493f8846c1ba764ed7df6", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 12247, "upload_time": "2016-08-14T20:56:18", "url": "https://files.pythonhosted.org/packages/5f/52/97d9b0e007855e2c30fb3de3d35b4718944f1d9cfeb12a67a9408e2772d2/wepay_signer-2.0.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "49c9277fbf027eecb4986bbd27ed0baf", "sha256": "d4e9b135ec58b1069df9a7f84f1ae3e9649a1f93216885eb3ebde005e1d1070f" }, "downloads": -1, "filename": "wepay-signer-2.0.0.tar.gz", "has_sig": false, "md5_digest": "49c9277fbf027eecb4986bbd27ed0baf", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12859, "upload_time": "2016-08-14T20:56:20", "url": "https://files.pythonhosted.org/packages/b6/42/8e7051ddb3ba31d6f7a05acafdc93df81a34b693064f826d5de4db98384f/wepay-signer-2.0.0.tar.gz" } ] }