socks_router.utils

Attributes

PackingSequence

Classes

SupportsUnbytes

Base class for protocol classes.

Packable

Base class for protocol classes.

Functions

resolve_type(→ resolve_type.type)

to_bin(→ str)

to_oct(→ str)

to_hex(→ str)

is_optional(field)

is_list(→ TypeGuard[list[is_list.T]])

tokenize_pack_format(...)

read_socket(→ read_socket.T)

write_socket(→ None)

free_port(→ tuple[str, int])

Module Contents

class SupportsUnbytes[source]

Bases: Protocol

Base class for protocol classes.

Protocol classes are defined as:

class Proto(Protocol):
    def meth(self) -> int:
        ...

Such classes are primarily used with static type checkers that recognize structural subtyping (static duck-typing).

For example:

class C:
    def meth(self) -> int:
        return 0

def func(x: Proto) -> int:
    return x.meth()

func(C())  # Passes static type check

See PEP 544 for details. Protocol classes decorated with @typing.runtime_checkable act as simple-minded runtime protocols that check only the presence of given attributes, ignoring their type signatures. Protocol classes can be generic, they are defined as:

class GenProto[T](Protocol):
    def meth(self) -> T:
        ...
classmethod __unbytes__(input: bytes) Self[source]
Abstractmethod:

class Packable[source]

Bases: Protocol

Base class for protocol classes.

Protocol classes are defined as:

class Proto(Protocol):
    def meth(self) -> int:
        ...

Such classes are primarily used with static type checkers that recognize structural subtyping (static duck-typing).

For example:

class C:
    def meth(self) -> int:
        return 0

def func(x: Proto) -> int:
    return x.meth()

func(C())  # Passes static type check

See PEP 544 for details. Protocol classes decorated with @typing.runtime_checkable act as simple-minded runtime protocols that check only the presence of given attributes, ignoring their type signatures. Protocol classes can be generic, they are defined as:

class GenProto[T](Protocol):
    def meth(self) -> T:
        ...
classmethod __pack_format__() str[source]
PackingSequence: TypeAlias = str | tuple[str, str]
resolve_type(type: str, module: types.ModuleType | None = None) resolve_type.type[source]
to_bin(value: int) str[source]
to_oct(value: int) str[source]
to_hex(value: int) str[source]
is_optional(field)[source]
is_list(type: type) TypeGuard[list[is_list.T]][source]
tokenize_pack_format(format: str) collections.abc.Iterator[socks_router.models.PackingSequence][source]
read_socket(sock: socket.socket, type: type[read_socket.T], format: str | None = None) read_socket.T[source]
write_socket(sock: socket.socket, instance: write_socket.T, format: str | None = None, type: type[write_socket.T] | None = None) None[source]
free_port(address: str = '') tuple[str, int][source]