pycapnp 2.2.0__tar.gz → 2.2.2__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {pycapnp-2.2.0 → pycapnp-2.2.2}/CHANGELOG.md +8 -0
- {pycapnp-2.2.0/pycapnp.egg-info → pycapnp-2.2.2}/PKG-INFO +10 -2
- pycapnp-2.2.2/capnp/includes/PyCustomMessageBuilder.h +28 -0
- {pycapnp-2.2.0 → pycapnp-2.2.2}/capnp/lib/capnp.cpp +29532 -30540
- {pycapnp-2.2.0 → pycapnp-2.2.2}/capnp/lib/capnp.pxd +2 -0
- {pycapnp-2.2.0 → pycapnp-2.2.2}/capnp/lib/capnp.pyx +67 -6
- {pycapnp-2.2.0 → pycapnp-2.2.2}/capnp/lib/capnp_api.h +42 -32
- {pycapnp-2.2.0 → pycapnp-2.2.2}/capnp/version.py +2 -2
- {pycapnp-2.2.0 → pycapnp-2.2.2/pycapnp.egg-info}/PKG-INFO +10 -2
- {pycapnp-2.2.0 → pycapnp-2.2.2}/pycapnp.egg-info/SOURCES.txt +3 -0
- {pycapnp-2.2.0 → pycapnp-2.2.2}/setup.py +2 -1
- pycapnp-2.2.2/test/test_async_write_large_payload.py +112 -0
- {pycapnp-2.2.0 → pycapnp-2.2.2}/test/test_blob_to_dict_base64.py +2 -1
- pycapnp-2.2.2/test/test_get_data_view.py +210 -0
- {pycapnp-2.2.0 → pycapnp-2.2.2}/test/test_py_custom_message_builder.py +0 -3
- {pycapnp-2.2.0 → pycapnp-2.2.2}/LICENSE.md +0 -0
- {pycapnp-2.2.0 → pycapnp-2.2.2}/MANIFEST.in +0 -0
- {pycapnp-2.2.0 → pycapnp-2.2.2}/Pipfile +0 -0
- {pycapnp-2.2.0 → pycapnp-2.2.2}/README.md +0 -0
- {pycapnp-2.2.0 → pycapnp-2.2.2}/_custom_build/backend.py +0 -0
- {pycapnp-2.2.0 → pycapnp-2.2.2}/buildutils/__init__.py +0 -0
- {pycapnp-2.2.0 → pycapnp-2.2.2}/buildutils/build.py +0 -0
- {pycapnp-2.2.0 → pycapnp-2.2.2}/buildutils/bundle.py +0 -0
- {pycapnp-2.2.0 → pycapnp-2.2.2}/capnp/__init__.pxd +0 -0
- {pycapnp-2.2.0 → pycapnp-2.2.2}/capnp/__init__.py +0 -0
- {pycapnp-2.2.0 → pycapnp-2.2.2}/capnp/_gen.py +0 -0
- {pycapnp-2.2.0 → pycapnp-2.2.2}/capnp/helpers/__init__.pxd +0 -0
- {pycapnp-2.2.0 → pycapnp-2.2.2}/capnp/helpers/capabilityHelper.cpp +0 -0
- {pycapnp-2.2.0 → pycapnp-2.2.2}/capnp/helpers/capabilityHelper.h +0 -0
- {pycapnp-2.2.0 → pycapnp-2.2.2}/capnp/helpers/checkCompiler.h +0 -0
- {pycapnp-2.2.0 → pycapnp-2.2.2}/capnp/helpers/deserialize.h +0 -0
- {pycapnp-2.2.0 → pycapnp-2.2.2}/capnp/helpers/fixMaybe.h +0 -0
- {pycapnp-2.2.0 → pycapnp-2.2.2}/capnp/helpers/helpers.pxd +0 -0
- {pycapnp-2.2.0 → pycapnp-2.2.2}/capnp/helpers/non_circular.pxd +0 -0
- {pycapnp-2.2.0 → pycapnp-2.2.2}/capnp/helpers/rpcHelper.h +0 -0
- {pycapnp-2.2.0 → pycapnp-2.2.2}/capnp/helpers/serialize.h +0 -0
- {pycapnp-2.2.0 → pycapnp-2.2.2}/capnp/includes/PyCustomMessageBuilder.cpp +0 -0
- {pycapnp-2.2.0 → pycapnp-2.2.2}/capnp/includes/__init__.pxd +0 -0
- {pycapnp-2.2.0 → pycapnp-2.2.2}/capnp/includes/capnp_cpp.pxd +0 -0
- {pycapnp-2.2.0 → pycapnp-2.2.2}/capnp/includes/schema_cpp.pxd +0 -0
- {pycapnp-2.2.0 → pycapnp-2.2.2}/capnp/includes/types.pxd +0 -0
- {pycapnp-2.2.0 → pycapnp-2.2.2}/capnp/lib/__init__.pxd +0 -0
- {pycapnp-2.2.0 → pycapnp-2.2.2}/capnp/lib/__init__.py +0 -0
- {pycapnp-2.2.0 → pycapnp-2.2.2}/capnp/lib/pickle_helper.py +0 -0
- {pycapnp-2.2.0 → pycapnp-2.2.2}/capnp/templates/module.pyx +0 -0
- {pycapnp-2.2.0 → pycapnp-2.2.2}/capnp/templates/setup.py.tmpl +0 -0
- {pycapnp-2.2.0 → pycapnp-2.2.2}/examples/addressbook.capnp +0 -0
- {pycapnp-2.2.0 → pycapnp-2.2.2}/examples/addressbook.py +0 -0
- {pycapnp-2.2.0 → pycapnp-2.2.2}/examples/async_calculator_client.py +0 -0
- {pycapnp-2.2.0 → pycapnp-2.2.2}/examples/async_calculator_server.py +0 -0
- {pycapnp-2.2.0 → pycapnp-2.2.2}/examples/async_client.py +0 -0
- {pycapnp-2.2.0 → pycapnp-2.2.2}/examples/async_reconnecting_ssl_client.py +0 -0
- {pycapnp-2.2.0 → pycapnp-2.2.2}/examples/async_server.py +0 -0
- {pycapnp-2.2.0 → pycapnp-2.2.2}/examples/async_socket_message_client.py +0 -0
- {pycapnp-2.2.0 → pycapnp-2.2.2}/examples/async_socket_message_server.py +0 -0
- {pycapnp-2.2.0 → pycapnp-2.2.2}/examples/async_ssl_calculator_client.py +0 -0
- {pycapnp-2.2.0 → pycapnp-2.2.2}/examples/async_ssl_calculator_server.py +0 -0
- {pycapnp-2.2.0 → pycapnp-2.2.2}/examples/async_ssl_client.py +0 -0
- {pycapnp-2.2.0 → pycapnp-2.2.2}/examples/async_ssl_server.py +0 -0
- {pycapnp-2.2.0 → pycapnp-2.2.2}/examples/calculator.capnp +0 -0
- {pycapnp-2.2.0 → pycapnp-2.2.2}/examples/py_custom_message_builder.py +0 -0
- {pycapnp-2.2.0 → pycapnp-2.2.2}/examples/selfsigned.cert +0 -0
- {pycapnp-2.2.0 → pycapnp-2.2.2}/examples/selfsigned.key +0 -0
- {pycapnp-2.2.0 → pycapnp-2.2.2}/examples/thread.capnp +0 -0
- {pycapnp-2.2.0 → pycapnp-2.2.2}/pycapnp.egg-info/dependency_links.txt +0 -0
- {pycapnp-2.2.0 → pycapnp-2.2.2}/pycapnp.egg-info/entry_points.txt +0 -0
- {pycapnp-2.2.0 → pycapnp-2.2.2}/pycapnp.egg-info/top_level.txt +0 -0
- {pycapnp-2.2.0 → pycapnp-2.2.2}/pyproject.toml +0 -0
- {pycapnp-2.2.0 → pycapnp-2.2.2}/requirements.txt +0 -0
- {pycapnp-2.2.0 → pycapnp-2.2.2}/setup.cfg +0 -0
- {pycapnp-2.2.0 → pycapnp-2.2.2}/test/addressbook with spaces.capnp +0 -0
- {pycapnp-2.2.0 → pycapnp-2.2.2}/test/addressbook-with-dashes.capnp +0 -0
- {pycapnp-2.2.0 → pycapnp-2.2.2}/test/addressbook.capnp +0 -0
- {pycapnp-2.2.0 → pycapnp-2.2.2}/test/all-types.binary +0 -0
- {pycapnp-2.2.0 → pycapnp-2.2.2}/test/all-types.packed +0 -0
- {pycapnp-2.2.0 → pycapnp-2.2.2}/test/all-types.txt +0 -0
- {pycapnp-2.2.0 → pycapnp-2.2.2}/test/all_types.capnp +0 -0
- {pycapnp-2.2.0 → pycapnp-2.2.2}/test/annotations.capnp +0 -0
- {pycapnp-2.2.0 → pycapnp-2.2.2}/test/bar.capnp +0 -0
- {pycapnp-2.2.0 → pycapnp-2.2.2}/test/blob_test.capnp +0 -0
- {pycapnp-2.2.0 → pycapnp-2.2.2}/test/foo.capnp +0 -0
- {pycapnp-2.2.0 → pycapnp-2.2.2}/test/schemas/child.capnp +0 -0
- {pycapnp-2.2.0 → pycapnp-2.2.2}/test/schemas/parent.capnp +0 -0
- {pycapnp-2.2.0 → pycapnp-2.2.2}/test/test_capability.capnp +0 -0
- {pycapnp-2.2.0 → pycapnp-2.2.2}/test/test_capability.py +0 -0
- {pycapnp-2.2.0 → pycapnp-2.2.2}/test/test_capability_context.py +0 -0
- {pycapnp-2.2.0 → pycapnp-2.2.2}/test/test_context_manager.py +0 -0
- {pycapnp-2.2.0 → pycapnp-2.2.2}/test/test_examples.py +0 -0
- {pycapnp-2.2.0 → pycapnp-2.2.2}/test/test_large_read.capnp +0 -0
- {pycapnp-2.2.0 → pycapnp-2.2.2}/test/test_large_read.py +0 -0
- {pycapnp-2.2.0 → pycapnp-2.2.2}/test/test_load.py +0 -0
- {pycapnp-2.2.0 → pycapnp-2.2.2}/test/test_memory_handling.py +0 -0
- {pycapnp-2.2.0 → pycapnp-2.2.2}/test/test_object.py +0 -0
- {pycapnp-2.2.0 → pycapnp-2.2.2}/test/test_regression.py +0 -0
- {pycapnp-2.2.0 → pycapnp-2.2.2}/test/test_response.capnp +0 -0
- {pycapnp-2.2.0 → pycapnp-2.2.2}/test/test_response.py +0 -0
- {pycapnp-2.2.0 → pycapnp-2.2.2}/test/test_rpc.py +0 -0
- {pycapnp-2.2.0 → pycapnp-2.2.2}/test/test_rpc_calculator.py +0 -0
- {pycapnp-2.2.0 → pycapnp-2.2.2}/test/test_schema.py +0 -0
- {pycapnp-2.2.0 → pycapnp-2.2.2}/test/test_serialization.py +0 -0
- {pycapnp-2.2.0 → pycapnp-2.2.2}/test/test_struct.py +0 -0
- {pycapnp-2.2.0 → pycapnp-2.2.2}/test/test_structs_sequence.capnp +0 -0
- {pycapnp-2.2.0 → pycapnp-2.2.2}/test/test_structs_sequence.py +0 -0
- {pycapnp-2.2.0 → pycapnp-2.2.2}/tox.ini +0 -0
|
@@ -1,3 +1,11 @@
|
|
|
1
|
+
## v2.2.2 (2026-01-16)
|
|
2
|
+
- Revert Data fields to bytes and add get_data_as_view for zero-copy access (#390)
|
|
3
|
+
- Fix use-after-free in async write causing corruption with large payloads (#392)
|
|
4
|
+
- Update macOS builds from 13 to 15 (#393)
|
|
5
|
+
|
|
6
|
+
## v2.2.1 (2025-10-21)
|
|
7
|
+
- Make `message.to_dict()` return bytes for DATA type field (#386)
|
|
8
|
+
|
|
1
9
|
## v2.2.0 (2025-09-12)
|
|
2
10
|
- Add binary support in dictionaries via base64 encoding (#351)
|
|
3
11
|
- Add structure-free read_multiple_bytes_packed (#378)
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: pycapnp
|
|
3
|
-
Version: 2.2.
|
|
3
|
+
Version: 2.2.2
|
|
4
4
|
Summary: A cython wrapping of the C++ Cap'n Proto library
|
|
5
5
|
Home-page: https://github.com/capnproto/pycapnp
|
|
6
|
-
Download-URL: https://github.com/haata/pycapnp/archive/v2.2.
|
|
6
|
+
Download-URL: https://github.com/haata/pycapnp/archive/v2.2.2.zip
|
|
7
7
|
Author: Jacob Alexander
|
|
8
8
|
Author-email: haata@kiibohd.com
|
|
9
9
|
License: BSD-2-Clause
|
|
@@ -259,6 +259,14 @@ if __name__ == '__main__':
|
|
|
259
259
|
|
|
260
260
|
Changelog
|
|
261
261
|
=============
|
|
262
|
+
## v2.2.2 (2026-01-16)
|
|
263
|
+
- Revert Data fields to bytes and add get_data_as_view for zero-copy access (#390)
|
|
264
|
+
- Fix use-after-free in async write causing corruption with large payloads (#392)
|
|
265
|
+
- Update macOS builds from 13 to 15 (#393)
|
|
266
|
+
|
|
267
|
+
## v2.2.1 (2025-10-21)
|
|
268
|
+
- Make `message.to_dict()` return bytes for DATA type field (#386)
|
|
269
|
+
|
|
262
270
|
## v2.2.0 (2025-09-12)
|
|
263
271
|
- Add binary support in dictionaries via base64 encoding (#351)
|
|
264
272
|
- Add structure-free read_multiple_bytes_packed (#378)
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
#pragma once
|
|
2
|
+
|
|
3
|
+
#include "Python.h"
|
|
4
|
+
#include <capnp/message.h>
|
|
5
|
+
#include <capnp/serialize.h>
|
|
6
|
+
#include <vector>
|
|
7
|
+
|
|
8
|
+
namespace capnp {
|
|
9
|
+
|
|
10
|
+
class PyCustomMessageBuilder : public capnp::MessageBuilder {
|
|
11
|
+
public:
|
|
12
|
+
explicit PyCustomMessageBuilder(PyObject* allocateSegmentCallable,
|
|
13
|
+
uint firstSegmentWords = capnp::SUGGESTED_FIRST_SEGMENT_WORDS);
|
|
14
|
+
|
|
15
|
+
~PyCustomMessageBuilder() noexcept(false) override;
|
|
16
|
+
|
|
17
|
+
kj::ArrayPtr<capnp::word> allocateSegment(capnp::uint minimumSize) override;
|
|
18
|
+
|
|
19
|
+
private:
|
|
20
|
+
PyObject* allocateSegmentCallable;
|
|
21
|
+
|
|
22
|
+
uint firstSize;
|
|
23
|
+
uint curSize = 0;
|
|
24
|
+
|
|
25
|
+
std::vector<PyObject*> allocatedBuffers;
|
|
26
|
+
};
|
|
27
|
+
|
|
28
|
+
}
|