Last updated:
0 purchases
betwixt 1.0.0
Easily make named infix binary operators in Python.
Demo time:
# the only useful function in the module
>>> from betwixt import infix_operator
# any function of 2 arguments would do
>>> from fnmatch import fnmatch
# make the binary function into an operator, delimited by `*`
>>> matches = infix_operator('*', fnmatch)
# use it
>>> 'foo.txt' *matches* '*.txt'
True
# other delimiters can be used
>>> matches = infix_operator('|', fnmatch)
>>> 'foo.txt' |matches| '*.txt'
True
A decorator form can also be used:
>>> @infix_operator('|')
... def contains(left, right):
... return right in left
>>> [1, 2, 3] |contains| 1
True
>>> [1, 2, 3] |contains| 0
False
Finally, betwixt is provided as a shorter (and, perhaps, more
expressive) alias to infix_operator:
>>> from betwixt import betwixt
>>> @betwixt('*')
... def joining(left, right):
... return left.join(right)
>>> '_' *joining* ['a', 'b', 'c']
'a_b_c'
>>> split_at = betwixt('//', lambda lhs, rhs: lhs.split(rhs))
>>> 'a_b_c' //split_at// '_'
['a', 'b', 'c']
All these example operators and a few more are available in module
betwixt.examples.
The idea was taken from
http://code.activestate.com/recipes/384122-infix-operators/ and by a
similar C++ hack whose code on the web I cannot find any more, but no
actual code has been stolen.
Installation
pip install betwixt
Documentation
https://betwixt.readthedocs.io/
Development
To run the all tests run:
tox
Note, to combine the coverage data from all the tox environments run:
Windows
set PYTEST_ADDOPTS=--cov-append
tox
Other
PYTEST_ADDOPTS=--cov-append tox
Copyright and license
Copyright (c) 2016-2020 Riccardo Murri <[email protected]>
This is free software, available under the terms and conditions
of the GNU LGPL – see file LICENSE for details.
Changelog
1.0.0 (2019-01-31)
First release on PyPI.
For personal and professional use. You cannot resell or redistribute these repositories in their original state.
There are no reviews.