mirror of
https://github.com/varun-r-mallya/py-libp2p.git
synced 2025-12-31 20:36:24 +00:00
* feat: implemented setup of circuit relay and test cases * chore: remove test files to be rewritten * added 1 test suite for protocol * added 1 test suite for discovery * fixed protocol timeouts and message types to handle reservations and stream operations. * Resolved merge conflict in libp2p/tools/utils.py by combining timeout approach with retry mechanism * fix: linting issues * docs: updated documentation with circuit-relay * chore: added enums, improved typing, security and examples * fix: created proper __init__ file to ensure importability * fix: replace transport_opt with listen_addrs in examples, fixed typing and improved code * fix type checking issues across relay module and test suite * regenerated circuit_pb2 file protobuf version 3 * fixed circuit relay example and moved imports to top in test_security_multistream * chore: moved imports to the top * chore: fixed linting of test_circuit_v2_transport.py --------- Co-authored-by: Manu Sheel Gupta <manusheel.edu@gmail.com>
56 lines
1.2 KiB
Python
56 lines
1.2 KiB
Python
"""
|
|
Protocol buffer wrapper classes for Circuit Relay v2.
|
|
|
|
This module provides wrapper classes for protocol buffer generated objects
|
|
to make them easier to work with in type-checked code.
|
|
"""
|
|
|
|
from enum import (
|
|
IntEnum,
|
|
)
|
|
from typing import (
|
|
Any,
|
|
)
|
|
|
|
from .pb.circuit_pb2 import Status as PbStatus
|
|
|
|
|
|
# Define Status codes as an Enum for better type safety and organization
|
|
class StatusCode(IntEnum):
|
|
OK = 0
|
|
RESERVATION_REFUSED = 100
|
|
RESOURCE_LIMIT_EXCEEDED = 101
|
|
PERMISSION_DENIED = 102
|
|
CONNECTION_FAILED = 200
|
|
DIAL_REFUSED = 201
|
|
STOP_FAILED = 300
|
|
MALFORMED_MESSAGE = 400
|
|
INTERNAL_ERROR = 500
|
|
|
|
|
|
def create_status(code: int = StatusCode.OK, message: str = "") -> Any:
|
|
"""
|
|
Create a protocol buffer Status object.
|
|
|
|
Parameters
|
|
----------
|
|
code : int
|
|
The status code
|
|
message : str
|
|
The status message
|
|
|
|
Returns
|
|
-------
|
|
Any
|
|
The protocol buffer Status object
|
|
|
|
"""
|
|
# Create status object
|
|
pb_obj = PbStatus()
|
|
|
|
# Convert the integer status code to the protobuf enum value type
|
|
pb_obj.code = PbStatus.Code.ValueType(code)
|
|
pb_obj.message = message
|
|
|
|
return pb_obj
|