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 Distribution

pycapnp-1.2.1.tar.gz (566.7 kB view details)

Uploaded Source

Built Distributions

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

Uploaded CPython 3.10 Windows x86-64

pycapnp-1.2.1-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.1-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.1-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.1-cp310-cp310-macosx_11_0_arm64.whl (1.4 MB view details)

Uploaded CPython 3.10 macOS 11.0+ ARM64

pycapnp-1.2.1-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.1-cp39-cp39-win_amd64.whl (1.2 MB view details)

Uploaded CPython 3.9 Windows x86-64

pycapnp-1.2.1-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.1-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.1-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.1-cp39-cp39-macosx_11_0_arm64.whl (1.4 MB view details)

Uploaded CPython 3.9 macOS 11.0+ ARM64

pycapnp-1.2.1-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.1-cp38-cp38-win_amd64.whl (1.2 MB view details)

Uploaded CPython 3.8 Windows x86-64

pycapnp-1.2.1-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.1-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.1-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.1-cp38-cp38-macosx_11_0_arm64.whl (1.4 MB view details)

Uploaded CPython 3.8 macOS 11.0+ ARM64

pycapnp-1.2.1-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.1-cp37-cp37m-win_amd64.whl (1.2 MB view details)

Uploaded CPython 3.7m Windows x86-64

pycapnp-1.2.1-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.1-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.1-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.1-cp37-cp37m-macosx_11_0_arm64.whl (1.4 MB view details)

Uploaded CPython 3.7m macOS 11.0+ ARM64

pycapnp-1.2.1-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.1.tar.gz.

File metadata

  • Download URL: pycapnp-1.2.1.tar.gz
  • Upload date:
  • Size: 566.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.10.7

File hashes

Hashes for pycapnp-1.2.1.tar.gz
Algorithm Hash digest
SHA256 fb464d181f2e48799ed5acdc780dfb291d8ddacfe8080a5119378d522c975a88
MD5 e9aaf0ce26e10834258db21d43a83616
BLAKE2b-256 b647dbf2b9f03bed9b9613650f01d8c98655cee41770d14144b7b31fed59466f

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pycapnp-1.2.1-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.1 CPython/3.10.7

File hashes

Hashes for pycapnp-1.2.1-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 9ba94c0f5845157d4b664cfdb8f768cb2ebda1d226bbfa1ab7a22a89fd58143f
MD5 bceeee72707793ce5c893d2d4237b90d
BLAKE2b-256 9c1f1d6f1af1331a175b129f9cd4d815b660225f022cb9ac0e75c6a1ec03b705

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pycapnp-1.2.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 689f9feb81c500d9a72a91d93d4129e5b1a5899c418e63e5537980fbafdb243f
MD5 e0b297f8ab4b76f40a5443f35216cf22
BLAKE2b-256 a9b60ed77352950644bdec6f99b25c7357502264061f4430067b18b702e1a557

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pycapnp-1.2.1-cp310-cp310-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 70023121bc3e98a73c42bc7ba6d1759726cf5851a5422ca98ab6f0fe2e9288d3
MD5 e3378c1482e3139e7835bd9dbc3d228a
BLAKE2b-256 b1ef777e3b1b9d69e40c20221258c72abee1bf8130c786d341995e239171afef

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pycapnp-1.2.1-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.whl
Algorithm Hash digest
SHA256 9f316cc1f61b2837cd1f717606ed0e09e2d15d70b8ffcbd2df782855f8370532
MD5 bdf24eaeb823d44fbaabe541e5e6077c
BLAKE2b-256 fa84af180bc3e8fd243da97aa17af47f85a311d38200c2dc115c749d3e72acab

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pycapnp-1.2.1-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 9aac38af57cb9e331f383e085956ef082ffef1d0256873a0d7725a71b8dc75d7
MD5 0c0ac68fee55901692a6dec3987900c5
BLAKE2b-256 becd35aec7a7da5c68b689de3b4fa64025c71dc20557f6412bb6bae77a7946df

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pycapnp-1.2.1-cp310-cp310-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 8d2d93e7e96678e56af33e4af8a1c1f9e533e243b651e55cc8b9ceb3988904c8
MD5 c7eab58ad2b5dade5c0a710fa2c17c8f
BLAKE2b-256 e7045ca2e2618a8739c2f04736edb571eb57ec2f32210b7d3ee95f08da9e5ac9

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pycapnp-1.2.1-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.1 CPython/3.10.7

File hashes

Hashes for pycapnp-1.2.1-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 f4862411111ad796a2c0994d1479fdb63cca5f86ede21d15eaadc06ca1bb8693
MD5 9b6314f05598281a1d579b010a32dc13
BLAKE2b-256 fd515be3f05392d220cf763621e03b36ed10710adbc51e0b7f7d405077c78e9c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pycapnp-1.2.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 97334cb02aad6b72de507e4bf4e4c009eb28d107c0c718620b5bffa67a4b4695
MD5 fc106d5ad8ca8ac228a96f3b28bd6c74
BLAKE2b-256 02486c976f91f12deaef910f92dbbfc4100fec89475decd5573804119c8f7b9e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pycapnp-1.2.1-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 3b65464264698088b42a3d60b31686ece97f8f3426b6d60bfafe677c5c08b63b
MD5 0221fe8ebca2555f070ea4fcf14ae84f
BLAKE2b-256 974bbe7bddf52cb7d9700678c42142729727bd08f85438059c9bd58d777c5d50

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pycapnp-1.2.1-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.whl
Algorithm Hash digest
SHA256 c0eb71c3de8d4662a32f422ab734a2d8fbe3874d19ed53d50b7001e58adcb20d
MD5 895bb29b5634a2b5aadf381a2ff0adcc
BLAKE2b-256 085deedf44e33818412a50e5f02551301b46b79876d2167cc3dc6579f92a7f98

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pycapnp-1.2.1-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 16f0c0e761c79d16d5f150b8d4fdc6157b29b74f5f622fd2b015f556c3df3523
MD5 5e0423e52a8e4b3d5095287d547ee516
BLAKE2b-256 5e2aa22be40f58c87c0c425bf6da4e296e2e4e2eba96b459b55645c9feeec22f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pycapnp-1.2.1-cp39-cp39-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 d0cb096e713470869d0071a51394cad4bc20f30cd6c6485df2c35813e66862c6
MD5 cd92d1996cd821606ee6267b56aa7849
BLAKE2b-256 8dcbf77daedf26fc48818ec674da951380d213683584a21c76e0c7b2339b78d6

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pycapnp-1.2.1-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.1 CPython/3.10.7

File hashes

Hashes for pycapnp-1.2.1-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 ac64df3b16c356145924d7c36562c735d2eccaa090a5ba99922f8d1a182b73b4
MD5 2c5305ecc065691f8f4073efedb2fa3b
BLAKE2b-256 3f7e1439cfc47c73997b694e9d6c702d756411520f5fc7e63dea73a4fc498111

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pycapnp-1.2.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 c479b1b16e3e07ad30260c649b48d17cb78bc4c2b9de6253d690f5d69572d2d6
MD5 ca9d1fa7df9889d4ad0489d1ad192754
BLAKE2b-256 e1f855b6de32a9035d35d330c39e2a1f614a462780f48288c6856981587114d9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pycapnp-1.2.1-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 a38eed3bbd775c14d84c5a614ad0129d7bf65e8f5e7cba669b99e9d42bef0f4a
MD5 ec34a22a9bb2a794b8943ec41f600819
BLAKE2b-256 d0e61d7d79cc1eae7045acbb33894d961a33f4af6984325794562c884dee2422

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pycapnp-1.2.1-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.whl
Algorithm Hash digest
SHA256 d9b2800ba15f89e96517a0e2057a93fe6982682c630cba24ccf164061cabf22e
MD5 e0515a0180d8264c5beae3583460299a
BLAKE2b-256 75a4049ea58478c6143cf548e549d1b334422c519821892c822fd2b3186a7ec0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pycapnp-1.2.1-cp38-cp38-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 e76d0998994223d0b97ae5ad87796803f76c65d0a0a4ad43c16450c214113dee
MD5 af4f8f85f8b882b58542c962850d6876
BLAKE2b-256 c33b34dbe41fea4013e827dcb254d14017d19aa20eb7b750ac88ec5940e49eed

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pycapnp-1.2.1-cp38-cp38-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 204ba049af9529c8c7069af42849260341fef032e2f6f96c306b61f17aa8418f
MD5 a5fd21d137e6e5929579c58c4c75a14e
BLAKE2b-256 9f3b925f5c16abd1e64060bf51526482fd06104ecf33ea66d5473877bd7d34d3

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pycapnp-1.2.1-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.1 CPython/3.10.7

File hashes

Hashes for pycapnp-1.2.1-cp37-cp37m-win_amd64.whl
Algorithm Hash digest
SHA256 ed49760557c28659b437b41c1bd262ea959f655a652f417d54e65380d63a5b9e
MD5 6b6f9e3e8a93ad3868ef22380f2d148e
BLAKE2b-256 7c318e92648c06fe76575b599e0cb4ff7b4ee766313ba809a144cd7c71a522a2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pycapnp-1.2.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 b3d2efdfb06f317b5874b1589643acc3a69a0562147151ba4692be7051fd4726
MD5 b85b871a3fa8b26719b0abd402a3c7d7
BLAKE2b-256 a061c30fae0c257b966af4d4c17b1c4f1e0372c2310d80e17b7fa21913a7128a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pycapnp-1.2.1-cp37-cp37m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 36d5a996c0b125fe3849968149822e403970adc7a5c6e99029182fda54e2f1d4
MD5 8954c6b102770a82c77fea9fc2c80d93
BLAKE2b-256 0572e6ebfcc62d85a812a31ba1ee1599bb9170952f032be4a935101eb9cffe45

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pycapnp-1.2.1-cp37-cp37m-manylinux_2_12_i686.manylinux2010_i686.whl
Algorithm Hash digest
SHA256 ba2cf14684830b9cbe1ccc6aa90f67c32fc52e22a51269ac7255f56552f0f2bd
MD5 9493c748d5697e253a6a0a34e165dd8f
BLAKE2b-256 5689759a3b9df396572d2ff1d864243feccb6dafed7cf438022c03d50c32bfe5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pycapnp-1.2.1-cp37-cp37m-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 15a3684dccbb865f1632418ac6e558530b3f139d92d9d2885326afd3a5cdb819
MD5 e8c1c4a426838828683b088f5d5226f9
BLAKE2b-256 f4473234fad7022ab321c556f7b54a991a528638940fd8129b5cfc5c5906d632

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pycapnp-1.2.1-cp37-cp37m-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 a9b50f2f1ec14f5e87012c9f12bbe8f5f2b94b612ea4e0950ab63348d772af46
MD5 7e3f3b2a59fbdca797e1de4634f18d58
BLAKE2b-256 6ac6f97fb9b96042943a5c9cd2de34c207d3afc56efe22728c68cda72d3a9b8c

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