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
  • Python development headers (i.e. Python.h)
    • Distributables from python.org include these, however they are usually in a separate package on Linux distributions

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.2.0 (2022-08-29)

  • Added support for Apple Silicon

v1.1.1 (2022-05-23)

  • Added Python 3.10 support
  • aarch64 wheel support
  • Fix doc string for _DynamicResizableListBuilder
  • fix for unreleased buffers under mmap (issue 280)

v1.1.0 (2021-06-09)

  • Validated compatibility with Python 3.10.0b2
  • Remove all bare except
  • Improve _StructModuleWhich to inherit from enum.Enum
  • Add Union on top level union messages
  • Fixed memory leak in _SegmentArrayMessageReader
  • Removed many pycodestyle warnings
  • Avoid crash if __file__ is not set by importer
  • Fixed module.pyx _set_<field> for boolean fields
  • Fixed setup.py.tmpl support for *.c++ files
  • Fixed _gen.py for python3 as dict_keys object are not indexable.
  • Add test data to sdist
  • Add pyproject.yaml
  • Add missing inheritance to _Schema for _StructSchema

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.2.0.tar.gz (568.3 kB view details)

Uploaded Source

Built Distributions

pycapnp-1.2.0-cp310-cp310-win_amd64.whl (1.1 MB view details)

Uploaded CPython 3.10 Windows x86-64

pycapnp-1.2.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (4.7 MB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ ARM64

pycapnp-1.2.0-cp310-cp310-manylinux_2_12_x86_64.manylinux2010_x86_64.whl (4.6 MB view details)

Uploaded CPython 3.10 manylinux: glibc 2.12+ x86-64

pycapnp-1.2.0-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.whl (4.5 MB view details)

Uploaded CPython 3.10 manylinux: glibc 2.12+ i686

pycapnp-1.2.0-cp310-cp310-macosx_11_0_arm64.whl (596.0 kB view details)

Uploaded CPython 3.10 macOS 11.0+ ARM64

pycapnp-1.2.0-cp310-cp310-macosx_10_15_x86_64.whl (1.6 MB view details)

Uploaded CPython 3.10 macOS 10.15+ x86-64

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

Uploaded CPython 3.9 Windows x86-64

pycapnp-1.2.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (4.8 MB view details)

Uploaded CPython 3.9 manylinux: glibc 2.17+ ARM64

pycapnp-1.2.0-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl (4.6 MB view details)

Uploaded CPython 3.9 manylinux: glibc 2.12+ x86-64

pycapnp-1.2.0-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.whl (4.5 MB view details)

Uploaded CPython 3.9 manylinux: glibc 2.12+ i686

pycapnp-1.2.0-cp39-cp39-macosx_11_0_arm64.whl (605.0 kB view details)

Uploaded CPython 3.9 macOS 11.0+ ARM64

pycapnp-1.2.0-cp39-cp39-macosx_10_15_x86_64.whl (1.6 MB view details)

Uploaded CPython 3.9 macOS 10.15+ x86-64

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

Uploaded CPython 3.8 Windows x86-64

pycapnp-1.2.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (4.8 MB view details)

Uploaded CPython 3.8 manylinux: glibc 2.17+ ARM64

pycapnp-1.2.0-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl (4.8 MB view details)

Uploaded CPython 3.8 manylinux: glibc 2.12+ x86-64

pycapnp-1.2.0-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.whl (4.7 MB view details)

Uploaded CPython 3.8 manylinux: glibc 2.12+ i686

pycapnp-1.2.0-cp38-cp38-macosx_11_0_arm64.whl (606.7 kB view details)

Uploaded CPython 3.8 macOS 11.0+ ARM64

pycapnp-1.2.0-cp38-cp38-macosx_10_15_x86_64.whl (1.6 MB view details)

Uploaded CPython 3.8 macOS 10.15+ x86-64

pycapnp-1.2.0-cp37-cp37m-win_amd64.whl (1.2 MB view details)

Uploaded CPython 3.7m Windows x86-64

pycapnp-1.2.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (4.4 MB view details)

Uploaded CPython 3.7m manylinux: glibc 2.17+ ARM64

pycapnp-1.2.0-cp37-cp37m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl (4.3 MB view details)

Uploaded CPython 3.7m manylinux: glibc 2.12+ x86-64

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

Uploaded CPython 3.7m manylinux: glibc 2.12+ i686

pycapnp-1.2.0-cp37-cp37m-macosx_11_0_arm64.whl (598.6 kB view details)

Uploaded CPython 3.7m macOS 11.0+ ARM64

pycapnp-1.2.0-cp37-cp37m-macosx_10_15_x86_64.whl (1.6 MB view details)

Uploaded CPython 3.7m macOS 10.15+ x86-64

File details

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

File metadata

  • Download URL: pycapnp-1.2.0.tar.gz
  • Upload date:
  • Size: 568.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.6.0 importlib_metadata/4.8.2 pkginfo/1.8.3 requests/2.28.1 requests-toolbelt/0.9.1 tqdm/4.64.0 CPython/3.10.6

File hashes

Hashes for pycapnp-1.2.0.tar.gz
Algorithm Hash digest
SHA256 d2b7365d325a78daf14a10d615dcbad2f92c88aade3a34b647780a7ec9ac0e0f
MD5 07ff959c53b9d9fee7c96ca760694d36
BLAKE2b-256 7fda7eb16e87d0e4d505667d9e51a75eb67b3b2326f27687ce84bdcb74ef8692

See more details on using hashes here.

File details

Details for the file pycapnp-1.2.0-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: pycapnp-1.2.0-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 1.1 MB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.6.0 importlib_metadata/4.8.2 pkginfo/1.8.3 requests/2.28.1 requests-toolbelt/0.9.1 tqdm/4.64.0 CPython/3.10.6

File hashes

Hashes for pycapnp-1.2.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 3122d79aa9c22afb2ee3c1c4201e575e4c6e1a6bd9b02407194e513fe8127933
MD5 4cdc472eca06c32cc49d8cb8886791b7
BLAKE2b-256 4460f0cd917d32b000501f6423ad87f7ed42a0843773d210e39c72d8ca3e717f

See more details on using hashes here.

File details

Details for the file pycapnp-1.2.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for pycapnp-1.2.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 ec4413884139a301178c8ef581fc23d4530f0e21285a6124acda066791bbaee4
MD5 296ef5c08027d9483cfb9272466d37fc
BLAKE2b-256 086915419d9cc5823dc8e5285ff3cb821014ebbee834a72381ffb583148ebc4a

See more details on using hashes here.

File details

Details for the file pycapnp-1.2.0-cp310-cp310-manylinux_2_12_x86_64.manylinux2010_x86_64.whl.

File metadata

File hashes

Hashes for pycapnp-1.2.0-cp310-cp310-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 99c40990dc97757d429adb8bc153c52ac804e6f09f58521eb39d55b2eeb07227
MD5 3216a15c0c88197ca57dab20326359db
BLAKE2b-256 d304d827c6353b2aa2369b792564fa5d8e6ca7352921b90f633022614b3f17f3

See more details on using hashes here.

File details

Details for the file pycapnp-1.2.0-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.whl.

File metadata

File hashes

Hashes for pycapnp-1.2.0-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.whl
Algorithm Hash digest
SHA256 1b4567ed495694fff7e411674fe65acb051114221ae827dccc9347b3528c715a
MD5 e9ee14fd977e7675a19bec4575a70e70
BLAKE2b-256 46978fc8926a5ac08307b842fd08aeb6f191ee9dca7780ea023449d1a979bf94

See more details on using hashes here.

File details

Details for the file pycapnp-1.2.0-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

  • Download URL: pycapnp-1.2.0-cp310-cp310-macosx_11_0_arm64.whl
  • Upload date:
  • Size: 596.0 kB
  • Tags: CPython 3.10, macOS 11.0+ ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.6.0 importlib_metadata/4.8.2 pkginfo/1.8.3 requests/2.28.1 requests-toolbelt/0.9.1 tqdm/4.64.0 CPython/3.10.6

File hashes

Hashes for pycapnp-1.2.0-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 9b55d8fe9644b297a3b34e5fdff3163ffc1dbfe1c2e99ebaefb715e544cf42db
MD5 f9cee09977cc38f5fcd537afb468df5a
BLAKE2b-256 62d0a3bdfe8c59e4c8b23c4bac570c51552b76ab17685a3aca5ed720cec170ae

See more details on using hashes here.

File details

Details for the file pycapnp-1.2.0-cp310-cp310-macosx_10_15_x86_64.whl.

File metadata

  • Download URL: pycapnp-1.2.0-cp310-cp310-macosx_10_15_x86_64.whl
  • Upload date:
  • Size: 1.6 MB
  • Tags: CPython 3.10, macOS 10.15+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.6.0 importlib_metadata/4.8.2 pkginfo/1.8.3 requests/2.28.1 requests-toolbelt/0.9.1 tqdm/4.64.0 CPython/3.10.6

File hashes

Hashes for pycapnp-1.2.0-cp310-cp310-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 485d3189f556b1393b8c0cdb7f6f92549edb47ae2fa25f2533e87d5790174a2f
MD5 3b2ffbc73fa2a8822998587f535de37d
BLAKE2b-256 9cabf64608bbf07e822c7dba9037db561838388841bb8ae25ac1282dd232c3e9

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pycapnp-1.2.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.6.0 importlib_metadata/4.8.2 pkginfo/1.8.3 requests/2.28.1 requests-toolbelt/0.9.1 tqdm/4.64.0 CPython/3.10.6

File hashes

Hashes for pycapnp-1.2.0-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 92c30338c1be65c5cc5b9ef8bb1900443afc3ab2913f4f199c4ae8b0c3d2e06e
MD5 f4be75e34c3ce4daba2e5b4b0f6a2a87
BLAKE2b-256 64aa3acb21d927a61ae259f3712e8a72250fc21224ba4a52cd044cb5a1ebee74

See more details on using hashes here.

File details

Details for the file pycapnp-1.2.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for pycapnp-1.2.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 d955906c45df1a5e967d8b8353b7e226be6d09baa89ee7d9da9685717581f2e1
MD5 64fa601eb4f79bd6bb2911e27ed498ba
BLAKE2b-256 a4e3bf58a997e971811eea84412882139e4a3e369bc442ddea9d68e9830c1c44

See more details on using hashes here.

File details

Details for the file pycapnp-1.2.0-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl.

File metadata

File hashes

Hashes for pycapnp-1.2.0-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 89de8860b859ac0666cf8df0e5ab64637ab233852736e3e12e3f861be63eab29
MD5 d73d8def40d36eb42986e03b59a9347c
BLAKE2b-256 8a3b4ea003fe96dcf29f8930b27083eb324ec02812c82e63f8faa1cfcdfd832f

See more details on using hashes here.

File details

Details for the file pycapnp-1.2.0-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.whl.

File metadata

File hashes

Hashes for pycapnp-1.2.0-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.whl
Algorithm Hash digest
SHA256 14ce4e0f7a51ab85c5d778f5fcbcc6c1c7df97f9f6f3f6d9cf3f0394112994d6
MD5 e267d9e84d9a30b1fad3fc9af01a5d00
BLAKE2b-256 683c7ca136794b194442379dfb45173280118b70ccbcae3e1afb8de6045a9d1b

See more details on using hashes here.

File details

Details for the file pycapnp-1.2.0-cp39-cp39-macosx_11_0_arm64.whl.

File metadata

  • Download URL: pycapnp-1.2.0-cp39-cp39-macosx_11_0_arm64.whl
  • Upload date:
  • Size: 605.0 kB
  • Tags: CPython 3.9, macOS 11.0+ ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.6.0 importlib_metadata/4.8.2 pkginfo/1.8.3 requests/2.28.1 requests-toolbelt/0.9.1 tqdm/4.64.0 CPython/3.10.6

File hashes

Hashes for pycapnp-1.2.0-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 69311ac65394058ae574d373e14fcb53e3a2c9b3ba5beee4ffb1d705f6001c0a
MD5 70f48e09fda0a083bc51bdc3b0c22772
BLAKE2b-256 4bc8c47eccf7279b4822f2b3b973f1b26e47e4b457e0de14058c5844a0515ec8

See more details on using hashes here.

File details

Details for the file pycapnp-1.2.0-cp39-cp39-macosx_10_15_x86_64.whl.

File metadata

  • Download URL: pycapnp-1.2.0-cp39-cp39-macosx_10_15_x86_64.whl
  • Upload date:
  • Size: 1.6 MB
  • Tags: CPython 3.9, macOS 10.15+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.6.0 importlib_metadata/4.8.2 pkginfo/1.8.3 requests/2.28.1 requests-toolbelt/0.9.1 tqdm/4.64.0 CPython/3.10.6

File hashes

Hashes for pycapnp-1.2.0-cp39-cp39-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 cc98a6773ca91e85ed7e6c1977bfb9a97cc9963e21a6eb9011bd15a7956165ea
MD5 10aa869e7da90695caafd2d51b5d5cdc
BLAKE2b-256 113cf2bf5057d09bebebcdc181eddd698bbcfdc1b48dc6f6115e43ec1375c330

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pycapnp-1.2.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.6.0 importlib_metadata/4.8.2 pkginfo/1.8.3 requests/2.28.1 requests-toolbelt/0.9.1 tqdm/4.64.0 CPython/3.10.6

File hashes

Hashes for pycapnp-1.2.0-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 1a6fed069ee28cdee198db91470e769174071320d517c2b0155dc280b62aed06
MD5 8f6df6cad7b46c5205dc11ffaa51fd7b
BLAKE2b-256 ea978b8505db5877b81be4a29b5cf138b17507b397e27ff31e58f2e452b0c461

See more details on using hashes here.

File details

Details for the file pycapnp-1.2.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for pycapnp-1.2.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 f3513847ccdddf25b2655a03be66ae5983b37fb715362063042302563ca27bac
MD5 a55f98597e54a28ec803b886cb692ad2
BLAKE2b-256 81c44887d6569837e7c46350339d307ea1380f9e74e77dd69054da18e58160f6

See more details on using hashes here.

File details

Details for the file pycapnp-1.2.0-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl.

File metadata

File hashes

Hashes for pycapnp-1.2.0-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 21faa1909d1c7087a3237cbb0d05ab15c995c8c00ba63b2293146b68f00d5224
MD5 bfc23138c8838fcc7a21c8d23fa39ca0
BLAKE2b-256 4c4ecf9505e54b66eaabf2509f9316d4605c80285fbcbd366578eb747b518947

See more details on using hashes here.

File details

Details for the file pycapnp-1.2.0-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.whl.

File metadata

File hashes

Hashes for pycapnp-1.2.0-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.whl
Algorithm Hash digest
SHA256 afa1a7bfa9bbcefad14baa622c85b77079fc8ede1acc87f360c76f0dcc025f77
MD5 a6f7a5d3cff70fbe8a0d05b729b324cd
BLAKE2b-256 634730273ca19a8a5a73efbc1a5110bcf2ebb0c2b377c95180cb493c8e050c96

See more details on using hashes here.

File details

Details for the file pycapnp-1.2.0-cp38-cp38-macosx_11_0_arm64.whl.

File metadata

  • Download URL: pycapnp-1.2.0-cp38-cp38-macosx_11_0_arm64.whl
  • Upload date:
  • Size: 606.7 kB
  • Tags: CPython 3.8, macOS 11.0+ ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.6.0 importlib_metadata/4.8.2 pkginfo/1.8.3 requests/2.28.1 requests-toolbelt/0.9.1 tqdm/4.64.0 CPython/3.10.6

File hashes

Hashes for pycapnp-1.2.0-cp38-cp38-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 c6c52e7bda69e488da1d0c7586c761e7edf73eb1b25638f9c131ef8dfd5ade2c
MD5 1ba8b85e01adcf80b4d2fa838b35e8bd
BLAKE2b-256 26d912fc93672beea2d61c9e453912b8b098e34ce5a8f0725d92349980d87ff6

See more details on using hashes here.

File details

Details for the file pycapnp-1.2.0-cp38-cp38-macosx_10_15_x86_64.whl.

File metadata

  • Download URL: pycapnp-1.2.0-cp38-cp38-macosx_10_15_x86_64.whl
  • Upload date:
  • Size: 1.6 MB
  • Tags: CPython 3.8, macOS 10.15+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.6.0 importlib_metadata/4.8.2 pkginfo/1.8.3 requests/2.28.1 requests-toolbelt/0.9.1 tqdm/4.64.0 CPython/3.10.6

File hashes

Hashes for pycapnp-1.2.0-cp38-cp38-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 a2309540afb3601bd943578397110b76807f397002079e01cd7dad7e4899c443
MD5 dfe9783fa344c03b61bf26fdde1b646f
BLAKE2b-256 072a8c6bd3153bfc2f55fb8303a1d15e6b7ac8ba9152ab1a76d1f2b81f278e4c

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pycapnp-1.2.0-cp37-cp37m-win_amd64.whl
  • Upload date:
  • Size: 1.2 MB
  • Tags: CPython 3.7m, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.6.0 importlib_metadata/4.8.2 pkginfo/1.8.3 requests/2.28.1 requests-toolbelt/0.9.1 tqdm/4.64.0 CPython/3.10.6

File hashes

Hashes for pycapnp-1.2.0-cp37-cp37m-win_amd64.whl
Algorithm Hash digest
SHA256 4ced999957150f637b16f4f19d2ec78e925d394349a03d38d43b061f9bb9ed3b
MD5 adf2830bc4ce0ae435df534e8802fe3d
BLAKE2b-256 2e33f78b787e5973bc4f9ee6389b2d30a9766d597bf15ecbc3a8a77e3a885b3b

See more details on using hashes here.

File details

Details for the file pycapnp-1.2.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for pycapnp-1.2.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 1f79f8ed6c1445d62ed70cb73f40739565cd9e4a1c1269a9c4301a0b0a08c1c8
MD5 9a0a8ccfeb71d0de0df7c3af2e312626
BLAKE2b-256 7b9de346497f722e44d78883ee0eaaaf22060c688b10da6939d75f6e05ca1122

See more details on using hashes here.

File details

Details for the file pycapnp-1.2.0-cp37-cp37m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl.

File metadata

File hashes

Hashes for pycapnp-1.2.0-cp37-cp37m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 ba816df84bd4a1178c1df74a1620127c65589ff7b1d1e808d77b3dd704eba3e9
MD5 b10aec213f85b49096e877aa98d15849
BLAKE2b-256 0dd2c3691d66f9f35aa824ce0742e9b729ad368929933523fd4a616fffe71bbd

See more details on using hashes here.

File details

Details for the file pycapnp-1.2.0-cp37-cp37m-manylinux_2_12_i686.manylinux2010_i686.whl.

File metadata

File hashes

Hashes for pycapnp-1.2.0-cp37-cp37m-manylinux_2_12_i686.manylinux2010_i686.whl
Algorithm Hash digest
SHA256 2ed2458663d980d151489ea91d45f67184767c82d402574559f36eeb3a1463bf
MD5 053a6e9ceacc1c52fab419bd7e14ad50
BLAKE2b-256 bbf020634bca45049f8a370c017ebbe9abb0632a69a1976a685c3c2160888fe4

See more details on using hashes here.

File details

Details for the file pycapnp-1.2.0-cp37-cp37m-macosx_11_0_arm64.whl.

File metadata

  • Download URL: pycapnp-1.2.0-cp37-cp37m-macosx_11_0_arm64.whl
  • Upload date:
  • Size: 598.6 kB
  • Tags: CPython 3.7m, macOS 11.0+ ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.6.0 importlib_metadata/4.8.2 pkginfo/1.8.3 requests/2.28.1 requests-toolbelt/0.9.1 tqdm/4.64.0 CPython/3.10.6

File hashes

Hashes for pycapnp-1.2.0-cp37-cp37m-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 ad74add566385409682de41a0cdf827b73ef15bb040afd8d6a994b10983c3fcb
MD5 f50174085abef4dd7c18297ac101f9f4
BLAKE2b-256 80f64d6067584528a6b114c0be6366c342d321569724d15b93aa183b267debbd

See more details on using hashes here.

File details

Details for the file pycapnp-1.2.0-cp37-cp37m-macosx_10_15_x86_64.whl.

File metadata

  • Download URL: pycapnp-1.2.0-cp37-cp37m-macosx_10_15_x86_64.whl
  • Upload date:
  • Size: 1.6 MB
  • Tags: CPython 3.7m, macOS 10.15+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.6.0 importlib_metadata/4.8.2 pkginfo/1.8.3 requests/2.28.1 requests-toolbelt/0.9.1 tqdm/4.64.0 CPython/3.10.6

File hashes

Hashes for pycapnp-1.2.0-cp37-cp37m-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 2b0ce2c32dae717bc1e24fbd6403e7cc4242b5d96dc66c3c2dc6531caec4168d
MD5 ef556684b26631aa6061d7b00cbc474d
BLAKE2b-256 d073904aac489723ae1812933952a0568c59bf556670255a247a0a4aa1cef9a8

See more details on using hashes here.

Supported by

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