Search This Blog

21 September 2015

30 000 % speed improvement

What’s a bug ?

Compile ?

String formatting


Cutting off the internet

True or False ?

Here are different way to transform values from a config file to a boolean
Which is your favourite ?

devpi install z3c.appconfig

>>> from z3c.appconfig.utils import asBool
>>> asBool("true")
True
>>> asBool(1)
True
>>> asBool(-1)
True
>>> asBool("no")
False
>>> asBool("yes")
True
>>> asBool("Yes")
True
>>> asBool("YES")
True
>>> asBool("NO")
False
>>> asBool("off")
False
>>> asBool("on")
True
>>> asBool('Lorem')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/home/nlaurance/PycharmProjects/dev_venv/local/lib/python2.7/site-packages/z3c/appconfig/utils.py", line 18, in asBool
    raise ValueError("Invalid boolean: %s" % value)
ValueError: Invalid boolean: lorem
>>> asBool(456)
True
>>> asBool(0)
False

devpi install distutils

>>> from distutils.util import strtobool
>>> strtobool('true')
1
>>> strtobool('False')
0
>>> strtobool('off')
0
>>> strtobool('on')
1
>>> strtobool('y')
1
>>> strtobool('n')
0
>>> strtobool('lorem')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib/python2.7/distutils/util.py", line 325, in strtobool
    raise ValueError, "invalid truth value %r" % (val,)
ValueError: invalid truth value 'lorem'
>>> strtobool('1')
1
>>> strtobool(456)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib/python2.7/distutils/util.py", line 319, in strtobool
    val = string.lower(val)
  File "/usr/lib/python2.7/string.py", line 226, in lower
    return s.lower()
AttributeError: 'int' object has no attribute 'lower'

Roll your own

>>> def asbool(value):
...     return str(value).lower() in ('true', 't', 'on', 'yes', 'y', '1', '1.0')
...
>>> asbool('f')
False
>>> asbool('YES')
True
>>> asbool(True)
True
>>> asbool(False)
False
>>> asbool(0)
False
>>> asbool(1)
True
>>> asbool(-1)
False
>>> asbool('On')
True

08 September 2015

Another panda sweet treat





Gesture Typing, the swipe keyboard

Retro Gaming

Sanitize the inputs



Validate your CSV



Global variables are BAD



Profiler

 


By Reference or by value ?
Last but not least, there is no such thing as passing variable by value or by reference.
They are names, take 25 minutes of attention and listen to Ned Batchelder, a name you’ll cross often