# Utils Module¶

py2p.utils.log_entry(name, level)[source]
py2p.utils.inherit_doc(function)[source]

A decorator which allows you to inherit docstrings from a specified function.

py2p.utils.sanitize_packet(packet)[source]

Function to sanitize a packet for InternalMessage serialization, or dict keying

py2p.utils.intersect(*args)[source]

Finds the intersection of several iterables

Parameters: *args – Several iterables A tuple containing the ordered intersection of all given iterables, where the order is defined by the first iterable

Note

All items in your iterable must be hashable. In other words, they must fit in a set

py2p.utils.get_lan_ip()[source]

Retrieves the LAN ip. Expanded from http://stackoverflow.com/a/28950776

Note: This will return ‘127.0.0.1’ if it is not connected to a network

py2p.utils.pack_value(l, i)[source]

For value i, pack it into bytes of size length

Parameters: length – A positive, integral value describing how long to make the packed array i – A positive, integral value to pack into said array A bytes object containing the given value ValueError – If length is not large enough to contain the value provided
py2p.utils.unpack_value(string)[source]

For a string, return the packed value inside of it

Parameters: string – A string or bytes-like object An integral value interpreted from this, as if it were a big-endian, unsigned integral
py2p.utils.getUTC()[source]

Returns the current unix time in UTC

Note: This will always return an integral value

py2p.utils.get_socket(protocol, serverside=False)[source]

Given a protocol object, return the appropriate socket

Parameters: protocol – A py2p.base.protocol object serverside – Whether you are the server end of a connection (default: False) ValueError – If your protocol object has an unknown encryption method A socket-like object
class py2p.utils.awaiting_value(value=None)[source]

Proxy object for an asynchronously retrieved item

__init__(value=None)[source]
callback_method(method, key)[source]
py2p.utils.most_common(tmp)[source]

Returns the most common element in a list

Parameters: tmp – A non-string iterable The most common element in the iterable

Warning

If there are multiple elements which share the same count, it will return a random one.