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.3.0 (2023-01-26)

  • Update to bundled capnproto-0.10.3
  • Add Python 3.11 to Github Actions builds (#306)
  • Prevent race condition in example code (#305)

v1.2.2 (2022-12-01)

  • Update bundled bundled capnp to 0.8.1 due to CVE-2022-46149
  • Bundle lib/capnp_api.h and helpers/capabilityHelper.cpp (#301)
  • Avoid reading random values for reader options from dangling reference (#300)

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

Uploaded Source

Built Distributions

pycapnp-1.3.0-cp311-cp311-win_amd64.whl (1.2 MB view details)

Uploaded CPython 3.11 Windows x86-64

pycapnp-1.3.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (5.3 MB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ x86-64

pycapnp-1.3.0-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl (5.2 MB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ i686

pycapnp-1.3.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (5.1 MB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ ARM64

pycapnp-1.3.0-cp311-cp311-macosx_11_0_arm64.whl (1.6 MB view details)

Uploaded CPython 3.11 macOS 11.0+ ARM64

pycapnp-1.3.0-cp311-cp311-macosx_10_9_universal2.whl (2.2 MB view details)

Uploaded CPython 3.11 macOS 10.9+ universal2 (ARM64, x86-64)

pycapnp-1.3.0-cp310-cp310-win_amd64.whl (1.2 MB view details)

Uploaded CPython 3.10 Windows x86-64

pycapnp-1.3.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (5.1 MB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ x86-64

pycapnp-1.3.0-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl (5.1 MB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ i686

pycapnp-1.3.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (4.9 MB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ ARM64

pycapnp-1.3.0-cp310-cp310-macosx_11_0_x86_64.whl (1.7 MB view details)

Uploaded CPython 3.10 macOS 11.0+ x86-64

pycapnp-1.3.0-cp310-cp310-macosx_11_0_arm64.whl (1.6 MB view details)

Uploaded CPython 3.10 macOS 11.0+ ARM64

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

Uploaded CPython 3.9 Windows x86-64

pycapnp-1.3.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (5.1 MB view details)

Uploaded CPython 3.9 manylinux: glibc 2.17+ x86-64

pycapnp-1.3.0-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl (5.1 MB view details)

Uploaded CPython 3.9 manylinux: glibc 2.17+ i686

pycapnp-1.3.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (5.0 MB view details)

Uploaded CPython 3.9 manylinux: glibc 2.17+ ARM64

pycapnp-1.3.0-cp39-cp39-macosx_11_0_x86_64.whl (1.7 MB view details)

Uploaded CPython 3.9 macOS 11.0+ x86-64

pycapnp-1.3.0-cp39-cp39-macosx_11_0_arm64.whl (1.6 MB view details)

Uploaded CPython 3.9 macOS 11.0+ ARM64

pycapnp-1.3.0-cp38-cp38-win_amd64.whl (1.3 MB view details)

Uploaded CPython 3.8 Windows x86-64

pycapnp-1.3.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (5.2 MB view details)

Uploaded CPython 3.8 manylinux: glibc 2.17+ x86-64

pycapnp-1.3.0-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl (5.1 MB view details)

Uploaded CPython 3.8 manylinux: glibc 2.17+ i686

pycapnp-1.3.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (5.0 MB view details)

Uploaded CPython 3.8 manylinux: glibc 2.17+ ARM64

pycapnp-1.3.0-cp38-cp38-macosx_11_0_arm64.whl (1.6 MB view details)

Uploaded CPython 3.8 macOS 11.0+ ARM64

pycapnp-1.3.0-cp38-cp38-macosx_10_15_x86_64.whl (1.7 MB view details)

Uploaded CPython 3.8 macOS 10.15+ x86-64

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

Uploaded CPython 3.7m Windows x86-64

pycapnp-1.3.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (4.8 MB view details)

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

pycapnp-1.3.0-cp37-cp37m-manylinux_2_17_i686.manylinux2014_i686.whl (4.8 MB view details)

Uploaded CPython 3.7m manylinux: glibc 2.17+ i686

pycapnp-1.3.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (4.7 MB view details)

Uploaded CPython 3.7m manylinux: glibc 2.17+ ARM64

pycapnp-1.3.0-cp37-cp37m-macosx_11_0_arm64.whl (1.6 MB view details)

Uploaded CPython 3.7m macOS 11.0+ ARM64

pycapnp-1.3.0-cp37-cp37m-macosx_10_15_x86_64.whl (1.7 MB view details)

Uploaded CPython 3.7m macOS 10.15+ x86-64

File details

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

File metadata

  • Download URL: pycapnp-1.3.0.tar.gz
  • Upload date:
  • Size: 567.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.9

File hashes

Hashes for pycapnp-1.3.0.tar.gz
Algorithm Hash digest
SHA256 7cf514c3068064e593d0401503f7a623c24c55776702a7a2d9cad9854710aa56
MD5 262dc6d7c9bf7ea007abf3dd8b7c5e37
BLAKE2b-256 fccf07d0b47010769799baa7123c89134093e7eeb91d420ea1b7899debbf06a2

See more details on using hashes here.

File details

Details for the file pycapnp-1.3.0-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: pycapnp-1.3.0-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 1.2 MB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.9

File hashes

Hashes for pycapnp-1.3.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 9d6af7aba49eda201243b0fbcb410b3a8a789a2f7b86adafbde7e95234a07e85
MD5 23af1b39a5f6fca8b884ba6ae4e99a2b
BLAKE2b-256 19ba03a08d01470016ffc9433944414eac335fc0d1ccd1406478889166238d69

See more details on using hashes here.

File details

Details for the file pycapnp-1.3.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pycapnp-1.3.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 bc939f85720451b1d4a05603b127c0ae241e67fcc43121685b906aa3da08d624
MD5 e6ed4ef5cbe20da1c3d827fb121783e5
BLAKE2b-256 61a5b641c46b05372014b485bbc07398424c5df3d30ce68efc0d9ca6bb1c825a

See more details on using hashes here.

File details

Details for the file pycapnp-1.3.0-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for pycapnp-1.3.0-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 1ba3adae76801b1a4c7c0f96367bdd153286469c45223bf6b50057e5d077e5d2
MD5 3c054cdcbd7b5dd75a1070f745a968f9
BLAKE2b-256 dcccbffb2750f2697dbd34d99c4cdd32d094d8f2076d7c7a32bd356373f29f22

See more details on using hashes here.

File details

Details for the file pycapnp-1.3.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for pycapnp-1.3.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 6cb575ab47069f990dc353d0c12f62013b08d0c00ba10c1aebffdc3150abd292
MD5 1ba34a499eeda9ac194ad48395569020
BLAKE2b-256 147338aa5ec5d001b667282e9dd29e3bd1feabf4503a59bc1c6ed97621e14666

See more details on using hashes here.

File details

Details for the file pycapnp-1.3.0-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pycapnp-1.3.0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 70a9d155d0dc17d343f295ae2228fb0436af329eab941e3b6637d5f5a050616d
MD5 e9c326bdc2bf554ceaf30caeb887ca3b
BLAKE2b-256 7da3476a1fc6ec6842233b0770c0e022db0afb329491db2cb5b678172ff73278

See more details on using hashes here.

File details

Details for the file pycapnp-1.3.0-cp311-cp311-macosx_10_9_universal2.whl.

File metadata

File hashes

Hashes for pycapnp-1.3.0-cp311-cp311-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 90c07b969d90d012d0d309ec4c44605ad2d8f91595dcdf8ccc1ee798bf723b77
MD5 49c4e7d5010bdb76fd170521bdc84d0d
BLAKE2b-256 6e7893083aaf6fc3dcda52b5d5e637d656c9b8bfa2807c0f1ba8a60e0bffdda0

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pycapnp-1.3.0-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 1.2 MB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.9

File hashes

Hashes for pycapnp-1.3.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 f26bb24bd28db2a6f99b7d17178112103dedef0ee275204f705e86936513c240
MD5 8039074c36beb37e250218c15c76f20e
BLAKE2b-256 cebf5799aec968fe299ecb78a2333138389c2258cf9112cc1db83aa2255eeb9f

See more details on using hashes here.

File details

Details for the file pycapnp-1.3.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pycapnp-1.3.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 4c09d0ea8bc6d6d101a1642f4d9366d929cacd3966bc510a7cd5b14df2fa2986
MD5 a882e0917f5d7aa0d6552ce6edeb92e6
BLAKE2b-256 05bb02ab038b66314951dfdb39cd8a7145f44697729c59b37839ed66ff6c7a50

See more details on using hashes here.

File details

Details for the file pycapnp-1.3.0-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for pycapnp-1.3.0-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 1451d131ae0715b840eda1d0c84ea3909b637ac28554a13e57c089aef09e4f36
MD5 f11e311e8aa4dd842c16f1795fb95b6b
BLAKE2b-256 df91b82387aae639fe5289efec5bfbc85be344d9707d2a257e14b7df0c8e1c3f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pycapnp-1.3.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 108582647317c0f3a52ab1c615333d48546cede475887ebf8a055d1d6f20f249
MD5 2348afd0f57798ddcee9e2b8fb91ccc3
BLAKE2b-256 dc81491d380e2c9a4f483ca08be2d362a615c49b244f6f04c9e9ead771ce3b10

See more details on using hashes here.

File details

Details for the file pycapnp-1.3.0-cp310-cp310-macosx_11_0_x86_64.whl.

File metadata

File hashes

Hashes for pycapnp-1.3.0-cp310-cp310-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 debb37f96db664c140e557855ba433ea59fdf714cff358a50a619e007387692b
MD5 10457aee57a9f17d94affc1899c2811e
BLAKE2b-256 b01740dc5fdc4d35e6650c6042a5934be6f7a5f3d9630b886f9e450634e90cda

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pycapnp-1.3.0-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 1410e38d1cd1d08fb36c781e8a91b2044306d18775524dfd6c8a3b83e665f47f
MD5 5e97d32f840e1c787c9207914310cb6b
BLAKE2b-256 212491f0a87d8713ea49f73a6bc68f26b627568b391e00d530dba3a3c258a3e7

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pycapnp-1.3.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/4.0.2 CPython/3.10.9

File hashes

Hashes for pycapnp-1.3.0-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 45e52d201d4d2ae9ee3290cae8f62c1af982ca2d7a7eaa0b58f53ada9a07c877
MD5 533cc29a28bf62439a80e8d0723ea1da
BLAKE2b-256 eeb3cfeba6d98c7d873026a6081ea7ef632eaecf59ca47f29620a08b6deb2ea2

See more details on using hashes here.

File details

Details for the file pycapnp-1.3.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pycapnp-1.3.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 223f600854f46009715231237a02c18a6e5b28492c0976d6602c0d73021c9d3a
MD5 89d8b60a1bc0620a31b26126bf75c1c7
BLAKE2b-256 018bb1352ef77c811c753f6255988c5260a165194e7e3e9b13af07d152a93639

See more details on using hashes here.

File details

Details for the file pycapnp-1.3.0-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for pycapnp-1.3.0-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 77c95991b4fc30fd336e3cbed4ffd3fb23aa647427bc96cafd0f77ec5b046766
MD5 a84bab2b7f231c080a3d73dd64d5d95b
BLAKE2b-256 cae6f9120b9d0e98393b6aecbd0c3f8345cacd98197c88e07bef100aa2e0d2ca

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pycapnp-1.3.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 886c09a5802b3ec232a8cd64f44c092bbf3daa1c0ff66942f1f6b9943a71a909
MD5 f8455499f90c4bdcfa8563efc1218e29
BLAKE2b-256 1b3c964f734e44cc7d4f676aff03f18515cc81ff1c0a7145ba55c9e9b8f690b2

See more details on using hashes here.

File details

Details for the file pycapnp-1.3.0-cp39-cp39-macosx_11_0_x86_64.whl.

File metadata

File hashes

Hashes for pycapnp-1.3.0-cp39-cp39-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 9333029a4c4f71942666ee1eb051740c38c27b034eca4c73d09f26217e2b2dc4
MD5 f6cf27c814febedf50c7349f7d09d9b0
BLAKE2b-256 aa93ee3e79ba308fe7c8bcab8b6f1f6e199cd68e01f2fb79a55a5f08d6945724

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pycapnp-1.3.0-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 02acfc8d94ed0c2e1b68cde6c845149b5c89eb4c5a71c7fe4978a70370cb17b5
MD5 67de45ead0801ec5270db9a2f7d282c8
BLAKE2b-256 e1a966f2a69161c854926a8dfebd22618ee6ea67ec1a59127cfc9bea018f8cbe

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pycapnp-1.3.0-cp38-cp38-win_amd64.whl
  • Upload date:
  • Size: 1.3 MB
  • Tags: CPython 3.8, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.9

File hashes

Hashes for pycapnp-1.3.0-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 b82d5c2ed388157b01ae7fbf754fd677d069150336ee74d6f286936af8ce0f18
MD5 f1ee5f197c03342b4e428b59a104972a
BLAKE2b-256 a9a8df8749c3c809f83b1d689b6454de6de8a26c7c15bbb95ccd1a79203de1b8

See more details on using hashes here.

File details

Details for the file pycapnp-1.3.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pycapnp-1.3.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 fa7d2e0c22fb4f1c7bf44630170ba06df4e1fb47f0977df1d5fe425dc74ce354
MD5 2ea53981a825c2d77783ff4ef464d4f2
BLAKE2b-256 cf25bcf62c3c23cbdc4508d61b190e12d5e1ad041e0657e7b217f17d19850016

See more details on using hashes here.

File details

Details for the file pycapnp-1.3.0-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for pycapnp-1.3.0-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 c0bfdbae7344835c287be2ca9f3e9fdf8f208941933fb77f6252a937917347de
MD5 1c574aa8cd8757c7a788b0ad9318cac4
BLAKE2b-256 f7debd473c7c1dab4219f9d56dbb449bfd8f65101cda2e88151ec2b8ed04184a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pycapnp-1.3.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 b02fd11a155aca4e1b507bc7bd91963ec9a7695d5235837229d105d920385514
MD5 6b830de32a2d015eef83291596a02e1d
BLAKE2b-256 fc10542dfc4342d7bc79144f3872bc021c8be537514cbb1a84e600885667b5f7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pycapnp-1.3.0-cp38-cp38-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 f6f011ce96049cff07502e76d91e2a037234aa89bd4fc299c95e403797a73dae
MD5 bdcc30f3407e12e813fbff0c74bcad97
BLAKE2b-256 5187e90249ecdedb19637c070f8f582d96b9f76de0522ddee889352a39c46ddd

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pycapnp-1.3.0-cp38-cp38-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 ff4a67282af21fb6a16b99f7d2397c4c6462b3a59b9b751e6860ccfb5c838398
MD5 0843551650bf487805475b1464fd11c6
BLAKE2b-256 586b74515dee5cd759f28abea3c6f7d642987da63007f021e5da04adde94be29

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pycapnp-1.3.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/4.0.2 CPython/3.10.9

File hashes

Hashes for pycapnp-1.3.0-cp37-cp37m-win_amd64.whl
Algorithm Hash digest
SHA256 e351748b9a1bc3e6379183a24e1e68ecf4f76943872f63c8d42f206523b78cbb
MD5 d1c08411587f08a5a54691f2fc9ff13f
BLAKE2b-256 4c2854b5fc6ebbbcfee1b99ad0708e1e8a63f97cfeb3bb8bfbc83239a692c862

See more details on using hashes here.

File details

Details for the file pycapnp-1.3.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pycapnp-1.3.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 cda76deffa45e567354234d2c21e084251dc270ba226e8d9863406c54e9cb87f
MD5 5786935b3757b1761b3123dcc919b1f7
BLAKE2b-256 4dc4839bab290c8b332bc0d30551fd1bb9dd6e9fd1fc629ce7aa7e84a841cba2

See more details on using hashes here.

File details

Details for the file pycapnp-1.3.0-cp37-cp37m-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for pycapnp-1.3.0-cp37-cp37m-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 432b9d49bde68eca83b10f04791c65dc9a2070afcbd406703c4f4a073f02061c
MD5 48fb6d1f7c7c2cde04c166f720d17cb4
BLAKE2b-256 89cc7959c6d31464f60391bf0ed73e2cbcda74d1ac32380fabfb25b48773cf6f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pycapnp-1.3.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 8389da70ff8c4008a0aabcdbf04e272aebb0c71476bc29cb7fbefb9ae579c947
MD5 cdd5ddeeb4f9bac5f24ca28749b440af
BLAKE2b-256 679e7f5ecbea97113a6672c774d16df8ae312c7b2f08964a6c78db428a4998cc

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pycapnp-1.3.0-cp37-cp37m-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 f9d29bf65a5fb6cca1d0ed56cd2b0e6b1f63d47af72dfced80bbf6a8315aa2ae
MD5 6f8470b8b902580da9df7f2080e56347
BLAKE2b-256 4dc54ffb5dc9fbf2127405080d4d1c786282029389d63624ccf8208d258e9a78

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pycapnp-1.3.0-cp37-cp37m-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 32e56829e05fc54e14a8b40076d0a0958acef835379c6e39c26648cb754b9011
MD5 1cbf8f18556095e44b474477b9af511c
BLAKE2b-256 f56068843e22c5585064adcbd32a42aadf22eacf2d3f0246a0e9a1820b574351

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