{ "info": { "author": "Justin Mayfield", "author_email": "tooker@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Topic :: Software Development :: Libraries" ], "description": "syndicate\n===========\n_*A wrapper for REST APIs*_\n\n[![Maturity](https://img.shields.io/pypi/status/syndicate.svg)](https://pypi.python.org/pypi/syndicate)\n[![License](https://img.shields.io/pypi/l/syndicate.svg)](https://pypi.python.org/pypi/syndicate)\n[![Change Log](https://img.shields.io/badge/change-log-blue.svg)](https://github.com/mayfield/syndicate/blob/master/CHANGELOG.md)\n[![Build Status](https://semaphoreci.com/api/v1/projects/50fbd264-8014-4fbd-9295-c99c65c8b05a/533670/shields_badge.svg)](https://semaphoreci.com/mayfield/syndicate)\n[![Version](https://img.shields.io/pypi/v/syndicate.svg)](https://pypi.python.org/pypi/syndicate)\n\n\nAbout\n--------\n\nSyndicate is a library for using HTTP based REST APIs. This provides a means\nto generically handle serialization (JSON, XML) and URI mapping as seen in many\nof the REST APIs published these days. Currently Tastypie APIs are the primary\ntarget but the system should be compossible enough to work with other APIs if they\nwork roughly the same way.\n\n\nRequirements\n--------\n\n* Requests (sync mode)\n* aiohttp (async mode)\n\n\nInstallation\n--------\n\n python ./setup.py build\n python ./setup.py install\n\n\nCompatibility\n--------\n\n* Python 3.4+\n\n\nTODO\n--------\n\n* Unified authentication between HTTP adapters.\n* Documentation\n\n\nGetting Started\n--------\n\nSyndicate has two basic modes for communicating with an API, sync and async.\nThe sync mode uses the 'requests' library as the HTTP adapter and the async\nmode uses `aiohttp`. An adapter can be provided by the user if they have\ntheir own backend.\n\nIn either mode, your interface is a 'Service' instance, which facilitates\nauthentication, session management (via an adapter) and serialization.\n\n\nSynchronous Examples\n--------\n\n**Creating a connnection**\n\nInstantiate a service class with some basic descriptions of the remote API\nto get a persistent connection.\n\n```python\nimport syndicate\n\nbakery = syndicate.Service(uri='https://a.bakery.fake', urn='/api/v1/',\n auth=('mrpresident', '1000xlight_points'))\n```\n\n\n**Simple GET**\n\nFetch all the resources at https://a.bakery.fake/api/v1/cake/\n\n```python\nfor x in bakery.get('cake'):\n print(\"Cake is food:\", x)\n```\n\n\n**Adding a new resource**\n\n```python\nnew_owl = bakery.post('cake', {\n \"type\": \"chuck_norris\",\n \"name\": \"Round House\",\n \"scovilles\": 16000000001 # sorry resiniferatoxin\n})\n```\n\n**Non CRUD methods**\n\nIf your service has non CRUD methods, you can ask a service to \"do\" things\ndirectly. Let's \"BAKE /api/v1/cake/100\" with some instructions in the content\nbody.\n\n```python\nbakery.do('bake', 'cake', 100, temp=420, time=3600)\n```\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/mayfield/syndicate/", "keywords": "", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "syndicate", "package_url": "https://pypi.org/project/syndicate/", "platform": "", "project_url": "https://pypi.org/project/syndicate/", "project_urls": { "Homepage": "https://github.com/mayfield/syndicate/" }, "release_url": "https://pypi.org/project/syndicate/3.0.0/", "requires_dist": null, "requires_python": "", "summary": "A wrapper for REST APIs", "version": "3.0.0" }, "last_serial": 5243575, "releases": { "0.99.0": [ { "comment_text": "", "digests": { "md5": "33d2e30e3121b4d74a739360ef147e85", "sha256": "c550369f9bf4a9564da4294e3bd38ec0fd2586734dd061e6c2a0eabe54e0ba5f" }, "downloads": -1, "filename": "syndicate-0.99.0.tar.gz", "has_sig": false, "md5_digest": "33d2e30e3121b4d74a739360ef147e85", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7768, "upload_time": "2014-04-28T23:55:50", "url": "https://files.pythonhosted.org/packages/b5/35/3a25944e26e2d92825da5358f8e17ab241087b931aebaa61b580f21fc8bf/syndicate-0.99.0.tar.gz" } ], "0.99.1": [ { "comment_text": "", "digests": { "md5": "18b577aa30d7ed080bbedd248d3e5812", "sha256": "7d634be0ade9a032dab244d3c464b1c3c20f14b691cdab3d929bdddbd4aa5418" }, "downloads": -1, "filename": "syndicate-0.99.1.tar.gz", "has_sig": false, "md5_digest": "18b577aa30d7ed080bbedd248d3e5812", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8991, "upload_time": "2014-04-29T00:17:11", "url": "https://files.pythonhosted.org/packages/dd/11/cc7f9c21bcb8f6a86c6c8ae862419f10095ab9e72c045f234155848b62cd/syndicate-0.99.1.tar.gz" } ], "0.99.2": [ { "comment_text": "", "digests": { "md5": "521fc20268fb4db7ba3e8b64ebc3e4c5", "sha256": "3a7fd1f368e8733108b46f7846520aff0661412bbc992725ca01494e57d13343" }, "downloads": -1, "filename": "syndicate-0.99.2.tar.gz", "has_sig": false, "md5_digest": "521fc20268fb4db7ba3e8b64ebc3e4c5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9001, "upload_time": "2014-04-29T00:30:29", "url": "https://files.pythonhosted.org/packages/20/70/300e1b68f71317f0d5757569c035b0475e106d3033f66a0a58f4fed538ed/syndicate-0.99.2.tar.gz" } ], "0.99.3": [ { "comment_text": "", "digests": { "md5": "dec7d1938b4e2edb96afdeb747b92b5d", "sha256": "e600558d185e7d6f7c23b0c91eeb02246a459634e1183f5e59673e7267a9c736" }, "downloads": -1, "filename": "syndicate-0.99.3.tar.gz", "has_sig": false, "md5_digest": "dec7d1938b4e2edb96afdeb747b92b5d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9022, "upload_time": "2014-06-06T00:06:45", "url": "https://files.pythonhosted.org/packages/bb/4e/3147a339350180169360ba603cc9dfd07845cd35dda784b63c790e0d1803/syndicate-0.99.3.tar.gz" } ], "0.99.4": [ { "comment_text": "", "digests": { "md5": "9dc20212907de8c7f75cf7a4748e01ae", "sha256": "e85936aea6c33337249d7b4af5369bfd7736514f5dde561db8f1a0b5e89e0103" }, "downloads": -1, "filename": "syndicate-0.99.4.tar.gz", "has_sig": false, "md5_digest": "9dc20212907de8c7f75cf7a4748e01ae", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9083, "upload_time": "2014-06-06T22:05:56", "url": "https://files.pythonhosted.org/packages/be/22/ac29f3739708530587affaa3ca01c29b39eb1ee470fa8d9fafc06f60d2e0/syndicate-0.99.4.tar.gz" } ], "0.99.5": [ { "comment_text": "", "digests": { "md5": "48768e589ce31cb8a3e17fb077e600f3", "sha256": "fcdc1b73306fde4dba29622266cb2b0a16fd722cd6aa9cbb9013c1b4bc4f1e24" }, "downloads": -1, "filename": "syndicate-0.99.5.tar.gz", "has_sig": false, "md5_digest": "48768e589ce31cb8a3e17fb077e600f3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9095, "upload_time": "2014-06-17T08:38:14", "url": "https://files.pythonhosted.org/packages/a1/31/9694d1145fdd6b9769838eeb1184cae60b2090cec90e5e3d39179d86e5af/syndicate-0.99.5.tar.gz" } ], "0.99.6": [ { "comment_text": "", "digests": { "md5": "ba1d2de1e762e1176993722e95a8064e", "sha256": "2e29de0b47cdb46bc80fbd71252423f2afa8795847b9e36af712a95cdf8c7815" }, "downloads": -1, "filename": "syndicate-0.99.6.tar.gz", "has_sig": false, "md5_digest": "ba1d2de1e762e1176993722e95a8064e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9128, "upload_time": "2014-06-18T17:48:56", "url": "https://files.pythonhosted.org/packages/b4/c4/77717d67f5280baee96d88a8a15416794da66403698d0b503e48764f8521/syndicate-0.99.6.tar.gz" } ], "0.99.7": [ { "comment_text": "", "digests": { "md5": "aeaded76db9148add36d11b982d42f07", "sha256": "9f4e39ef87f03a4a217c24520aee3c22f32cd16d5a4455003e57a4b7383bb340" }, "downloads": -1, "filename": "syndicate-0.99.7.tar.gz", "has_sig": false, "md5_digest": "aeaded76db9148add36d11b982d42f07", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9263, "upload_time": "2014-06-18T17:57:43", "url": "https://files.pythonhosted.org/packages/7b/6f/735019386d1d8d4409c3ec135c3d85dee23bd7f8e40aff92d2f54c6f51d0/syndicate-0.99.7.tar.gz" } ], "0.99.8": [ { "comment_text": "", "digests": { "md5": "5e4baf334f3b1980778c2b2edf502f49", "sha256": "8aef4f1e3b3264b458e82d91d80787ec49034e92fda54ee8dcd67ae1cbc694dc" }, "downloads": -1, "filename": "syndicate-0.99.8.tar.gz", "has_sig": false, "md5_digest": "5e4baf334f3b1980778c2b2edf502f49", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9341, "upload_time": "2014-06-27T20:46:36", "url": "https://files.pythonhosted.org/packages/af/42/0ab65f7de88b89f1f357758e267d400a4f480e4a9b71b2bfc7806c2bef71/syndicate-0.99.8.tar.gz" } ], "0.99.9": [ { "comment_text": "", "digests": { "md5": "0330378a8d281b22e4022dcaf266ad8a", "sha256": "1d1ec1caf7a8fc4edda9eae08c2bbc22b749297cdc13eb4e2cc0147fe160dcc7" }, "downloads": -1, "filename": "syndicate-0.99.9.tar.gz", "has_sig": false, "md5_digest": "0330378a8d281b22e4022dcaf266ad8a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11705, "upload_time": "2014-11-05T20:27:01", "url": "https://files.pythonhosted.org/packages/97/79/0db6ef05d4c118140e92746bc1fdd7a907ac6e9f5bc2a6c00e724871f098/syndicate-0.99.9.tar.gz" } ], "1.0.0": [ { "comment_text": "", "digests": { "md5": "f0a6a7737ddd84bf2aeaa6fb2fba3ed9", "sha256": "951d6c24bbb8a7576ecc4e3e23c9c3e755bcc80de59d2f68b15163e8ceea0c6d" }, "downloads": -1, "filename": "syndicate-1.0.0.tar.gz", "has_sig": false, "md5_digest": "f0a6a7737ddd84bf2aeaa6fb2fba3ed9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11873, "upload_time": "2015-01-25T12:01:57", "url": "https://files.pythonhosted.org/packages/1f/e6/bee78eb3ce5ea9ed204be61994a2d6ff0a1fa02c2d3d33433e08f6646b13/syndicate-1.0.0.tar.gz" } ], "1.1.0": [ { "comment_text": "", "digests": { "md5": "855608f86862d662b3c93884ac9f873f", "sha256": "3dc5ce125f75b63095c3ce57c8e1478a10f9087ed8bbad9f01da5d701202a92c" }, "downloads": -1, "filename": "syndicate-1.1.0.tar.gz", "has_sig": false, "md5_digest": "855608f86862d662b3c93884ac9f873f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12397, "upload_time": "2015-09-09T22:40:48", "url": "https://files.pythonhosted.org/packages/3d/46/f5b59bdbb2c5b98be4144fe341dc7aaec14f4afe7f962d78e7583025afb1/syndicate-1.1.0.tar.gz" } ], "1.2.0": [ { "comment_text": "", "digests": { "md5": "198a921e1501d11ab2a83c918417bd8c", "sha256": "e9c7abfe65797ef35c32acce2aded2a81b4af830f41825c34e21aa986a361638" }, "downloads": -1, "filename": "syndicate-1.2.0.tar.gz", "has_sig": false, "md5_digest": "198a921e1501d11ab2a83c918417bd8c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12286, "upload_time": "2015-09-10T17:52:09", "url": "https://files.pythonhosted.org/packages/38/cc/94a87a848b8091a1ac3639ce984969796291ff1d28665c0724b460c9841b/syndicate-1.2.0.tar.gz" } ], "1.3.0": [ { "comment_text": "", "digests": { "md5": "8161579baa032f5d130ecf732cb24fd9", "sha256": "5d91a9ef76d3e07a19129cf48afe013ee0de932102bd60278bed3d89c596842a" }, "downloads": -1, "filename": "syndicate-1.3.0.tar.gz", "has_sig": false, "md5_digest": "8161579baa032f5d130ecf732cb24fd9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10265, "upload_time": "2015-09-22T03:22:26", "url": "https://files.pythonhosted.org/packages/c4/47/ad1cedaf84de0aeb0bc5bf3e94b76722a5cb6323e1b8e0675cb90e50f9fa/syndicate-1.3.0.tar.gz" } ], "1.4.0": [ { "comment_text": "", "digests": { "md5": "522949a0232e629efa9d2909f134c4f9", "sha256": "a9df9cbef12f576a2154e7f378b5145256365ed02c261e089469bbd9943934d1" }, "downloads": -1, "filename": "syndicate-1.4.0.tar.gz", "has_sig": false, "md5_digest": "522949a0232e629efa9d2909f134c4f9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10587, "upload_time": "2015-10-24T08:07:59", "url": "https://files.pythonhosted.org/packages/63/92/00e1e04bce99007b89f0f4c11a5b9a6bbe260dbc0b364f5f8942001148ae/syndicate-1.4.0.tar.gz" } ], "2": [ { "comment_text": "", "digests": { "md5": "76729db9d147f53ee771bb54700238aa", "sha256": "b59e279a432a77ec74ed48f911259cc0391f31ec8c0a951944dafa19af81d644" }, "downloads": -1, "filename": "syndicate-2.tar.gz", "has_sig": false, "md5_digest": "76729db9d147f53ee771bb54700238aa", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10063, "upload_time": "2015-11-15T23:29:41", "url": "https://files.pythonhosted.org/packages/33/a8/0ffb6805f9f510d9c36d4e6b04adeb6ece3bd7b9e5dfd620142615d21e48/syndicate-2.tar.gz" } ], "2.1": [ { "comment_text": "", "digests": { "md5": "82fa46670d867386229360bae3eac744", "sha256": "90b44e242dafcf61977aab41f9a5239669a506e2cfa5f1ca474300514108f356" }, "downloads": -1, "filename": "syndicate-2.1.tar.gz", "has_sig": false, "md5_digest": "82fa46670d867386229360bae3eac744", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10712, "upload_time": "2016-11-03T19:57:35", "url": "https://files.pythonhosted.org/packages/1b/e3/defc7492e2097546d553ff1a5e289e501f4ef91eed0401fc0add5bdee3a3/syndicate-2.1.tar.gz" } ], "2.1.1": [ { "comment_text": "", "digests": { "md5": "863efcf96f90b2e1cb141c61ecb9060a", "sha256": "addf1d6fe9297f974e7dc33d589a98b6a42967fc91a8b76cc2f4503ac5668ed3" }, "downloads": -1, "filename": "syndicate-2.1.1.tar.gz", "has_sig": false, "md5_digest": "863efcf96f90b2e1cb141c61ecb9060a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10720, "upload_time": "2016-11-03T20:05:40", "url": "https://files.pythonhosted.org/packages/58/bd/8ee621c54b4575888e3082e667a43e7c6f6789ba6b76e1c65ff09a46da93/syndicate-2.1.1.tar.gz" } ], "2.1.2": [ { "comment_text": "", "digests": { "md5": "eb35289d25bdfea49c77336eb55054cb", "sha256": "74ab58a7e91ab601aa7d656dbd32b374679ca1f24ce8f6929d91c7255e2162e4" }, "downloads": -1, "filename": "syndicate-2.1.2.tar.gz", "has_sig": false, "md5_digest": "eb35289d25bdfea49c77336eb55054cb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10763, "upload_time": "2016-11-05T17:59:16", "url": "https://files.pythonhosted.org/packages/18/29/8f86546a02f0372fcae4aad4aefaf0ebff22548d6dc7d7d9a8ee04b0c47b/syndicate-2.1.2.tar.gz" } ], "2.1.3": [ { "comment_text": "", "digests": { "md5": "3a25c7d829ce529f1a05f5b73835fa7b", "sha256": "28a7064a0aacf70fcb07d78a3cfe6ccee5a702926ea91a05800d8f93efb6388a" }, "downloads": -1, "filename": "syndicate-2.1.3.tar.gz", "has_sig": false, "md5_digest": "3a25c7d829ce529f1a05f5b73835fa7b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9320, "upload_time": "2017-04-28T17:41:35", "url": "https://files.pythonhosted.org/packages/b1/3b/2b91743dc2e0ea8bac3a29b1f311d1622761ee2fd6c2cb2f34991bb9cf40/syndicate-2.1.3.tar.gz" } ], "2.2.0": [ { "comment_text": "", "digests": { "md5": "6ad9355b7379db74f33476f4f8a9f0af", "sha256": "3bc8d11358c31383de0820acb08633550c05093435b419f66b817cc221287a62" }, "downloads": -1, "filename": "syndicate-2.2.0.tar.gz", "has_sig": false, "md5_digest": "6ad9355b7379db74f33476f4f8a9f0af", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10703, "upload_time": "2019-01-07T19:57:46", "url": "https://files.pythonhosted.org/packages/76/1e/c41aeb1a26412dce1f89f14e1bf0986b77bf3a2376fd9f92be2f48a1e138/syndicate-2.2.0.tar.gz" } ], "2.2.1": [ { "comment_text": "", "digests": { "md5": "943d35d443ecbc78b00920926b2b181c", "sha256": "273530025f15cca80fdc1331deb2a24e37e0ddae45c6e4f0795986441003fc1d" }, "downloads": -1, "filename": "syndicate-2.2.1.tar.gz", "has_sig": false, "md5_digest": "943d35d443ecbc78b00920926b2b181c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10699, "upload_time": "2019-01-09T20:51:28", "url": "https://files.pythonhosted.org/packages/70/62/84362ee1081d1334c9dd8577cac6be47b857e55b3c33dbd2753660e3f225/syndicate-2.2.1.tar.gz" } ], "2.3.0": [ { "comment_text": "", "digests": { "md5": "9de1bfd8345041c4c930a04b7043a70c", "sha256": "d5d07e2c8613d6d310fa219d602c3f400d1371894412e9a602dd84c182b41604" }, "downloads": -1, "filename": "syndicate-2.3.0.tar.gz", "has_sig": false, "md5_digest": "9de1bfd8345041c4c930a04b7043a70c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10732, "upload_time": "2019-01-28T19:19:59", "url": "https://files.pythonhosted.org/packages/b7/fe/2660e5bfce4352ed834e510446e6832e6d365e9339724941415115276456/syndicate-2.3.0.tar.gz" } ], "3.0.0": [ { "comment_text": "", "digests": { "md5": "202ecdf680ece19fd7c8958fb12e885b", "sha256": "37c7f7f69b1b11ca0b8195f78a2c81f15203c90b811e8e0b4de52dae93fead90" }, "downloads": -1, "filename": "syndicate-3.0.0.tar.gz", "has_sig": false, "md5_digest": "202ecdf680ece19fd7c8958fb12e885b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10567, "upload_time": "2019-05-08T16:23:01", "url": "https://files.pythonhosted.org/packages/6d/76/f0729e827e98f9def356221cfaf09f6707f846ea3812b7f913f1306ce83c/syndicate-3.0.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "202ecdf680ece19fd7c8958fb12e885b", "sha256": "37c7f7f69b1b11ca0b8195f78a2c81f15203c90b811e8e0b4de52dae93fead90" }, "downloads": -1, "filename": "syndicate-3.0.0.tar.gz", "has_sig": false, "md5_digest": "202ecdf680ece19fd7c8958fb12e885b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10567, "upload_time": "2019-05-08T16:23:01", "url": "https://files.pythonhosted.org/packages/6d/76/f0729e827e98f9def356221cfaf09f6707f846ea3812b7f913f1306ce83c/syndicate-3.0.0.tar.gz" } ] }