@@ -1098,6 +1098,62 @@ class _MessageReader:
10981098 """
10991099 ...
11001100
1101+ class _PackedFdMessageReader (_MessageReader ):
1102+ """Read a Cap'n Proto message from a file descriptor in packed format.
1103+
1104+ This class reads messages that were written with _write_packed_message_to_fd.
1105+ """
1106+
1107+ def __init__ (
1108+ self ,
1109+ fd : int ,
1110+ traversal_limit_in_words : int | None = None ,
1111+ nesting_limit : int | None = None ,
1112+ ) -> None :
1113+ """Create a reader from a file descriptor.
1114+
1115+ Args:
1116+ fd: File descriptor to read from
1117+ traversal_limit_in_words: Optional limit on pointer dereferences
1118+ nesting_limit: Optional limit on nesting depth
1119+ """
1120+ ...
1121+
1122+ class _StreamFdMessageReader (_MessageReader ):
1123+ """Read a Cap'n Proto message from a file descriptor in stream format.
1124+
1125+ This class reads messages that were written with _write_message_to_fd.
1126+ """
1127+
1128+ def __init__ (
1129+ self ,
1130+ fd : int ,
1131+ traversal_limit_in_words : int | None = None ,
1132+ nesting_limit : int | None = None ,
1133+ ) -> None :
1134+ """Create a reader from a file descriptor.
1135+
1136+ Args:
1137+ fd: File descriptor to read from
1138+ traversal_limit_in_words: Optional limit on pointer dereferences
1139+ nesting_limit: Optional limit on nesting depth
1140+ """
1141+ ...
1142+
1143+ class _PyCustomMessageBuilder (_MessageBuilder ):
1144+ """Custom message builder with user-provided segments.
1145+
1146+ This allows building messages with custom memory management.
1147+ """
1148+
1149+ def __init__ (self , segments : list [bytes ]) -> None :
1150+ """Create a message builder from pre-allocated segments.
1151+
1152+ Args:
1153+ segments: List of byte arrays for message segments
1154+ """
1155+ ...
1156+
11011157class GeneratedModule (ModuleType ):
11021158 schema : StructSchema
11031159 __file__ : str | None
@@ -1232,6 +1288,49 @@ def read_multiple_bytes_packed(
12321288 """
12331289 ...
12341290
1291+ def _write_message_to_fd (fd : int , message : _MessageBuilder ) -> None :
1292+ """Write a Cap'n Proto message to a file descriptor.
1293+
1294+ Writes the message in unpacked format with a segment table header.
1295+
1296+ Args:
1297+ fd: File descriptor to write to
1298+ message: Message to write
1299+ """
1300+ ...
1301+
1302+ def _write_packed_message_to_fd (fd : int , message : _MessageBuilder ) -> None :
1303+ """Write a Cap'n Proto message to a file descriptor in packed format.
1304+
1305+ Writes the message using Cap'n Proto's packing algorithm which compresses
1306+ runs of zero bytes.
1307+
1308+ Args:
1309+ fd: File descriptor to write to
1310+ message: Message to write
1311+ """
1312+ ...
1313+
1314+ def fill_context (method_name : str , context : _CallContext , returned_data : Any ) -> None :
1315+ """Internal helper for filling RPC call context with returned data.
1316+
1317+ Args:
1318+ method_name: Name of the RPC method
1319+ context: Call context to fill
1320+ returned_data: Data to return to the caller
1321+ """
1322+ ...
1323+
1324+ def void_task_done_callback (method_name : str , fulfiller : Any , task : Any ) -> None :
1325+ """Internal callback for void RPC methods when async task completes.
1326+
1327+ Args:
1328+ method_name: Name of the RPC method
1329+ fulfiller: Promise fulfiller to complete
1330+ task: Async task that completed
1331+ """
1332+ ...
1333+
12351334class _CapnpLibCapnpModule :
12361335 """The capnp.lib.capnp submodule containing implementation classes.
12371336
@@ -1269,7 +1368,10 @@ class _CapnpLibCapnpModule:
12691368 # Message types
12701369 _MessageBuilder : type [_MessageBuilder ]
12711370 _MallocMessageBuilder : type [_MallocMessageBuilder ]
1371+ _PyCustomMessageBuilder : type [_PyCustomMessageBuilder ]
12721372 _MessageReader : type [_MessageReader ]
1373+ _PackedFdMessageReader : type [_PackedFdMessageReader ]
1374+ _StreamFdMessageReader : type [_StreamFdMessageReader ]
12731375
12741376 # Exception types
12751377 KjException : type [KjException ]
@@ -1283,6 +1385,17 @@ class _CapnpLibCapnpModule:
12831385 TwoPartyServer : type [TwoPartyServer ]
12841386 AsyncIoStream : type [AsyncIoStream ]
12851387
1388+ # Functions
1389+ _write_message_to_fd : Callable [[int , _MessageBuilder ], None ]
1390+ _write_packed_message_to_fd : Callable [[int , _MessageBuilder ], None ]
1391+ read_multiple_bytes_packed : Callable [
1392+ [bytes , int | None , int | None ], Iterator [_DynamicStructReader ]
1393+ ]
1394+
1395+ # Module-level attributes
1396+ _global_schema_parser : SchemaParser | None
1397+ """Global schema parser instance (may be None)."""
1398+
12861399class _CapnpLibModule :
12871400 """The capnp.lib submodule."""
12881401
@@ -1298,6 +1411,42 @@ class _CapnpLib:
12981411
12991412lib : _CapnpLib
13001413
1414+ # Version information
1415+ __version__ : str
1416+ """Version string for pycapnp (e.g. '2.2.1')."""
1417+
1418+ class _VersionModule :
1419+ """The capnp.version module containing version information."""
1420+
1421+ version : str
1422+ """Version string for pycapnp (e.g. '2.2.1')."""
1423+
1424+ short_version : str
1425+ """Short version string for pycapnp."""
1426+
1427+ LIBCAPNP_VERSION : int
1428+ """Version number of the underlying libcapnp library (e.g. 1002000)."""
1429+
1430+ LIBCAPNP_VERSION_MAJOR : int
1431+ """Major version of libcapnp."""
1432+
1433+ LIBCAPNP_VERSION_MINOR : int
1434+ """Minor version of libcapnp."""
1435+
1436+ LIBCAPNP_VERSION_MICRO : int
1437+ """Micro version of libcapnp."""
1438+
1439+ version : _VersionModule
1440+ """Module containing version information."""
1441+
1442+ # Internal/private module attributes
1443+ _global_schema_parser : SchemaParser | None
1444+ """Global schema parser instance used by import hooks and pickling (may be None).
1445+
1446+ Note: This is actually defined in capnp.lib.capnp but referenced at module level
1447+ in some internal code like pickle_helper.py.
1448+ """
1449+
13011450class _SchemaType :
13021451 """Internal schema type representation.
13031452
@@ -1626,20 +1775,29 @@ __all__ = [
16261775 # Message types
16271776 "_MessageBuilder" ,
16281777 "_MallocMessageBuilder" ,
1778+ "_PyCustomMessageBuilder" ,
16291779 "_MessageReader" ,
1780+ "_PackedFdMessageReader" ,
1781+ "_StreamFdMessageReader" ,
16301782 # Exceptions
16311783 "KjException" ,
16321784 # Functions
16331785 "add_import_hook" ,
16341786 "cleanup_global_schema_parser" ,
16351787 "deregister_all_types" ,
1788+ "fill_context" ,
16361789 "kj_loop" ,
16371790 "load" ,
16381791 "read_multiple_bytes_packed" ,
16391792 "register_type" ,
16401793 "remove_import_hook" ,
16411794 "run" ,
1642- # Modules
1795+ "void_task_done_callback" ,
1796+ "_write_message_to_fd" ,
1797+ "_write_packed_message_to_fd" ,
1798+ # Modules and version
16431799 "lib" ,
16441800 "types" ,
1801+ "version" ,
1802+ "__version__" ,
16451803]
0 commit comments