{ "info": { "author": "Jacob Alexander", "author_email": "haata@kiibohd.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Intended Audience :: Developers", "License :: OSI Approved :: BSD License", "Operating System :: MacOS :: MacOS X", "Operating System :: Microsoft :: Windows :: Windows 10", "Operating System :: POSIX", "Programming Language :: C++", "Programming Language :: Cython", "Programming Language :: Python :: 3.7", "Programming Language :: Python :: Implementation :: PyPy", "Topic :: Communications" ], "description": "pycapnp-async\n=============\n\n|Actions Status|\n\nRequirements\n------------\n\n- C++14 supported compiler\n\n - gcc 6.1+ (5+ may work)\n - clang 6 (3.4+ may work)\n - Visual Studio 2017+\n\n- cmake (needed for bundled capnproto)\n\n - ninja (macOS + Linux)\n - Visual Studio 2017+\n\n- capnproto-0.7.0\n\n - Not necessary if using bundled capnproto\n\n32-bit Linux requires that capnproto be compiled with ``-fPIC``. This is\nusually set correctly unless you are compiling canproto yourself. This\nis also called ``-DCMAKE_POSITION_INDEPENDENT_CODE=1`` for cmake.\n\npycapnp has additional development dependencies, including cython and\npytest. See requirements.txt for them all.\n\nBuilding and installation\n-------------------------\n\nInstall with ``pip install pycapnp``. You can set the CC environment\nvariable to control which compiler is used, ie\n``CC=gcc-8.2 pip install pycapnp``.\n\nOr you can clone the repo like so:\n\n.. code:: bash\n\n git clone https://github.com/haata/pycapnp-async.git\n cd pycapnp-async\n pip install .\n\nIf you wish to install using the latest upstream C++ Cap\u2019n Proto:\n\n.. code:: bash\n\n pip install \\\n --install-option \"--libcapnp-url\" \\\n --install-option \"https://github.com/sandstorm-io/capnproto/archive/master.tar.gz\" \\\n --install-option \"--force-bundled-libcapnp\" .\n\nTo force bundled python:\n\n.. code:: bash\n\n pip install --install-option \"--force-bundled-libcapnp\" .\n\nPython Versions\n---------------\n\nPython 3.7+ is supported. Earlier versions of Python have asyncio bugs\nthat might be possible to work around, but may require significant work\n(3.5 and 3.6).\n\nDevelopment\n-----------\n\nGit flow has been abandoned, use master.\n\nTo test, use a pipenv (or install requirements.txt and run pytest\nmanually).\n\n.. code:: bash\n\n pip install pipenv\n pipenv install\n pipenv run pytest\n\nBinary Packages\n~~~~~~~~~~~~~~~\n\nBuilding a dumb binary distribution:\n\n.. code:: bash\n\n python setup.py bdist_dumb\n\nBuilding a Python wheel distributiion:\n\n.. code:: bash\n\n python setup.py bdist_wheel\n\nPypi Upload Instructions\n~~~~~~~~~~~~~~~~~~~~~~~~\n\nOnly necessary if uploading release to pypi.org.\n\nTODO\n\nDocumentation/Example\n---------------------\n\nThere is some basic documentation\n`here `__.\n\nThe examples directory has one example that shows off pycapnp quite\nnicely. Here it is, reproduced:\n\n.. code:: python\n\n from __future__ import print_function\n import os\n import capnp\n\n import addressbook_capnp\n\n def writeAddressBook(file):\n addresses = addressbook_capnp.AddressBook.new_message()\n people = addresses.init('people', 2)\n\n alice = people[0]\n alice.id = 123\n alice.name = 'Alice'\n alice.email = 'alice@example.com'\n alicePhones = alice.init('phones', 1)\n alicePhones[0].number = \"555-1212\"\n alicePhones[0].type = 'mobile'\n alice.employment.school = \"MIT\"\n\n bob = people[1]\n bob.id = 456\n bob.name = 'Bob'\n bob.email = 'bob@example.com'\n bobPhones = bob.init('phones', 2)\n bobPhones[0].number = \"555-4567\"\n bobPhones[0].type = 'home'\n bobPhones[1].number = \"555-7654\"\n bobPhones[1].type = 'work'\n bob.employment.unemployed = None\n\n addresses.write(file)\n\n\n def printAddressBook(file):\n addresses = addressbook_capnp.AddressBook.read(file)\n\n for person in addresses.people:\n print(person.name, ':', person.email)\n for phone in person.phones:\n print(phone.type, ':', phone.number)\n\n which = person.employment.which()\n print(which)\n\n if which == 'unemployed':\n print('unemployed')\n elif which == 'employer':\n print('employer:', person.employment.employer)\n elif which == 'school':\n print('student at:', person.employment.school)\n elif which == 'selfEmployed':\n print('self employed')\n print()\n\n\n if __name__ == '__main__':\n f = open('example', 'w')\n writeAddressBook(f)\n\n f = open('example', 'r')\n printAddressBook(f)\n\nAlso, pycapnp has gained RPC features that include pipelining and a\npromise style API. Refer to the calculator example in the examples\ndirectory for a much better demonstration:\n\n.. code:: python\n\n import capnp\n import socket\n\n import test_capability_capnp\n\n\n class Server(test_capability_capnp.TestInterface.Server):\n\n def __init__(self, val=1):\n self.val = val\n\n def foo(self, i, j, **kwargs):\n return str(i * 5 + self.val)\n\n\n def server(write_end):\n server = capnp.TwoPartyServer(write_end, bootstrap=Server(100))\n\n\n def client(read_end):\n client = capnp.TwoPartyClient(read_end)\n\n cap = client.bootstrap()\n cap = cap.cast_as(test_capability_capnp.TestInterface)\n\n remote = cap.foo(i=5)\n response = remote.wait()\n\n assert response.x == '125'\n\n\n if __name__ == '__main__':\n read_end, write_end = socket.socketpair(socket.AF_UNIX)\n # This is a toy example using socketpair.\n # In real situations, you can use any socket.\n\n server(write_end)\n client(read_end)\n\n.. |Actions Status| image:: https://github.com/haata/pycapnp-async/workflows/Python%20Test%20Packaging/badge.svg\n :target: https://github.com/haata/pycapnp-async/actions\n\nChangelog\n=============\nv0.6.4 (2019-01-31)\n-------------------\n\n- Fix bugs in ``read_multiple_bytes`` (thanks to @tsh56)\n- Remove end-of-life Python versions 2.6, 3.2, and 3.3. Add CI tests\n for 3.6\n- Expose SchemaParser in Cython header\n\nv0.6.3 (2018-01-14)\n-------------------\n\n- Bump bundled capnp version to v0.6.1 (thanks to @E8Yuval)\n- Fix a memleak in RemotePromise (thanks to @E8Yuval)\n\nv0.6.2 (2017-11-30)\n-------------------\n\n- Add support for buffers/memoryviews in ``from_bytes`` (thanks to\n @aldanor)\n\nv0.6.1 (2017-07-27)\n-------------------\n\n- Fixed upload to PyPi (forgot to cythonize)\n\nv0.6.0 (2017-07-27)\n-------------------\n\n- Update bundled capnp version to v0.6.0 and fix related problems\n (thanks to @benmoran)\n- Fix memleak with KjException (thanks to @tsh56)\n\nv0.5.12 (2017-04-18)\n--------------------\n\n- Bump bundled capnp version to v0.5.3.1\n\nv0.5.11 (2017-04-10)\n--------------------\n\n- Make enums hashable (thanks to @madeleine-empirical)\n- Rework logic on when to build bundled libcapnp. Fixes\n cross-compilation (thanks to @benizl)\n- Add traversal_limit_in_words and nesting_limit to RPC classes (thanks\n to @asilversempirical)\n- Include class attributes in **dir**. This allows for code completion\n of class methods (thanks to @chaoflow )\n- Allow setting lists with python tuples (thanks to @chaoflow)\n- Fix traversal_limit_in_words and nesting_limit being ignored by\n ``from_bytes`` (thanks to @plesner)\n\nv0.5.10 (2016-11-28)\n--------------------\n\n- Fix bug that prevented event loop from actually being lazy\n initialized\n- Fix possible recursive loop in KjException\n- Add ``clear_write_flag`` method to builder classes\n\nv0.5.9 (2016-07-07)\n-------------------\n\n- Make the event loop be lazy initialized\n- Add support for segment (de)serialization (thanks to @gcv). See\n to_segments/from_segments methods.\n- Fix response objects not referencing parents correctly\n- Add test for large reads\n\nv0.5.8 (2016-05-27)\n-------------------\n\n- Fix build problem with Cython v0.24\n- Include the changelog in the manifest (should fix install problems if\n pandoc is present)\n- Include the traceback in exceptions\n- Make sure to encode to utf-8, not the default encoding (thanks to\n @novas0x2a)\n- Add \u2013libcapnp-url option in installer to allow installing arbitrary\n libcapnp versions\n- Support mmap objects for reading with from_bytes (thanks to\n @bpiwowar)\n- Change read_multiple and read_multiple_packed to copy by default\n- Fix mistakenly discarding the file parameter on reads\n- Add reraise_kj_exception to the prettyPrint functions. (thanks to\n @kdienes)\n- Fix KjException init (missing wrapper). (thanks to @E8-Storage)\n- Add ``result_type`` to InterfaceMethodSchema\n\nv0.5.7 (2015-06-16)\n-------------------\n\n- Update bundled libcapnp to v0.5.2\n- Add warnings for using old restorer methods. You should use\n ``bootstrap`` instead\n- Fix warning from PyEventPort\n- Handle AnyPointers better as arguments to RPC functions\n- Add support for using keyword arguments with a named struct in an RPC\n- Add bootstrap method to TwoPartyServer\n- Add ``init`` method to lists\n- Add support for unix sockets in RPC\n\nv0.5.6 (2015-04-13)\n-------------------\n\n- Fix a serious bug in TwoPartyServer that was preventing it from\n working when passed a string address.\n- Fix bugs that were exposed by defining KJDEBUG (thanks @davidcarne\n for finding this)\n\nv0.5.5 (2015-03-06)\n-------------------\n\n- Update bundled C++ libcapnp to v0.5.1.2 security release\n\nv0.5.4 (2015-03-02)\n-------------------\n\n- Update bundled C++ libcapnp to v0.5.1.1 security release\n- Add bootstrap RPC methods\n- Fix possible segfault when importing multiple schemas\n\nv0.5.3 (2015-02-23)\n-------------------\n\n- Fix possible crash due to bad destructor ordering in MessageReader\n (by @JohnEmhoff)\n- Default to no longer using cython\n\nv0.5.2 (2015-02-20)\n-------------------\n\n- Add read_multiple_bytes/read_multiple_bytes_packed methods\n- Added Python 3.4 to the travis build matrix\n- Bump version for bundled C++ libcapnp to v0.5.1\n\nv0.5.1 (2014-12-27)\n-------------------\n\n- Remove installation dependency on cython. We now have no dependencies\n since libcapnp will automatically build as well.\n\nv0.5.0 (2014-12-15)\n-------------------\n\n- Timer class ``capnp.getTimer()``\n- pycapnp is now thread-safe and allows an event loop to be run in each\n thread\n\n - You must destroy and re-create the event loop to get this\n functionality (see ``test_threads.py``)\n\n- Inheritance now works correctly for interfaces (previously inherited\n methods were inaccessible from pycapnp)\n- Add ability to import modules with dashes or spaces. Use underscores\n in place of them\n- ``from_bytes`` with builder=True is no longer zero copy. It never\n worked correctly, and is much safer now\n- Add ``num_first_segment_words`` argument wherever message creation\n can occur\n- Allow restoring a null objectId by passing None to restore\n- Support ordered dictionary in ``to_dict``\n- Add ListSchema class and schemas for native types under\n ``capnp.types`` which completes all the Schemas needed to be wrapped.\n See ``test_schema.py`` for examples using it\n- Add automatic build of C++ libcapnp if it\u2019s not detected on the\n system. Also add flags \u2013force-bundled-libcapnp and\n \u2013force-system-libcapnp respectively\n\nv0.4.6 (2014-9-10)\n------------------\n\n- Fix build for new 0.21 release of Cython. 0.21 is now the minimum\n supported version of Cython.\n\nv0.4.5 (2014-6-26)\n------------------\n\n- Fix ``to_dict`` not converting enums to strings\n\nv0.4.4 (2014-04-25)\n-------------------\n\n- Fix compilation problem with gcc 4.8\n\nv0.4.3 (2014-02-18)\n-------------------\n\n- Fix problem with uninitialized unions in \\_from_dict\n- Add accesible version numbers for C++ libcapnp\n\nv0.4.2 (2014-02-13)\n-------------------\n\n- Remove onDrained since it was removed upstream\n- Replace usage of strings as enum type with custom ``_DynamicEnum``\n class.\n- Also change ``Struct.which()`` method to be a property\n ``Struct.which`` and return an enum type (``_DynamicEnumField``,\n which behaves much like ``_DynamicEnum``).\n- TwoPartyServer.run_forever() now will handle more than 1\n simulataneous connection.\n- Change exception wrapper to detect and raise AttributeError for field\n lookup exceptions (Fixes problem in Python3.x ``__dir__``)\n- Allow setting of fields with python dicts.\n\n0.4.1 (2013-12-18)\n------------------\n\n- Remove python 3.2 from travis tests. Python 3.2 still should work\n fine, but it\u2019s more trouble than it\u2019s worth to write unicode tests\n that work in both it and Python2.\n- Fix problems with null characters in Text/Data fields. Fixes #19\n\n.. _section-1:\n\n0.4.0 (2013-12-12)\n------------------\n\n- Initial working version of RPC\n- Add get_root_as_any to \\_MessageReader\n- Add capnp.pxd for public declarations of cython classes\n- Fix problems compiling with gcc4.7\n\nv0.3.18 (2013-11-05)\n--------------------\n\n- Change naming of ReaderOption parameters to be pep8 compliant\n\nv0.3.17 (2013-11-05)\n--------------------\n\n- Add ReaderOptions to read/read_packed/from_bytes\n\nv0.3.16 (2013-10-28)\n--------------------\n\n- Add defaults flag to capnp-json. Also remove \u2018which\u2019 field\n- Add capnp-json serializer script. Also fix bugs in from_dict\n- Fix build for clang/python3. Also remove -fpermissive\n- Add ``as_builder`` method to Struct Reader\n- Add warning when writing the same message more than once\n- First working version of capability interfaces\n- Wrap InterfaceSchema\n- Fix setting string fields to support all types of strings\n- Fix changed API for DynamicObject/ObjectPointer\n\nv0.3.15 (2013-09-19)\n--------------------\n\n- Add not having installed the C++ libcapnp library to \u2018Common\n Problems\u2019\n- Add \\_short_str function for use in capnp_test_pycapnp.py\n- Add test script for testing with https://github.com/kaos/capnp_test\n- Add handling of DynamicObject\n- Fix lists of lists or dicts for from_dict\n\nv0.3.14 (2013-09-04)\n--------------------\n\n- Fix problem with to_dict\n\nv0.3.13 (2013-09-04)\n--------------------\n\n- Add \\_DynamicStructBuilder.to_bytes() and .from_bytes()\n- Change == on StructSchema to return cbool\n- Add Builder and Reader ABCs for each struct type\n\nv0.3.12 (2013-09-03)\n--------------------\n\n- Fix handling of empty path \u2019\u2019 in load_module\n- Add from_dict\n- Fix bug in exception handling for which(). Also standardize\n exceptions.\n- Change import hook to require modules to end in \u2019_capnp\u2019\n- Add import monkey patch function.\n- Change naming for functions to conform to PEP 8. Also deprecate old\n read/write API\n- Update preferred method for reading/writing messages from files\n\nv0.3.11 (2013-09-01)\n--------------------\n\n- Forgot to change project name in setup.py\n\nv0.3.10 (2013-09-01)\n--------------------\n\n- Change all references to old project name (change from\n capnpc-python-cpp to pycapnp)\n- Change DynamicValue.Reader lists to be returned as\n \\_DynamicListReader\n- Unify setters for DynamicList and DynamicStruct\n- Add shortcuts for reading from / writing to files. In Python, it\n doesn\u2019t make much sense to force people to muck around with\n MessageReaders and MessageBuilders since everything is landing on the\n heap anyway. Instead, let\u2019s make it easy:\n MyType.read[Packed]From(file) reads a file and returns a MyType\n reader. MyType.newMessage() returns a MyType builder representing the\n root of a new message. You can call this builder\u2019s\n write[Packed]To(file) method to write it to a file.\n- Store Builders by value rather than allocate them separately on the\n heap (matches treatment of Readers). v0.3 fixes the bug that made\n this not work.\n- Wrap MessageBuilder::setRoot().\n- Add tests based on TestAllTypes from the C++ test.capnp. Fix problems\n uncovered in capnp.pyx.\n- Implement **str** and **repr** for struct and list builders. **str**\n uses prettyPrint while **repr** shows the type name and the\n low-whitespace stringification. Also implement **repr** for\n StructSchema, just because why not?\n\nv0.3.9 (2013-08-30)\n-------------------\n\n- Change load to use a global SchemaParser. Make structs settable as\n field\n- Add docstrings for new functions and \\_DynamicResizableListBuilder\n\nv0.3.8 (2013-08-29)\n-------------------\n\n- Add initial tests\n- Add \\_capnp for original Cython module. Meant for testing.\n- Lowercase schema so it conforms to member naming conventions\n- Expose \\_StructSchema\u2019s raw node\n- Add some useful \\_StructSchema, reader, and builder methods\n- Add full orphan functionality. Also, allow special orphan lists\n- Finish up adding docstrings to all public classes/methods\n\nv0.3.7 (2013-08-26)\n-------------------\n\n- Add a ton of docstrings and add to official docs\n- Add DynamicOrphan\n\nv0.3.6 (2013-08-26)\n-------------------\n\n- Add intersphinx for linking to python docs\n- Add C++ library version check\n\nv0.3.5 (2013-08-25)\n-------------------\n\n- Add handling of constants in schemas\n- Fix new error with DynamicValue.Builder no longer being copyable\n\nv0.3.4 (2013-08-22)\n-------------------\n\n- Fix Void namespace change\n- Updated capnp schema to conform with new union rules\n\nv0.3.3 (2013-08-22)\n-------------------\n\n- Fix for the removal of DynamicUnion from the C++ API\n\nv0.3.2 (2013-08-21)\n-------------------\n\n- Add MANIFEST.in to include README\n\nv0.3.1 (2013-08-21)\n-------------------\n\n- Update docs with lines about upgrading setuptools\n\n.. _section-2:\n\n0.3.0 (2013-08-21)\n------------------\n\n- Initial commit of docs\n- Add querying unnamed enums to structs\n\n.. _section-3:\n\n0.2.1 (2013-08-13)\n------------------\n\n- Fix enum interface change for benchmark\n- Random formatting cleanup\n- Allow import paths in the schema loader\n- Add travis CI\n\n.. _section-4:\n\n0.2.0 (2013-08-12)\n------------------\n\n- Initial working version", "description_content_type": "", "docs_url": null, "download_url": "https://github.com/haata/pycapnp-async/archive/v0.7.0.zip", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/haata/pycapnp-async", "keywords": "capnp,capnproto,Cap'n Proto,pycapnp,pycapnp-async", "license": "BSD", "maintainer": "", "maintainer_email": "", "name": "pycapnp-async", "package_url": "https://pypi.org/project/pycapnp-async/", "platform": "", "project_url": "https://pypi.org/project/pycapnp-async/", "project_urls": { "Download": "https://github.com/haata/pycapnp-async/archive/v0.7.0.zip", "Homepage": "https://github.com/haata/pycapnp-async" }, "release_url": "https://pypi.org/project/pycapnp-async/0.7.0/", "requires_dist": null, "requires_python": "", "summary": "A cython wrapping of the C++ Cap'n Proto library with support for asyncio", "version": "0.7.0", "yanked": false, "yanked_reason": null }, "last_serial": 6006019, "releases": { "0.7.0": [ { "comment_text": "", "digests": { "md5": "f48dce318f593d44a35b5260d0bfb827", "sha256": "032c1f71158484102a3dbea29654be12dc695421181bdbaf2876728a1e60f00f" }, "downloads": -1, "filename": "pycapnp_async-0.7.0-cp37-cp37m-macosx_10_14_x86_64.whl", "has_sig": false, "md5_digest": "f48dce318f593d44a35b5260d0bfb827", "packagetype": "bdist_wheel", "python_version": "cp37", "requires_python": null, "size": 1509347, "upload_time": "2019-10-21T07:39:29", "upload_time_iso_8601": "2019-10-21T07:39:29.266782Z", "url": "https://files.pythonhosted.org/packages/70/32/39ed3f00ddc2f4c53c4b910d0c66fe95bcc0e1ff2fc2cbe1c385c8f95ba9/pycapnp_async-0.7.0-cp37-cp37m-macosx_10_14_x86_64.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "27bed60934328c38ea5642f1dafd29e1", "sha256": "f2247045355df9aa8560e06aa807a0693242432bf25e8bccab96ed139023ddcb" }, "downloads": -1, "filename": "pycapnp_async-0.7.0-cp37-cp37m-win32.whl", "has_sig": false, "md5_digest": "27bed60934328c38ea5642f1dafd29e1", "packagetype": "bdist_wheel", "python_version": "cp37", "requires_python": null, "size": 942304, "upload_time": "2019-10-21T07:28:50", "upload_time_iso_8601": "2019-10-21T07:28:50.940377Z", "url": "https://files.pythonhosted.org/packages/d2/af/0a8b67c626f6134c5ca129ad351f50382ddd2da666f6dc8f2ad1a811ffce/pycapnp_async-0.7.0-cp37-cp37m-win32.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "9dfe18d8ace9682f15f12e972882bf30", "sha256": "36a3c2feb04496e0d7c74b40ed0deaebc932a27979e70271449a013b08a3c31c" }, "downloads": -1, "filename": "pycapnp_async-0.7.0-cp37-cp37m-win_amd64.whl", "has_sig": false, "md5_digest": "9dfe18d8ace9682f15f12e972882bf30", "packagetype": "bdist_wheel", "python_version": "cp37", "requires_python": null, "size": 1073303, "upload_time": "2019-10-21T07:28:53", "upload_time_iso_8601": "2019-10-21T07:28:53.958391Z", "url": "https://files.pythonhosted.org/packages/3a/82/24ad4799bb0d1d55a4393d2765dab3d62842592a07a3206e68b4369f1c26/pycapnp_async-0.7.0-cp37-cp37m-win_amd64.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "6bfb4076fbd1b324a86e6a90c026bc22", "sha256": "904e26baf85b6bdc461ff25207cb67e108a5267d64d7d58ffaa029a23c9b831c" }, "downloads": -1, "filename": "pycapnp-async-0.7.0.tar.gz", "has_sig": false, "md5_digest": "6bfb4076fbd1b324a86e6a90c026bc22", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 526566, "upload_time": "2019-10-21T07:13:53", "upload_time_iso_8601": "2019-10-21T07:13:53.855019Z", "url": "https://files.pythonhosted.org/packages/af/d1/1f5465eed39fa7f49e325aa58a48698542e7b2365114022d677ec3f84e13/pycapnp-async-0.7.0.tar.gz", "yanked": false, "yanked_reason": null } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "f48dce318f593d44a35b5260d0bfb827", "sha256": "032c1f71158484102a3dbea29654be12dc695421181bdbaf2876728a1e60f00f" }, "downloads": -1, "filename": "pycapnp_async-0.7.0-cp37-cp37m-macosx_10_14_x86_64.whl", "has_sig": false, "md5_digest": "f48dce318f593d44a35b5260d0bfb827", "packagetype": "bdist_wheel", "python_version": "cp37", "requires_python": null, "size": 1509347, "upload_time": "2019-10-21T07:39:29", "upload_time_iso_8601": "2019-10-21T07:39:29.266782Z", "url": "https://files.pythonhosted.org/packages/70/32/39ed3f00ddc2f4c53c4b910d0c66fe95bcc0e1ff2fc2cbe1c385c8f95ba9/pycapnp_async-0.7.0-cp37-cp37m-macosx_10_14_x86_64.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "27bed60934328c38ea5642f1dafd29e1", "sha256": "f2247045355df9aa8560e06aa807a0693242432bf25e8bccab96ed139023ddcb" }, "downloads": -1, "filename": "pycapnp_async-0.7.0-cp37-cp37m-win32.whl", "has_sig": false, "md5_digest": "27bed60934328c38ea5642f1dafd29e1", "packagetype": "bdist_wheel", "python_version": "cp37", "requires_python": null, "size": 942304, "upload_time": "2019-10-21T07:28:50", "upload_time_iso_8601": "2019-10-21T07:28:50.940377Z", "url": "https://files.pythonhosted.org/packages/d2/af/0a8b67c626f6134c5ca129ad351f50382ddd2da666f6dc8f2ad1a811ffce/pycapnp_async-0.7.0-cp37-cp37m-win32.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "9dfe18d8ace9682f15f12e972882bf30", "sha256": "36a3c2feb04496e0d7c74b40ed0deaebc932a27979e70271449a013b08a3c31c" }, "downloads": -1, "filename": "pycapnp_async-0.7.0-cp37-cp37m-win_amd64.whl", "has_sig": false, "md5_digest": "9dfe18d8ace9682f15f12e972882bf30", "packagetype": "bdist_wheel", "python_version": "cp37", "requires_python": null, "size": 1073303, "upload_time": "2019-10-21T07:28:53", "upload_time_iso_8601": "2019-10-21T07:28:53.958391Z", "url": "https://files.pythonhosted.org/packages/3a/82/24ad4799bb0d1d55a4393d2765dab3d62842592a07a3206e68b4369f1c26/pycapnp_async-0.7.0-cp37-cp37m-win_amd64.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "6bfb4076fbd1b324a86e6a90c026bc22", "sha256": "904e26baf85b6bdc461ff25207cb67e108a5267d64d7d58ffaa029a23c9b831c" }, "downloads": -1, "filename": "pycapnp-async-0.7.0.tar.gz", "has_sig": false, "md5_digest": "6bfb4076fbd1b324a86e6a90c026bc22", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 526566, "upload_time": "2019-10-21T07:13:53", "upload_time_iso_8601": "2019-10-21T07:13:53.855019Z", "url": "https://files.pythonhosted.org/packages/af/d1/1f5465eed39fa7f49e325aa58a48698542e7b2365114022d677ec3f84e13/pycapnp-async-0.7.0.tar.gz", "yanked": false, "yanked_reason": null } ], "vulnerabilities": [] }