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.1 (2022-09-11)

  • Fix packaging for Apple Silicon

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 Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

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

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

Uploaded CPython 3.10Windows x86-64

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

Uploaded CPython 3.10manylinux: glibc 2.17+ ARM64

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

Uploaded CPython 3.10manylinux: glibc 2.12+ x86-64

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

Uploaded CPython 3.10manylinux: glibc 2.12+ i686

pycapnp-1.2.2-cp310-cp310-macosx_11_0_arm64.whl (1.4 MB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

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

Uploaded CPython 3.10macOS 10.15+ x86-64

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

Uploaded CPython 3.9Windows x86-64

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

Uploaded CPython 3.9manylinux: glibc 2.17+ ARM64

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

Uploaded CPython 3.9manylinux: glibc 2.12+ x86-64

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

Uploaded CPython 3.9manylinux: glibc 2.12+ i686

pycapnp-1.2.2-cp39-cp39-macosx_11_0_arm64.whl (1.4 MB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

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

Uploaded CPython 3.9macOS 10.15+ x86-64

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

Uploaded CPython 3.8Windows x86-64

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

Uploaded CPython 3.8manylinux: glibc 2.17+ ARM64

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

Uploaded CPython 3.8manylinux: glibc 2.12+ x86-64

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

Uploaded CPython 3.8manylinux: glibc 2.12+ i686

pycapnp-1.2.2-cp38-cp38-macosx_11_0_arm64.whl (1.4 MB view details)

Uploaded CPython 3.8macOS 11.0+ ARM64

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

Uploaded CPython 3.8macOS 10.15+ x86-64

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

Uploaded CPython 3.7mWindows x86-64

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

Uploaded CPython 3.7mmanylinux: glibc 2.17+ ARM64

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

Uploaded CPython 3.7mmanylinux: glibc 2.12+ x86-64

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

Uploaded CPython 3.7mmanylinux: glibc 2.12+ i686

pycapnp-1.2.2-cp37-cp37m-macosx_11_0_arm64.whl (1.4 MB view details)

Uploaded CPython 3.7mmacOS 11.0+ ARM64

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

Uploaded CPython 3.7mmacOS 10.15+ x86-64

File details

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

File metadata

  • Download URL: pycapnp-1.2.2-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/4.0.2 CPython/3.10.8

File hashes

Hashes for pycapnp-1.2.2-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 cb1b5cd6465be41156337bb03880d143731ab9d4e515a40fa937461ffce651f7
MD5 6a6bbdfe78051f3bebf13e17b478c78b
BLAKE2b-256 c9e993fb9f84019fab9202b0a1a6d3e35d6a82ac3c17a54156629a2d237ab973

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pycapnp-1.2.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 7d8030d651827e16a0da89d6ac4fea18663edd17ce53c7b01519b00c415eb8b8
MD5 550b4136b31334220d3a9a20a4c0642c
BLAKE2b-256 0467ce133c1dd43f469c08bbc5abb2e1ffeb554d218b6d3227a5b003c4771544

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pycapnp-1.2.2-cp310-cp310-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 d7546defa83c2549573c2ffb48d8424c530d930aa3786d828e0b40fb4939e1fa
MD5 3e73d178a7479186057b931705345db3
BLAKE2b-256 a0f0a1ea84c6fedffdd96162166fa0aa2b41609b62bf108de42a72f5d0d1aacf

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pycapnp-1.2.2-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.whl
Algorithm Hash digest
SHA256 34225bf52bc6c3f7e18a81f59ce35c37c8512271bf145709b598a6bc735b5671
MD5 94ce17e973493bc0420541fff2735a8f
BLAKE2b-256 1af18ef389d4c239721776bef1ffaaac6448f4ae69045c7fb695f2f59fd31182

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pycapnp-1.2.2-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 b1764268458f13532f131b7491061ac993a732fd47d8aa899bf632cf3e39d222
MD5 595f8e52aa11275add0467860719eb2e
BLAKE2b-256 ca673fe7dbc2103d2522c06a49c7ac364f37c5b2c7596ef116cc259bc9f28612

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pycapnp-1.2.2-cp310-cp310-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 2d230817e991790388932afe2a6a8f8b8c67d161aea403a7aa8cceb0d24b30ff
MD5 887c00b9084d68a28cfaf6d808234871
BLAKE2b-256 8689da747c6cebd0ada770d692a5216a63a1a60e961f6126409ac8e85a61e81b

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pycapnp-1.2.2-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/4.0.2 CPython/3.10.8

File hashes

Hashes for pycapnp-1.2.2-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 9911e3a21adb6bb4a83b863781aa181651fe2da2f4f3d83b4a49557103e7ed35
MD5 418dbb179e58d5684765f989e6d1ae70
BLAKE2b-256 c6816a34382419d15c197a4c7b4ba6d48a29053d484b90d8e61047afcc8e2ca9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pycapnp-1.2.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 b36120f83151fd639169b7ab57c74d2001563f13c8774e581774ed6096822055
MD5 e602b6adc0ca43ed967a2502e403e3bc
BLAKE2b-256 0120416f0144c7f8f697539eaad03e17b86729b1a8a402c51458e7141e07554e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pycapnp-1.2.2-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 4fc46bdf11663f74d6571012ff46494c77061164f87d5858b07a0a98f2de3405
MD5 4f1000b8d33a15b8855c7db4ad0807e5
BLAKE2b-256 157912d1422d947cf8754733a5a365231dc7adcda20d3c444603ce71d56428b7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pycapnp-1.2.2-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.whl
Algorithm Hash digest
SHA256 b0de60386aaff0851d199bb67cba0155e1bd8064ae77158d0e64ea4341c22f1a
MD5 1efd972ab89813c8dab478d2ded3b0a6
BLAKE2b-256 ff65ecca402d7c03f68d05e266f95004d952a3089e905a9e0eae163e8938eaf6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pycapnp-1.2.2-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 713b14015a6849063e4f5e86f58a257f58d25ac3944aadd4b861cb5781e62f8c
MD5 bebd4156f6dd3d23eee2af4954199fb9
BLAKE2b-256 b03a41b24e19cb99b3d98a6036934c0cfa918470206f10c549f06855b6d16f02

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pycapnp-1.2.2-cp39-cp39-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 c555e22adcf4657e5786381d3b482b0587b7b46c7c93a5632e8123533afc5339
MD5 0699dbb166ee4203f0b7fc6930a83317
BLAKE2b-256 980d380f1158a690499f48e1adece72d4e491172f3128d54f876606817e1a7a1

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pycapnp-1.2.2-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/4.0.2 CPython/3.10.8

File hashes

Hashes for pycapnp-1.2.2-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 2e323f09a081d5830dde70f54441ae5866041d3a39ff48c8c0576546681fb8dc
MD5 f9d12acd936270e175b6f890e0ed3fa9
BLAKE2b-256 bc74fed681cf793a5db20406577a6bbf3eeab3e8f6255a59a2b5043d45154854

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pycapnp-1.2.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 aa8e14629de476431835c799eba95fcd22c6d927248d23f8a449283ccda92f72
MD5 f0eb5517766b9933cc716f16b46a12a4
BLAKE2b-256 6c139ca2a68aa05380dd29550e58d55a0e51e971b11ca6777e6ed6f124479e0a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pycapnp-1.2.2-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 348c780d68ff8cfab0d1f489730d20639b576c3a10f1ab86fe3f0334366bf543
MD5 68801e6645fd659880f217150e837e73
BLAKE2b-256 9bccad36df99dbb7f5b60a1c4b367dfe3540fe27d5badd7d92420eb79b5cbc2e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pycapnp-1.2.2-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.whl
Algorithm Hash digest
SHA256 8a6b333d1edc279555a23f03b7338654b782f5f9eebc267805d7acff3aab6db6
MD5 abe498f9c6528a4de51bb16b8bcb1bfe
BLAKE2b-256 000714baf909053a8f311a89ea0b47aac57057a21770660df23f8f0704223d1d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pycapnp-1.2.2-cp38-cp38-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 06b4578d5be302dd5d631c0caa94c3650c80ac25ebd42aa9eb79e54c5dc71098
MD5 1925bcfb319b22b7b461bb551ae019fb
BLAKE2b-256 75858aa8e6aba43700501f86200c7c6b04cf9df760e9e80ca716f89e8a41854c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pycapnp-1.2.2-cp38-cp38-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 ed0cd64d2294055b3504118324eb7b7d2548afe85d6a117b46bf8771609fddf5
MD5 a705336c205e2fd39159e6a356d55ee8
BLAKE2b-256 d0b7b94d1e8d504b1501ac5868158679e524509e2f509de6d83ef90a8753c9ce

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pycapnp-1.2.2-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/4.0.2 CPython/3.10.8

File hashes

Hashes for pycapnp-1.2.2-cp37-cp37m-win_amd64.whl
Algorithm Hash digest
SHA256 b231ce05f332b41e288e7385069eda1344ed334e4e21224efd3b29d17e5d6563
MD5 eafa25741fa947a666f1b35a458c4268
BLAKE2b-256 457ddb80374346477ec49b65dfa0945cf839f559c43c636cbde60be4dc8cfb4b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pycapnp-1.2.2-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 a282291696322cf65f9d86ba4fc329429b8e3048ba30bf9c54b0f7af0a3edc9b
MD5 db59e96b221914cec9c6609cdc1624fa
BLAKE2b-256 7db1a691aec72b014278ef30816508a5c6ebecba79b41ba164254edd9134b439

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pycapnp-1.2.2-cp37-cp37m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 a9f423e85132f46884d228ef350b14e07e974dd671ec2725f7fb66efebc37ea4
MD5 131e013f8fc7c43c73c4c4c29b660493
BLAKE2b-256 b2e0d8f18e2f041b2f74008954440e2f6a79500bd15a283735734bfaa2eada01

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pycapnp-1.2.2-cp37-cp37m-manylinux_2_12_i686.manylinux2010_i686.whl
Algorithm Hash digest
SHA256 dbfc376e9b8d6ba3cb409b475811fb0b039692cae78c9e945e7faa7fe8e8dc13
MD5 4af10574b7822141a02e6eb8defdc5ef
BLAKE2b-256 3d07820a10cae4975232c21a666221b5f9973a364f6febef0a15b9162caeec0c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pycapnp-1.2.2-cp37-cp37m-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 4d9d33272d89cc853b971d41034fd5c13197027b287b8ebb7e448dd0fa4ee089
MD5 fef52945ba40d81a50b132301ea391cd
BLAKE2b-256 285b65d5a1b07f10e61df75600e4b93ce9ef020f67b92169fb4b134f8a6c1ad2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pycapnp-1.2.2-cp37-cp37m-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 d244f077f85bc6841f9dbed619c04aeda61cd75c0a102ccab7fcea871ebfc9bd
MD5 15827758d6ab8e641e61f0b8dc08f55a
BLAKE2b-256 b03b6760d2c5f3e668876661441b6b6068b6202a22522ba1dcd7faaeb9ae64a2

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