python_utils Package¶
converters
Module¶
-
python_utils.converters.
to_float
(input_, default=0, exception=(<type 'exceptions.ValueError'>, <type 'exceptions.TypeError'>), regexp=None)[source]¶ Convert the given input_ to an integer or return default
When trying to convert the exceptions given in the exception parameter are automatically catched and the default will be returned.
The regexp parameter allows for a regular expression to find the digits in a string. When True it will automatically match any digit in the string. When a (regexp) object (has a search method) is given, that will be used. WHen a string is given, re.compile will be run over it first
The last group of the regexp will be used as value
>>> '%.2f' % to_float('abc') '0.00' >>> '%.2f' % to_float('1') '1.00' >>> '%.2f' % to_float('abc123.456', regexp=True) '123.46' >>> '%.2f' % to_float('abc123', regexp=True) '123.00' >>> '%.2f' % to_float('abc0.456', regexp=True) '0.46' >>> '%.2f' % to_float('abc123.456', regexp=re.compile('(\d+\.\d+)')) '123.46' >>> '%.2f' % to_float('123.456abc', regexp=re.compile('(\d+\.\d+)')) '123.46' >>> '%.2f' % to_float('abc123.46abc', regexp=re.compile('(\d+\.\d+)')) '123.46' >>> '%.2f' % to_float('abc123abc456', regexp=re.compile('(\d+(\.\d+|))')) '123.00' >>> '%.2f' % to_float('abc', regexp='(\d+)') '0.00' >>> '%.2f' % to_float('abc123', regexp='(\d+)') '123.00' >>> '%.2f' % to_float('123abc', regexp='(\d+)') '123.00' >>> '%.2f' % to_float('abc123abc', regexp='(\d+)') '123.00' >>> '%.2f' % to_float('abc123abc456', regexp='(\d+)') '123.00' >>> '%.2f' % to_float('1234', default=1) '1234.00' >>> '%.2f' % to_float('abc', default=1) '1.00' >>> '%.2f' % to_float('abc', regexp=123) Traceback (most recent call last): ... TypeError: unknown argument for regexp parameter
-
python_utils.converters.
to_int
(input_, default=0, exception=(<type 'exceptions.ValueError'>, <type 'exceptions.TypeError'>), regexp=None)[source]¶ Convert the given input to an integer or return default
When trying to convert the exceptions given in the exception parameter are automatically catched and the default will be returned.
The regexp parameter allows for a regular expression to find the digits in a string. When True it will automatically match any digit in the string. When a (regexp) object (has a search method) is given, that will be used. WHen a string is given, re.compile will be run over it first
The last group of the regexp will be used as value
>>> to_int('abc') 0 >>> to_int('1') 1 >>> to_int('abc123') 0 >>> to_int('123abc') 0 >>> to_int('abc123', regexp=True) 123 >>> to_int('123abc', regexp=True) 123 >>> to_int('abc123abc', regexp=True) 123 >>> to_int('abc123abc456', regexp=True) 123 >>> to_int('abc123', regexp=re.compile('(\d+)')) 123 >>> to_int('123abc', regexp=re.compile('(\d+)')) 123 >>> to_int('abc123abc', regexp=re.compile('(\d+)')) 123 >>> to_int('abc123abc456', regexp=re.compile('(\d+)')) 123 >>> to_int('abc123', regexp='(\d+)') 123 >>> to_int('123abc', regexp='(\d+)') 123 >>> to_int('abc', regexp='(\d+)') 0 >>> to_int('abc123abc', regexp='(\d+)') 123 >>> to_int('abc123abc456', regexp='(\d+)') 123 >>> to_int('1234', default=1) 1234 >>> to_int('abc', default=1) 1 >>> to_int('abc', regexp=123) Traceback (most recent call last): ... TypeError: unknown argument for regexp parameter: 123
-
python_utils.converters.
to_str
(input_, encoding=u'utf-8', errors=u'replace')[source]¶ Convert objects to string, encodes to the given encoding
Return type: str >>> to_str('a') b'a' >>> to_str(u'a') b'a' >>> to_str(b'a') b'a' >>> class Foo(object): __str__ = lambda s: u'a' >>> to_str(Foo()) 'a' >>> to_str(Foo) "<class 'python_utils.converters.Foo'>"
-
python_utils.converters.
to_unicode
(input_, encoding=u'utf-8', errors=u'replace')[source]¶ Convert objects to unicode, if needed decodes string with the given encoding and errors settings.
Return type: unicode >>> to_unicode(b'a') 'a' >>> to_unicode('a') 'a' >>> to_unicode(u'a') 'a' >>> class Foo(object): __str__ = lambda s: u'a' >>> to_unicode(Foo()) 'a' >>> to_unicode(Foo) "<class 'python_utils.converters.Foo'>"
formatters
Module¶
-
python_utils.formatters.
camel_to_underscore
(name)[source]¶ Convert camel case style naming to underscore style naming
If there are existing underscores they will be collapsed with the to-be-added underscores. Multiple consecutive capital letters will not be split except for the last one.
>>> camel_to_underscore('SpamEggsAndBacon') 'spam_eggs_and_bacon' >>> camel_to_underscore('Spam_and_bacon') 'spam_and_bacon' >>> camel_to_underscore('Spam_And_Bacon') 'spam_and_bacon' >>> camel_to_underscore('__SpamAndBacon__') '__spam_and_bacon__' >>> camel_to_underscore('__SpamANDBacon__') '__spam_and_bacon__'
-
python_utils.formatters.
timesince
(dt, default='just now')[source]¶ Returns string representing ‘time since’ e.g. 3 days ago, 5 hours ago etc.
>>> now = datetime.datetime.now() >>> timesince(now) 'just now' >>> timesince(now - datetime.timedelta(seconds=1)) '1 second ago' >>> timesince(now - datetime.timedelta(seconds=2)) '2 seconds ago' >>> timesince(now - datetime.timedelta(seconds=60)) '1 minute ago' >>> timesince(now - datetime.timedelta(seconds=61)) '1 minute and 1 second ago' >>> timesince(now - datetime.timedelta(seconds=62)) '1 minute and 2 seconds ago' >>> timesince(now - datetime.timedelta(seconds=120)) '2 minutes ago' >>> timesince(now - datetime.timedelta(seconds=121)) '2 minutes and 1 second ago' >>> timesince(now - datetime.timedelta(seconds=122)) '2 minutes and 2 seconds ago' >>> timesince(now - datetime.timedelta(seconds=3599)) '59 minutes and 59 seconds ago' >>> timesince(now - datetime.timedelta(seconds=3600)) '1 hour ago' >>> timesince(now - datetime.timedelta(seconds=3601)) '1 hour and 1 second ago' >>> timesince(now - datetime.timedelta(seconds=3602)) '1 hour and 2 seconds ago' >>> timesince(now - datetime.timedelta(seconds=3660)) '1 hour and 1 minute ago' >>> timesince(now - datetime.timedelta(seconds=3661)) '1 hour and 1 minute ago' >>> timesince(now - datetime.timedelta(seconds=3720)) '1 hour and 2 minutes ago' >>> timesince(now - datetime.timedelta(seconds=3721)) '1 hour and 2 minutes ago' >>> timesince(datetime.timedelta(seconds=3721)) '1 hour and 2 minutes ago'
import_
Module¶
-
exception
python_utils.import_.
DummyException
[source]¶ Bases:
exceptions.Exception
-
python_utils.import_.
import_global
(name, modules=None, exceptions=<class 'python_utils.import_.DummyException'>, locals_=None, globals_=None, level=-1)[source]¶ Import the requested items into the global scope
WARNING! this method _will_ overwrite your global scope If you have a variable named “path” and you call import_global(‘sys’) it will be overwritten with sys.path
- Args:
- name (str): the name of the module to import, e.g. sys modules (str): the modules to import, use None for everything exception (Exception): the exception to catch, e.g. ImportError locals_: the locals() method (in case you need a different scope) globals_: the globals() method (in case you need a different scope) level (int): the level to import from, this can be used for relative imports
logger
Module¶
-
class
python_utils.logger.
Logged
[source]¶ Bases:
object
Class which automatically adds a named logger to your class when interiting
Adds easy access to debug, info, warning, error, exception and log methods
>>> class MyClass(Logged): ... def __init__(self): ... Logged.__init__(self) >>> my_class = MyClass() >>> my_class.debug('debug') >>> my_class.info('info') >>> my_class.warning('warning') >>> my_class.error('error') >>> my_class.exception('exception') >>> my_class.log(0, 'log')
-
classmethod
debug
(msg, *args, **kwargs)¶ Log a message with severity ‘DEBUG’ on the root logger.
-
classmethod
error
(msg, *args, **kwargs)¶ Log a message with severity ‘ERROR’ on the root logger.
-
classmethod
exception
(msg, *args, **kwargs)¶ Log a message with severity ‘ERROR’ on the root logger, with exception information.
-
classmethod
info
(msg, *args, **kwargs)¶ Log a message with severity ‘INFO’ on the root logger.
-
classmethod
log
(lvl, msg, *args, **kwargs)¶ Log ‘msg % args’ with the integer severity ‘level’ on the root logger.
-
classmethod
warning
(msg, *args, **kwargs)¶ Log a message with severity ‘WARNING’ on the root logger.
-
classmethod