Skip to main content

A cython wrapping of the C++ Cap'n Proto library

Project description

pycapnp

Packaging Status manylinux2010 Status PyPI version Total alerts Language grade: Python Language grade: C/C++

Cap'n'proto Mailing List Documentation

Requirements

  • C++14 supported compiler

    • gcc 6.1+ (5+ may work)
    • clang 6 (3.4+ may work)
    • Visual Studio 2017+
  • cmake (needed for bundled capnproto)

    • ninja (macOS + Linux)
    • Visual Studio 2017+
  • capnproto-0.8.0 (0.7.0 will also work if linking to system libraries)

    • Not necessary if using bundled capnproto

32-bit Linux requires that capnproto be compiled with -fPIC. This is usually set correctly unless you are compiling canproto yourself. This is also called -DCMAKE_POSITION_INDEPENDENT_CODE=1 for cmake.

pycapnp has additional development dependencies, including cython and pytest. See requirements.txt for them all.

Building and installation

Install with pip install pycapnp. You can set the CC environment variable to control which compiler is used, ie CC=gcc-8.2 pip install pycapnp.

Or you can clone the repo like so:

git clone https://github.com/capnproto/pycapnp.git
cd pycapnp
pip install .

If you wish to install using the latest upstream C++ Cap'n Proto:

pip install \
    --install-option "--libcapnp-url" \
    --install-option "https://github.com/capnproto/capnproto/archive/master.tar.gz" \
    --install-option "--force-bundled-libcapnp" .

To force bundled python:

pip install --install-option "--force-bundled-libcapnp" .

Slightly more prompt error messages using distutils rather than pip.

python setup.py install --force-bundled-libcapnp

The bundling system isn't that smart so it might be necessary to clean up the bundled build when changing versions:

python setup.py clean

Python Versions

Python 3.7+ is supported. Earlier versions of Python have asyncio bugs that might be possible to work around, but may require significant work (3.5 and 3.6).

Development

Git flow has been abandoned, use master.

To test, use a pipenv (or install requirements.txt and run pytest manually).

pip install pipenv
pipenv install
pipenv run pytest

Binary Packages

Building a dumb binary distribution:

python setup.py bdist_dumb

Building a Python wheel distributiion:

python setup.py bdist_wheel

Documentation/Example

There is some basic documentation here.

Make sure to look at the examples. The examples are generally kept up to date with the recommended usage of the library.

The examples directory has one example that shows off pycapnp quite nicely. Here it is, reproduced:

import os
import capnp

import addressbook_capnp

def writeAddressBook(file):
    addresses = addressbook_capnp.AddressBook.new_message()
    people = addresses.init('people', 2)

    alice = people[0]
    alice.id = 123
    alice.name = 'Alice'
    alice.email = 'alice@example.com'
    alicePhones = alice.init('phones', 1)
    alicePhones[0].number = "555-1212"
    alicePhones[0].type = 'mobile'
    alice.employment.school = "MIT"

    bob = people[1]
    bob.id = 456
    bob.name = 'Bob'
    bob.email = 'bob@example.com'
    bobPhones = bob.init('phones', 2)
    bobPhones[0].number = "555-4567"
    bobPhones[0].type = 'home'
    bobPhones[1].number = "555-7654"
    bobPhones[1].type = 'work'
    bob.employment.unemployed = None

    addresses.write(file)


def printAddressBook(file):
    addresses = addressbook_capnp.AddressBook.read(file)

    for person in addresses.people:
        print(person.name, ':', person.email)
        for phone in person.phones:
            print(phone.type, ':', phone.number)

        which = person.employment.which()
        print(which)

        if which == 'unemployed':
            print('unemployed')
        elif which == 'employer':
            print('employer:', person.employment.employer)
        elif which == 'school':
            print('student at:', person.employment.school)
        elif which == 'selfEmployed':
            print('self employed')
        print()


if __name__ == '__main__':
    f = open('example', 'w')
    writeAddressBook(f)

    f = open('example', 'r')
    printAddressBook(f)

Also, pycapnp has gained RPC features that include pipelining and a promise style API. Refer to the calculator example in the examples directory for a much better demonstration:

import capnp
import socket

import test_capability_capnp


class Server(test_capability_capnp.TestInterface.Server):

    def __init__(self, val=1):
        self.val = val

    def foo(self, i, j, **kwargs):
        return str(i * 5 + self.val)


def server(write_end):
    server = capnp.TwoPartyServer(write_end, bootstrap=Server(100))


def client(read_end):
    client = capnp.TwoPartyClient(read_end)

    cap = client.bootstrap()
    cap = cap.cast_as(test_capability_capnp.TestInterface)

    remote = cap.foo(i=5)
    response = remote.wait()

    assert response.x == '125'


if __name__ == '__main__':
    read_end, write_end = socket.socketpair(socket.AF_UNIX)
    # This is a toy example using socketpair.
    # In real situations, you can use any socket.

    server(write_end)
    client(read_end)

Changelog

v1.0.0 (2020-11-20)

  • Validated Python 3.9 (3.7 and 3.8 are also supported)
  • Updated package to include LICENSE file
  • Updated examples to avoid run_forever() as ctrl+c will not work
  • Adding xfail to pytest cases which fail sometimes due to network port oddities (please use asyncio, as Python handles things more gracefully)

v1.0.0b2 (2020-06-14)

  • Minimum capnproto version is now 0.8.0
  • Added asyncio ssl calculator test
  • Added poll_once to TwoPartyServer API
  • More cleanup
  • Fix absolute and circular imports
  • Fix Promise aliasing issue (Promise to _Promise)
  • Documentation update
  • Updated installation instructions
  • Added RPC documentation for asyncio

v1.0.0b1 (2019-12-26)

  • Python 3.7+ required (asyncio support)
  • TLS/SSL support using asyncio
  • Windows support
  • General cleanup
  • May be incompatible with code written for pycapnp 0.6.4 and lower
  • Removing pypandoc/pandoc packaging requirement
  • Minimum capnproto version is now 0.7.0

v0.6.4 (2019-01-31)

  • Fix bugs in read_multiple_bytes (thanks to @tsh56)
  • Remove end-of-life Python versions 2.6, 3.2, and 3.3. Add CI tests for 3.6
  • Expose SchemaParser in Cython header

v0.6.3 (2018-01-14)

  • Bump bundled capnp version to v0.6.1 (thanks to @E8Yuval)
  • Fix a memleak in RemotePromise (thanks to @E8Yuval)

v0.6.2 (2017-11-30)

  • Add support for buffers/memoryviews in from_bytes (thanks to @aldanor)

v0.6.1 (2017-07-27)

  • Fixed upload to PyPi (forgot to cythonize)

v0.6.0 (2017-07-27)

  • Update bundled capnp version to v0.6.0 and fix related problems (thanks to @benmoran)
  • Fix memleak with KjException (thanks to @tsh56)

v0.5.12 (2017-04-18)

  • Bump bundled capnp version to v0.5.3.1

v0.5.11 (2017-04-10)

  • Make enums hashable (thanks to @madeleine-empirical)
  • Rework logic on when to build bundled libcapnp. Fixes cross-compilation (thanks to @benizl)
  • Add traversal_limit_in_words and nesting_limit to RPC classes (thanks to @asilversempirical)
  • Include class attributes in dir. This allows for code completion of class methods (thanks to @chaoflow )
  • Allow setting lists with python tuples (thanks to @chaoflow)
  • Fix traversal_limit_in_words and nesting_limit being ignored by from_bytes (thanks to @plesner)

v0.5.10 (2016-11-28)

  • Fix bug that prevented event loop from actually being lazy initialized
  • Fix possible recursive loop in KjException
  • Add clear_write_flag method to builder classes

v0.5.9 (2016-07-07)

  • Make the event loop be lazy initialized
  • Add support for segment (de)serialization (thanks to @gcv). See to_segments/from_segments methods.
  • Fix response objects not referencing parents correctly
  • Add test for large reads

v0.5.8 (2016-05-27)

  • Fix build problem with Cython v0.24
  • Include the changelog in the manifest (should fix install problems if pandoc is present)
  • Include the traceback in exceptions
  • Make sure to encode to utf-8, not the default encoding (thanks to @novas0x2a)
  • Add --libcapnp-url option in installer to allow installing arbitrary libcapnp versions
  • Support mmap objects for reading with from_bytes (thanks to @bpiwowar)
  • Change read_multiple and read_multiple_packed to copy by default
  • Fix mistakenly discarding the file parameter on reads
  • Add reraise_kj_exception to the prettyPrint functions. (thanks to @kdienes)
  • Fix KjException init (missing wrapper). (thanks to @E8-Storage)
  • Add result_type to InterfaceMethodSchema

v0.5.7 (2015-06-16)

  • Update bundled libcapnp to v0.5.2
  • Add warnings for using old restorer methods. You should use bootstrap instead
  • Fix warning from PyEventPort
  • Handle AnyPointers better as arguments to RPC functions
  • Add support for using keyword arguments with a named struct in an RPC
  • Add bootstrap method to TwoPartyServer
  • Add init method to lists
  • Add support for unix sockets in RPC

v0.5.6 (2015-04-13)

  • Fix a serious bug in TwoPartyServer that was preventing it from working when passed a string address.
  • Fix bugs that were exposed by defining KJDEBUG (thanks @davidcarne for finding this)

v0.5.5 (2015-03-06)

  • Update bundled C++ libcapnp to v0.5.1.2 security release

v0.5.4 (2015-03-02)

  • Update bundled C++ libcapnp to v0.5.1.1 security release
  • Add bootstrap RPC methods
  • Fix possible segfault when importing multiple schemas

v0.5.3 (2015-02-23)

  • Fix possible crash due to bad destructor ordering in MessageReader (by @JohnEmhoff)
  • Default to no longer using cython

v0.5.2 (2015-02-20)

  • Add read_multiple_bytes/read_multiple_bytes_packed methods
  • Added Python 3.4 to the travis build matrix
  • Bump version for bundled C++ libcapnp to v0.5.1

v0.5.1 (2014-12-27)

  • Remove installation dependency on cython. We now have no dependencies since libcapnp will automatically build as well.

v0.5.0 (2014-12-15)

  • Timer class capnp.getTimer()
  • pycapnp is now thread-safe and allows an event loop to be run in each thread
    • You must destroy and re-create the event loop to get this functionality (see test_threads.py)
  • Inheritance now works correctly for interfaces (previously inherited methods were inaccessible from pycapnp)
  • Add ability to import modules with dashes or spaces. Use underscores in place of them
  • from_bytes with builder=True is no longer zero copy. It never worked correctly, and is much safer now
  • Add num_first_segment_words argument wherever message creation can occur
  • Allow restoring a null objectId by passing None to restore
  • Support ordered dictionary in to_dict
  • Add ListSchema class and schemas for native types under capnp.types which completes all the Schemas needed to be wrapped. See test_schema.py for examples using it
  • Add automatic build of C++ libcapnp if it's not detected on the system. Also add flags --force-bundled-libcapnp and --force-system-libcapnp respectively

v0.4.6 (2014-9-10)

  • Fix build for new 0.21 release of Cython. 0.21 is now the minimum supported version of Cython.

v0.4.5 (2014-6-26)

  • Fix to_dict not converting enums to strings

v0.4.4 (2014-04-25)

  • Fix compilation problem with gcc 4.8

v0.4.3 (2014-02-18)

  • Fix problem with uninitialized unions in _from_dict
  • Add accesible version numbers for C++ libcapnp

v0.4.2 (2014-02-13)

  • Remove onDrained since it was removed upstream
  • Replace usage of strings as enum type with custom _DynamicEnum class.
  • Also change Struct.which() method to be a property Struct.which and return an enum type (_DynamicEnumField, which behaves much like _DynamicEnum).
  • TwoPartyServer.run_forever() now will handle more than 1 simulataneous connection.
  • Change exception wrapper to detect and raise AttributeError for field lookup exceptions (Fixes problem in Python3.x __dir__)
  • Allow setting of fields with python dicts.

0.4.1 (2013-12-18)

  • Remove python 3.2 from travis tests. Python 3.2 still should work fine, but it's more trouble than it's worth to write unicode tests that work in both it and Python2.
  • Fix problems with null characters in Text/Data fields. Fixes #19

0.4.0 (2013-12-12)

  • Initial working version of RPC
  • Add get_root_as_any to _MessageReader
  • Add capnp.pxd for public declarations of cython classes
  • Fix problems compiling with gcc4.7

v0.3.18 (2013-11-05)

  • Change naming of ReaderOption parameters to be pep8 compliant

v0.3.17 (2013-11-05)

  • Add ReaderOptions to read/read_packed/from_bytes

v0.3.16 (2013-10-28)

  • Add defaults flag to capnp-json. Also remove 'which' field
  • Add capnp-json serializer script. Also fix bugs in from_dict
  • Fix build for clang/python3. Also remove -fpermissive
  • Add as_builder method to Struct Reader
  • Add warning when writing the same message more than once
  • First working version of capability interfaces
  • Wrap InterfaceSchema
  • Fix setting string fields to support all types of strings
  • Fix changed API for DynamicObject/ObjectPointer

v0.3.15 (2013-09-19)

  • Add not having installed the C++ libcapnp library to 'Common Problems'
  • Add _short_str function for use in capnp_test_pycapnp.py
  • Add test script for testing with https://github.com/kaos/capnp_test
  • Add handling of DynamicObject
  • Fix lists of lists or dicts for from_dict

v0.3.14 (2013-09-04)

  • Fix problem with to_dict

v0.3.13 (2013-09-04)

  • Add _DynamicStructBuilder.to_bytes() and .from_bytes()
  • Change == on StructSchema to return cbool
  • Add Builder and Reader ABCs for each struct type

v0.3.12 (2013-09-03)

  • Fix handling of empty path '' in load_module
  • Add from_dict
  • Fix bug in exception handling for which(). Also standardize exceptions.
  • Change import hook to require modules to end in '_capnp'
  • Add import monkey patch function.
  • Change naming for functions to conform to PEP 8. Also deprecate old read/write API
  • Update preferred method for reading/writing messages from files

v0.3.11 (2013-09-01)

  • Forgot to change project name in setup.py

v0.3.10 (2013-09-01)

  • Change all references to old project name (change from capnpc-python-cpp to pycapnp)
  • Change DynamicValue.Reader lists to be returned as _DynamicListReader
  • Unify setters for DynamicList and DynamicStruct
  • Add shortcuts for reading from / writing to files. In Python, it doesn't make much sense to force people to muck around with MessageReaders and MessageBuilders since everything is landing on the heap anyway. Instead, let's make it easy: MyType.read[Packed]From(file) reads a file and returns a MyType reader. MyType.newMessage() returns a MyType builder representing the root of a new message. You can call this builder's write[Packed]To(file) method to write it to a file.
  • Store Builders by value rather than allocate them separately on the heap (matches treatment of Readers). v0.3 fixes the bug that made this not work.
  • Wrap MessageBuilder::setRoot().
  • Add tests based on TestAllTypes from the C++ test.capnp. Fix problems uncovered in capnp.pyx.
  • Implement str and repr for struct and list builders. str uses prettyPrint while repr shows the type name and the low-whitespace stringification. Also implement repr for StructSchema, just because why not?

v0.3.9 (2013-08-30)

  • Change load to use a global SchemaParser. Make structs settable as field
  • Add docstrings for new functions and _DynamicResizableListBuilder

v0.3.8 (2013-08-29)

  • Add initial tests
  • Add _capnp for original Cython module. Meant for testing.
  • Lowercase schema so it conforms to member naming conventions
  • Expose _StructSchema's raw node
  • Add some useful _StructSchema, reader, and builder methods
  • Add full orphan functionality. Also, allow special orphan lists
  • Finish up adding docstrings to all public classes/methods

v0.3.7 (2013-08-26)

  • Add a ton of docstrings and add to official docs
  • Add DynamicOrphan

v0.3.6 (2013-08-26)

  • Add intersphinx for linking to python docs
  • Add C++ library version check

v0.3.5 (2013-08-25)

  • Add handling of constants in schemas
  • Fix new error with DynamicValue.Builder no longer being copyable

v0.3.4 (2013-08-22)

  • Fix Void namespace change
  • Updated capnp schema to conform with new union rules

v0.3.3 (2013-08-22)

  • Fix for the removal of DynamicUnion from the C++ API

v0.3.2 (2013-08-21)

  • Add MANIFEST.in to include README

v0.3.1 (2013-08-21)

  • Update docs with lines about upgrading setuptools

0.3.0 (2013-08-21)

  • Initial commit of docs
  • Add querying unnamed enums to structs

0.2.1 (2013-08-13)

  • Fix enum interface change for benchmark
  • Random formatting cleanup
  • Allow import paths in the schema loader
  • Add travis CI

0.2.0 (2013-08-12)

  • Initial working version

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pycapnp-1.0.0.tar.gz (528.3 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

pycapnp-1.0.0-cp39-cp39-win_amd64.whl (1.2 MB view details)

Uploaded CPython 3.9Windows x86-64

pycapnp-1.0.0-cp39-cp39-manylinux2010_x86_64.whl (4.5 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.12+ x86-64

pycapnp-1.0.0-cp39-cp39-manylinux2010_i686.whl (4.4 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.12+ i686

pycapnp-1.0.0-cp39-cp39-macosx_10_14_x86_64.whl (1.6 MB view details)

Uploaded CPython 3.9macOS 10.14+ x86-64

pycapnp-1.0.0-cp38-cp38-win_amd64.whl (1.2 MB view details)

Uploaded CPython 3.8Windows x86-64

pycapnp-1.0.0-cp38-cp38-manylinux2010_x86_64.whl (4.7 MB view details)

Uploaded CPython 3.8manylinux: glibc 2.12+ x86-64

pycapnp-1.0.0-cp38-cp38-manylinux2010_i686.whl (4.6 MB view details)

Uploaded CPython 3.8manylinux: glibc 2.12+ i686

pycapnp-1.0.0-cp38-cp38-macosx_10_14_x86_64.whl (1.6 MB view details)

Uploaded CPython 3.8macOS 10.14+ x86-64

pycapnp-1.0.0-cp37-cp37m-win_amd64.whl (1.1 MB view details)

Uploaded CPython 3.7mWindows x86-64

pycapnp-1.0.0-cp37-cp37m-manylinux2010_x86_64.whl (4.2 MB view details)

Uploaded CPython 3.7mmanylinux: glibc 2.12+ x86-64

pycapnp-1.0.0-cp37-cp37m-manylinux2010_i686.whl (4.2 MB view details)

Uploaded CPython 3.7mmanylinux: glibc 2.12+ i686

pycapnp-1.0.0-cp37-cp37m-macosx_10_14_x86_64.whl (1.6 MB view details)

Uploaded CPython 3.7mmacOS 10.14+ x86-64

File details

Details for the file pycapnp-1.0.0.tar.gz.

File metadata

  • Download URL: pycapnp-1.0.0.tar.gz
  • Upload date:
  • Size: 528.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/46.4.0 requests-toolbelt/0.9.1 tqdm/4.46.1 CPython/3.8.6

File hashes

Hashes for pycapnp-1.0.0.tar.gz
Algorithm Hash digest
SHA256 9f6fcca349ebf2ec04ca7eacb076aea3e4fcdc010ac33c98b54f0a19d4e5d3e0
MD5 7a254c7dd08c318ef4ec3f545be85b30
BLAKE2b-256 939904b9c7de86bae1e10bf8cda6a012056cf151bdd6622f19733e577fa44137

See more details on using hashes here.

File details

Details for the file pycapnp-1.0.0-cp39-cp39-win_amd64.whl.

File metadata

  • Download URL: pycapnp-1.0.0-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 1.2 MB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/46.4.0 requests-toolbelt/0.9.1 tqdm/4.46.1 CPython/3.8.6

File hashes

Hashes for pycapnp-1.0.0-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 fc0c9ddb2099ef1c33bcebbea287f54e33cb52a701e59d7d12d54eeff36d0f96
MD5 c506a2e2cec8e51cf1cca5a11b851a77
BLAKE2b-256 80533d5b62f4539d731019b15a6b99473e704e8e207448e2c2a7e3db8d586cee

See more details on using hashes here.

File details

Details for the file pycapnp-1.0.0-cp39-cp39-manylinux2010_x86_64.whl.

File metadata

  • Download URL: pycapnp-1.0.0-cp39-cp39-manylinux2010_x86_64.whl
  • Upload date:
  • Size: 4.5 MB
  • Tags: CPython 3.9, manylinux: glibc 2.12+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/46.4.0 requests-toolbelt/0.9.1 tqdm/4.46.1 CPython/3.8.6

File hashes

Hashes for pycapnp-1.0.0-cp39-cp39-manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 78ec9536791f53a00b87dd93b0447e66bb1fbfe556130748e4743faca90a7028
MD5 3ecdcf08b7911ce4a69b543a7af18b60
BLAKE2b-256 61abeb5c03f89978d9500e30cfa7a13cf36f54a6e1780b186488329bc79a3145

See more details on using hashes here.

File details

Details for the file pycapnp-1.0.0-cp39-cp39-manylinux2010_i686.whl.

File metadata

  • Download URL: pycapnp-1.0.0-cp39-cp39-manylinux2010_i686.whl
  • Upload date:
  • Size: 4.4 MB
  • Tags: CPython 3.9, manylinux: glibc 2.12+ i686
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/46.4.0 requests-toolbelt/0.9.1 tqdm/4.46.1 CPython/3.8.6

File hashes

Hashes for pycapnp-1.0.0-cp39-cp39-manylinux2010_i686.whl
Algorithm Hash digest
SHA256 db4cf60c0fbdb0a63209280324f183dbe16a5ef9add4c3bf5fb34b0f10c3ec42
MD5 c737df9e212b4d9bb3e3a54a92720101
BLAKE2b-256 828a99017d66e99bd849c0fdfa374ef04a5bea03751c2a1e796e9e3bce4e5301

See more details on using hashes here.

File details

Details for the file pycapnp-1.0.0-cp39-cp39-macosx_10_14_x86_64.whl.

File metadata

  • Download URL: pycapnp-1.0.0-cp39-cp39-macosx_10_14_x86_64.whl
  • Upload date:
  • Size: 1.6 MB
  • Tags: CPython 3.9, macOS 10.14+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/46.4.0 requests-toolbelt/0.9.1 tqdm/4.46.1 CPython/3.8.6

File hashes

Hashes for pycapnp-1.0.0-cp39-cp39-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 e2c7e8fb71add9ab392ef773bcfff95998ec1a65ad4cdefbdb3f09b202ac4e7a
MD5 bfea9344454f6365f02367c2cd74dfcc
BLAKE2b-256 250b994148f74712d9e6a85402411f334cfc10077b191d5e8d931018bc5974d8

See more details on using hashes here.

File details

Details for the file pycapnp-1.0.0-cp38-cp38-win_amd64.whl.

File metadata

  • Download URL: pycapnp-1.0.0-cp38-cp38-win_amd64.whl
  • Upload date:
  • Size: 1.2 MB
  • Tags: CPython 3.8, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/46.4.0 requests-toolbelt/0.9.1 tqdm/4.46.1 CPython/3.8.6

File hashes

Hashes for pycapnp-1.0.0-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 485e91799304095aa99ff5561ba1755d566f60e710f78307e32716ec0d1835e9
MD5 c2d517c7df28ea1b4b721fcd91dd1523
BLAKE2b-256 2ac1a81a5d6cd5d077b97fb7c564eab54dceed722985d3143182aafb8ea0e9a3

See more details on using hashes here.

File details

Details for the file pycapnp-1.0.0-cp38-cp38-manylinux2010_x86_64.whl.

File metadata

  • Download URL: pycapnp-1.0.0-cp38-cp38-manylinux2010_x86_64.whl
  • Upload date:
  • Size: 4.7 MB
  • Tags: CPython 3.8, manylinux: glibc 2.12+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/46.4.0 requests-toolbelt/0.9.1 tqdm/4.46.1 CPython/3.8.6

File hashes

Hashes for pycapnp-1.0.0-cp38-cp38-manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 d0fcbffb8326e05b4d41928312b967e1ddcee6cc600287e86118e7fde1de9f5c
MD5 e7be4a6b99a1485447674f3b55bf6373
BLAKE2b-256 d8886831bf981e69c6c707d393d5fd15eb86095e35aa051ad753ee7bdd6e7b36

See more details on using hashes here.

File details

Details for the file pycapnp-1.0.0-cp38-cp38-manylinux2010_i686.whl.

File metadata

  • Download URL: pycapnp-1.0.0-cp38-cp38-manylinux2010_i686.whl
  • Upload date:
  • Size: 4.6 MB
  • Tags: CPython 3.8, manylinux: glibc 2.12+ i686
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/46.4.0 requests-toolbelt/0.9.1 tqdm/4.46.1 CPython/3.8.6

File hashes

Hashes for pycapnp-1.0.0-cp38-cp38-manylinux2010_i686.whl
Algorithm Hash digest
SHA256 863a6e66c786b83bd4dce37680f3d006760ade25ce0d25d4ebf229c352b465c1
MD5 8e9228444a0d1895ba3310eb743d6eb8
BLAKE2b-256 287843c63266355cd2f06192c280b487644446702b5535faacde7c494170de5b

See more details on using hashes here.

File details

Details for the file pycapnp-1.0.0-cp38-cp38-macosx_10_14_x86_64.whl.

File metadata

  • Download URL: pycapnp-1.0.0-cp38-cp38-macosx_10_14_x86_64.whl
  • Upload date:
  • Size: 1.6 MB
  • Tags: CPython 3.8, macOS 10.14+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/46.4.0 requests-toolbelt/0.9.1 tqdm/4.46.1 CPython/3.8.6

File hashes

Hashes for pycapnp-1.0.0-cp38-cp38-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 37aaf0023939d00cd0554030b09caea194216df35831fd39677cf898954d1e57
MD5 b3959a53e2fadda490a4d84e498748f9
BLAKE2b-256 d4e46192e5615344b5d34c6b13652b518e59660d6f5f78298bb147bed173fcdc

See more details on using hashes here.

File details

Details for the file pycapnp-1.0.0-cp37-cp37m-win_amd64.whl.

File metadata

  • Download URL: pycapnp-1.0.0-cp37-cp37m-win_amd64.whl
  • Upload date:
  • Size: 1.1 MB
  • Tags: CPython 3.7m, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/46.4.0 requests-toolbelt/0.9.1 tqdm/4.46.1 CPython/3.8.6

File hashes

Hashes for pycapnp-1.0.0-cp37-cp37m-win_amd64.whl
Algorithm Hash digest
SHA256 d3ebaf2796eeaa79e2f632d8d6509e7ea0e614513d133a4d1bc37fafdde5b7f6
MD5 95719dc9ea25ed54e185fdf1ed10ef4d
BLAKE2b-256 3758a333101ad4df701c19d585b9369b04c05833409ee22a726ec65749e8773e

See more details on using hashes here.

File details

Details for the file pycapnp-1.0.0-cp37-cp37m-manylinux2010_x86_64.whl.

File metadata

  • Download URL: pycapnp-1.0.0-cp37-cp37m-manylinux2010_x86_64.whl
  • Upload date:
  • Size: 4.2 MB
  • Tags: CPython 3.7m, manylinux: glibc 2.12+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/46.4.0 requests-toolbelt/0.9.1 tqdm/4.46.1 CPython/3.8.6

File hashes

Hashes for pycapnp-1.0.0-cp37-cp37m-manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 b56933e65518ca204550d67a6d68742e05cce17264f04ff820a20872d76aee55
MD5 45d8417f12656a896e8ed2e2e0595fb5
BLAKE2b-256 34cb0ead011de6d9e7abcb160b410eb1a50c306c31abc6b4c5a12d9397718e75

See more details on using hashes here.

File details

Details for the file pycapnp-1.0.0-cp37-cp37m-manylinux2010_i686.whl.

File metadata

  • Download URL: pycapnp-1.0.0-cp37-cp37m-manylinux2010_i686.whl
  • Upload date:
  • Size: 4.2 MB
  • Tags: CPython 3.7m, manylinux: glibc 2.12+ i686
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/46.4.0 requests-toolbelt/0.9.1 tqdm/4.46.1 CPython/3.8.6

File hashes

Hashes for pycapnp-1.0.0-cp37-cp37m-manylinux2010_i686.whl
Algorithm Hash digest
SHA256 4a01246579646e06ce7b6f5c70c0465c0a457fb42c0ead06f410518509dd9325
MD5 8b26af15e9edfcaaf2b100243ec37ab0
BLAKE2b-256 606bea765deaf7e673bdfecef7f845d74c7278a8be3f6cd3f3b76189b896ae8a

See more details on using hashes here.

File details

Details for the file pycapnp-1.0.0-cp37-cp37m-macosx_10_14_x86_64.whl.

File metadata

  • Download URL: pycapnp-1.0.0-cp37-cp37m-macosx_10_14_x86_64.whl
  • Upload date:
  • Size: 1.6 MB
  • Tags: CPython 3.7m, macOS 10.14+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/46.4.0 requests-toolbelt/0.9.1 tqdm/4.46.1 CPython/3.8.6

File hashes

Hashes for pycapnp-1.0.0-cp37-cp37m-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 e3c377fb3014e480ae10b6c8d0f84bdf3487516efe6ca7caf168ddea68c5cd7a
MD5 ee1a0a8bb31f9d6201b0617e00f47dc4
BLAKE2b-256 2d2448823a2d2f050d79ea201a07b43342ef4815db9fc105df0cb77df9098b2c

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page