BiDi layout implementation in pure python
Project description
python-bidi
Bi-directional (BiDi) layout implementation in pure python
API
The algorithm starts with a single entry point bidi.algorithm.get_display.
Required arguments:
unicode_or_str: The orginal unicode or string (i.e: storage). If it’s a string use the optional argument encoding to specify it’s encoding.
Optional arguments:
encoding: If unicode_or_str is a string, specifies the encdoing. The algorithm uses unicodedata which requires unicode. This encoding will be used to decode and encode back to string before returning (default: “utf-8”).
upper_is_rtl: True to treat upper case chars as strong ‘R’ for debugging (default: False).
debug: True to display (using sys.stderr) the steps taken with the algorithm (default: False).
Returns the display layout, either as unicode or encoding encoded string (depending on the type of unicode_or_str').
Example:
>>> from bidi.algorithm import get_display >>> get_display(u'car is THE CAR in arabic', upper_is_rtl=True) u'car is RAC EHT in arabic'
CLI
pybidi is a command line utility (calling bidi.main) for running the bidi algorithm. the script can get a string as a parameter or read text from stdin. Usage:
$ pybidi -h Usage: pybidi [options] Options: -h, --help show this help message and exit -e ENCODING, --encoding=ENCODING Text encoding (default: utf-8) -u, --upper-is-rtl treat upper case chars as strong 'R' for debugging (default: False). -d, --debug Display the steps taken with the algorithm
Examples:
$ pybidi -u 'car is THE CAR in arabic' car is RAC EHT in arabic $ cat ~/Documents/example.txt | pybidi ...
Installation
See docs/INSTALL.rst
Running tests
To run the tests:
python -m bidi.tests
Some explicit tests are failing right now (see TODO)
Changelog
0.3.1
Added missing description
docs/INSTALL.rst
0.3
Apply bidi mirroring
Move to back function based implementation
0.2
Move the algorithm to a class based implementation
0.1
Initial release
TODO
Some explicit tests are failing
Arabic shaping
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.