mirror of
https://github.com/varun-r-mallya/py-libp2p.git
synced 2026-02-11 23:51:07 +00:00
Feat/587-circuit-relay (#611)
* 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>
This commit is contained in:
55
libp2p/relay/circuit_v2/protocol_buffer.py
Normal file
55
libp2p/relay/circuit_v2/protocol_buffer.py
Normal file
@ -0,0 +1,55 @@
|
||||
"""
|
||||
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
|
||||
Reference in New Issue
Block a user