{ "info": { "author": "Windel Bouwman", "author_email": "", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "License :: OSI Approved :: BSD License", "Programming Language :: C", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Programming Language :: Python :: Implementation :: CPython", "Programming Language :: Python :: Implementation :: PyPy", "Topic :: Software Development :: Assemblers", "Topic :: Software Development :: Compilers", "Topic :: Software Development :: Embedded Systems" ], "description": "\nIntroduction\n============\n\nThe ppci (pure python compiler infrastructure) project is a compiler\nwritten entirely in python. It contains language front-ends as well\nas machine code generation functionality. With this library you can\ngenerate (working!) machine code within python!\n\nThe project contains the following:\n\n- A Compiler, an assembler, a linker and a build system\n- Language front-ends: Brainfuck, c3, C, WASM\n- Backends: 6500, arm, avr, msp430, openrisc, risc-v, stm8, x86_64, xtensa\n\n.. warning::\n\n **This project is in alpha state and not ready for production use!**\n\nYou can try out ppci at godbolt.org: https://godbolt.org/g/eooaPP\n\nApi\n---\n\nApi example to compile c3 code:\n\n.. code-block:: python\n\n >>> import io\n >>> from ppci.api import c3c, link\n >>> source_file = io.StringIO(\"\"\"\n ... module main;\n ... function void print(string txt) {\n ... }\n ... function void main() {\n ... print(\"Hello world\");\n ... }\"\"\")\n >>> obj = c3c([source_file], [], 'arm')\n >>> obj = link([obj])\n\nExample how to assemble some assembly code:\n\n.. code-block:: python\n\n >>> import io\n >>> from ppci.api import asm\n >>> source_file = io.StringIO(\"\"\"section code\n ... pop rbx\n ... push r10\n ... mov rdi, 42\"\"\")\n >>> obj = asm(source_file, 'x86_64')\n >>> obj.get_section('code').data\n bytearray(b'[ARH\\xbf*\\x00\\x00\\x00\\x00\\x00\\x00\\x00')\n\nExample of the low level api usage:\n\n.. code-block:: python\n\n >>> from ppci.arch.x86_64 import instructions, registers\n >>> i = instructions.Pop(registers.rbx)\n >>> i.encode()\n b'['\n\nDocumentation\n-------------\n\nDocumentation can be found here:\n\n- https://ppci.readthedocs.io/\n\n\n|gitter|_\n|appveyor|_\n|codecov|_\n|docstate|_\n|travis|_\n|codacygrade|_\n|codacycoverage|_\n|downloads|_\n|conda|_\n\n.. |codecov| image:: https://codecov.io/bb/windel/ppci/branch/default/graph/badge.svg\n.. _codecov: https://codecov.io/bb/windel/ppci/branch/default\n\n\n.. |appveyor| image:: https://ci.appveyor.com/api/projects/status/h0h5huliflrac65o?svg=true\n.. _appveyor: https://ci.appveyor.com/project/WindelBouwman/ppci-786\n\n\n.. |docstate| image:: https://readthedocs.org/projects/ppci/badge/?version=latest\n.. _docstate: https://ppci.readthedocs.io/en/latest\n\n\n.. |travis| image:: https://travis-ci.org/windelbouwman/ppci-mirror.svg?branch=master\n.. _travis: https://travis-ci.org/windelbouwman/ppci-mirror\n\n\n.. |codacygrade| image:: https://api.codacy.com/project/badge/Grade/a178be14a54243be81c27172031dc82c\n.. _codacygrade: https://www.codacy.com/app/windel-bouwman/ppci-mirror\n\n.. |codacycoverage| image:: https://api.codacy.com/project/badge/Coverage/a178be14a54243be81c27172031dc82c\n.. _codacycoverage: https://www.codacy.com/app/windel-bouwman/ppci-mirror\n\n\n.. |downloads| image:: https://anaconda.org/conda-forge/ppci/badges/downloads.svg\n.. _downloads: https://anaconda.org/conda-forge/ppci\n\n.. |conda| image:: https://anaconda.org/conda-forge/ppci/badges/version.svg\n.. _conda: https://anaconda.org/conda-forge/ppci\n\n\n.. |gitter| image:: https://badges.gitter.im/ppci-chat/Lobby.svg\n.. _gitter: https://gitter.im/ppci-chat/Lobby\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://ppci.readthedocs.io/", "keywords": "", "license": "BSD", "maintainer": "", "maintainer_email": "", "name": "ppci", "package_url": "https://pypi.org/project/ppci/", "platform": "", "project_url": "https://pypi.org/project/ppci/", "project_urls": { "Homepage": "https://ppci.readthedocs.io/" }, "release_url": "https://pypi.org/project/ppci/0.5.6/", "requires_dist": null, "requires_python": "", "summary": "A compiler for ARM, X86, MSP430, xtensa and more implemented in pure Python", "version": "0.5.6" }, "last_serial": 4196446, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "b09bd6f34d7ae38519720c0fa4550409", "sha256": "6d3dc063946dba9d43a9e62654c2ca5cc10c1bba26ddbfffe76a91a72e3c8945" }, "downloads": -1, "filename": "ppci-0.0.1.tar.gz", "has_sig": false, "md5_digest": "b09bd6f34d7ae38519720c0fa4550409", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 131700, "upload_time": "2014-10-10T09:49:38", "url": "https://files.pythonhosted.org/packages/32/81/6784ee5ea714fbf55e5fe118ecbfc41502d2731c9b99c95b15340873437d/ppci-0.0.1.tar.gz" }, { "comment_text": "", "digests": { "md5": "50e78b76fff062a3fc9296005c730425", "sha256": "bb8717f8674357040c2e972e548cc5c5f54fc2e4c47fee8660aa3bf2f39a590a" }, "downloads": -1, "filename": "ppci-0.2.0.tar.gz", "has_sig": false, "md5_digest": "50e78b76fff062a3fc9296005c730425", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 157517, "upload_time": "2016-01-23T12:48:04", "url": "https://files.pythonhosted.org/packages/ae/7c/0dfb09bd2d606413acc946f80f8182c02806d7f1edb57591d4fae7db4dd4/ppci-0.2.0.tar.gz" } ], "0.0.2": [ { "comment_text": "", "digests": { "md5": "f5e06e18fe7ab225a92cdc136cf30a45", "sha256": "f3485e656ab487cc7a08fd5dc43fef0d21dc4a114540f9c4ecaa2b152b49452e" }, "downloads": -1, "filename": "ppci-0.0.2.tar.gz", "has_sig": false, "md5_digest": "f5e06e18fe7ab225a92cdc136cf30a45", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 135073, "upload_time": "2014-11-13T20:43:19", "url": "https://files.pythonhosted.org/packages/10/ac/91a303e5e78b15a6f9db7fb9b0442680450396671978c37e48ade10e5f41/ppci-0.0.2.tar.gz" } ], "0.0.3": [ { "comment_text": "", "digests": { "md5": "8781336d1bd579333dbe60278815ca8b", "sha256": "70e64e3dad77b1575b162e7f28363661a6c5a9225adc80437c06e0e1271fd528" }, "downloads": -1, "filename": "ppci-0.0.3.tar.gz", "has_sig": false, "md5_digest": "8781336d1bd579333dbe60278815ca8b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 131888, "upload_time": "2015-02-17T13:48:20", "url": "https://files.pythonhosted.org/packages/4f/d6/2ecd484d4361938da213d03ae1942cc2e7701ac4a292e88de632dbb50c2e/ppci-0.0.3.tar.gz" } ], "0.0.4": [ { "comment_text": "", "digests": { "md5": "04f083ac0f963bf3e6c0ee94f8c0f4b7", "sha256": "2712398a6dd3b5a63e0ed89bc32e199242caf993389d82d2e7c2f7a83cd2a58b" }, "downloads": -1, "filename": "ppci-0.0.4.tar.gz", "has_sig": false, "md5_digest": "04f083ac0f963bf3e6c0ee94f8c0f4b7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 133942, "upload_time": "2015-02-24T12:32:06", "url": "https://files.pythonhosted.org/packages/5b/05/d0322d3ae74a4664160cd138ad62485e821d11d5bbeaaffb9c9c8d96b238/ppci-0.0.4.tar.gz" } ], "0.0.5": [ { "comment_text": "", "digests": { "md5": "92154984b1676bed52ac1b9bf71e7853", "sha256": "76bd00d2e43e0c8a89aec74f1c2c907e8389cb14014f3e556930f00c49a3bfc3" }, "downloads": -1, "filename": "ppci-0.0.5.tar.gz", "has_sig": false, "md5_digest": "92154984b1676bed52ac1b9bf71e7853", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 124483, "upload_time": "2015-03-21T16:38:05", "url": "https://files.pythonhosted.org/packages/73/0a/ffef778305451862925aa2673ea4d2551030e07f460a8e052e209506e101/ppci-0.0.5.tar.gz" } ], "0.1.0": [ { "comment_text": "", "digests": { "md5": "e7bf4cb2f3827608b8a4f04ac8fb1b47", "sha256": "8848b507fe8277facc6d8b2366c31f57cb81600f45e82df14b65ed21e00b31da" }, "downloads": -1, "filename": "ppci-0.1.0.tar.gz", "has_sig": false, "md5_digest": "e7bf4cb2f3827608b8a4f04ac8fb1b47", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 151795, "upload_time": "2015-12-29T20:50:30", "url": "https://files.pythonhosted.org/packages/c4/ac/4382e7bc576c77e3e421deec9ec72fb05619929830a4927fd89e10ee3fb5/ppci-0.1.0.tar.gz" } ], "0.2.0": [], "0.3.0": [ { "comment_text": "", "digests": { "md5": "586ad3c2ce29fc56d43df5a5aa385aa1", "sha256": "25f1c9e37ba08554cec8261d0ea3cbe40f425f4de558f5c98a998beb42c3fe1f" }, "downloads": -1, "filename": "ppci-0.3.0.tar.gz", "has_sig": false, "md5_digest": "586ad3c2ce29fc56d43df5a5aa385aa1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 177524, "upload_time": "2016-02-23T22:02:44", "url": "https://files.pythonhosted.org/packages/c4/74/915d2513460ec374b3b39dbeb97ba72c210bb44d977d718837ea9ab4709b/ppci-0.3.0.tar.gz" } ], "0.4.0": [ { "comment_text": "", "digests": { "md5": "f70a837e4580c32dc46953f279985fdd", "sha256": "bcc7fbd6fd9a7a989dc69b81c2718a876ce0423c952fa2b63e472bd67cef46ab" }, "downloads": -1, "filename": "ppci-0.4.0-py3-none-any.whl", "has_sig": false, "md5_digest": "f70a837e4580c32dc46953f279985fdd", "packagetype": "bdist_wheel", "python_version": "3.5", "requires_python": null, "size": 209960, "upload_time": "2016-05-06T19:34:22", "url": "https://files.pythonhosted.org/packages/10/a4/d17d8c45c3515f834e811446065a97194fc884167000e3bf8a7a2ceff1f4/ppci-0.4.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ea1451a2c339c4e983f084d77e72c627", "sha256": "c55cd8f3ecc2bb535b602d500e6923d5b4602e3d5f731ba374afb9b2880bd4f4" }, "downloads": -1, "filename": "ppci-0.4.0.tar.gz", "has_sig": false, "md5_digest": "ea1451a2c339c4e983f084d77e72c627", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 196631, "upload_time": "2016-04-27T19:14:32", "url": "https://files.pythonhosted.org/packages/67/ad/7069d90ef8bb22fbe61fce849b57d76f022c99285afd42ec9758c254a745/ppci-0.4.0.tar.gz" } ], "0.5": [ { "comment_text": "", "digests": { "md5": "de132f9889d3156b23e182df9d9f083e", "sha256": "6978b90b7529dfec888049f71268dad7f17bd37c2c3356f16eefd3612d118d72" }, "downloads": -1, "filename": "ppci-0.5-py3-none-any.whl", "has_sig": false, "md5_digest": "de132f9889d3156b23e182df9d9f083e", "packagetype": "bdist_wheel", "python_version": "3.5", "requires_python": null, "size": 237248, "upload_time": "2016-08-06T19:21:46", "url": "https://files.pythonhosted.org/packages/de/9e/10fb778a9fbf03a059b8e5fde560db2b8f4065a010ed82ee7da86a2f2299/ppci-0.5-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ba272afb562da7ac9b7a43c2869830ad", "sha256": "520b5808a389b55d0da3ee72c9cd54fca3ac30d2d1c1540aa18ff384297fa201" }, "downloads": -1, "filename": "ppci-0.5.tar.gz", "has_sig": false, "md5_digest": "ba272afb562da7ac9b7a43c2869830ad", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 219767, "upload_time": "2016-08-06T19:21:41", "url": "https://files.pythonhosted.org/packages/d2/3b/01c1347764213efac407772c0f79ecac62416272846f3f25def63dbb201f/ppci-0.5.tar.gz" } ], "0.5.1": [ { "comment_text": "", "digests": { "md5": "3a705910f5fe209c0ea244602b09931d", "sha256": "d23010caa2a8c011fe4555c5419603f5e616b3fbaea77ce354600d3d966d877e" }, "downloads": -1, "filename": "ppci-0.5.1-py3-none-any.whl", "has_sig": false, "md5_digest": "3a705910f5fe209c0ea244602b09931d", "packagetype": "bdist_wheel", "python_version": "3.5", "requires_python": null, "size": 269663, "upload_time": "2016-10-16T10:22:29", "url": "https://files.pythonhosted.org/packages/4d/46/0ba36dea9a53a7d10ac9dc51be1ac5a9852c71273382cbdfc2d13bb6f014/ppci-0.5.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d65eb1158181393d1a8d448982e5e1b9", "sha256": "b95a2c76640de9fec8d479a956a870ba9f70c5432a5030229c72ced51c00754a" }, "downloads": -1, "filename": "ppci-0.5.1.tar.gz", "has_sig": false, "md5_digest": "d65eb1158181393d1a8d448982e5e1b9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 249765, "upload_time": "2016-10-16T10:22:23", "url": "https://files.pythonhosted.org/packages/df/5b/812935855ef4bc11ab3d7fb43a7094e8a1f120a0914aa35cc8b6c56bf571/ppci-0.5.1.tar.gz" }, { "comment_text": "", "digests": { "md5": "534b6bfe1b1e029d1f45a8707a03b261", "sha256": "965134a9812dc81cefce8658b8b5181195627765afdb390297f753c54e70ca45" }, "downloads": -1, "filename": "ppci-0.5.1.zip", "has_sig": false, "md5_digest": "534b6bfe1b1e029d1f45a8707a03b261", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 307468, "upload_time": "2016-10-16T10:22:25", "url": "https://files.pythonhosted.org/packages/d7/91/539fc9d8d05cda896ead866ff560ed2be1b40354bc3f955de7d684f9eb6f/ppci-0.5.1.zip" } ], "0.5.2": [ { "comment_text": "", "digests": { "md5": "61c7970fd6964eba321714ee0ea34edb", "sha256": "6a300b71983dd7beaac8c7d03dfe0738ac558e540e43a711f77bb25c3a5d4103" }, "downloads": -1, "filename": "ppci-0.5.2-py3-none-any.whl", "has_sig": false, "md5_digest": "61c7970fd6964eba321714ee0ea34edb", "packagetype": "bdist_wheel", "python_version": "3.5", "requires_python": null, "size": 293319, "upload_time": "2016-12-29T20:38:01", "url": "https://files.pythonhosted.org/packages/ac/91/5969493076141a1f8b44933e81c870fae345251d465e5067669142eb0ed1/ppci-0.5.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "acf63ea95b199fd0964f34fa12093b3d", "sha256": "2d020b6c913e3ae6c28b7480fbae6042be3b2d8e6d9898253e37984fcfd7a073" }, "downloads": -1, "filename": "ppci-0.5.2.tar.gz", "has_sig": false, "md5_digest": "acf63ea95b199fd0964f34fa12093b3d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 274420, "upload_time": "2016-12-29T20:37:57", "url": "https://files.pythonhosted.org/packages/65/b9/9db71353785718eeb2f978bcb5e79b7e37e69f8a36f8b8ea6ddd7f504050/ppci-0.5.2.tar.gz" } ], "0.5.3": [ { "comment_text": "", "digests": { "md5": "edc072352199d3eddeb0ba26d935eed3", "sha256": "f88c809e700313c5e7d8bbd8879f8b39ab8c93f6ccc9e2d0a5f08ccc39736326" }, "downloads": -1, "filename": "ppci-0.5.3-py3-none-any.whl", "has_sig": false, "md5_digest": "edc072352199d3eddeb0ba26d935eed3", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 348691, "upload_time": "2017-04-27T11:58:22", "url": "https://files.pythonhosted.org/packages/9d/f0/5716776a6f8debc340a751fa02c096637a9d93ba6a5d6a6b48dab60b4fe6/ppci-0.5.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f44613d75b2a603b0e7f638325eb942f", "sha256": "31100a8d6ffd8a9661df5ea4f3a2ffa70dfed3bf00fbbd37105d23d04e146375" }, "downloads": -1, "filename": "ppci-0.5.3.tar.gz", "has_sig": false, "md5_digest": "f44613d75b2a603b0e7f638325eb942f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 322456, "upload_time": "2017-04-27T11:58:19", "url": "https://files.pythonhosted.org/packages/80/69/72025947b6015816893044e47d5efabf118e1211943e782c3167fec8e95a/ppci-0.5.3.tar.gz" } ], "0.5.4": [ { "comment_text": "", "digests": { "md5": "dcd4c3864f5de0b06b4fd075498be057", "sha256": "10621c2b8122442e25baebca06f002911b76f50582ce033cab5100b71a472078" }, "downloads": -1, "filename": "ppci-0.5.4-py3-none-any.whl", "has_sig": false, "md5_digest": "dcd4c3864f5de0b06b4fd075498be057", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 402623, "upload_time": "2017-08-26T14:25:05", "url": "https://files.pythonhosted.org/packages/f2/5c/012a554f1ff1ef6f928a2f5d572950fa08bc35a1bdb56b6aabc65c2df225/ppci-0.5.4-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "8a2f8fa69859a40542ee983cbe468cf1", "sha256": "d5400cc043ca3eba0063f5dc4025747352fb03f950bd4b21e67bfa3f633966a3" }, "downloads": -1, "filename": "ppci-0.5.4.tar.gz", "has_sig": false, "md5_digest": "8a2f8fa69859a40542ee983cbe468cf1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 362785, "upload_time": "2017-08-26T14:25:03", "url": "https://files.pythonhosted.org/packages/4c/e8/fd7241885330ace50d2f7598a2652d4e80c1d922faece7bba88529cf6cfe/ppci-0.5.4.tar.gz" } ], "0.5.5": [ { "comment_text": "", "digests": { "md5": "08fdef16b985e159353608ed89f441c7", "sha256": "9850e7a5fdc23986d3adbd16bf2119c1d48d6a61c1a128690c143548e07d95e0" }, "downloads": -1, "filename": "ppci-0.5.5-py3-none-any.whl", "has_sig": false, "md5_digest": "08fdef16b985e159353608ed89f441c7", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 500240, "upload_time": "2018-01-17T19:59:12", "url": "https://files.pythonhosted.org/packages/0b/d6/9e76d02813158f1b9043cfd72bbb49126e2cbf4e5950a534db804c21d0de/ppci-0.5.5-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "4a32f2729fbfca2c66a637eb5140cd8d", "sha256": "c134a10486f163943d74b1f89a6a7373f9a801baa5114b7079e8e9a31e8c4647" }, "downloads": -1, "filename": "ppci-0.5.5.tar.gz", "has_sig": false, "md5_digest": "4a32f2729fbfca2c66a637eb5140cd8d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 438438, "upload_time": "2018-01-17T19:59:09", "url": "https://files.pythonhosted.org/packages/48/65/022766802f0567727579b9c85fc817ae4f5b8fb19ddf89179618301f7eb3/ppci-0.5.5.tar.gz" } ], "0.5.6": [ { "comment_text": "", "digests": { "md5": "551077f8c6bb10a270845747d4ba3e95", "sha256": "56919798cba8d010d020724d6b1a05393f2209e3ecd11585141ca94103701d93" }, "downloads": -1, "filename": "ppci-0.5.6-py3-none-any.whl", "has_sig": false, "md5_digest": "551077f8c6bb10a270845747d4ba3e95", "packagetype": "bdist_wheel", "python_version": "3.7", "requires_python": null, "size": 641640, "upload_time": "2018-08-22T14:53:29", "url": "https://files.pythonhosted.org/packages/4a/ab/5a83de86c51346662223f10879709d5ee988b5a9301f98f45b358a1e64a8/ppci-0.5.6-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f7a23b6da16af9ee98eea56955f73fc5", "sha256": "d64c169529e039a7968a95c4dfc25cd7768e6629b8dc576df5e291c9f942660e" }, "downloads": -1, "filename": "ppci-0.5.6.tar.gz", "has_sig": false, "md5_digest": "f7a23b6da16af9ee98eea56955f73fc5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 452492, "upload_time": "2018-08-22T14:53:27", "url": "https://files.pythonhosted.org/packages/b6/14/d3d5d8cb4b66459d5dbf6476fbe506318f08cb01a20295e886ecec573f09/ppci-0.5.6.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "551077f8c6bb10a270845747d4ba3e95", "sha256": "56919798cba8d010d020724d6b1a05393f2209e3ecd11585141ca94103701d93" }, "downloads": -1, "filename": "ppci-0.5.6-py3-none-any.whl", "has_sig": false, "md5_digest": "551077f8c6bb10a270845747d4ba3e95", "packagetype": "bdist_wheel", "python_version": "3.7", "requires_python": null, "size": 641640, "upload_time": "2018-08-22T14:53:29", "url": "https://files.pythonhosted.org/packages/4a/ab/5a83de86c51346662223f10879709d5ee988b5a9301f98f45b358a1e64a8/ppci-0.5.6-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f7a23b6da16af9ee98eea56955f73fc5", "sha256": "d64c169529e039a7968a95c4dfc25cd7768e6629b8dc576df5e291c9f942660e" }, "downloads": -1, "filename": "ppci-0.5.6.tar.gz", "has_sig": false, "md5_digest": "f7a23b6da16af9ee98eea56955f73fc5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 452492, "upload_time": "2018-08-22T14:53:27", "url": "https://files.pythonhosted.org/packages/b6/14/d3d5d8cb4b66459d5dbf6476fbe506318f08cb01a20295e886ecec573f09/ppci-0.5.6.tar.gz" } ] }