betwixt 1.0.0

Last updated:

0 purchases

betwixt 1.0.0 Image
betwixt 1.0.0 Images
Add to Cart

Description:

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.

License:

For personal and professional use. You cannot resell or redistribute these repositories in their original state.

Customer Reviews

There are no reviews.