{ "info": { "author": "komuW", "author_email": "komuw05@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Programming Language :: Python :: 3.6", "Topic :: Internet :: WWW/HTTP", "Topic :: Security", "Topic :: Software Development :: Build Tools", "Topic :: System :: Installation/Setup", "Topic :: System :: Networking", "Topic :: System :: Systems Administration", "Topic :: Utilities" ], "description": "wiji\n----\n\n`Codacy Badge `__\n`CircleCI `__\n`codecov `__ `Code style:\nblack `__\n\n| ``Wiji`` is an asyncio distributed task processor/queue.\n| It\u2019s name is derived from the late Kenyan hip hop artiste, Gwiji.\n\nIt is a bit like `Celery `__\n\n``wiji`` has no third-party dependencies and it requires python version\n3.7+\n\n| ``wiji`` is work in progress and very early. It\u2019s API may change in\n backward incompatible ways.\n| https://pypi.python.org/pypi/wiji\n\n| **Contents:**\n| `Installation <#installation>`__\n| `Usage <#usage>`__\n| + `As a library <#1-as-a-library>`__\n| + `As cli app <#2-as-a-cli-app>`__\n| + `Writing tests <#writing-tests>`__\n\n| `Features <#features>`__\n| + `async everywhere <#1-async-everywhere>`__\n| + `monitoring-and-observability <#2-monitoring-and-observability>`__\n| + `logging <#21-logging>`__\n| + `hooks <#22-hooks>`__ + `Rate limiting <#3-rate-limiting>`__\n| + `Queuing <#5-queuing>`__\n\nInstallation\n------------\n\n.. code:: shell\n\n pip install wiji\n\nUsage\n-----\n\n1. As a library\n^^^^^^^^^^^^^^^\n\n.. code:: python\n\n import asyncio\n import wiji\n\n class AdderTask(wiji.task.Task):\n the_broker = wiji.broker.InMemoryBroker()\n queue_name = \"AdderTaskQueue1\"\n\n async def run(self, a, b):\n result = a + b\n print(\"\\nresult: {0}\\n\".format(result))\n return result\n\n # queue some tasks\n myAdderTask = AdderTask( )\n myAdderTask.synchronous_delay(a=4, b=37)\n myAdderTask.synchronous_delay(a=67, b=847)\n\n # run the workers\n worker = wiji.Worker(the_task=myAdderTask)\n asyncio.run(worker.consume_tasks())\n\n2. As a cli app\n^^^^^^^^^^^^^^^\n\n``wiji`` also ships with a commandline app called ``wiji-cli``.\n\n| create a ``wiji`` app file(which is just any python file that has a\n class instance of ``wiji.app.App``), eg;\n| ``examples/my_app.py``\n\n.. code:: python\n\n import wiji\n\n class AdderTask(wiji.task.Task):\n the_broker = wiji.broker.InMemoryBroker()\n queue_name = \"AdderTaskQueue1\"\n\n async def run(self, a, b):\n res = a + b\n print()\n print(\"res:: \", res)\n print()\n return res\n\n MyAppInstance = wiji.app.App(task_classes=[AdderTask])\n\n| **NB:** the directory where your place that file(in this case;\n ``examples/``) ought to be in your ``PYTHONPATH``\n| then run ``wiji-cli`` pointing it to the dotted path of the\n ``wiji.app.App`` instance:\n\n.. code:: bash\n\n wiji-cli --app examples.my_app.MyAppInstance\n\nWriting tests\n^^^^^^^^^^^^^\n\nLets say you have ``wiji`` tasks in your project and you want to write\nintegration or unit tests for them and their use.\n\n.. code:: python\n\n\n # my_tasks.py\n\n import wiji\n import MyRedisBroker # a custom broker using redis\n\n DATABASE = {}\n\n class AdderTask(wiji.task.Task):\n the_broker = MyRedisBroker()\n queue_name = \"AdderTask\"\n\n async def run(self, a, b):\n \"\"\"\n adds two numbers and stores the resut in a database\n \"\"\"\n result = a + b\n DATABASE[\"result\"] = result\n return result\n\n class ExampleView:\n def post(self, request):\n a = request[\"a\"]\n b = request[\"b\"]\n AdderTask().synchronous_delay(a=a, b=b)\n\n| In the example above we have a view with one ``post`` method. When\n that method is called it queues a task that adds two numbers and then\n stores the result of that addition in a database.\n| That task uses a broker(\\ ``MyRedisBroker``) that is backed by redis.\n| One way to write your tests would be;\n\n.. code:: python\n\n\n # test_tasks.py\n\n from my_tasks import ExampleView\n from unittest import TestCase\n\n class TestExampleView(TestCase):\n def test_view(self):\n view = ExampleView()\n view.post(request={\"a\": 45, \"b\": 46})\n # do your asserts here\n\n| The problem with the above approach is that this will require you to\n have an instance of redis running for that test to run succesfully.\n| This may not be what you want. Ideally you do not want your tests be\n dependent on external services.\n| ``wiji`` ships with an in-memory broker that you can use in your\n tests.\n| So the test above can be re-written in this manner;\n\n.. code:: python\n\n\n # test_tasks.py\n\n import asyncio\n from my_tasks import ExampleView, AdderTask, DATABASE\n from unittest import TestCase, mock\n\n class TestExampleView(TestCase):\n\n @staticmethod\n def _run(coro):\n \"\"\"\n helper function that runs any coroutine in an event loop.\n see:: https://blog.miguelgrinberg.com/post/unit-testing-asyncio-code\n \"\"\"\n loop = asyncio.get_event_loop()\n return loop.run_until_complete(coro)\n\n def test_view(self):\n with mock.patch.object(\n # ie, substitute the redis broker with an in-memory one during test runs\n AdderTask, \"the_broker\", wiji.broker.InMemoryBroker()\n ) as mock_broker:\n view = ExampleView()\n view.post(request={\"a\": 45, \"b\": 46})\n # do your asserts here\n\n def test_whole_flow(self):\n with mock.patch.object(\n AdderTask, \"the_broker\", wiji.broker.InMemoryBroker()\n ) as mock_broker:\n # 1. assert that the database is initially empty\n self.assertDictEqual(DATABASE, {})\n\n # 2. when `post` is called it will queue a task\n view = ExampleView()\n view.post(request={\"a\": 45, \"b\": 46})\n\n # 3. we need to run workers\n worker = wiji.Worker(the_task=AdderTask())\n self._run(worker.consume_tasks(TESTING=True))\n\n # 4. assert that database has been updated succesfully.\n self.assertDictEqual(DATABASE, {\"result\": 91})\n\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/komuw/wiji", "keywords": "wiji,blah", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "wiji", "package_url": "https://pypi.org/project/wiji/", "platform": "", "project_url": "https://pypi.org/project/wiji/", "project_urls": { "Homepage": "https://github.com/komuw/wiji" }, "release_url": "https://pypi.org/project/wiji/0.3.0/", "requires_dist": [ "pypandoc ; extra == 'dev'", "twine ; extra == 'dev'", "wheel ; extra == 'dev'", "Sphinx (==1.8.3) ; extra == 'dev'", "sphinx-autodoc-typehints (==1.6.0) ; extra == 'dev'", "coverage ; extra == 'test'", "flake8 ; extra == 'test'", "pylint ; extra == 'test'", "black ; extra == 'test'", "bandit ; extra == 'test'", "mypy ; extra == 'test'", "codecov ; extra == 'test'", "redis (==2.10.6) ; extra == 'test'", "docker (==3.7.1) ; extra == 'test'" ], "requires_python": "", "summary": "Wiji is an asyncio distributed task processor/queue.", "version": "0.3.0" }, "last_serial": 5316489, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "9ab5437bac5a6c5c30f0a3b5d2572a45", "sha256": "9c97d42b0d936c8ac5094c6fc877f7f494f6c49afac2892123f5f9fa3871cbcc" }, "downloads": -1, "filename": "wiji-0.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "9ab5437bac5a6c5c30f0a3b5d2572a45", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 27455, "upload_time": "2019-03-12T13:13:42", "url": "https://files.pythonhosted.org/packages/ba/b6/a05c49761b98bb33832766f8853da37bd238f246c30541883d14818bb917/wiji-0.1.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ce7c3f89005650c8e8d32c8315832155", "sha256": "df131bc633efa9ac69eb1ab5864e2384497141956d95ead15b25326d9d1c4b73" }, "downloads": -1, "filename": "wiji-0.1.0.tar.gz", "has_sig": false, "md5_digest": "ce7c3f89005650c8e8d32c8315832155", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 23257, "upload_time": "2019-03-12T13:13:44", "url": "https://files.pythonhosted.org/packages/7e/31/84ea07670c6b186b0ab667c46b2a3efee0f82eea59ef2cd3827961e9cbbc/wiji-0.1.0.tar.gz" } ], "0.1.0b1": [ { "comment_text": "", "digests": { "md5": "f1320effecff63bace6fcc21c3cd3ffa", "sha256": "c63604489643d5818035a88875e6687c02064f847edb38e552ba1b6ced6591b4" }, "downloads": -1, "filename": "wiji-0.1.0b1-py3-none-any.whl", "has_sig": false, "md5_digest": "f1320effecff63bace6fcc21c3cd3ffa", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 24788, "upload_time": "2019-03-05T13:12:11", "url": "https://files.pythonhosted.org/packages/e0/b4/a3c587d9a9081384f2fecfb56e039383caf88665758bdcdc532cafc5844e/wiji-0.1.0b1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "2e9441c006898de56a39deed2c735acb", "sha256": "ae84331f5f1f607fe9a2d3d53fad1789875eeb0e509e79ca7c2e9c40e7100c38" }, "downloads": -1, "filename": "wiji-0.1.0b1.tar.gz", "has_sig": false, "md5_digest": "2e9441c006898de56a39deed2c735acb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21248, "upload_time": "2019-03-05T13:12:14", "url": "https://files.pythonhosted.org/packages/3b/d9/f61dfa0ffd5aa6de7468a46155382ce21a69be165a2b4af65cc2ac55e219/wiji-0.1.0b1.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "03eaa8856b1f46edf5e3ace58e5f8566", "sha256": "49e756eb004b71b85d9d4e7be6d6f361182ffddd9ad2582ea2f6c0fe6a57e3ba" }, "downloads": -1, "filename": "wiji-0.1.1-py3-none-any.whl", "has_sig": false, "md5_digest": "03eaa8856b1f46edf5e3ace58e5f8566", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 27538, "upload_time": "2019-03-12T15:25:36", "url": "https://files.pythonhosted.org/packages/a3/e2/cf9a936392425cc62c40b15de4c68168ac198ac25b05a063d1979c491d20/wiji-0.1.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "8991e31e791d5c8f6f67f7e49651d98b", "sha256": "2dbd1d0ea2776fff0d4262fea9a85195fc70211c343f31ce40992d137f0cb3f9" }, "downloads": -1, "filename": "wiji-0.1.1.tar.gz", "has_sig": false, "md5_digest": "8991e31e791d5c8f6f67f7e49651d98b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 23417, "upload_time": "2019-03-12T15:25:37", "url": "https://files.pythonhosted.org/packages/69/8b/700caad575092b980cd1a1dbad4e16832e1b76b02154f93c347d778358b0/wiji-0.1.1.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "1ae09da4fb94b40eb4190fb6b9fe8e4b", "sha256": "d2f09ed51ad6ae0d0d5ef38fff0427e089463509fa300df2f967d70e5e1a05b3" }, "downloads": -1, "filename": "wiji-0.1.2-py3-none-any.whl", "has_sig": false, "md5_digest": "1ae09da4fb94b40eb4190fb6b9fe8e4b", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 27408, "upload_time": "2019-03-15T12:46:20", "url": "https://files.pythonhosted.org/packages/9a/da/9e85f6ced5c2b823494060afee223cf531cb1ec6c3a337ebbba4c93d256a/wiji-0.1.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "75aa6e0d55c741756182a663716c4d69", "sha256": "7dc9e735caa2a9f804b367518eab7e4085062df76d200751b7c412ea99840abd" }, "downloads": -1, "filename": "wiji-0.1.2.tar.gz", "has_sig": false, "md5_digest": "75aa6e0d55c741756182a663716c4d69", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 23173, "upload_time": "2019-03-15T12:46:21", "url": "https://files.pythonhosted.org/packages/76/01/a075f72b55a580ea63816a1323a2c1afd869eea6becf1af1f94273daa971/wiji-0.1.2.tar.gz" } ], "0.1.3": [ { "comment_text": "", "digests": { "md5": "5bbb3264105c06fceabe7e0aa10fee30", "sha256": "92cdd3670f459bb852cd2750504426e5686d7b8bf3b84873200bfdf23a52c07d" }, "downloads": -1, "filename": "wiji-0.1.3-py3-none-any.whl", "has_sig": false, "md5_digest": "5bbb3264105c06fceabe7e0aa10fee30", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 27398, "upload_time": "2019-03-22T14:19:54", "url": "https://files.pythonhosted.org/packages/cc/4a/802d842c6a5aae6c192a178549be39c0bf8789eec37a26cd4a354a4129bc/wiji-0.1.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "5ec0a848c6254b366e75d3133d5e0bfb", "sha256": "ad0023edad801029f032aca339505e29cd64aa25a2ba0cf0b271592a455564a2" }, "downloads": -1, "filename": "wiji-0.1.3.tar.gz", "has_sig": false, "md5_digest": "5ec0a848c6254b366e75d3133d5e0bfb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 23122, "upload_time": "2019-03-22T14:19:56", "url": "https://files.pythonhosted.org/packages/66/00/44f2de159198f6641a2bce5a00fe0d1539a389e6044b3294c143cdca40bc/wiji-0.1.3.tar.gz" } ], "0.1.4": [ { "comment_text": "", "digests": { "md5": "f2834698e0387b8a3293721b90c9b142", "sha256": "8e4ee31e6006e01985a6c686387eab69033a2f3d5861530dbf4b9c61008cdfa3" }, "downloads": -1, "filename": "wiji-0.1.4-py3-none-any.whl", "has_sig": false, "md5_digest": "f2834698e0387b8a3293721b90c9b142", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 27761, "upload_time": "2019-03-23T13:41:42", "url": "https://files.pythonhosted.org/packages/b5/9e/7fc775c3dc5f61ae3b532113a434a74520061e12028ca6d74aa0185a1874/wiji-0.1.4-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "bf5dd347a70f55971052dced343b636b", "sha256": "cedbc8558e06f8f49b4314bb57214c62226b0ff7b1a38152450229f2e6b67441" }, "downloads": -1, "filename": "wiji-0.1.4.tar.gz", "has_sig": false, "md5_digest": "bf5dd347a70f55971052dced343b636b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 23537, "upload_time": "2019-03-23T13:41:44", "url": "https://files.pythonhosted.org/packages/24/61/70511ae2e60512f208df7c9b0f954a25141501eb3605931c9f1ba688dca5/wiji-0.1.4.tar.gz" } ], "0.1.5": [ { "comment_text": "", "digests": { "md5": "da6cbbe8fd079cd926724d23232aaa3b", "sha256": "20fce6f88cbf86955ef9cd41b5d2c6eabd386b0c3fa5f08ee9bb84978ba7b9d2" }, "downloads": -1, "filename": "wiji-0.1.5-py3-none-any.whl", "has_sig": false, "md5_digest": "da6cbbe8fd079cd926724d23232aaa3b", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 27762, "upload_time": "2019-03-23T13:47:58", "url": "https://files.pythonhosted.org/packages/ef/b5/d02fa776d2d983c74b8d28c66faa5bd9177359b8c1faefab8f7bd716055b/wiji-0.1.5-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f4eff3c589b19b2bdf6b67ccf2dcb60c", "sha256": "9edcb65b94c1149361b3ffe55f576e1d59f4fa3d25814529831b9964c5af7d3b" }, "downloads": -1, "filename": "wiji-0.1.5.tar.gz", "has_sig": false, "md5_digest": "f4eff3c589b19b2bdf6b67ccf2dcb60c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 23538, "upload_time": "2019-03-23T13:47:59", "url": "https://files.pythonhosted.org/packages/c7/9c/954808f16e2f475f0626f362d9f3855480e101bc30241865aa2792418d5f/wiji-0.1.5.tar.gz" } ], "0.1.6": [ { "comment_text": "", "digests": { "md5": "8375c546f52a5fbf6d4252baa90b7799", "sha256": "1344e36cd6b7e472fe3e0ee71b324f809c29a64df32f7911883142395eccac19" }, "downloads": -1, "filename": "wiji-0.1.6-py3-none-any.whl", "has_sig": false, "md5_digest": "8375c546f52a5fbf6d4252baa90b7799", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 29252, "upload_time": "2019-05-04T10:28:37", "url": "https://files.pythonhosted.org/packages/e0/e9/e837b4c785a6513ea05ddaad7a7ec8fd3c3b4c8f97d84346c79884fe4b37/wiji-0.1.6-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d994387ff5606cade2fc640c17490c7b", "sha256": "3727472a3087060b7596e39d75ded1a529b29e6562f1eeaf718ea6cae492d27f" }, "downloads": -1, "filename": "wiji-0.1.6.tar.gz", "has_sig": false, "md5_digest": "d994387ff5606cade2fc640c17490c7b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 24989, "upload_time": "2019-05-04T10:28:39", "url": "https://files.pythonhosted.org/packages/3f/5d/ffb7b1ac1c208040bfa120db40a9ccc9dd772cc31c56926be642bbfd04b8/wiji-0.1.6.tar.gz" } ], "0.1.6b1": [ { "comment_text": "", "digests": { "md5": "5715b11588edc645be65f3ddb0749202", "sha256": "954f58c963124f5bcaedada68d868ada4146287eea09fa47ce475d59400efeae" }, "downloads": -1, "filename": "wiji-0.1.6b1-py3-none-any.whl", "has_sig": false, "md5_digest": "5715b11588edc645be65f3ddb0749202", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 28093, "upload_time": "2019-03-25T12:10:00", "url": "https://files.pythonhosted.org/packages/3e/6c/81a20e31e963d77231765c7ba7c6c8ac1fc1fd9b9e35bc2d310abd4fd299/wiji-0.1.6b1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c50e37d04930a38f01758661636c72dd", "sha256": "113513f136bd160f1d376043b8047f90d2918f12413f76a604d854eca2acfd34" }, "downloads": -1, "filename": "wiji-0.1.6b1.tar.gz", "has_sig": false, "md5_digest": "c50e37d04930a38f01758661636c72dd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 23877, "upload_time": "2019-03-25T12:10:02", "url": "https://files.pythonhosted.org/packages/9b/93/516b2c5c721b0737c1e5267c5bef7df03bc7e2b667c617d372db79f4dcbe/wiji-0.1.6b1.tar.gz" } ], "0.1.6b2": [ { "comment_text": "", "digests": { "md5": "0a0ed8d4bb598918e0f99b72785c41dc", "sha256": "79bb08dbb2bad1b3e5b74ae5e0cd42f13c5789ad544d24c43997e30dd4f51b1d" }, "downloads": -1, "filename": "wiji-0.1.6b2-py3-none-any.whl", "has_sig": false, "md5_digest": "0a0ed8d4bb598918e0f99b72785c41dc", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 28255, "upload_time": "2019-03-29T07:03:54", "url": "https://files.pythonhosted.org/packages/21/08/c8ae9d85c3ccbadd2e7f1b061d989483bf74086327960ec131a5996b0519/wiji-0.1.6b2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d095762c929ad7dd40d91f6f0a60b8d8", "sha256": "fc92567af215e2896baed8e26421410d18049208865e3d358182e31202eba985" }, "downloads": -1, "filename": "wiji-0.1.6b2.tar.gz", "has_sig": false, "md5_digest": "d095762c929ad7dd40d91f6f0a60b8d8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 24043, "upload_time": "2019-03-29T07:03:56", "url": "https://files.pythonhosted.org/packages/b3/0a/c8010b7082d30fd47157bc81f0331d4ce4dcf24503b6f085792b71194eac/wiji-0.1.6b2.tar.gz" } ], "0.1.6b3": [ { "comment_text": "", "digests": { "md5": "f131ddf926445c9d843a4a581c3a19ac", "sha256": "a2527f320a666b8be5ce8937880aea7d36fa97b6779ff2f7b6031db0d2ee24bb" }, "downloads": -1, "filename": "wiji-0.1.6b3-py3-none-any.whl", "has_sig": false, "md5_digest": "f131ddf926445c9d843a4a581c3a19ac", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 29108, "upload_time": "2019-04-18T14:06:32", "url": "https://files.pythonhosted.org/packages/0b/b3/730fc7c6dd585b85064df17f8731c0f2e0235e163214a785fec5c8d308f1/wiji-0.1.6b3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "3763f7247b7eb7d40c61e4864dfd1ed3", "sha256": "3b1db36301905a811fbf2f863c24c0d9a1966e42f21e72348d8d0f1c6b8d6854" }, "downloads": -1, "filename": "wiji-0.1.6b3.tar.gz", "has_sig": false, "md5_digest": "3763f7247b7eb7d40c61e4864dfd1ed3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 24762, "upload_time": "2019-04-18T14:06:34", "url": "https://files.pythonhosted.org/packages/8d/4a/4ec7a7bfd6786567cd648b73c5bb8dfbc2fe52088c49a8fd2fab47c01541/wiji-0.1.6b3.tar.gz" } ], "0.1.6b4": [ { "comment_text": "", "digests": { "md5": "2d81c31dfbe26258f97e8de120099aa5", "sha256": "3ee4557affa76a187d59cb4dece7340807cccc8cc39054efa1a2a3cb71d8f624" }, "downloads": -1, "filename": "wiji-0.1.6b4-py3-none-any.whl", "has_sig": false, "md5_digest": "2d81c31dfbe26258f97e8de120099aa5", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 29256, "upload_time": "2019-04-27T17:10:11", "url": "https://files.pythonhosted.org/packages/7d/fd/0569e018f05179cb5ac59b46069993bd66001025f7e2757ec2d37955aacd/wiji-0.1.6b4-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "7f67956ca126783e9b850c9a001d618d", "sha256": "3324a087f8d0b26662719e5b5e6af62851d382eb3b89b5d72cb9514a8c2b4299" }, "downloads": -1, "filename": "wiji-0.1.6b4.tar.gz", "has_sig": false, "md5_digest": "7f67956ca126783e9b850c9a001d618d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 24871, "upload_time": "2019-04-27T17:10:15", "url": "https://files.pythonhosted.org/packages/5b/3b/535766b50f9fe9c56bf83288177bcffcf796c606bcbac1bc2a396cc551c6/wiji-0.1.6b4.tar.gz" } ], "0.1.6b5": [ { "comment_text": "", "digests": { "md5": "b6f32065fe46097fd3650ea1b78e2fa0", "sha256": "5b89f9d49aebb1498dcddead1a0325e439409fb426af9b313edde9c6a3582348" }, "downloads": -1, "filename": "wiji-0.1.6b5-py3-none-any.whl", "has_sig": false, "md5_digest": "b6f32065fe46097fd3650ea1b78e2fa0", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 29283, "upload_time": "2019-05-04T09:11:59", "url": "https://files.pythonhosted.org/packages/ab/8d/95faa8920ff463484ff0fad4197dd6c7c970bac8045981ce2cc7046bfb24/wiji-0.1.6b5-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "242316540cd72e1a96852f44e3f43656", "sha256": "16b4c92c8c62df0276772d01197c87890a6950dd0635778990d76c853e6c87fb" }, "downloads": -1, "filename": "wiji-0.1.6b5.tar.gz", "has_sig": false, "md5_digest": "242316540cd72e1a96852f44e3f43656", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 24993, "upload_time": "2019-05-04T09:12:01", "url": "https://files.pythonhosted.org/packages/34/a4/2d145cbae6969fcfff6a91088b128b93a0a9b8a330648c5283e6d1fb0fbc/wiji-0.1.6b5.tar.gz" } ], "0.1.7": [ { "comment_text": "", "digests": { "md5": "c61979c5642565bb1b51477a26b46c1b", "sha256": "4e53a51e61197817d878bf17c0058f981edd4c3027e968ea42349636729d1d38" }, "downloads": -1, "filename": "wiji-0.1.7-py3-none-any.whl", "has_sig": false, "md5_digest": "c61979c5642565bb1b51477a26b46c1b", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 29607, "upload_time": "2019-05-04T14:30:22", "url": "https://files.pythonhosted.org/packages/25/de/7204b786c92a55d7bcde4c2be3142b2d9b7fbd8c3dc34f0664a8f39d0d1a/wiji-0.1.7-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e82fd423df534c3df0f959e5e60efa67", "sha256": "ea72f0e1b59ee55d28b5dfa73580451426c0b4ed2bf1d1ee491cca7de5ea2c29" }, "downloads": -1, "filename": "wiji-0.1.7.tar.gz", "has_sig": false, "md5_digest": "e82fd423df534c3df0f959e5e60efa67", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 25088, "upload_time": "2019-05-04T14:30:24", "url": "https://files.pythonhosted.org/packages/3e/08/0a986c4d8a6b37606e1a6a076688a05d18da789f68c4affd86f15f799a5d/wiji-0.1.7.tar.gz" } ], "0.1.8": [ { "comment_text": "", "digests": { "md5": "73583ae7c7782ed41076446efdd50d5b", "sha256": "ab06b95fb2a978aa46f2e579eb3def378bfa7cbb72f12f0345785e92f7174d63" }, "downloads": -1, "filename": "wiji-0.1.8-py3-none-any.whl", "has_sig": false, "md5_digest": "73583ae7c7782ed41076446efdd50d5b", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 29610, "upload_time": "2019-05-06T16:03:24", "url": "https://files.pythonhosted.org/packages/48/40/8ccd8f1554987e7ebb69d43293667d36676011575050bbab1f51fd62f62d/wiji-0.1.8-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "8f1742c9d065670d4c80065ea2419f37", "sha256": "c914f967b29380ae85c24f846591b5c71d480c01eda935b0a9b86d5e55dd2048" }, "downloads": -1, "filename": "wiji-0.1.8.tar.gz", "has_sig": false, "md5_digest": "8f1742c9d065670d4c80065ea2419f37", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 25111, "upload_time": "2019-05-06T16:03:26", "url": "https://files.pythonhosted.org/packages/24/fb/c54e6fd7c7af2974e7fe2c7f47a1675c594729bc66e45659686b4889ff91/wiji-0.1.8.tar.gz" } ], "0.1.9": [ { "comment_text": "", "digests": { "md5": "31462b2c1341af24bc4a26a9e718a075", "sha256": "96203dcf674117d120214ee5f2084d251fd86bd33f20a1b792750b9384e39ca2" }, "downloads": -1, "filename": "wiji-0.1.9-py3-none-any.whl", "has_sig": false, "md5_digest": "31462b2c1341af24bc4a26a9e718a075", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 29400, "upload_time": "2019-05-16T16:09:38", "url": "https://files.pythonhosted.org/packages/9e/93/60d073f901cdf119c39e4ef45c37078e664130dfd157405e3a630fcd3502/wiji-0.1.9-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "7df9e2170826520ab6f996c1f40b72d1", "sha256": "121ebb48235754fc1e95acee010b41e74a7d910aaf1567ea279c8966655aed20" }, "downloads": -1, "filename": "wiji-0.1.9.tar.gz", "has_sig": false, "md5_digest": "7df9e2170826520ab6f996c1f40b72d1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 24893, "upload_time": "2019-05-16T16:09:40", "url": "https://files.pythonhosted.org/packages/73/31/e49f7ff0feb4209caed6ccbaa5129360164cd1bd5c9e072a929f2962a4f0/wiji-0.1.9.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "f78a25d44ae78094401505f61e10c30d", "sha256": "062ad62374ae1a2186a00a66a03fd8e61f2d3081aecff1089c848e2bb1eb7705" }, "downloads": -1, "filename": "wiji-0.2.0-py3-none-any.whl", "has_sig": false, "md5_digest": "f78a25d44ae78094401505f61e10c30d", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 30700, "upload_time": "2019-05-18T10:08:15", "url": "https://files.pythonhosted.org/packages/6a/22/68d57acac7cbf6a2aa1a591f3fb4f50fc2ffa602f6bb54b2993868932436/wiji-0.2.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "53dd92edb82f2a613ab799f925a5d174", "sha256": "569fe48ae8a56e57304e445871bb94441f1773c96b677d1372f88d9286e60f5b" }, "downloads": -1, "filename": "wiji-0.2.0.tar.gz", "has_sig": false, "md5_digest": "53dd92edb82f2a613ab799f925a5d174", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 27519, "upload_time": "2019-05-18T10:08:17", "url": "https://files.pythonhosted.org/packages/45/3f/7dedfb09817b1d83b4b6c031e95dda390f20441e2f96e3c6e20c55063493/wiji-0.2.0.tar.gz" } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "aec236d334cb2985f417c69af2f638c7", "sha256": "a30542f616f47ed2914bcdbda32e2d0fcb321c9eb6b4b2dcdb68996899379f6e" }, "downloads": -1, "filename": "wiji-0.3.0-py3-none-any.whl", "has_sig": false, "md5_digest": "aec236d334cb2985f417c69af2f638c7", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 32501, "upload_time": "2019-05-25T13:48:15", "url": "https://files.pythonhosted.org/packages/d8/04/02d8bbd7cf64632743de86d58af057bfcf406a070f08a2a314b6729ef78a/wiji-0.3.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "7061e068fda1504602a2b66e77aba6d6", "sha256": "7cf9a6a921e77d0d00e2d5db892e435a911e73edba2758a1b52f02c512d7aacc" }, "downloads": -1, "filename": "wiji-0.3.0.tar.gz", "has_sig": false, "md5_digest": "7061e068fda1504602a2b66e77aba6d6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 29114, "upload_time": "2019-05-25T13:48:17", "url": "https://files.pythonhosted.org/packages/d0/4b/a3d8bd25a1cef0f9761ee1ca921a5f616abfc3adb5dbe3d6537d11614a15/wiji-0.3.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "aec236d334cb2985f417c69af2f638c7", "sha256": "a30542f616f47ed2914bcdbda32e2d0fcb321c9eb6b4b2dcdb68996899379f6e" }, "downloads": -1, "filename": "wiji-0.3.0-py3-none-any.whl", "has_sig": false, "md5_digest": "aec236d334cb2985f417c69af2f638c7", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 32501, "upload_time": "2019-05-25T13:48:15", "url": "https://files.pythonhosted.org/packages/d8/04/02d8bbd7cf64632743de86d58af057bfcf406a070f08a2a314b6729ef78a/wiji-0.3.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "7061e068fda1504602a2b66e77aba6d6", "sha256": "7cf9a6a921e77d0d00e2d5db892e435a911e73edba2758a1b52f02c512d7aacc" }, "downloads": -1, "filename": "wiji-0.3.0.tar.gz", "has_sig": false, "md5_digest": "7061e068fda1504602a2b66e77aba6d6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 29114, "upload_time": "2019-05-25T13:48:17", "url": "https://files.pythonhosted.org/packages/d0/4b/a3d8bd25a1cef0f9761ee1ca921a5f616abfc3adb5dbe3d6537d11614a15/wiji-0.3.0.tar.gz" } ] }