{ "info": { "author": "AfterShip", "author_email": "support@aftership.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.6", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.2", "Programming Language :: Python :: 3.3", "Programming Language :: Python :: 3.4", "Topic :: Software Development" ], "description": "About aftership-python\n======================\n\naftership-python is Python SDK (module) for `AfterShip API `_.\nModule provides clean and elegant way to access API endpoints.\n\nInstallation\n============\n\nVia pip\n-------\n\nRun the following:\n\n.. code-block:: bash\n\n $ pip install aftership\n\nVia source code\n---------------\n\nDownload the code archive, unzip it, create/activate `virtualenv `_, go to the source root directory, then run:\n\n.. code-block:: bash\n\n $ python setup.py install\n\nUsage\n=====\n\nQuick Start\n-----------\n\nThe following code gets list of supported couriers\n\n.. code-block:: python\n\n import aftership\n api = aftership.APIv4('AFTERSHIP_API_KEY')\n couriers = api.couriers.all.get()\n\nGet API object\n--------------\n\nImport aftership module and obtain APIv4 object. Valid API key must be provided.\n\n.. code-block:: python\n\n import aftership\n api = aftership.APIv4('AFTERSHIP_API_KEY')\n\nAPIv4 object\n------------\n\nAPIv4 object is used to make API calls. Object constructor:\n\n.. code-block:: python\n\n class aftership.APIv4(key, max_calls_per_sec=10, datetime_convert=True)\n\n#. **key** is AfterShip API key\n#. **max_calls_per_sec** represents maximum number of calls provided for each second (10 is a limit for single client, but you might want to set less if you have multiple parallel API objects)\n#. **datetime_convert** provides timestamp strings conversion to datetime in API output\n\nMake API calls\n--------------\n\nThe module provides direct bindings to API calls: https://www.aftership.com/docs/api/4\n\nEach call consists of three parts:\n\n#. **Positional arguments** (goes after api.aftership.com/v4/, separated by slash \"/\")\n#. **Named arguments** (listed in Request \u2014> Parameters section)\n#. **HTTP Method** (GET, POST, PUT or DELETE)\n\nThe following convention is used to construct a call:\n\n.. code-block:: python\n\n .positional.arguments.(*more_positional_arguments, **named_arguments)\n\nThe code above makes a call to /positional/arguments/... endpoint with named arguments passed in request body as JSON or HTTP query (depending on HTTP method).\n\nAPI calls examples\n------------------\n\nThe following code creates, modifies and deletes tracking:\n\n.. code-block:: pycon\n\n >>> import aftership\n >>> api = aftership.APIv4(API_KEY)\n >>> slug = 'russian-post'\n >>> number = '65600077151512'\n\n # create tracking\n # https://www.aftership.com/docs/api/4/trackings/post-trackings\n >>> api.trackings.post(tracking=dict(slug=slug, tracking_number=number, title=\"Title\"))\n {u'tracking': { ... }}\n\n # get tracking by slug and number, return 'title' and 'created_at' field\n # https://www.aftership.com/docs/api/4/trackings/get-trackings-slug-tracking_number\n >>> api.trackings.get(slug, number, fields=['title', 'created_at'])\n {u'tracking': { ... }}\n\n # change tracking title\n # https://www.aftership.com/docs/api/4/trackings/put-trackings-slug-tracking_number\n >>> api.trackings.put(slug, number, tracking=dict(title=\"Title (changed)\"))\n {u'tracking': { ... }}\n\n # delete tracking\n # https://www.aftership.com/docs/api/4/trackings/delete-trackings\n >>> api.trackings.delete(slug, number)\n {u'tracking': { ... }}\n\nPositional arguments\n--------------------\n\nPositional arguments passed in the following forms:\n\n#. APIv4 object attributes\n#. APIv4 object keys\n#. HTTP Method arguments\n\nAPIv4 object attributes used to represent constant parts of the endpoint, while HTTP Method arguments are used for variable parts, e.g.:\n\n.. code-block:: python\n\n api.trackings.get('russian-post', '65600077151512')\n\nPositional arguments passed as keys are useful if they are stored in variables and followed by constant value, e.g.:\n\n.. code-block:: python\n\n api.trackings['russian-post']['65600077151512'].retrack.post()\n\nNamed arguments\n---------------\n\nNamed arguments passed as keyword arguments of HTTP Methods calls.\nComma-separated values strings could be passed as [lists], timestamp strings could be passed as regular datetime objects, e.g.:\n\n.. code-block:: python\n\n import datetime\n ...\n api.trackings.get(created_at_min=datetime.datetime(2014, 9, 1), fields=['title', 'order_id'])\n\nHTTP Method arguments\n---------------------\n\nThe following HTTP methods are supported:\n\n#. get()\n#. post()\n#. put()\n#. delete()\n\nEach method return either JSON of 'data' field or throws an aftership.APIv4RequestException.\naftership-python relies on Requests library and ones should expect `Requests exceptions `_.\n\nAPIv4RequestException\n---------------------\n\nAn exception is throwed on errors. The following methods are provided to get error details:\n\n#. code()\n#. type()\n#. message()\n\nEach functions returns appropriate value from 'meta' field. Check `errors documentation `_ for more details.\nCode example:\n\n.. code-block:: python\n\n try:\n api = aftership.APIv4('FAKE_API_KEY')\n api.couriers.get()\n except aftership.APIv4RequestException as error:\n # FAKE_API_KEY will result in Unauthorized (401) error\n print 'Error:', error.code(), error.type(), error.message()", "description_content_type": null, "docs_url": null, "download_url": "https://github.com/AfterShip/aftership-python/tarball/0.2", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/AfterShip/aftership-python", "keywords": "aftership api binding tracking track post mail airmail logistics shipping", "license": "MIT", "maintainer": null, "maintainer_email": null, "name": "aftership", "package_url": "https://pypi.org/project/aftership/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/aftership/", "project_urls": { "Download": "https://github.com/AfterShip/aftership-python/tarball/0.2", "Homepage": "https://github.com/AfterShip/aftership-python" }, "release_url": "https://pypi.org/project/aftership/0.2/", "requires_dist": null, "requires_python": null, "summary": "Python SDK of AfterShip API", "version": "0.2" }, "last_serial": 1812756, "releases": { "0.1": [ { "comment_text": "", "digests": { "md5": "ec0a6d37798becea39de2b6f1ee693b3", "sha256": "bb83acc13b90b49833f1bdb35bce1ae3e1877473ca5c26a7e6dd0b2e0ebe2377" }, "downloads": -1, "filename": "aftership-0.1.tar.gz", "has_sig": false, "md5_digest": "ec0a6d37798becea39de2b6f1ee693b3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6199, "upload_time": "2014-09-24T08:53:31", "url": "https://files.pythonhosted.org/packages/6c/b4/1da9695500f47bf1209724fbfa3246fe5adff707fe43a90e0343f0907812/aftership-0.1.tar.gz" } ], "0.2": [ { "comment_text": "", "digests": { "md5": "1b9d745cd9842b11159efeac669ca5b4", "sha256": "19068a481f5b1f123c60b01b0d5e400f54f642be5ca4a5a35fa1eac396298766" }, "downloads": -1, "filename": "aftership-0.2.tar.gz", "has_sig": false, "md5_digest": "1b9d745cd9842b11159efeac669ca5b4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6404, "upload_time": "2015-11-12T09:12:26", "url": "https://files.pythonhosted.org/packages/88/07/53d7da72a52244d0e17c00b06dc1da967dfb4b31b08819c5b8891b54c192/aftership-0.2.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "1b9d745cd9842b11159efeac669ca5b4", "sha256": "19068a481f5b1f123c60b01b0d5e400f54f642be5ca4a5a35fa1eac396298766" }, "downloads": -1, "filename": "aftership-0.2.tar.gz", "has_sig": false, "md5_digest": "1b9d745cd9842b11159efeac669ca5b4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6404, "upload_time": "2015-11-12T09:12:26", "url": "https://files.pythonhosted.org/packages/88/07/53d7da72a52244d0e17c00b06dc1da967dfb4b31b08819c5b8891b54c192/aftership-0.2.tar.gz" } ] }