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
Returns: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.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)
Raises:

ValueError – If your protocol object has an unknown encryption method

Returns:

A socket-like object

class py2p.utils.awaiting_value(value='')[source]

Proxy object for an asynchronously retrieved item

__init__(value='')[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
Returns:The most common element in the iterable

Warning

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