{ "info": { "author": "Piper Thunstrom", "author_email": "pathunstrom@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Intended Audience :: Developers", "Intended Audience :: Education", "License :: OSI Approved :: Artistic License", "Natural Language :: English", "Operating System :: OS Independent", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Topic :: Games/Entertainment", "Topic :: Software Development :: Libraries" ], "description": "# PursuedPyBear\n\n[![Documentation Status](https://readthedocs.org/projects/ppb/badge/?version=stable)](https://ppb.readthedocs.io/en/stable/?badge=stable)\n\nPursuedPyBear, also known as `ppb`, exists to be an educational\nresource. Most obviously used to teach computer science, it can be a\nuseful tool for any topic that a simulation can be helpful.\n\n## A Game Engine\n\nAt its core, `ppb` provides a number of features that make it perfect\nfor video games. The `GameEngine` itself provides a pluggable subsystem\narchitecture where adding new features is as simple as subclassing and\nextending `System`. Additionally, it contains a state stack of `Scenes`\nsimple containers that let you organize game scenes and UI screens in a\nsimple way.\n\nThe entire system uses an event system which is as extensible as the\nrest of the system. Register new values to existing event types, and\neven overwrite the defaults. Adding a new event type to the system is as\nsimple as firing an instance of your new event class with `signal`.\nInstead of a publisher system, the engine knows everything in its own scope\nand only calls objects with appropriate callbacks. The most basic event is\n`Update` and your handlers should match the signature\n`on_update(self, update_event, signal)`.\n\n## Guiding Principles\n\nBecause `ppb` started to be a game framework great for learning with,\nthe project has a few longterm goals:\n\n### Education Friendly\n\nNon-technical educators should feel comfortable after very little\ntraining. While some programming knowledge is required, the ability to\nthink in objects and responses to events allows educators to only focus\non their lessons.\n\n### Idiomatic Python\n\nA project built on `ppb` should look like idiomatic Python. It also\nshould look like modern Python. As such, we often add new language\nfeatures as soon as they're available, letting a new user always know\nppb runs on the latest Python.\n\n### Object Oriented and Event Driven\n\n`ppb` games are built out of instances of objects that inherit from\n`EventMixin`. Each object only has enough information to respond to the\nevent provided, which always includes the current `BaseScene`. Because\n`ppb` doesn't have a master list of events, you can provide new ones\nsimply to add more granular control over your game.\n\n### Hardware Library Agnostic\n\nBecause `ppb` strongly tries to be extensible and pluggable, each\nhardware extension can provide its own hooks to `ppb`, and you can\nnearly seamlessly switch between various Python libraries.\n\n### Fun\n\nOne of the maintainers put it best:\n\n> If it\u2019s not fun to use, we should redo it\n\nppb is about filing off the rough edges so that the joy of creation and\ndiscovery are both emphasized. A new user should be able to build their\nfirst game in a few hours, and continue exploring beyond that.\n\n## Try it\n\nInstall ppb in the standard method:\n\n```bash\npip install ppb\n```\n\n\n`ppb` provides a `run` function that makes it simple to start single\nscreen games.\n\nTo make a very simple game, make a directory and add an image file\ncalled `ship.png` to it. Then add the following to a python file and\nrun it.\n\n```python\nimport ppb\n\n\nclass Ship(ppb.BaseSprite):\n\n def on_update(self, update_event, signal):\n self.position += 0, -(4 * update_event.time_delta)\n\n\ndef setup(scene):\n scene.add(Ship(pos=(0, 3.5)))\n\n\nppb.run(setup=setup)\n```\n\n## Compatibility\n\n`ppb` is guaranteed compatible with Python 3.6 or later.\n\n## Get Involved\n\nThe fastest way to get involved is to check out the [ongoing\ndiscussions.](https://github.com/ppb/pursuedpybear/issues?q=is%3Aissue+is%3Aopen+label%3Adiscussion)\nIf you're already using `ppb` feel free to report bugs, suggest\nenhancements, or ask for new features.\n\nIf you want to contribute code, definitely read the relavant portions\nof Contributing.MD\n\n## Change Log\n\n\n### 0.5.0\n\nWe went for a smaller release, but we got a lot done for it only being\na few months. The most important bits are that all of the input events\nare in! Some cool stuff includes sprites scaling automatically and a\nnew way to move between scenes that uses the event system. That means\nthe old method is officially deprecated.\n\nNew stuff:\n* MouseButton events\n* Key events\n* Add a title to the game window\n* Sprite scaling based on game unit size\n* Keycodes flags\n* New scene change mechanism that uses the event system\n\nChanged stuff:\n* Scene defaults are now class attributes\n* Most Sprite defaults are now class attributes\n* Flags can now be type hinted properly\n* Scenes no longer infinitely respawn their child scenes if running is\n True.\n* Fixed an issue with the frame being different dimensions to the\n viewport.\n* Fixed a bug in the Camera.point_in_viewport function\n* Default pixel ratio is now 64:1 (64 pixels to 1 game unit)\n* New (better) run function\n* Other type hinting fixes\n\nRemoved stuff:\n* bb attribute removed from sprites\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/ppb/pursuedpybear", "keywords": "", "license": "Artistic-2.0", "maintainer": "", "maintainer_email": "", "name": "ppb", "package_url": "https://pypi.org/project/ppb/", "platform": "", "project_url": "https://pypi.org/project/ppb/", "project_urls": { "Homepage": "https://github.com/ppb/pursuedpybear" }, "release_url": "https://pypi.org/project/ppb/0.7.0/", "requires_dist": [ "pygame (<2)", "ppb-vector (~=1.0)", "dataclasses ; python_version < \"3.7\"", "importlib-resources ; python_version < \"3.7\"" ], "requires_python": ">= 3.6, < 3.8", "summary": "An Event Driven Python Game Engine", "version": "0.7.0" }, "last_serial": 5882373, "releases": { "0.1": [], "0.1.0": [ { "comment_text": "", "digests": { "md5": "cf3a8e86bf42a0961e25a6eddf1319db", "sha256": "116594553318827ff56f91304de5123709b324f0c343d55857d436039a40ed0b" }, "downloads": -1, "filename": "ppb-0.1.0.tar.gz", "has_sig": false, "md5_digest": "cf3a8e86bf42a0961e25a6eddf1319db", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7637, "upload_time": "2016-04-18T03:57:01", "url": "https://files.pythonhosted.org/packages/b1/d2/cf44c19dd919191e4f7d264a41675ed24d0670483dbfa2218ee06aa884cc/ppb-0.1.0.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "cdf9fe8ad7c42d7a9468b5d1aeb6dcb2", "sha256": "ea6149b22dca8492db791072b0b943fdadc3ad996a266d8a509a4a0d7c5c02bb" }, "downloads": -1, "filename": "ppb-0.2.0-py3-none-any.whl", "has_sig": false, "md5_digest": "cdf9fe8ad7c42d7a9468b5d1aeb6dcb2", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 5179, "upload_time": "2017-04-11T23:56:54", "url": "https://files.pythonhosted.org/packages/5d/17/cda5f51d1972e731c8dea3bb9af0702270dfceb6eaee4be9ecc4d7884323/ppb-0.2.0-py3-none-any.whl" } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "60549cba60a8c7b4a1e27f9b12653eec", "sha256": "904903f16fa2da3a070670d2fee17ffb41a052e61882cb86ad5042a7463968dd" }, "downloads": -1, "filename": "ppb-0.3.0-py3-none-any.whl", "has_sig": false, "md5_digest": "60549cba60a8c7b4a1e27f9b12653eec", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 6801, "upload_time": "2017-09-05T04:29:37", "url": "https://files.pythonhosted.org/packages/74/23/818abd2e7e88a71f9a7bc41bd7e6c10e89993b27a411a30b932a179b496d/ppb-0.3.0-py3-none-any.whl" } ], "0.4.0": [ { "comment_text": "", "digests": { "md5": "7eccbc9b664e0dc49339dea9f3500943", "sha256": "32bf85112a06ab15352e34bd4c66fdf3ae0a3e549b2e928a758dcdf93672def8" }, "downloads": -1, "filename": "ppb-0.4.0-py3-none-any.whl", "has_sig": false, "md5_digest": "7eccbc9b664e0dc49339dea9f3500943", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 14062, "upload_time": "2018-09-30T03:02:43", "url": "https://files.pythonhosted.org/packages/9c/2d/fe355fef84985a8971abc913eeb17af0a3ada555f1dc4da815218e2522a3/ppb-0.4.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "0eb7dad7e307df7189afa970159e9ebf", "sha256": "402abcfb767ccd7a4dd98f5f4caa0b9df5d89ea19a60845397823d2ed46360e5" }, "downloads": -1, "filename": "ppb-0.4.0.tar.gz", "has_sig": false, "md5_digest": "0eb7dad7e307df7189afa970159e9ebf", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13336, "upload_time": "2018-09-30T03:02:47", "url": "https://files.pythonhosted.org/packages/85/87/30b9236f6485b21ab782a7c960ceec75c47c2fd1a5c54a3fa22ab19c9f8b/ppb-0.4.0.tar.gz" } ], "0.4.0rc1": [ { "comment_text": "", "digests": { "md5": "8d6fa79f4f0487148aa398552b0c9b66", "sha256": "620ac01e7878ef4879dc411ca3a67a05293b3d9a90323cded70f18df0b4d7a9e" }, "downloads": -1, "filename": "ppb-0.4.0rc1-py3-none-any.whl", "has_sig": false, "md5_digest": "8d6fa79f4f0487148aa398552b0c9b66", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 13846, "upload_time": "2018-09-21T15:14:13", "url": "https://files.pythonhosted.org/packages/6b/06/97ab49d6120e913c67e76cb6f2446dd196a35aa631a3d3012d5db40247d3/ppb-0.4.0rc1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "89724762fdafa33c96dbfaab508752b0", "sha256": "a3d0761060155ea257bc0a7fed7a609d522b0a78e325797bd08e684d6bb31578" }, "downloads": -1, "filename": "ppb-0.4.0rc1.tar.gz", "has_sig": false, "md5_digest": "89724762fdafa33c96dbfaab508752b0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13326, "upload_time": "2018-09-21T15:14:15", "url": "https://files.pythonhosted.org/packages/fe/3e/04d93f3840bc2e2cda7a80448c0fe1ae093ad75b6ae4d2b11b054580b25d/ppb-0.4.0rc1.tar.gz" } ], "0.4.0rc2": [ { "comment_text": "", "digests": { "md5": "71875f6f2426612ce942dc9d78a4d5a2", "sha256": "efc1dc3c1937670c7bd56259f56faaa3c3349d0cc2260c8c027087f90d0090b2" }, "downloads": -1, "filename": "ppb-0.4.0rc2-py3-none-any.whl", "has_sig": false, "md5_digest": "71875f6f2426612ce942dc9d78a4d5a2", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 13822, "upload_time": "2018-09-26T02:22:31", "url": "https://files.pythonhosted.org/packages/d6/26/3c9d4592d633675e76ae00dd27cddd6c265efc8036950a1532e3dea75d73/ppb-0.4.0rc2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "7fac324573f60ec6374675bb5d3a1989", "sha256": "1da1e55e43a65df1b6f303b1d33176ec7eb14b4688d0d0d520c2a3463c0d584f" }, "downloads": -1, "filename": "ppb-0.4.0rc2.tar.gz", "has_sig": false, "md5_digest": "7fac324573f60ec6374675bb5d3a1989", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13358, "upload_time": "2018-09-26T02:22:33", "url": "https://files.pythonhosted.org/packages/da/9a/8b7c079e1819e0a8487f3362ea4e1e0cfb9af7a35499c430aa298e389beb/ppb-0.4.0rc2.tar.gz" } ], "0.4.0rc3": [ { "comment_text": "", "digests": { "md5": "fdddd19aa70666ebabf095ea2580fd27", "sha256": "d6f5a29f4d798fc7b327616746aad17e166638401bf0efdd103b2a917b152489" }, "downloads": -1, "filename": "ppb-0.4.0rc3-py3-none-any.whl", "has_sig": false, "md5_digest": "fdddd19aa70666ebabf095ea2580fd27", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 14091, "upload_time": "2018-09-27T00:04:47", "url": "https://files.pythonhosted.org/packages/64/24/2f41a85361d164d87733b6f562d13320bfa9e9b2f0db1485b6f458b7e41c/ppb-0.4.0rc3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "eff3c78fddd0bf8a7438e3a1e7217649", "sha256": "74ed631fcc65b58bba6b158affbce907c8f1bb15cb8f001b71941f326c9070fe" }, "downloads": -1, "filename": "ppb-0.4.0rc3.tar.gz", "has_sig": false, "md5_digest": "eff3c78fddd0bf8a7438e3a1e7217649", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13338, "upload_time": "2018-09-27T00:04:49", "url": "https://files.pythonhosted.org/packages/c0/ef/d830af4e2d3639fa6ae0760eab71d0216e76c0dc21da3f9effc7a85e9274/ppb-0.4.0rc3.tar.gz" } ], "0.4.1": [ { "comment_text": "", "digests": { "md5": "3fe36240dd13bc7d7f4206581e6a9a03", "sha256": "f2283aa018d419916edabc6dac92a4a6de47fa55ea55a4ea61ee1039afec1947" }, "downloads": -1, "filename": "ppb-0.4.1-py3-none-any.whl", "has_sig": false, "md5_digest": "3fe36240dd13bc7d7f4206581e6a9a03", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 14093, "upload_time": "2018-10-03T22:44:07", "url": "https://files.pythonhosted.org/packages/1a/e8/b10bcccb4dde847ae9126d6f2325310302cfd60a100d6a2502acbf09a4ba/ppb-0.4.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "8b7c6d110ec6b7b2c4342a1ad9f33210", "sha256": "529a9095b0f611cdaae426959d4c9e88609e0cd46baa3cec40b1c29e29f850c5" }, "downloads": -1, "filename": "ppb-0.4.1.tar.gz", "has_sig": false, "md5_digest": "8b7c6d110ec6b7b2c4342a1ad9f33210", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 13382, "upload_time": "2018-10-03T22:44:09", "url": "https://files.pythonhosted.org/packages/84/18/7e24718de5162918e6728adac50a24bca156532f8ad2a07ab829548968d6/ppb-0.4.1.tar.gz" } ], "0.5.0": [ { "comment_text": "", "digests": { "md5": "876a56fe45865de567ef22c2beefc375", "sha256": "d2cc425418535ed6133842e643c1940cbe617886e05bd17e58b282f5cf030317" }, "downloads": -1, "filename": "ppb-0.5.0-py3-none-any.whl", "has_sig": false, "md5_digest": "876a56fe45865de567ef22c2beefc375", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 23043, "upload_time": "2018-12-20T07:03:25", "url": "https://files.pythonhosted.org/packages/74/14/22f1feb0d43f924a77d32fd756eb586f47a9aa5cf07e4e4f46b24f652dcb/ppb-0.5.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "0fa1e6f0b42e33280ed92a16c355d381", "sha256": "7a4c53a4f6c19ac72853da01149624a71ab5d5fe42840df27bb0dda21fbfdd4a" }, "downloads": -1, "filename": "ppb-0.5.0.tar.gz", "has_sig": false, "md5_digest": "0fa1e6f0b42e33280ed92a16c355d381", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 19831, "upload_time": "2018-12-20T07:03:31", "url": "https://files.pythonhosted.org/packages/f0/df/cff0c02d53ddaa78af80e8fc64eb97d3145f0fd056a5872be257bdcaf43c/ppb-0.5.0.tar.gz" } ], "0.5.0rc1": [ { "comment_text": "", "digests": { "md5": "92a9a46fd6916e176f14978615ef5f57", "sha256": "9f471dd60804deca4c65c27ada90467c95b6ad58f02c865af84b9d3a1aad3f16" }, "downloads": -1, "filename": "ppb-0.5.0rc1-py3-none-any.whl", "has_sig": false, "md5_digest": "92a9a46fd6916e176f14978615ef5f57", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 19494, "upload_time": "2018-12-01T05:10:48", "url": "https://files.pythonhosted.org/packages/f7/97/8826f7e48153b3210e0c12982a75d8733b92018efd23972c8b292dda13ad/ppb-0.5.0rc1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "febe1ddd4905c206b3366342f07e9186", "sha256": "15119e1d3faff66f9d33d7fbac3406afb245aea5ba95d1fa4780395459786c04" }, "downloads": -1, "filename": "ppb-0.5.0rc1.tar.gz", "has_sig": false, "md5_digest": "febe1ddd4905c206b3366342f07e9186", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 16828, "upload_time": "2018-12-01T05:10:55", "url": "https://files.pythonhosted.org/packages/1d/23/e8bd1da9bd12653effea42e838feae8e18c8ab250f4bfc54e11ce552bd53/ppb-0.5.0rc1.tar.gz" } ], "0.5.0rc2": [ { "comment_text": "", "digests": { "md5": "74597b2f3d18b5e639f4a773acd751a0", "sha256": "53637f85a99cab9717f22d9c95240cf0078c82f21aa46dd35fbde2df3f835cb1" }, "downloads": -1, "filename": "ppb-0.5.0rc2-py3-none-any.whl", "has_sig": false, "md5_digest": "74597b2f3d18b5e639f4a773acd751a0", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 23126, "upload_time": "2018-12-09T16:20:45", "url": "https://files.pythonhosted.org/packages/16/1c/be5a2a61392941e314815874615224cdc6b198af67f82b8da2753f8e008f/ppb-0.5.0rc2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "37c66eeae0960223223fda11d197765d", "sha256": "f78170c9e7a06373f1b73a45ac5aef2cf29f41bc05507e2d67808bf552e59989" }, "downloads": -1, "filename": "ppb-0.5.0rc2.tar.gz", "has_sig": false, "md5_digest": "37c66eeae0960223223fda11d197765d", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 19887, "upload_time": "2018-12-09T16:20:49", "url": "https://files.pythonhosted.org/packages/44/49/284ec5d9c83dd0a0c3363d28f193733922290f8b3feb4a24aa0135b2fc06/ppb-0.5.0rc2.tar.gz" } ], "0.5.0rc3": [ { "comment_text": "", "digests": { "md5": "8b49e7fe19c2e37b4902468c86b796fa", "sha256": "fc7393824755b57f9277a47d2392a001f5c178ae9f9c824be818fb943bb801bf" }, "downloads": -1, "filename": "ppb-0.5.0rc3-py3-none-any.whl", "has_sig": false, "md5_digest": "8b49e7fe19c2e37b4902468c86b796fa", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 23089, "upload_time": "2018-12-15T21:22:50", "url": "https://files.pythonhosted.org/packages/c4/1c/5f84d5ef19b2a9ad0d8de0739c5b97351ed28ee83a28eb289a3fa6aadc70/ppb-0.5.0rc3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e527fc372bf9c66557abd7f9d3b3bd85", "sha256": "a255a4692889693c303454085bd52c938d23bd2b26137a2eecb96373a9de28bc" }, "downloads": -1, "filename": "ppb-0.5.0rc3.tar.gz", "has_sig": false, "md5_digest": "e527fc372bf9c66557abd7f9d3b3bd85", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 19855, "upload_time": "2018-12-15T21:22:55", "url": "https://files.pythonhosted.org/packages/43/8c/f19155a4bba8eeeb25ececaa14233f7055a242458722890a57e8f681c578/ppb-0.5.0rc3.tar.gz" } ], "0.5.1": [ { "comment_text": "", "digests": { "md5": "454681b85021c6095c4ab7b609f60a85", "sha256": "6825ac71412a333a582b51b6e6885fad76a86a35abde891339c4a4898c68ced3" }, "downloads": -1, "filename": "ppb-0.5.1-py3-none-any.whl", "has_sig": false, "md5_digest": "454681b85021c6095c4ab7b609f60a85", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 26517, "upload_time": "2019-04-10T02:38:44", "url": "https://files.pythonhosted.org/packages/3d/04/8f1f02a787057cedb67b36a114cc024b8752655e6df82b9531c534d02b3b/ppb-0.5.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "56476048c25ffb9786a7fac75280b4df", "sha256": "8be31a7f3244c302baadad968d675c0fc3789fa5c006a02778ec2ed79d3d9551" }, "downloads": -1, "filename": "ppb-0.5.1.tar.gz", "has_sig": false, "md5_digest": "56476048c25ffb9786a7fac75280b4df", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 19823, "upload_time": "2019-04-10T02:38:51", "url": "https://files.pythonhosted.org/packages/5e/a6/5d9e869c92a40ede7385c6b49cdcfd0ba6764f43fd8a5e162ae3019d6251/ppb-0.5.1.tar.gz" } ], "0.5.1rc1": [ { "comment_text": "", "digests": { "md5": "dbbe1177e614d8b9bd41e775003ca99c", "sha256": "c517ee3ed09f587d93d99192808fe116cad613a249ba9e739b2d687cfcfd46b8" }, "downloads": -1, "filename": "ppb-0.5.1rc1-py3-none-any.whl", "has_sig": false, "md5_digest": "dbbe1177e614d8b9bd41e775003ca99c", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 26554, "upload_time": "2019-04-10T02:38:46", "url": "https://files.pythonhosted.org/packages/99/93/87f06cd254b6be17913da3feeb91c61efacecf252fc086d1a03e6974ad69/ppb-0.5.1rc1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "56aa11e03ec21207e264630821466ca2", "sha256": "3f4b4892c1b1db7f22a5bb374f1354f71cc38b3e65c062fe347c6e3c7bfb13b5" }, "downloads": -1, "filename": "ppb-0.5.1rc1.tar.gz", "has_sig": false, "md5_digest": "56aa11e03ec21207e264630821466ca2", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 19840, "upload_time": "2019-04-10T02:38:53", "url": "https://files.pythonhosted.org/packages/a9/9f/287293c0dd55889b00603284f98c67ddc5ccce1d0309e1de220a2b7f9e45/ppb-0.5.1rc1.tar.gz" } ], "0.6.0": [ { "comment_text": "", "digests": { "md5": "2fca6d4bebb0596202a941f318a24471", "sha256": "484531843115a566cad709482d3412a96bc9bd7b31cbd6d328ffdb7de60a52a7" }, "downloads": -1, "filename": "ppb-0.6.0-py3-none-any.whl", "has_sig": false, "md5_digest": "2fca6d4bebb0596202a941f318a24471", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">= 3.6, < 3.8", "size": 26714, "upload_time": "2019-07-07T19:33:46", "url": "https://files.pythonhosted.org/packages/2e/1e/fc8764aaf268abe285680c30aa4a229de91f0698bdf0d9659d617cf57b2b/ppb-0.6.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "aa36ed598f4fa3f01bb4df26ceaaf202", "sha256": "48265cad52c4f6cbf39cfdae8e8f8fea4f381e64296bf17fab541669e1a5ead1" }, "downloads": -1, "filename": "ppb-0.6.0.tar.gz", "has_sig": false, "md5_digest": "aa36ed598f4fa3f01bb4df26ceaaf202", "packagetype": "sdist", "python_version": "source", "requires_python": ">= 3.6, < 3.8", "size": 22525, "upload_time": "2019-07-07T19:33:48", "url": "https://files.pythonhosted.org/packages/a3/e6/19f84884027196e2d008be6ea97e5f5f1ccda64dfead298fb6acae153d6d/ppb-0.6.0.tar.gz" } ], "0.6.0b1": [ { "comment_text": "", "digests": { "md5": "2701bcb54ee4e987bda2f8bf1789bf09", "sha256": "cef444f4832c3368a0c01f301bad0c5d817d145e411fec8c33551354e6212d4c" }, "downloads": -1, "filename": "ppb-0.6.0b1-py3-none-any.whl", "has_sig": false, "md5_digest": "2701bcb54ee4e987bda2f8bf1789bf09", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">= 3.6, < 3.8", "size": 26539, "upload_time": "2019-06-26T03:06:28", "url": "https://files.pythonhosted.org/packages/ce/ec/16073bd3bc766f23f0046c4320828c28402891c81d66b98d20838a7031cc/ppb-0.6.0b1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "37c3ea36570ba0859bee1c19e25fc93d", "sha256": "4852f381df4b82afb4947c93fb2bdf5b2ebbcb64370d07c763aff7086cf56253" }, "downloads": -1, "filename": "ppb-0.6.0b1.tar.gz", "has_sig": false, "md5_digest": "37c3ea36570ba0859bee1c19e25fc93d", "packagetype": "sdist", "python_version": "source", "requires_python": ">= 3.6, < 3.8", "size": 22398, "upload_time": "2019-06-26T03:06:29", "url": "https://files.pythonhosted.org/packages/7c/b8/9ee55a3cee8121506eb259d696d6e37c4a149511701df9cf785526e66fc2/ppb-0.6.0b1.tar.gz" } ], "0.7.0": [ { "comment_text": "", "digests": { "md5": "f414aa368562a79b3a68294abe80bbc2", "sha256": "4cfcbc64ba8644d1f8063ff5c46a9f3a5d0d2bce6bb1a3cbb182d891bdad75b5" }, "downloads": -1, "filename": "ppb-0.7.0-py3-none-any.whl", "has_sig": false, "md5_digest": "f414aa368562a79b3a68294abe80bbc2", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">= 3.6, < 3.8", "size": 38139, "upload_time": "2019-09-24T23:52:46", "url": "https://files.pythonhosted.org/packages/c7/c4/179a1bc0c1f2461a6e5352ecb238de97817ba46a9e694b33b34f3aab3e7e/ppb-0.7.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "7fe9e18fa5e1e5dbbe8addb6a102f1f4", "sha256": "d752719876200e154be0cc7f071e2ad66237e28afbb5ff8c6bb02ec505f47bb4" }, "downloads": -1, "filename": "ppb-0.7.0.tar.gz", "has_sig": false, "md5_digest": "7fe9e18fa5e1e5dbbe8addb6a102f1f4", "packagetype": "sdist", "python_version": "source", "requires_python": ">= 3.6, < 3.8", "size": 29113, "upload_time": "2019-09-24T23:52:53", "url": "https://files.pythonhosted.org/packages/14/c9/cadad62d152ee8c4d720b190fc4545dd7d3b171b558c6c7ffb5a3890ee88/ppb-0.7.0.tar.gz" } ], "0.7.0a1": [ { "comment_text": "", "digests": { "md5": "9b87e5b3921099c339caa942885b64bf", "sha256": "82ec65961ab83ea2ebef2b47cadf385c2b30c1cac2284b188d285becbe835aa5" }, "downloads": -1, "filename": "ppb-0.7.0a1-py3-none-any.whl", "has_sig": false, "md5_digest": "9b87e5b3921099c339caa942885b64bf", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">= 3.6, < 3.8", "size": 35800, "upload_time": "2019-09-09T17:34:45", "url": "https://files.pythonhosted.org/packages/30/ac/e042091e4b06124d1c8cfdfb7f386a61d3f5fc9a7e03766e5facba215859/ppb-0.7.0a1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f86f9d7f79f61145dc056706235ab364", "sha256": "9bf5792c7cb4bf0b6bfa4181da2a620e98bbb334a2228d571ade9df85e0f6c2f" }, "downloads": -1, "filename": "ppb-0.7.0a1.tar.gz", "has_sig": false, "md5_digest": "f86f9d7f79f61145dc056706235ab364", "packagetype": "sdist", "python_version": "source", "requires_python": ">= 3.6, < 3.8", "size": 28905, "upload_time": "2019-09-09T17:34:47", "url": "https://files.pythonhosted.org/packages/6f/ed/d2aeb6c4bcbdb2705ddfff1d898741877cae0447319d9e698bbf27939dd4/ppb-0.7.0a1.tar.gz" } ], "0.7.0b1": [ { "comment_text": "", "digests": { "md5": "081635271056f086e2e0fab614cda35f", "sha256": "f6caaee985d0bc76abdb80f222b633961fb1325c0e106804bc8e427de39545eb" }, "downloads": -1, "filename": "ppb-0.7.0b1-py3-none-any.whl", "has_sig": false, "md5_digest": "081635271056f086e2e0fab614cda35f", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">= 3.6, < 3.8", "size": 38163, "upload_time": "2019-09-20T21:49:43", "url": "https://files.pythonhosted.org/packages/3b/77/b30034c85d8edaf467a30a50a9b9839f9a320dae92c4a67ed95712e80ed5/ppb-0.7.0b1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "0846dcb0fd3ff45886f27c7e4d1eafca", "sha256": "caf3eff4289292c15e132ebbdc9e45792895308b50d860d33631686ad445dc06" }, "downloads": -1, "filename": "ppb-0.7.0b1.tar.gz", "has_sig": false, "md5_digest": "0846dcb0fd3ff45886f27c7e4d1eafca", "packagetype": "sdist", "python_version": "source", "requires_python": ">= 3.6, < 3.8", "size": 29123, "upload_time": "2019-09-20T21:49:47", "url": "https://files.pythonhosted.org/packages/5c/94/38fdd9dc21f17f4bb664d068455aa01ef34dd9bc0e062346feae25f5671f/ppb-0.7.0b1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "f414aa368562a79b3a68294abe80bbc2", "sha256": "4cfcbc64ba8644d1f8063ff5c46a9f3a5d0d2bce6bb1a3cbb182d891bdad75b5" }, "downloads": -1, "filename": "ppb-0.7.0-py3-none-any.whl", "has_sig": false, "md5_digest": "f414aa368562a79b3a68294abe80bbc2", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">= 3.6, < 3.8", "size": 38139, "upload_time": "2019-09-24T23:52:46", "url": "https://files.pythonhosted.org/packages/c7/c4/179a1bc0c1f2461a6e5352ecb238de97817ba46a9e694b33b34f3aab3e7e/ppb-0.7.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "7fe9e18fa5e1e5dbbe8addb6a102f1f4", "sha256": "d752719876200e154be0cc7f071e2ad66237e28afbb5ff8c6bb02ec505f47bb4" }, "downloads": -1, "filename": "ppb-0.7.0.tar.gz", "has_sig": false, "md5_digest": "7fe9e18fa5e1e5dbbe8addb6a102f1f4", "packagetype": "sdist", "python_version": "source", "requires_python": ">= 3.6, < 3.8", "size": 29113, "upload_time": "2019-09-24T23:52:53", "url": "https://files.pythonhosted.org/packages/14/c9/cadad62d152ee8c4d720b190fc4545dd7d3b171b558c6c7ffb5a3890ee88/ppb-0.7.0.tar.gz" } ] }