pyjob.misc module

pyjob.misc.decode(byte_s)[source]

Decode a string by guessing the encoding

Parameters:byte_s (bytes) – The bytes to decode
Returns:byte_s decoded
Return type:str
Raises:PyJobError – Unable to infer string encoding
pyjob.misc.deprecate(version, msg=None)[source]

Decorator to deprecate Python classes and functions

Parameters:
  • version (str) – A string containing the version with which the callable is removed
  • msg (str, optional) – An additional message that will be displayed alongside the default message

Examples

Enable DeprecationWarning messages to be displayed.

>>> import warnings
>>> warnings.simplefilter('default')

Decorate a simple Python function without additional message

>>> @deprecate('0.0.0')
... def sum(a, b):
...     return a + b
>>> sum(1, 2)
deprecated.py:34: DeprecationWarning: sum has been deprecated and will be removed in version 0.0.0!
  warnings.warn(message, DeprecationWarning)
3

Decorate a simple Python function with additional message

>>> @deprecate('0.0.1', msg='Use XXX instead!')
... def sum(a, b):
...     return a + b
>>> sum(2, 2)
deprecated.py:34: DeprecationWarning: sum has been deprecated and will be removed in version 0.0.0!
  warnings.warn(message, DeprecationWarning)
4

Decorate an entire Python class

>>> @deprecate('0.0.2')
... class Obj(object):
...     pass
>>> Obj()
deprecated.py:34: DeprecationWarning: Obj has been deprecated and will be removed in version 0.0.2!
  warnings.warn(message, DeprecationWarning)
<__main__.Obj object at 0x7f8ee0f1ead0>

Decorate a Python class method

>>> class Obj(object):
...     def __init__(self, v):
...         self.v = v
...     @deprecate('0.0.3')
...     def mul(self, other):
...         return self.v * other.v
>>> Obj(2).mul(Obj(3))
deprecated.py:34: DeprecationWarning: mul has been deprecated and will be removed in version 0.0.3!
  warnings.warn(message, DeprecationWarning)
6

Decorate a Python class staticmethod

>>> class Obj(object):
...     @staticmethod
...     @deprecate('0.0.4')
...     def sub(a, b):
...         return a - b
...
>>> Obj.sub(2, 1)
deprecated.py:34: DeprecationWarning: sub has been deprecated and will be removed in version 0.0.4!
  warnings.warn(message, DeprecationWarning)
1

Decorate a Python class classmethod

>>> class Obj(object):
...     CONST = 5
...     @classmethod
...     @deprecate('0.0.5')
...     def sub(cls, a):
...         return a - cls.CONST
...
>>> Obj().sub(5)
deprecated.py:34: DeprecationWarning: sub has been deprecated and will be removed in version 0.0.5!
  warnings.warn(message, DeprecationWarning)
0
pyjob.misc.typecast(value)[source]

Recursively typecast an input

Parameters:value (int, float, str, tuple, list) –