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

A bytes object containing the given value

Raises:

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
Returns:An integral value interpreted from this, as if it were a big-endian, unsigned integral
py2p.utils.to_base_58(i)[source]

Takes an integer and returns its corresponding base_58 string

Parameters:i – The integral value you wish to encode
Returns:A bytes object which contains the base_58 string
Raises:TypeError – If you feed a non-integral value
py2p.utils.from_base_58(string)[source]

Takes a base_58 string and returns its corresponding integer

Parameters:string – The base_58 value you wish to decode (string, bytes, or bytearray)
Returns:Returns integral value which corresponds to the fed string
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.