Metadata-Version: 2.0
Name: python-wepay
Version: 1.4.2
Summary: Python SDK for WePay API (third party).
Home-page: https://github.com/lehins/python-wepay
Author: Alexey Kuleshevich
Author-email: lehins@yandex.ru
License: MIT License
Keywords: wepay,payment,credit card
Platform: any
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Natural Language :: English
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 2
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.2
Classifier: Programming Language :: Python :: 3.3
Classifier: Programming Language :: Python :: 3.4
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Requires-Dist: six

python-wepay: Python WePay SDK (third party)
============================================

.. image:: https://travis-ci.org/lehins/python-wepay.svg?branch=master   
   :target: https://travis-ci.org/lehins/python-wepay
   :alt: Travis-CI

.. image:: https://coveralls.io/repos/lehins/python-wepay/badge.png?branch=master 
   :target: https://coveralls.io/r/lehins/python-wepay?branch=master 
   :alt: Tests Coverage

.. image:: https://landscape.io/github/lehins/python-wepay/master/landscape.png
   :target: https://landscape.io/github/lehins/python-wepay/master
   :alt: Code Health

.. image:: https://pypip.in/d/python-wepay/badge.png
    :target: https://crate.io/packages/python-wepay/
    :alt: Number of PyPI downloads

Features
--------

* Make API calls in a very natural pythonic way, ex:

.. code-block:: python

    >>> api = WePay(production=False, access_token='STAGE_243...')
    >>> response = api.account.create("name", "description", type='nonprofit')
    >>> account_id = response['account_id']
    >>> callback_uri = "https://example.com/ipn/account/%s" % account_id
    >>> response = api.account.modify(account_id, callback_uri=callback_uri)
    >>> api.preapproval.create("short description", "daily", amount=45.5, account_id=account_id)
    {"preapproval_id":619202, "preapproval_uri":"https://stage.wepay.com/api/preapproval/619202"}

* Validation of all required and optional parameters to each one of the calls.
* Very easy construction of batch calls, simply by passing ``batch_mode=True`` to
  a call, ex:

.. code-block:: python

    >>> call1 = api.checkout.create(1234, short_description, type, amount, batch_mode=True)
    >>> call2 = api.withdrawal.find(1235, sort_order='ASC', access_token='access_token_for_other_account', batch_mode=True)
    >>> response = api.batch.create(client_id, client_secret, [call1, call2])


About
-----

This package started as a part of `Django WePay Application
<https://github.com/lehins/django-wepay>`_, but I soon realized it could be
useful to other developers in Python community that do not use `Django
<https://djangoproject.com>`_. Originally it meant to be an extension of an
official `Python WePay SDK <https://github.com/wepay/Python-SDK>`_, but instead
it became a replacement. This package is also listed as a `third party Python
SDK on WePay <https://www.wepay.com/developer/resources/sdks>`_.

Status
------

Production.

Requirements
------------

* Python >= 2.7 or >= 3.2
* Registered Application with WePay `production <https://wepay.com>`_ site or
  it's `development <https://stage.wepay>`_ clone.
* `six <https://pypi.python.org/pypi/six>`_.
* `requests <http://docs.python-requests.org/en/latest/>`_ (optional):
* `mock <https://pypi.python.org/pypi/mock>`_ (optional, for tests only)

Installation
------------
::

    pip install python-wepay


Documentation
-------------

http://python-wepay.readthedocs.org/en/latest/index.html

License
-------

MIT licensed. See the bundled `LICENSE <https://github.com/lehins/python-wepay/blob/master/LICENSE>`_ file for more details.


Changelog
=========

1.4.0
-----

* Removed backward compatibility with official `Python WePay SDK <https://github.com/wepay/Python-SDK>`_.
* introduced `WePayHTTPError<wepay.exceptions.WePayHTTPError>`, which is a base exception for both `WePayClientError<wepay.exceptions.WePayClientError>` and `WePayServerError<wepay.exceptions.WePayServerError>`
* added `cached_property` decorator.
* changed they way calls are initialized. This change doesn't affect the way calls are made.

1.3.5
-----

* Fixed and improved error handling, new exceptions: `WePayClientError<wepay.exceptions.WePayClientError>` and `WePayServerError<wepay.exceptions.WePayServerError>`

1.3.4
-----

* Connection `timeout` can be specified on per call basis.

1.3.0
-----

* Python 3 compatible
* Calls are made using `requests <http://docs.python-requests.org/en/latest/>`_
  library by default (if installed), falls back to `urllib
  <https://docs.python.org/3/library/urllib.html#module-urllib>`_ if `requests`
  are not installed or if ``WePay`` is initialized with
  ``use_requests=False``.
* ``WePayConnectionError`` is raised
  in case there is a problem connecting to WePay server, ex. timeout.
* Addition of a full test suit.
* Minor:

  * 'original_ip' and 'original_device' params are now optional in
    `/credit_card/create`.
  * ``silent`` mode is more flexible.
  * Moved ``SubscriptionPlan`` and ``SubscriptionCharge`` to their own modules.
  * Moved ``WePayWarning`` over to ``wepay.exceptions`` module.

1.2.0
-----

* New API version 2014-01-08 changes are reflected in this SDK version:

  * implemented `/user/register` and `user/resend_confirmation` calls.
  * added `/account/get_update_uri` and `/account/get_reserve_details`
  * depricated `/account/add_bank`, `/account/balance`, `/account/get_tax`
    and `/account/set_tax` calls.

* restructured SDK in such a way that all API objects are separate classes, so
  as an example, if we have a WePay instance ``api = WePay()`` and we want to
  make a `/account/find` call, it will look like this ``api.account.find()``
  instead of ``api.account_find()`` (notice **.** instead of **_**), although in
  this version both are equivalent, latter one is depricated and will be removed
  in version 1.3. Despite these changes lookup calls will be the same, ex.
  ``api.account(12345)``.

* Added flexibility to use different API version per call basis. So it is now
  possible to make a depricated call like this: ``api.account.balance(1234,
  api_version='2011-01-15')``

* added ``batch_reference_id`` keyword argument to each call that accepts
  ``batch_mode``


1.1.2
-----

* Added required arguments to `/credit_card/create` call:

  * original_ip
  * original_device

1.1.0
-----

* Added subscription calls:

  * `/subscription_plan`
  * `/subscription`
  * `/subscription_charge`

* Few bug and spelling fixes.

1.0.0
-----

* Initial release


