{ "info": { "author": "Hparfr ", "author_email": "roulier@hpar.fr", "bugtrack_url": null, "classifiers": [], "description": "Roulier\n===\n\nRoulier is a shipping library written in Python for sending parcels.\nRoulier will get a label + tracking number to your carrier for you.\n\n\n![big picture](overview.svg)\n\n\n* Roulier runs on your server and call each carrier API directly.\n* You have to use your own credentials provided by each carriers.\n* Roulier is Open Source software, AGPL-3\n* Roulier integrate a multitude of carriers : Laposte, Geodis, DPD, K&N... more to come.\n\n\n\n### Usage\n\n```python\nfrom roulier import roulier\n\nlaposte = roulier.get('laposte')\n\nresponse = laposte.get_label({\n\t\"auth\": { \n\t\t\"login\": \"12345\",\n\t\t\"password\": \"password\",\n\t},\n\t\"service\": {\n\t\t\"productCode\": \"COL\"\n\t},\n\t\"parcels\": [{\n\t\t\"weight\": 3.4,\n\t}],\n\t\"to_address\": {\n\t\t\"firstName\": \"Hparfr\"\n\t\t\"street1\": \"35 b Rue Montgolfier\"\n\t\t\"city\": \"Villeurbanne\"\n \"country\": \"FR\",\n \"zip\": \"69100\"\n \t},\n \t\"from_address\": {\n\t\t\"fristName\": \"Akretion France\"\n\t\t\"street1\": \"35 b Rue Montgolfier\"\n\t\t\"city\": \"Villeurbanne\"\n \"country\": \"FR\",\n \"zip\": \"69100\"\n \t},\n})\n\n\nprint(response)\n\n```\n\n\nGet supported carriers:\n```python\nfrom roulier import roulier\nprint(roulier.get_carriers())\n```\n\nTo get the full list of parameters:\n```python\nfrom pprint import pprint\nfrom roulier import roulier\n\n\nlaposte = roulier.get('laposte')\npprint(laposte.api())\n\n# ...\n\n```\n\n### Return\n\n```python\nfrom roulier import roulier\nlaposte = roulier.get('laposte')\napi = laposte.api()\napi['auth']['login'] = '12345'\n...\nprint(laposte.get_label(api))\n\n# {\n#\tlabel: {\n#\t\t'name':'label',\n#\t\t'type': 'zpl',\n#\t\t'data': 'base64 here', #main label\n#\t},\n#\ttracking: {\n#\t\t'number': 'tracking code here',\n#\t},\n#\tparcels: [{\n#\t\t{ 'id': 1,\n#\t\t'reference: '',\n#\t\t'number': 'tracking code here',\n#\t\t'label': {\n#\t\t\t'data': '', 'type': 'zpl',\n#\t\t\t'name': 'label 1 '\n#\t\t}\n#\t}],\n#\tannexes: [\n#\t\t{\n#\t\t\t'name': 'cn23',\n#\t\t\t'type': 'pdf',\n#\t\t\t'data': 'base64 here'\n#\t\t}, ...\n#\t],\n#}\n```\n\n\n\n### Advanced usage for Laposte\n\nUsefull for debugging: get the xml before the call, send an xml directly, analyse the response\n\n```python\nfrom roulier import roulier\nlaposte = roulier.get('laposte')\n\n#0) create dict for the request as usually \napi = laposte.api();\napi['auth']['login'] = '12345'\n...\n\n# 1) get the sls xml: \nreq = laposte.encoder.encode(api, 'generateLabelRequest')\n# req['body'] contains the xml payload (...)\n\n# 2) get the soap message\nsoap_request = laposte.ws.soap_wrap(req['body'], req['headers'])\n#soap_request is a string (xml)\n\n# 3) send xml_request to ws\nsoap_response = laposte.ws.send_request(xml_request)\n# soap_response is a Requests response\n\n# 4) interpret the response\ndata = laposte.ws.handle_response(soap_response)\n\n# 5)get the raw Request Response:\ndata['response'] \n\n\n```\nIt's more or less the same for every carrier with SOAP webservice.\n\n\nValidate input\n\nFor input validate we use [Cerberus](http://docs.python-cerberus.org/en/stable/)\n```python\nfrom roulier import roulier\nlaposte = roulier.get('laposte')\n\n# get a ready to fill dict with default values:\nlaposte.api()\n\n\n# advanced usage : \nfrom roulier.carriers.laposte.laposte_api import LaposteApi\nl_api = LaposteApi()\n\n# get the full schema:\nl_api.api_schema()\n\n# validate a dict against the schema\na_dict = { 'auth': {'login': '', 'password': 'password'}, ... }\nl_api.errors(a_dict)\n# > {'auth': [{'login': ['empty values not allowed']}], ...}\n\n# get a part of schema (like 'parcel')\nl_api._parcel()\n```\n\n\n### Contributors\n\n\n* [@hparfr](https://github.com/hparfr) ([Akretion.com](https://akretion.com))\n* [@damdam-s](https://github.com/damdam-s) ([Camp2Camp.com](http://camptocamp.com))\n* [@bealdav](https://github.com/bealdav) ([Akretion.com](https://akretion.com))\n\n\n### Dependencies\n\n* [Cerberus](http://docs.python-cerberus.org/) - input validation and normalization\n* [lxml](http://lxml.de/) - XML parsing\n* [Jinja2](http://jinja.pocoo.org/) - templating\n* [Requests](http://docs.python-requests.org/) - HTTP requests\n* [zplgrf](https://github.com/kylemacfarlane/zplgrf) - PNG to ZPL conversion\n* [unidecode](https://pypi.python.org/pypi/Unidecode) - Remove accents from ZPL\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "https://github.com/akretion/roulier/archive/0.3.9.zip", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/akretion/roulier", "keywords": "carrier,logistics,delivery", "license": "", "maintainer": "", "maintainer_email": "", "name": "roulier", "package_url": "https://pypi.org/project/roulier/", "platform": "", "project_url": "https://pypi.org/project/roulier/", "project_urls": { "Download": "https://github.com/akretion/roulier/archive/0.3.9.zip", "Homepage": "https://github.com/akretion/roulier" }, "release_url": "https://pypi.org/project/roulier/0.3.9/", "requires_dist": [ "lxml", "Jinja2", "requests", "cerberus", "zplgrf", "unidecode" ], "requires_python": "", "summary": "Label parcels without pain", "version": "0.3.9" }, "last_serial": 5820969, "releases": { "0.0.0": [ { "comment_text": "", "digests": { "md5": "9c1da5a04228e7ff0e9e1117a529c134", "sha256": "6fb5a948171c223e915628fc7bb47cfdc204b06d550607ed32fff9a19ef15526" }, "downloads": -1, "filename": "roulier-0.0.0.tar.gz", "has_sig": false, "md5_digest": "9c1da5a04228e7ff0e9e1117a529c134", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9699, "upload_time": "2016-09-26T14:49:13", "url": "https://files.pythonhosted.org/packages/17/b1/3c14218b325d458e27e540412ad85828df793001dd3870cbdcf512766f8f/roulier-0.0.0.tar.gz" } ], "0.0.1": [ { "comment_text": "", "digests": { "md5": "b4384563b8db0065028b36a8a97a0e00", "sha256": "cca82d63afd5eb74319233af53ce39aca7a50fcaab9483392a7700e6d53a1a2e" }, "downloads": -1, "filename": "roulier-0.0.1.tar.gz", "has_sig": false, "md5_digest": "b4384563b8db0065028b36a8a97a0e00", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9688, "upload_time": "2016-10-12T08:42:03", "url": "https://files.pythonhosted.org/packages/3e/68/089d4c2ad3756981833a49c1cead250fd05e4ed668deb7fc0b8ba0f0b9fe/roulier-0.0.1.tar.gz" } ], "0.0.2rc0": [ { "comment_text": "", "digests": { "md5": "8ff8e0038a0215d7ecc74f262c450cd0", "sha256": "536709d4b73e191774310ec38aa65ff300f79af0fdc5502b15493a67b5208793" }, "downloads": -1, "filename": "roulier-0.0.2rc0.tar.gz", "has_sig": false, "md5_digest": "8ff8e0038a0215d7ecc74f262c450cd0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14061, "upload_time": "2016-10-26T09:31:48", "url": "https://files.pythonhosted.org/packages/3b/b8/e11748c5dd9e385c56cb8438ec0583ff7ac2b40165082b105afaea0bd3b9/roulier-0.0.2rc0.tar.gz" } ], "0.0.2rc1": [ { "comment_text": "", "digests": { "md5": "344751363ffe234ac4d97b0252c55735", "sha256": "b4d69da1f010959af67679fdc2924cf214b89758bf92ab57e868ae076a2ba388" }, "downloads": -1, "filename": "roulier-0.0.2rc1.tar.gz", "has_sig": false, "md5_digest": "344751363ffe234ac4d97b0252c55735", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14960, "upload_time": "2016-12-01T09:04:15", "url": "https://files.pythonhosted.org/packages/e1/da/58dcbac71a6d3fe1f091194394745f89b2aa675a5a8d2280d323c2d8d945/roulier-0.0.2rc1.tar.gz" } ], "0.0.2rc2": [ { "comment_text": "", "digests": { "md5": "18535538964c08dad015355c7183f757", "sha256": "ecba0be4179b0cccc172273b30afe0625f8cd7eb6b15c0d2b080a4931b00a3a2" }, "downloads": -1, "filename": "roulier-0.0.2rc2.tar.gz", "has_sig": false, "md5_digest": "18535538964c08dad015355c7183f757", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15202, "upload_time": "2016-12-07T13:43:26", "url": "https://files.pythonhosted.org/packages/e2/73/dba983d8c295030204e4c86033f5d52052fb126e657a6c4b473a9cafe886/roulier-0.0.2rc2.tar.gz" } ], "0.0.2rc3": [ { "comment_text": "", "digests": { "md5": "73844805efcee14ab8aad8a33f5cafd2", "sha256": "3e5ff88325ac478674fd97c31f4e436c5453bc47e4e1379f0b5c04de67855aed" }, "downloads": -1, "filename": "roulier-0.0.2rc3.tar.gz", "has_sig": false, "md5_digest": "73844805efcee14ab8aad8a33f5cafd2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18282, "upload_time": "2016-12-14T12:42:17", "url": "https://files.pythonhosted.org/packages/ae/8a/c0940e50e1f3713918a373dbc8bc01eac869c47c2f9dc9baef1982f52ccf/roulier-0.0.2rc3.tar.gz" } ], "0.1.0": [ { "comment_text": "", "digests": { "md5": "a45d1544d873ac8c516743b43615b2f8", "sha256": "85acef398d14a81f306cced293e05243f8da1e42df0a395da410d9649fa359c8" }, "downloads": -1, "filename": "roulier-0.1.0.tar.gz", "has_sig": false, "md5_digest": "a45d1544d873ac8c516743b43615b2f8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18722, "upload_time": "2016-12-19T16:35:14", "url": "https://files.pythonhosted.org/packages/79/d3/fbe54b91d46f1bc2c5cd8bbd94deb6bd70e340287245bd71e9458386ce55/roulier-0.1.0.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "161a3b1a2cadb091b95f3ee8d1fc8267", "sha256": "01ffaa9da69a1c4f2b912d6bb14f643a32849edae50e8f1e80d28b191239bcd4" }, "downloads": -1, "filename": "roulier-0.1.1-py2-none-any.whl", "has_sig": false, "md5_digest": "161a3b1a2cadb091b95f3ee8d1fc8267", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 40473, "upload_time": "2017-03-20T16:31:03", "url": "https://files.pythonhosted.org/packages/59/da/90a4dc7424c30079004f3b94bd67afe4cf9839ef619f53e432422f608900/roulier-0.1.1-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "95d5c5b2dcecdb0e1fb046640597d5eb", "sha256": "772a4515d509b63d91cc120fbd888f5843a3e84b16a3a4fe5b69406de2590a50" }, "downloads": -1, "filename": "roulier-0.1.1.tar.gz", "has_sig": false, "md5_digest": "95d5c5b2dcecdb0e1fb046640597d5eb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21197, "upload_time": "2017-03-20T16:31:06", "url": "https://files.pythonhosted.org/packages/1d/f3/1af3eff61a59efb5bea5eb5cc716459c46c540a28bfcc69c222096c343d1/roulier-0.1.1.tar.gz" } ], "0.1.1rc0": [ { "comment_text": "", "digests": { "md5": "ee91f40acdae4395040ef1144f3e3b0c", "sha256": "8a856d6f9b2222994edac0489c28cd4ce60c529f634eab54985c4e31b2d5516d" }, "downloads": -1, "filename": "roulier-0.1.1rc0.tar.gz", "has_sig": false, "md5_digest": "ee91f40acdae4395040ef1144f3e3b0c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18722, "upload_time": "2016-12-29T11:20:14", "url": "https://files.pythonhosted.org/packages/90/6d/749f3a3f61f6f68aef94c472cd54a52bbbdcb6b4c77b4fddf3e85c2c2cf6/roulier-0.1.1rc0.tar.gz" } ], "0.1.1rc1": [ { "comment_text": "", "digests": { "md5": "75d5c0780dc2a9d4ec79bab6108b4b0e", "sha256": "d47320b80108215ef534b5b4e409123ea8984f4d424c8bff67e7adac06d9fe4f" }, "downloads": -1, "filename": "roulier-0.1.1rc1.tar.gz", "has_sig": false, "md5_digest": "75d5c0780dc2a9d4ec79bab6108b4b0e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21322, "upload_time": "2017-01-10T10:31:36", "url": "https://files.pythonhosted.org/packages/46/c7/40d30e42a9b5d456ea92729cccf2c00fa37f8fe5ac7bfd227fc105311574/roulier-0.1.1rc1.tar.gz" } ], "0.1.1rc2": [ { "comment_text": "", "digests": { "md5": "2d10611fe4f9ae51bf2fc486bde59e7b", "sha256": "70c43a38f2ec66ccff24ca85a69810324809d148c88f225d15180c9d3ed6230c" }, "downloads": -1, "filename": "roulier-0.1.1rc2.tar.gz", "has_sig": false, "md5_digest": "2d10611fe4f9ae51bf2fc486bde59e7b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21323, "upload_time": "2017-01-13T19:22:41", "url": "https://files.pythonhosted.org/packages/87/fb/ee0293bd84c9a857ddb375d96356c173c15dad9c1a5b8d52da7445d391f5/roulier-0.1.1rc2.tar.gz" } ], "0.1.1rc3": [ { "comment_text": "", "digests": { "md5": "91448a553dfc40bab78438144ccd0756", "sha256": "e8ce4fb84947d19b2325a4147fefd7a699779ff2ba2fbc15bd675f474b4538ac" }, "downloads": -1, "filename": "roulier-0.1.1rc3.tar.gz", "has_sig": false, "md5_digest": "91448a553dfc40bab78438144ccd0756", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21337, "upload_time": "2017-01-17T10:49:45", "url": "https://files.pythonhosted.org/packages/d8/1f/4a1526543433026f1fa2a595aa5e9ccae6b6b387a209c5a81a47bc6f470e/roulier-0.1.1rc3.tar.gz" } ], "0.1.1rc5": [ { "comment_text": "", "digests": { "md5": "13468a991d3b38c3ccaf22fe76771cce", "sha256": "15ccd9165df9190e6e2f1b3de73776b282f5063479f1c3d94d63abc00d53ea4f" }, "downloads": -1, "filename": "roulier-0.1.1rc5.tar.gz", "has_sig": false, "md5_digest": "13468a991d3b38c3ccaf22fe76771cce", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21791, "upload_time": "2017-01-17T17:32:51", "url": "https://files.pythonhosted.org/packages/23/8f/af5dfd4e029a1f1fe4060ccdb615612b60fb93c2199adcc7cdd253ab2a6a/roulier-0.1.1rc5.tar.gz" } ], "0.1.1rc6": [ { "comment_text": "", "digests": { "md5": "71275ea303327b023e60b575b73a956b", "sha256": "736464011fa682c6f49f089dee13e0bf951661c6776269d251ab82542cda88b7" }, "downloads": -1, "filename": "roulier-0.1.1rc6.tar.gz", "has_sig": false, "md5_digest": "71275ea303327b023e60b575b73a956b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21800, "upload_time": "2017-01-18T09:44:02", "url": "https://files.pythonhosted.org/packages/46/cb/2840728c42291956626e9f216c7a1a915b8451e008df86ffd939444d295b/roulier-0.1.1rc6.tar.gz" } ], "0.1.4": [ { "comment_text": "", "digests": { "md5": "5c687f132a4cf718f8a9adb53fc35cf9", "sha256": "6cb5faedaf48fcceedcaee5ce48c0fba1456d8866e96c49301f5f5d816c88f01" }, "downloads": -1, "filename": "roulier-0.1.4-py2-none-any.whl", "has_sig": false, "md5_digest": "5c687f132a4cf718f8a9adb53fc35cf9", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 40472, "upload_time": "2017-03-20T16:40:59", "url": "https://files.pythonhosted.org/packages/fd/95/b7fa5d79cc3a62ec3ee805969ba6d0aa964a8a6d980572c486cd2e3ea6d7/roulier-0.1.4-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e1052be2c27501b99442c2f69cf3cdaa", "sha256": "f85a93db9e2e792253f5308227bcbbbae4e5418a800bc0f14715cdd13c4b7649" }, "downloads": -1, "filename": "roulier-0.1.4.tar.gz", "has_sig": false, "md5_digest": "e1052be2c27501b99442c2f69cf3cdaa", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21225, "upload_time": "2017-03-20T16:41:02", "url": "https://files.pythonhosted.org/packages/01/49/132a289acc2c0b5ceaee2bedd645e9238b6e8df2af0b69c81235fd5d9d56/roulier-0.1.4.tar.gz" } ], "0.1.5": [ { "comment_text": "", "digests": { "md5": "3003c7fab29cf7c512b6c51c3805bf5b", "sha256": "e9d105f38948d0dcfdcb99ac27a41af4aa870fa1171741c437704fd7ff1ed8c1" }, "downloads": -1, "filename": "roulier-0.1.5-py2-none-any.whl", "has_sig": false, "md5_digest": "3003c7fab29cf7c512b6c51c3805bf5b", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 40548, "upload_time": "2017-05-02T13:23:26", "url": "https://files.pythonhosted.org/packages/16/c3/6eb140f1676e8dbf128f5a92dda923cb78e20a0d27a6d9dfb3a4bddd4ba0/roulier-0.1.5-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "1fd26c6647363f6a630a97ab69cb3156", "sha256": "45e123ca45a0299d1d1ebfaf35edd03433bf392ace1266c6e5b3044190382938" }, "downloads": -1, "filename": "roulier-0.1.5.tar.gz", "has_sig": false, "md5_digest": "1fd26c6647363f6a630a97ab69cb3156", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21461, "upload_time": "2017-05-02T13:23:28", "url": "https://files.pythonhosted.org/packages/6e/34/e70717a65f112c87d62768425187b2a46b712ca5fef95f331ea10545711f/roulier-0.1.5.tar.gz" } ], "0.1.6": [ { "comment_text": "", "digests": { "md5": "e5a71f520f6af95eacca172497c16ddc", "sha256": "07c661d70cf19f6b6c91f8ee8b83744dfebf1ddaa709b1c788455a826e8615a2" }, "downloads": -1, "filename": "roulier-0.1.6-py2-none-any.whl", "has_sig": false, "md5_digest": "e5a71f520f6af95eacca172497c16ddc", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 40737, "upload_time": "2017-07-27T09:13:21", "url": "https://files.pythonhosted.org/packages/d6/ad/66a086c11113b795e371958bb0e223cc32dd3cdc5ef0c0eafbabc304933d/roulier-0.1.6-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c8d6ab2e930afb719f5ccb6792b53cc3", "sha256": "3b71010302cba6efe7dc9ac49b5887b23c8584c59bf121ae9960e627afeea7d0" }, "downloads": -1, "filename": "roulier-0.1.6.tar.gz", "has_sig": false, "md5_digest": "c8d6ab2e930afb719f5ccb6792b53cc3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21711, "upload_time": "2017-07-27T09:13:22", "url": "https://files.pythonhosted.org/packages/82/42/73aa760a238e6adb7d14012386baf83c9daeca2be7d52867736de0e1cae0/roulier-0.1.6.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "dda5213b03615ec2230499d2155c0d8f", "sha256": "e6ae864376c1d3210f3df8f6377ac3c784280043c13551ee64514d9357be989e" }, "downloads": -1, "filename": "roulier-0.2.0-py2-none-any.whl", "has_sig": false, "md5_digest": "dda5213b03615ec2230499d2155c0d8f", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 44989, "upload_time": "2017-11-03T10:47:14", "url": "https://files.pythonhosted.org/packages/d9/a1/6e96d66c43de4a406e051fd65b38cf5c8bc332ca2dfa39b6d576b0aa3a1d/roulier-0.2.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "413d376a2e1aac4aaecd1fb4ccbdb2bf", "sha256": "7617f2711919b1260bd3b111c8ed2ebe487fc54e31b8dd2df1eee15eed983652" }, "downloads": -1, "filename": "roulier-0.2.0.tar.gz", "has_sig": false, "md5_digest": "413d376a2e1aac4aaecd1fb4ccbdb2bf", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 26469, "upload_time": "2017-11-03T10:47:15", "url": "https://files.pythonhosted.org/packages/45/0d/e9947bfa86ef32870ed3b7eee0a500671abccb43ea3ea138b82783e75f1a/roulier-0.2.0.tar.gz" } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "79c0476ab0e93a496c348c9df6458104", "sha256": "c21705de765f4f3ace1aca9c26999a7499884d152c140d43808d778f8f31fdac" }, "downloads": -1, "filename": "roulier-0.2.1-py2-none-any.whl", "has_sig": false, "md5_digest": "79c0476ab0e93a496c348c9df6458104", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 45098, "upload_time": "2017-12-19T09:34:58", "url": "https://files.pythonhosted.org/packages/00/bc/adfae7bc5015bb4066d04e7d0009674336e865d868b4c06576ef4cf99076/roulier-0.2.1-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "8184203a980ef6857d90197ab0e69494", "sha256": "463bfa8aefddd399fc9d34a1c94f38defa085506231b065f3c6602bf2d68e7e4" }, "downloads": -1, "filename": "roulier-0.2.1.tar.gz", "has_sig": false, "md5_digest": "8184203a980ef6857d90197ab0e69494", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 26643, "upload_time": "2017-12-19T09:34:59", "url": "https://files.pythonhosted.org/packages/c0/f9/39464fd31635bdd0d2a6831023507512cdec4ac320dc10a43e6e13fc8c9d/roulier-0.2.1.tar.gz" } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "75f9cc92d82d1dc08ad2b84ad7d0758a", "sha256": "04483e3d9a99cfe90ef5ce9980949a69672a377733074ef8392bde3785c711cb" }, "downloads": -1, "filename": "roulier-0.3.0-py2-none-any.whl", "has_sig": false, "md5_digest": "75f9cc92d82d1dc08ad2b84ad7d0758a", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 47383, "upload_time": "2018-02-01T08:48:56", "url": "https://files.pythonhosted.org/packages/12/32/a5ee850d0c2ce619e3f6dc9cf1252c274360a817a336d1ee19702f0aeb4a/roulier-0.3.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "2f20e6bf9c104295e23c03d24048f8aa", "sha256": "b753c8a959f258b6a517502552ded1ebd9991201821d622cdbdd7681418f97e2" }, "downloads": -1, "filename": "roulier-0.3.0.tar.gz", "has_sig": false, "md5_digest": "2f20e6bf9c104295e23c03d24048f8aa", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 28088, "upload_time": "2018-02-01T08:48:58", "url": "https://files.pythonhosted.org/packages/d9/ad/7f7dcc44dcec5bb4edd458c2ddfbea1a1ce1654aa8648edb7076bab05cfc/roulier-0.3.0.tar.gz" } ], "0.3.1": [ { "comment_text": "", "digests": { "md5": "e212e58ea960c5e40a931d36df1f552b", "sha256": "b0f9e7cb70b27111cb2337748d792e3c614b36e44ff97bdc6f4a2c9cc8ad4530" }, "downloads": -1, "filename": "roulier-0.3.1-py2-none-any.whl", "has_sig": false, "md5_digest": "e212e58ea960c5e40a931d36df1f552b", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 47382, "upload_time": "2018-02-01T09:05:06", "url": "https://files.pythonhosted.org/packages/b0/40/c631d9b7de65de266e581c143c1f5306bd47fb95d1232133d717fea7961c/roulier-0.3.1-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "9b29eab212e157516cad377101878165", "sha256": "ab49e030d0a4a4caac6381d369c4dedb7fa4a3740c5316ffcd7cd21adab81ea4" }, "downloads": -1, "filename": "roulier-0.3.1.tar.gz", "has_sig": false, "md5_digest": "9b29eab212e157516cad377101878165", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 28111, "upload_time": "2018-02-01T09:05:08", "url": "https://files.pythonhosted.org/packages/f9/f9/79bc0954be2a03f00037cebd9429cc3a75a827d85888033f5f3e6d389f4c/roulier-0.3.1.tar.gz" } ], "0.3.2": [ { "comment_text": "", "digests": { "md5": "62e6c0c5224b877015f3854b65fb9f4c", "sha256": "6cfaaf3f6f50a464da0f5978f5f72d5460e7412c94875d49f16cfb9260eb3b72" }, "downloads": -1, "filename": "roulier-0.3.2-py2-none-any.whl", "has_sig": false, "md5_digest": "62e6c0c5224b877015f3854b65fb9f4c", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 47391, "upload_time": "2018-02-06T10:06:51", "url": "https://files.pythonhosted.org/packages/58/98/b6e14aaad03b73ac5a7c5c6d8b3ed33213ec8baf5cda92ed65d2eee6d233/roulier-0.3.2-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b4b712b12e3a1b6981f1693cbc65a455", "sha256": "a4bd66b610e470fdfba5757499edcc4fed01a37905adebd041f659ab303d9106" }, "downloads": -1, "filename": "roulier-0.3.2.tar.gz", "has_sig": false, "md5_digest": "b4b712b12e3a1b6981f1693cbc65a455", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 28154, "upload_time": "2018-02-06T10:06:53", "url": "https://files.pythonhosted.org/packages/e0/eb/5369aefbfcf977e79a28b1065a0f3a7f95fb11480e4f85584eb53a3094a3/roulier-0.3.2.tar.gz" } ], "0.3.3": [ { "comment_text": "", "digests": { "md5": "6e4de2c3a094658e858ed660a465f1eb", "sha256": "9abb76d19fdebf5b04d56b8c6b289d3a48ac4441a9d99873fb212d79258c44b2" }, "downloads": -1, "filename": "roulier-0.3.3-py2-none-any.whl", "has_sig": false, "md5_digest": "6e4de2c3a094658e858ed660a465f1eb", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 47656, "upload_time": "2018-03-07T09:53:29", "url": "https://files.pythonhosted.org/packages/25/6b/f85996b9c204359bc376322a2537cde22477596f3a4746d4d28f1c663ad5/roulier-0.3.3-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "147fa555a68d657f691cc0a03383fa71", "sha256": "7257ebf5331a6465674a822e2cfeb5f0615660aae46dda0b11657ace059c8015" }, "downloads": -1, "filename": "roulier-0.3.3.tar.gz", "has_sig": false, "md5_digest": "147fa555a68d657f691cc0a03383fa71", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 28484, "upload_time": "2018-03-07T09:53:31", "url": "https://files.pythonhosted.org/packages/ba/58/29c6e851e55dfbfb10f96c618337a70ae485e22a1a183264c23cdc038264/roulier-0.3.3.tar.gz" } ], "0.3.4": [ { "comment_text": "", "digests": { "md5": "d9ed86f83babeba4b12bd9be342af878", "sha256": "aeeef000b1d22515e6ec4d24e399715ddda9a85e172151e500a7d7e0e5a8dcae" }, "downloads": -1, "filename": "roulier-0.3.4-py2-none-any.whl", "has_sig": false, "md5_digest": "d9ed86f83babeba4b12bd9be342af878", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 47005, "upload_time": "2018-12-06T15:58:45", "url": "https://files.pythonhosted.org/packages/53/a7/6bdb3d8c93af33f9d35ac33d80af783e99a53723a8a6962e76ffa1fea8d5/roulier-0.3.4-py2-none-any.whl" } ], "0.3.7": [ { "comment_text": "", "digests": { "md5": "eb1f5cfd156be29cef483783b9bb951e", "sha256": "2166945d56a6da1a1aed5d1c1b48d81543d0834207495ffe74e82f78757fbffe" }, "downloads": -1, "filename": "roulier-0.3.7-py2-none-any.whl", "has_sig": false, "md5_digest": "eb1f5cfd156be29cef483783b9bb951e", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 47194, "upload_time": "2019-01-07T15:09:56", "url": "https://files.pythonhosted.org/packages/0b/4d/f70b0673fe7c58933516b6b48cac343f0078e9b56fa1aedf0969fa4de32e/roulier-0.3.7-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "43dc10ee378fbd911f250d7f490fa2e6", "sha256": "782e804410362f6cfc1ccb04901b42049199d1bfc8f44b393872da0ffe650124" }, "downloads": -1, "filename": "roulier-0.3.7-py3-none-any.whl", "has_sig": false, "md5_digest": "43dc10ee378fbd911f250d7f490fa2e6", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 62387, "upload_time": "2019-09-12T14:24:36", "url": "https://files.pythonhosted.org/packages/09/c4/24882702dc9475d0761337fe683fb3ea1d10a220d90bdb2c906668b30339/roulier-0.3.7-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "52a8b237ae327dc8940b0af286be083b", "sha256": "a8b9d188911bf8d8f1f9ea328255a45e84faaf3ac92bbbb005a7cd0377e9b45e" }, "downloads": -1, "filename": "roulier-0.3.7.tar.gz", "has_sig": false, "md5_digest": "52a8b237ae327dc8940b0af286be083b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 28955, "upload_time": "2019-01-07T15:09:58", "url": "https://files.pythonhosted.org/packages/33/bb/676d1d6c524cb6803b2f18db5456b600a3a96ac573c50ae5a4afb68ce117/roulier-0.3.7.tar.gz" } ], "0.3.9": [ { "comment_text": "", "digests": { "md5": "fee8f37c241a503c83d4d68097c40714", "sha256": "00ccd0ed81169080716a0ddde53038eacfa8e6e2b7f44433c00e9e002c188915" }, "downloads": -1, "filename": "roulier-0.3.9-py2-none-any.whl", "has_sig": false, "md5_digest": "fee8f37c241a503c83d4d68097c40714", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 57662, "upload_time": "2019-09-12T14:52:36", "url": "https://files.pythonhosted.org/packages/6c/8e/3e879cd4d42db724f182d72308303e80f25af5db3bfe79eaa18637d3a7a2/roulier-0.3.9-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "003678495904daeea1bd879a54ff3b1a", "sha256": "0125db127f854a87b86a5cfdfcdaeeed5e875be95784c5bf0102dee91bd76676" }, "downloads": -1, "filename": "roulier-0.3.9.tar.gz", "has_sig": false, "md5_digest": "003678495904daeea1bd879a54ff3b1a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 32745, "upload_time": "2019-09-12T14:52:39", "url": "https://files.pythonhosted.org/packages/6c/27/d7e6569f33ba17da7b366b9a99c94e0861992417ba1a2e47308d3e902498/roulier-0.3.9.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "fee8f37c241a503c83d4d68097c40714", "sha256": "00ccd0ed81169080716a0ddde53038eacfa8e6e2b7f44433c00e9e002c188915" }, "downloads": -1, "filename": "roulier-0.3.9-py2-none-any.whl", "has_sig": false, "md5_digest": "fee8f37c241a503c83d4d68097c40714", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 57662, "upload_time": "2019-09-12T14:52:36", "url": "https://files.pythonhosted.org/packages/6c/8e/3e879cd4d42db724f182d72308303e80f25af5db3bfe79eaa18637d3a7a2/roulier-0.3.9-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "003678495904daeea1bd879a54ff3b1a", "sha256": "0125db127f854a87b86a5cfdfcdaeeed5e875be95784c5bf0102dee91bd76676" }, "downloads": -1, "filename": "roulier-0.3.9.tar.gz", "has_sig": false, "md5_digest": "003678495904daeea1bd879a54ff3b1a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 32745, "upload_time": "2019-09-12T14:52:39", "url": "https://files.pythonhosted.org/packages/6c/27/d7e6569f33ba17da7b366b9a99c94e0861992417ba1a2e47308d3e902498/roulier-0.3.9.tar.gz" } ] }