dir() is useful for interactively exploring the attributes and methods of objects at the command line. But sometimes dir() returns a lot of information:
>>> len(dir(decimal.Decimal)) # too much information!
It can be helpful to filter the list of names returned. This enhanced version of dir does exactly that, using simple string globbing:
>>> dir(decimal.Decimal, '*log*') #...
This function allows you to calculate the Method Resolution Order (MRO, or sometimes linearization) of a class or base classes. This is the so-called "C3" algorithm, as used by Python (new-style classes, from version 2.3 and higher). The...
In Python 3, the map builtin silently drops any excess items in its input:
>>> a = [1, 2, 3]
>>> b = [2, 3, 4]
>>> c = [3, 4, 5, 6, 7]
>>> list(map(lambda x,y,z: x*y+z, a, b, c))
Generic "approximately equal" function for any object type, with customisable error tolerance.
When called with float arguments, approx_equal(x, y[, tol[, rel]) compares x and y numerically, and returns True if y is within...
This is a validation function for Australian Company Numbers (ACNs). It tests whether the integer or string is a valid ACN (but not whether it is a legal ACN, i.e. if it belongs to the company that is quoting it).
The Python standard library comes with an extensive set of regression tests. I had need to import and run some of these tests from my own code, but the test directory is not in Python's path. This simple helper function solves the problem.
The list and tuple index() method and in operator test for element containment, unlike similar tests for strings, which checks for sub-strings:
>>> "12" in "0123"
>>> [1, 2] in [0, 1,...
The integer square root function, or isqrt, is equivalent to floor(sqrt(x)) for non-negative x. For small x, the most convenient way to calculate isqrt is by calling int(x**0.5) or int(math.sqrt(x)), but if x is a large enough integer, the sqrt...
See the recipe here for a description of the problem.
This variant allows the user to choose between two APIs, either by supplying the count, start value and end value:
>>> list(spread(5, 1.0, end=2.0))
This descriptor can be used to decorate methods, similar to the built-ins classmethod and staticmethod. It enables the caller to call methods on either the class or an instance, and the first argument passed to the method will be the class or the...