Pure python implementation of the BiDi layout algorithm
Project description
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 original 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 encoding. 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).
base_dir: ‘L’ or ‘R’, override the calculated base_level.
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 Output to stderr steps taken with the algorithm -b BASE_DIR, --base-dir=BASE_DIR Override base direction [L|R]
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 setup.py test
Some explicit tests are failing right now (see TODO)
0.4.2
Type Fixes, thanks jwilk
History
0.4.1
Merged Fix for mixed RTL and numbers, Thanks Just van Rossum
0.4.0
Move to cookiecutter template
Python 3 support (py2.6, 2.7, 3.3, 3.4 and pypy)
Better docs
Travis integration
Tox tests
PEP8 cleanup
0.3.4
Remove extra newline in console script output
0.3.3
Implement overriding base paragraph direction
Allow overriding base direction in pybidi console script
Fix returning display in same encoding
0.3.2
Test for surrogate pairs
Fix indentation in documentations
Specify license in setup.py
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
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.
Source Distribution
Built Distribution
Hashes for python_bidi-0.4.2-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 50eef6f6a0bbdd685f9e8c207f3c9050f5b578d0a46e37c76a9c4baea2cc2e13 |
|
MD5 | d0deb6f98cc5aee35e996ccbe20b25d7 |
|
BLAKE2b-256 | 33b0f942d146a2f457233baaafd6bdf624eba8e0f665045b4abd69d1b62d097d |