{ "info": { "author": "irma-dev", "author_email": "irma-dev@quarkslab.com", "bugtrack_url": null, "classifiers": [], "description": "Irmacl-async: Asynchronous client library for IRMA API\n======================================================\n\n|docs|\n\nIRMA is an asynchronous and customizable analysis system for suspicious files.\nThis repository is a subproject of IRMA and contains the source code for IRMA\nAPI client.\n\nIrmacl-async requires **python 3.6+** and an IRMA server with **API version 3**.\nThe exact expected version is defined in ``AAPI.IRMA_VERSION``.\n\nInstallation\n------------\n\nFrom the sources, clone the repository and run\n\n.. code-block:: console\n\n $ pip install .\n\nOr with pip just run\n\n.. code-block:: console\n\n $ pip install irmacl-async\n\n\nConfiguration\n`````````````\n\nIrmacl-async configuration is done with a ``Config`` object that should be\ngiven to ``AAPI`` at initialisation. The details of expected configuration is\navailable with ``help(Config)``. A ``Config`` object can be initialized from an\nirma.yml file, which is a yaml file containing the parameters of a ``Config``\nobject. All parameters are optional.\n\n.. code-block:: yaml\n\n api_endpoint: \"https://172.16.1.30/api/v3\"\n verify: true\n ca: /etc/irma/ca.crt\n cert: /etc/irma/client.crt\n key: /etc/irma/client.key\n submitter: kiosk\n submitter_id: kiosk-D205\n\nirma.yml is searched in these locations in following order:\n\n* environment variable *IRMA_CONF*\n* current directory\n* user home directory\n* global directory */etc/irma*\n\nOnce you set up a working irma.yml settings file, you could run tests on your\nrunning IRMA server:\n\n.. code-block:: console\n\n $ python setup.py test\n\n\nUsage\n-----\n\nIrmacl-async is an asynchronous library. It is meant to ease the development of\npython code that communicates with an IRMA server.\n\nHello world\n```````````\n\n.. code-block:: pycon\n\n >>> import asyncio\n >>> from irmacl_async import AAPI\n >>>\n >>> async def main():\n ... async with AAPI() as api:\n ... resp = await api.about()\n ... print(resp['version'])\n ...\n >>> loop = asyncio.get_event_loop()\n >>> loop.run_until_complete(main())\n v2.2.3-20-g06a29b45\n\nThe ``main`` coroutine just prints the version of the IRMA server counterpart.\nThere is few things to notice in this example.\n\nFirst, an async context pattern must be opened to create a session and perform\nrequests. Moreover, AAPI will check the version of IRMA and prints a warning if\nit mismatches the expected one (``apicheck=False`` to prevent this behavior).\nIrmacl-async uses ``aiohttp.ClientSession`` in backend, you can set\n``AAPI().session`` manually at your own risks but it is not recommenced.\n\nSecond, ``api.about`` does not return a result but a ``Future`` that needs to\nbe awaited before being able to get its result.\n\nFinally, the ``main`` coroutine cannot just be called as a regular function but\nneeds to be awaited from another coroutine or run into an event loop.\n\n\nBasic usage\n```````````\n\n.. code-block:: pycon\n\n >>> import asyncio\n >>> from pathlib import Path\n >>> from irmacl_async import AAPI\n >>>\n >>> async def scandir(directory):\n ... files = (p for p in directory.iterdir() if p.is_file())\n ... async with AAPI() as api:\n ... scan = await api.scans.scan(files, linger=True)\n ... res = await AAPI.fetchall(api.scans.results, scan=scan)\n ... files = [api.files.get(fe.file) for fe in res]\n ... return await asyncio.gather(*files)\n ...\n >>> loop = asyncio.get_event_loop()\n >>> d = Path(\"irmacl_async/tests/functionals/samples\")\n >>> loop.run_until_complete(scandir(d))\n [FileExt.d13ab478-b24e-43a2-a51a-38c10355e929, ...]\n\nThe ``scandir`` coroutine is a bit more complex and benefits from the\nasynchronicity of the irmacl-async library. It scans the contents of a\ndirectory and wait for the result (``linger=True``). Then, it queries all\nresults of the scan. ``api.scans.results`` returns a page of result, so, use it\nwith the ``fetchall`` helper to get all pages at once. Then, for each result\nit queries information about the file itself. Instead of a ``for`` loop, that\nwould query the files one at a time, it uses ``asyncio.gather``. Finally it\nwaits for every request to be complete and returns the results.\n\n\nReferences\n----------\n\nAAPI\n````\n\nEvery method is -or at least should be- fully documented, use ``help(AAPI)`` or\n``help(AAPI().files)`` to get a exhaustive list of every available method and\ntheir parameters.\n\nObjects\n```````\n\nirmacl_async makes a heavy use of `irma-shared`_ to handle deserialisation and\nobjects construction.\n\nCoverage\n````````\n\nCoverage is available on `https://irma.doc.qb/irma-shared/coverage`. Check the\ndeployed branch in the title of the page.\n\nOther\n-----\n\nDocumentation\n`````````````\n\nThe full IRMA documentation is available `on Read The Docs Website`_.\n\n\nGetting help\n````````````\n\nJoin the #qb_irma channel on irc.freenode.net. Lots of helpful people hang out\nthere.\n\n\nContribute to IRMA\n``````````````````\n\nIRMA is an ambitious project. Make yourself known on the #qb_irma channel on\nirc.freenode.net. We will be please to greet you and to find a way to get you\ninvolved in the project.\n\n\n.. |docs| image:: https://readthedocs.org/projects/irma/badge/\n :alt: Documentation Status\n :scale: 100%\n :target: https://irma.readthedocs.io\n.. _on Read The Docs Website: https://irma.readthedocs.io\n.. _irma-shared: https://github.com/quarkslab/irma-shared\n\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/quarkslab/irmacl-async", "keywords": "", "license": "ApacheV2", "maintainer": "", "maintainer_email": "", "name": "irmacl-async", "package_url": "https://pypi.org/project/irmacl-async/", "platform": null, "project_url": "https://pypi.org/project/irmacl-async/", "project_urls": { "Homepage": "https://github.com/quarkslab/irmacl-async" }, "release_url": "https://pypi.org/project/irmacl-async/3.4.1/", "requires_dist": null, "requires_python": "", "summary": "Irma asynchronous command line tool for API v3", "version": "3.4.1", "yanked": false, "yanked_reason": null }, "last_serial": 13102105, "releases": { "2.0.0": [ { "comment_text": "", "digests": { "md5": "96113a888bdf89a36993e7997286560c", "sha256": "cc168b4d0632c0006aad114ea4b56caa192d0ad0612a3e679ec8a9055ccb56a3" }, "downloads": -1, "filename": "irmacl-async-2.0.0.tar.gz", "has_sig": false, "md5_digest": "96113a888bdf89a36993e7997286560c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13455, "upload_time": "2018-11-06T09:56:24", "upload_time_iso_8601": "2018-11-06T09:56:24.859916Z", "url": "https://files.pythonhosted.org/packages/dd/a7/488fc33b14ebf0a696ff7dff31b95b259d3fe38b36459d40eb1a64849865/irmacl-async-2.0.0.tar.gz", "yanked": false, "yanked_reason": null } ], "2.1.0b1": [ { "comment_text": "", "digests": { "md5": "9b621c8de59ab9d1ff8fdf5d98cd8bd6", "sha256": "8fb95f1ed37acc456da592a3a60a787d6cf117158749e08d9435fd8efed4d1a6" }, "downloads": -1, "filename": "irmacl_async-2.1.0b1-py3-none-any.whl", "has_sig": false, "md5_digest": "9b621c8de59ab9d1ff8fdf5d98cd8bd6", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 15518, "upload_time": "2018-12-05T15:49:01", "upload_time_iso_8601": "2018-12-05T15:49:01.284310Z", "url": "https://files.pythonhosted.org/packages/0d/1c/7696eedf67292bb27c5b30ef762efd208051e54abadc28281363339cef8c/irmacl_async-2.1.0b1-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "9664be6c4ab693f169b0054fed7702a1", "sha256": "74494b06e1980724b192988e32e8659663e80a49c4ebf9f02e0313ab3f785080" }, "downloads": -1, "filename": "irmacl-async-2.1.0b1.tar.gz", "has_sig": false, "md5_digest": "9664be6c4ab693f169b0054fed7702a1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11612, "upload_time": "2018-12-05T15:49:02", "upload_time_iso_8601": "2018-12-05T15:49:02.608938Z", "url": "https://files.pythonhosted.org/packages/5b/9e/e1840f82f8e1a5b59aeaa5920206d9942deb96dcb1a00cb81a4273baceb1/irmacl-async-2.1.0b1.tar.gz", "yanked": false, "yanked_reason": null } ], "2.1.1": [ { "comment_text": "", "digests": { "md5": "c7c240fecdc2c7381823eb0b0f4866e8", "sha256": "e395c8283477fd75ddade9612454b68ad13c3dc5eade1e099390e46548b5d8cc" }, "downloads": -1, "filename": "irmacl_async-2.1.1-py3-none-any.whl", "has_sig": false, "md5_digest": "c7c240fecdc2c7381823eb0b0f4866e8", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 15060, "upload_time": "2019-04-16T12:34:34", "upload_time_iso_8601": "2019-04-16T12:34:34.440735Z", "url": "https://files.pythonhosted.org/packages/fd/2d/e9a94bc894f7730b1b809df80b141b342ea134cb1bc3d35b2ddc292edcaf/irmacl_async-2.1.1-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "c369611036ef26553126c6b4112421d7", "sha256": "5dffd21c4b81160d0d51cf2457043d87c6e968110ba5c417e878f3f9df8d74d9" }, "downloads": -1, "filename": "irmacl-async-2.1.1.tar.gz", "has_sig": false, "md5_digest": "c369611036ef26553126c6b4112421d7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12984, "upload_time": "2019-04-16T12:34:36", "upload_time_iso_8601": "2019-04-16T12:34:36.389510Z", "url": "https://files.pythonhosted.org/packages/8c/a2/44362a753529e106fadafacbed60a56ceff12bdc6bdb46aaab0b608345d9/irmacl-async-2.1.1.tar.gz", "yanked": false, "yanked_reason": null } ], "2.1.2": [ { "comment_text": "", "digests": { "md5": "63ea39461c81de3139226dab67a8712b", "sha256": "a718d17f51231aba72efdb4e95b06721dd3399523332e4aea14f96633102f045" }, "downloads": -1, "filename": "irmacl-async-2.1.2.tar.gz", "has_sig": false, "md5_digest": "63ea39461c81de3139226dab67a8712b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13019, "upload_time": "2019-06-19T14:35:47", "upload_time_iso_8601": "2019-06-19T14:35:47.670045Z", "url": "https://files.pythonhosted.org/packages/41/d2/6c1609ee1f60626305e22a7333c384e332093656c04702df106a4febd3ed/irmacl-async-2.1.2.tar.gz", "yanked": false, "yanked_reason": null } ], "2.1.3": [ { "comment_text": "", "digests": { "md5": "337bdb727a4963eb7d5d2e455eff6ce9", "sha256": "7ca498309c2bd7829d84c43fd2b953eeca89a1aa3719fe234c6188b7fb1d4870" }, "downloads": -1, "filename": "irmacl-async-2.1.3.tar.gz", "has_sig": false, "md5_digest": "337bdb727a4963eb7d5d2e455eff6ce9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10929, "upload_time": "2019-06-28T17:15:18", "upload_time_iso_8601": "2019-06-28T17:15:18.065176Z", "url": "https://files.pythonhosted.org/packages/9e/58/924d738e7a4d2850ca5bb2aeeda3c28ccdde05f6c7d35468f334dc94fa1d/irmacl-async-2.1.3.tar.gz", "yanked": false, "yanked_reason": null } ], "3.0.0b1": [ { "comment_text": "", "digests": { "md5": "5fbb7987da815e22544348099aca0afd", "sha256": "6feb86aa46baed82b586d0c574e8322d31425a7a3f639763bb103ccec3651806" }, "downloads": -1, "filename": "irmacl_async-3.0.0b1-py3-none-any.whl", "has_sig": false, "md5_digest": "5fbb7987da815e22544348099aca0afd", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 16474, "upload_time": "2019-04-11T13:06:08", "upload_time_iso_8601": "2019-04-11T13:06:08.119670Z", "url": "https://files.pythonhosted.org/packages/f7/0a/dd8ffdd706bf2e48293ec457fd23ed871969afbd5732fec51d0341ebc1d6/irmacl_async-3.0.0b1-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "5828b2f0d77ea9d381f5dd3574331b59", "sha256": "7bdc5a55f7294441c4f7089adc35da61fd6786c4456dd19e05d2054aa3d71d6d" }, "downloads": -1, "filename": "irmacl-async-3.0.0b1.tar.gz", "has_sig": false, "md5_digest": "5828b2f0d77ea9d381f5dd3574331b59", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14539, "upload_time": "2019-04-11T13:06:09", "upload_time_iso_8601": "2019-04-11T13:06:09.731474Z", "url": "https://files.pythonhosted.org/packages/ea/de/95b5b9014510e2fb6a8d1ba05a1e8b3bae701bc3d60af3c5b096b9a4170a/irmacl-async-3.0.0b1.tar.gz", "yanked": false, "yanked_reason": null } ], "3.0.0b2": [ { "comment_text": "", "digests": { "md5": "c918a77d90bed70fc3a109d457c27fec", "sha256": "09f6df54356f80a5b0f9e1570c16d00f94fb7356ea84bb2ccb26f0668144408e" }, "downloads": -1, "filename": "irmacl-async-3.0.0b2.tar.gz", "has_sig": false, "md5_digest": "c918a77d90bed70fc3a109d457c27fec", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12387, "upload_time": "2019-04-26T09:05:14", "upload_time_iso_8601": "2019-04-26T09:05:14.618782Z", "url": "https://files.pythonhosted.org/packages/13/5e/7b68384e5f5e664d9333e634f4a4cf6973ae6325c599930b7f0828ec9800/irmacl-async-3.0.0b2.tar.gz", "yanked": false, "yanked_reason": null } ], "3.1.0b1": [ { "comment_text": "", "digests": { "md5": "de65c41caef1a910ff144379aa44f9f4", "sha256": "e678129475eff25f4ddd5c5cf208d55e7720346f2ca075881452ba089bfdf570" }, "downloads": -1, "filename": "irmacl-async-3.1.0b1.tar.gz", "has_sig": false, "md5_digest": "de65c41caef1a910ff144379aa44f9f4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12374, "upload_time": "2019-04-26T09:05:05", "upload_time_iso_8601": "2019-04-26T09:05:05.745618Z", "url": "https://files.pythonhosted.org/packages/6d/88/b172de5c8be5e937f8567bc59cdf32420c5244f52400e915d09d5ee5fee3/irmacl-async-3.1.0b1.tar.gz", "yanked": false, "yanked_reason": null } ], "3.1.1b0": [ { "comment_text": "", "digests": { "md5": "551a67fdea64b39ab49823a28b19eb31", "sha256": "0c8a26704a645ef1ff6a3c285278df62e7472c1359e272d24ca5a66cbcfbd830" }, "downloads": -1, "filename": "irmacl_async-3.1.1b0-py3-none-any.whl", "has_sig": false, "md5_digest": "551a67fdea64b39ab49823a28b19eb31", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 17097, "upload_time": "2019-05-16T15:50:29", "upload_time_iso_8601": "2019-05-16T15:50:29.430780Z", "url": "https://files.pythonhosted.org/packages/be/d3/0d7628ffd479a03652100bb5f5759bc833421e162011f03efe604059de54/irmacl_async-3.1.1b0-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "e360db11a7814523fb06fb8deb207d5d", "sha256": "c15a40565f5fcc45b33d120fbab887032956159b95bc1a30b41238915ddd894e" }, "downloads": -1, "filename": "irmacl-async-3.1.1b0.tar.gz", "has_sig": false, "md5_digest": "e360db11a7814523fb06fb8deb207d5d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15131, "upload_time": "2019-05-16T15:50:31", "upload_time_iso_8601": "2019-05-16T15:50:31.104258Z", "url": "https://files.pythonhosted.org/packages/ed/8c/8385a981b41dc6fa2153433a53139a513415b569d10987d6505432533f14/irmacl-async-3.1.1b0.tar.gz", "yanked": false, "yanked_reason": null } ], "3.1.1b2": [ { "comment_text": "", "digests": { "md5": "c44f12b6e03560f205d7a7e46369e9d2", "sha256": "def22b044dfae470a78afe1c6b0a4eb936bdda6f825d92093f6e3f78bcc7ef97" }, "downloads": -1, "filename": "irmacl_async-3.1.1b2-py3-none-any.whl", "has_sig": false, "md5_digest": "c44f12b6e03560f205d7a7e46369e9d2", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 17139, "upload_time": "2019-06-13T16:18:12", "upload_time_iso_8601": "2019-06-13T16:18:12.919959Z", "url": "https://files.pythonhosted.org/packages/b1/44/5996f791f35bd68e6976874d966d2c108511ebb28d4cdf20a9bf5d46747f/irmacl_async-3.1.1b2-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "c3f9551648e88f60e2018b43b3099604", "sha256": "ed5de438ef1ce6f29958869927f95a594cfb5c49a41b810d98ceae9b991f3ba9" }, "downloads": -1, "filename": "irmacl-async-3.1.1b2.tar.gz", "has_sig": false, "md5_digest": "c3f9551648e88f60e2018b43b3099604", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15159, "upload_time": "2019-06-13T16:18:14", "upload_time_iso_8601": "2019-06-13T16:18:14.821419Z", "url": "https://files.pythonhosted.org/packages/61/8f/b965e57bf3af56751e4a369a6c604c8193bacd8936749e330f4fca394816/irmacl-async-3.1.1b2.tar.gz", "yanked": false, "yanked_reason": null } ], "3.1.2b1": [ { "comment_text": "", "digests": { "md5": "9c3cdca78f1fadba4f4530fd0cc14759", "sha256": "37d02d143b2ec2c93cce9b2c43ff8df646e53f330a19f8af0c9219006a6dd22b" }, "downloads": -1, "filename": "irmacl-async-3.1.2b1.tar.gz", "has_sig": false, "md5_digest": "9c3cdca78f1fadba4f4530fd0cc14759", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13005, "upload_time": "2019-06-28T17:19:22", "upload_time_iso_8601": "2019-06-28T17:19:22.895420Z", "url": "https://files.pythonhosted.org/packages/23/14/2feb6d57d83441da12e0f6a03f95fad3c44cdbdb321c556e93bd2c7ee749/irmacl-async-3.1.2b1.tar.gz", "yanked": false, "yanked_reason": null } ], "3.1.2b2": [ { "comment_text": "", "digests": { "md5": "dfee6836b7143bc2401ca08079ed1fb3", "sha256": "28daac3d1dcc373e21debd9b0b2651cd5115a5448b11cb6e9033ca35aa2c8ba8" }, "downloads": -1, "filename": "irmacl_async-3.1.2b2-py3-none-any.whl", "has_sig": false, "md5_digest": "dfee6836b7143bc2401ca08079ed1fb3", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 17144, "upload_time": "2019-07-04T07:54:18", "upload_time_iso_8601": "2019-07-04T07:54:18.747066Z", "url": "https://files.pythonhosted.org/packages/ed/65/f645adc11ce5ea6172f7c5c9a878c2d31813344e43457fa45feae3d2e249/irmacl_async-3.1.2b2-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "267be3b20abd13c7ea993320c9abf735", "sha256": "116a4fed270e0cb764db3e6c4895bf0a3db16c6719863a72cc21a115e3357071" }, "downloads": -1, "filename": "irmacl-async-3.1.2b2.tar.gz", "has_sig": false, "md5_digest": "267be3b20abd13c7ea993320c9abf735", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15166, "upload_time": "2019-07-04T07:54:20", "upload_time_iso_8601": "2019-07-04T07:54:20.740627Z", "url": "https://files.pythonhosted.org/packages/9c/bf/5acc69ae8915f1b8c69233e0e43536c3db9ef0f81db8a6937cc6774bd5b3/irmacl-async-3.1.2b2.tar.gz", "yanked": false, "yanked_reason": null } ], "3.1.2b3": [ { "comment_text": "", "digests": { "md5": "a541e82edfc9e6b6f093d433860523c3", "sha256": "f1001214d8b13aecb62d0e8093158aa28e65ab62ee5aca1643d36cdfb6b2a8f9" }, "downloads": -1, "filename": "irmacl_async-3.1.2b3-py3-none-any.whl", "has_sig": false, "md5_digest": "a541e82edfc9e6b6f093d433860523c3", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 17141, "upload_time": "2019-08-14T13:58:55", "upload_time_iso_8601": "2019-08-14T13:58:55.650682Z", "url": "https://files.pythonhosted.org/packages/53/2d/db3642c94481795ad96a0254929d3d9b108e316e605d4814891e00add84f/irmacl_async-3.1.2b3-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "63904a86213c62bb46c9146dc8e14ce6", "sha256": "c1143630bbe13cec391ea554346ab001e53e9fcdd4d12251cdf1887e567886a8" }, "downloads": -1, "filename": "irmacl-async-3.1.2b3.tar.gz", "has_sig": false, "md5_digest": "63904a86213c62bb46c9146dc8e14ce6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15161, "upload_time": "2019-08-14T13:58:57", "upload_time_iso_8601": "2019-08-14T13:58:57.683757Z", "url": "https://files.pythonhosted.org/packages/2c/77/d00f408fc7174f6f8bc8896af7d32a383f382bf5473c197aea5132b3c72d/irmacl-async-3.1.2b3.tar.gz", "yanked": false, "yanked_reason": null } ], "3.1.2b4": [ { "comment_text": "", "digests": { "md5": "9a77c373c8102e4254cc0326b5678f02", "sha256": "7dc4bc5b07f4d06872421dfc3b158327aafde5b3830e9b09902192b9a8b1f5b6" }, "downloads": -1, "filename": "irmacl_async-3.1.2b4-py3-none-any.whl", "has_sig": false, "md5_digest": "9a77c373c8102e4254cc0326b5678f02", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 17144, "upload_time": "2019-09-18T14:02:43", "upload_time_iso_8601": "2019-09-18T14:02:43.178047Z", "url": "https://files.pythonhosted.org/packages/54/29/302120fd6d3c966f2625028360070fba0d5611e5db29b3c0ae121ef92d0b/irmacl_async-3.1.2b4-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "21061c49508c143bb53e55e1483f5936", "sha256": "3e5a0f411db363fee2198d5b8f497d5dbfc6033f65a28a4a8404aba2f1df87f1" }, "downloads": -1, "filename": "irmacl-async-3.1.2b4.tar.gz", "has_sig": false, "md5_digest": "21061c49508c143bb53e55e1483f5936", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15170, "upload_time": "2019-09-18T14:02:45", "upload_time_iso_8601": "2019-09-18T14:02:45.785039Z", "url": "https://files.pythonhosted.org/packages/6a/e9/9236436d3371e42d3765b8fbce3ca191cd616fe93e25c0f5851a3e461e2a/irmacl-async-3.1.2b4.tar.gz", "yanked": false, "yanked_reason": null } ], "3.1.2b6": [ { "comment_text": "", "digests": { "md5": "c1fdd5d0ae22ecac7018142c6e89afff", "sha256": "c06aab3b8b31bdf89157431eeb429db457371d798901f4c84e9570c0b6f57064" }, "downloads": -1, "filename": "irmacl-async-3.1.2b6.tar.gz", "has_sig": false, "md5_digest": "c1fdd5d0ae22ecac7018142c6e89afff", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12876, "upload_time": "2019-10-22T03:17:07", "upload_time_iso_8601": "2019-10-22T03:17:07.978866Z", "url": "https://files.pythonhosted.org/packages/0d/4b/764dec747ce9db511fedb194e29fb3a79f2bde58b4bd90e4a31b84684eec/irmacl-async-3.1.2b6.tar.gz", "yanked": false, "yanked_reason": null } ], "3.1.3": [ { "comment_text": "", "digests": { "md5": "a5fb77b5c444a7362dc0dbbfcc455505", "sha256": "d5a3eef16e8e84fbead194b2ea43ed29243e60ef9b204f068ef68a08a257224b" }, "downloads": -1, "filename": "irmacl-async-3.1.3.tar.gz", "has_sig": false, "md5_digest": "a5fb77b5c444a7362dc0dbbfcc455505", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13204, "upload_time": "2019-10-28T16:46:56", "upload_time_iso_8601": "2019-10-28T16:46:56.205142Z", "url": "https://files.pythonhosted.org/packages/b2/38/b6ff651eeaf46db5f2fe4b551c7301ae032ba6630d4320bb6971a839dee2/irmacl-async-3.1.3.tar.gz", "yanked": false, "yanked_reason": null } ], "3.1.3b1": [ { "comment_text": "", "digests": { "md5": "44e85dbba8e092d9c1f21ee745eb3a57", "sha256": "ead594b4e13cf9ee26b59a0163e49a0adf21694b1b2e209523951dffc445933b" }, "downloads": -1, "filename": "irmacl-async-3.1.3b1.tar.gz", "has_sig": false, "md5_digest": "44e85dbba8e092d9c1f21ee745eb3a57", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15165, "upload_time": "2019-10-11T13:19:52", "upload_time_iso_8601": "2019-10-11T13:19:52.042595Z", "url": "https://files.pythonhosted.org/packages/f5/7b/8173e28692963916bfd0d0746e2daee5eb793cd9f20ae02d7815df53ec1b/irmacl-async-3.1.3b1.tar.gz", "yanked": false, "yanked_reason": null } ], "3.1.3b2": [ { "comment_text": "", "digests": { "md5": "ea263b94c8caa287d2e4e945d4dc7f9d", "sha256": "15f752bc5d6cdd6be3e1a817ed0faeb3eaa547500eaaeabe43792abc3859e664" }, "downloads": -1, "filename": "irmacl-async-3.1.3b2.tar.gz", "has_sig": false, "md5_digest": "ea263b94c8caa287d2e4e945d4dc7f9d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12870, "upload_time": "2019-10-25T16:39:23", "upload_time_iso_8601": "2019-10-25T16:39:23.846859Z", "url": "https://files.pythonhosted.org/packages/ff/07/c283b3529478421bf20901d7792934255f67839434d3b775e463efce29e0/irmacl-async-3.1.3b2.tar.gz", "yanked": false, "yanked_reason": null } ], "3.1.4b0": [ { "comment_text": "", "digests": { "md5": "c8bc7082861bee469278cbd2a00bb095", "sha256": "42c8275134233bd547c67b9ca2731b9b8196b32a162877428a46ec8ac3701b40" }, "downloads": -1, "filename": "irmacl-async-3.1.4b0.tar.gz", "has_sig": false, "md5_digest": "c8bc7082861bee469278cbd2a00bb095", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15355, "upload_time": "2019-11-12T14:10:45", "upload_time_iso_8601": "2019-11-12T14:10:45.153772Z", "url": "https://files.pythonhosted.org/packages/fe/94/6b62669a641f96295dfa08c39a6907cff179212a25096b476cc915b9f4db/irmacl-async-3.1.4b0.tar.gz", "yanked": false, "yanked_reason": null } ], "3.1.4b1": [ { "comment_text": "", "digests": { "md5": "fa255fc6834c0d8929ab66752b67a843", "sha256": "df30a07c58563f0f1216b42d88a450ed5c6bc8b0f1ebb90b518d51327f8c2914" }, "downloads": -1, "filename": "irmacl_async-3.1.4b1-py3-none-any.whl", "has_sig": false, "md5_digest": "fa255fc6834c0d8929ab66752b67a843", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 18390, "upload_time": "2019-11-20T10:22:09", "upload_time_iso_8601": "2019-11-20T10:22:09.122789Z", "url": "https://files.pythonhosted.org/packages/5e/65/3693ad53dfac3214710aa7717bc44f8d85663a47834a90b62587ee49bdb1/irmacl_async-3.1.4b1-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "3e6a4a6db04b5241962da55827dbcf8c", "sha256": "d1610313179c5592faa16a1daf6fc7c25e1b710ea56d27f71825d18f9d13b81d" }, "downloads": -1, "filename": "irmacl-async-3.1.4b1.tar.gz", "has_sig": false, "md5_digest": "3e6a4a6db04b5241962da55827dbcf8c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16294, "upload_time": "2019-11-20T10:22:41", "upload_time_iso_8601": "2019-11-20T10:22:41.818608Z", "url": "https://files.pythonhosted.org/packages/fb/ba/7b58ea0fe9ed3ea2a49f17cf0ecc4cf71f2d455a18723fc0b13fbe9c67ca/irmacl-async-3.1.4b1.tar.gz", "yanked": false, "yanked_reason": null } ], "3.1.4b2": [ { "comment_text": "", "digests": { "md5": "f9707b766714ec918a6e50235f706f26", "sha256": "e5b88437d1caa5b06770329fe1351d7796525201a14bf926e56602e1fe06350a" }, "downloads": -1, "filename": "irmacl_async-3.1.4b2-py3-none-any.whl", "has_sig": false, "md5_digest": "f9707b766714ec918a6e50235f706f26", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 18562, "upload_time": "2019-12-09T10:19:43", "upload_time_iso_8601": "2019-12-09T10:19:43.083749Z", "url": "https://files.pythonhosted.org/packages/c0/ae/94b7c5675d6924f3896c11593ddf8891b02234d7c5bf6763b08d711af1e6/irmacl_async-3.1.4b2-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "785d4b920f664b814e7af75a34461b28", "sha256": "6c9aa8030dc62e542f7e08feb58caadc28c2df33764190887ce668ec9992ba5c" }, "downloads": -1, "filename": "irmacl-async-3.1.4b2.tar.gz", "has_sig": false, "md5_digest": "785d4b920f664b814e7af75a34461b28", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16467, "upload_time": "2019-12-09T10:19:44", "upload_time_iso_8601": "2019-12-09T10:19:44.518420Z", "url": "https://files.pythonhosted.org/packages/d3/6d/495bff0f390ea5d57eddf8d1d923ef19cf65d6e42112b04e1e0c5c47c850/irmacl-async-3.1.4b2.tar.gz", "yanked": false, "yanked_reason": null } ], "3.1.4b3": [ { "comment_text": "", "digests": { "md5": "8756bbbc372ec4582e3400f8c8b41f5c", "sha256": "b5b7277857ac3e29b7fd8e9a809f943e1889c9f832d9e04a181721085610a51b" }, "downloads": -1, "filename": "irmacl-async-3.1.4b3.tar.gz", "has_sig": false, "md5_digest": "8756bbbc372ec4582e3400f8c8b41f5c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16534, "upload_time": "2019-12-10T14:40:22", "upload_time_iso_8601": "2019-12-10T14:40:22.530777Z", "url": "https://files.pythonhosted.org/packages/04/11/270311257ca45153de5aed79758adae76c4b72827aa902b99d29f6e3a106/irmacl-async-3.1.4b3.tar.gz", "yanked": false, "yanked_reason": null } ], "3.1.4b4": [ { "comment_text": "", "digests": { "md5": "b16d5190fc58daf043f1c34b6dae0478", "sha256": "750dd92eda158fe3329e26b328ba4861820347f215f44cfa817f015663f8e299" }, "downloads": -1, "filename": "irmacl-async-3.1.4b4.tar.gz", "has_sig": false, "md5_digest": "b16d5190fc58daf043f1c34b6dae0478", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16736, "upload_time": "2020-01-16T23:13:15", "upload_time_iso_8601": "2020-01-16T23:13:15.706508Z", "url": "https://files.pythonhosted.org/packages/e0/78/5b6f864373baca77fb63e4eeedb19ac086255ac06194a74ab50b8461ba6a/irmacl-async-3.1.4b4.tar.gz", "yanked": false, "yanked_reason": null } ], "3.2.0": [ { "comment_text": "", "digests": { "md5": "ff34ff6dc97cf5a94565548b5dc7072d", "sha256": "2f62278e9eb0ffe07f3ba087ce0c92b66316c48cf9a4c9d6aeaad659c3497f75" }, "downloads": -1, "filename": "irmacl_async-3.2.0-py3-none-any.whl", "has_sig": false, "md5_digest": "ff34ff6dc97cf5a94565548b5dc7072d", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 18717, "upload_time": "2020-04-09T15:13:50", "upload_time_iso_8601": "2020-04-09T15:13:50.382184Z", "url": "https://files.pythonhosted.org/packages/c9/26/da5b1edb864017c0b5372320a3a2e8ab7530da8363ad63ef61b285ef7104/irmacl_async-3.2.0-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "54c18625c80ef8c137838e6a0c2b59aa", "sha256": "678bee52d94201ab3468f1204c285680cb1cf1c2f155595d88f147c5a353dce5" }, "downloads": -1, "filename": "irmacl-async-3.2.0.tar.gz", "has_sig": false, "md5_digest": "54c18625c80ef8c137838e6a0c2b59aa", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16748, "upload_time": "2020-04-09T15:13:52", "upload_time_iso_8601": "2020-04-09T15:13:52.017751Z", "url": "https://files.pythonhosted.org/packages/2d/ee/25168c70c6943d27a70fe36efb518ba53196809a14ee2980210ed7ea65b6/irmacl-async-3.2.0.tar.gz", "yanked": false, "yanked_reason": null } ], "3.2.0b0": [ { "comment_text": "", "digests": { "md5": "45c86707c6564b24f8df5a0dc1b40e90", "sha256": "fce38bcfd9a5b32e258a32050e5c84ee06d2d883b0cc89ea77ec922b45dc5602" }, "downloads": -1, "filename": "irmacl_async-3.2.0b0-py3-none-any.whl", "has_sig": false, "md5_digest": "45c86707c6564b24f8df5a0dc1b40e90", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 18734, "upload_time": "2020-01-30T14:00:48", "upload_time_iso_8601": "2020-01-30T14:00:48.943377Z", "url": "https://files.pythonhosted.org/packages/44/45/a934e8d3bccab997c77ff8553e103e59fd8432ed988e1eeb3977fa347a0d/irmacl_async-3.2.0b0-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "152619627fe98a7c5639bfdf1b89ba6f", "sha256": "88e762cc76d088eb3168c6dbfb31d015c119c29baa18e937a7909ecfb060369d" }, "downloads": -1, "filename": "irmacl-async-3.2.0b0.tar.gz", "has_sig": false, "md5_digest": "152619627fe98a7c5639bfdf1b89ba6f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16741, "upload_time": "2020-01-30T14:00:51", "upload_time_iso_8601": "2020-01-30T14:00:51.336454Z", "url": "https://files.pythonhosted.org/packages/af/b9/0e2b6d65fe0485148b7e44b1278c15577fa75f7a5d19f058ef30570fa10a/irmacl-async-3.2.0b0.tar.gz", "yanked": false, "yanked_reason": null } ], "3.2.0b1": [ { "comment_text": "", "digests": { "md5": "591f5b7075f1198f0542aae0e2b19006", "sha256": "6d06a913449eb9b88b7847fdcb7d1faa2a0bf1356a5c973c7c201350d7c1b70b" }, "downloads": -1, "filename": "irmacl_async-3.2.0b1-py3-none-any.whl", "has_sig": false, "md5_digest": "591f5b7075f1198f0542aae0e2b19006", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 18730, "upload_time": "2020-02-24T14:57:14", "upload_time_iso_8601": "2020-02-24T14:57:14.905123Z", "url": "https://files.pythonhosted.org/packages/98/0d/dce03e07046d9aeba6c06172c3db5c60e5fe7b059ec912348c001d97cd7e/irmacl_async-3.2.0b1-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "e8f28d2bd56d862e3c822e3e5301899a", "sha256": "d46fe11fe3260b697ca1618eac8ff34d01d53817c0dc39de8645734925b255b6" }, "downloads": -1, "filename": "irmacl-async-3.2.0b1.tar.gz", "has_sig": false, "md5_digest": "e8f28d2bd56d862e3c822e3e5301899a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16745, "upload_time": "2020-02-24T14:57:19", "upload_time_iso_8601": "2020-02-24T14:57:19.306859Z", "url": "https://files.pythonhosted.org/packages/3b/5c/b971d6b764b74add5431b9a71ac69b9a1dadb6e3d426907750bd65ecba73/irmacl-async-3.2.0b1.tar.gz", "yanked": false, "yanked_reason": null } ], "3.3.0": [ { "comment_text": "", "digests": { "md5": "34541b568a486c978d31436e20d94f4f", "sha256": "ec27c391f7f99f55d8a131ae61d61e9d9417891ad6cc55cce9707fd4aae3a720" }, "downloads": -1, "filename": "irmacl-async-3.3.0.tar.gz", "has_sig": false, "md5_digest": "34541b568a486c978d31436e20d94f4f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14630, "upload_time": "2020-05-19T17:05:38", "upload_time_iso_8601": "2020-05-19T17:05:38.942160Z", "url": "https://files.pythonhosted.org/packages/56/dc/c197732f08ca2c043248de318abe54e247304413aebfe2d8b4659b36bd68/irmacl-async-3.3.0.tar.gz", "yanked": false, "yanked_reason": null } ], "3.4.1": [ { "comment_text": "", "digests": { "md5": "5cd0dc1dbd858e849c2baff7f84f1200", "sha256": "afdb823c48c9ed7e35f8cd1db13d01722a7f06067a0a2c2e0b18d09ad1d7bccf" }, "downloads": -1, "filename": "irmacl-async-3.4.1.tar.gz", "has_sig": false, "md5_digest": "5cd0dc1dbd858e849c2baff7f84f1200", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20484, "upload_time": "2022-03-07T14:23:19", "upload_time_iso_8601": "2022-03-07T14:23:19.915643Z", "url": "https://files.pythonhosted.org/packages/4d/6e/5b14ba62380d839725147ece00b79cb75d2f85d0c4a1b9eaaddd8b487602/irmacl-async-3.4.1.tar.gz", "yanked": false, "yanked_reason": null } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "5cd0dc1dbd858e849c2baff7f84f1200", "sha256": "afdb823c48c9ed7e35f8cd1db13d01722a7f06067a0a2c2e0b18d09ad1d7bccf" }, "downloads": -1, "filename": "irmacl-async-3.4.1.tar.gz", "has_sig": false, "md5_digest": "5cd0dc1dbd858e849c2baff7f84f1200", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20484, "upload_time": "2022-03-07T14:23:19", "upload_time_iso_8601": "2022-03-07T14:23:19.915643Z", "url": "https://files.pythonhosted.org/packages/4d/6e/5b14ba62380d839725147ece00b79cb75d2f85d0c4a1b9eaaddd8b487602/irmacl-async-3.4.1.tar.gz", "yanked": false, "yanked_reason": null } ], "vulnerabilities": [] }