193 lines
4.5 KiB
Plaintext

Metadata-Version: 2.1
Name: python-bidi
Version: 0.4.2
Summary: Pure python implementation of the BiDi layout algorithm
Home-page: https://github.com/MeirKriheli/python-bidi
Author: Meir Kriheli
Author-email: mkriheli@gmail.com
License: http://www.gnu.org/licenses/lgpl.html
Keywords: bidi unicode layout
Platform: UNKNOWN
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: Operating System :: OS Independent
Classifier: License :: OSI Approved :: GNU Library or Lesser General Public License (LGPL)
Classifier: Topic :: Text Processing
Classifier: Programming Language :: Python :: 2
Classifier: Programming Language :: Python :: 2.6
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.3
Classifier: Programming Language :: Python :: 3.4
Classifier: Programming Language :: Python :: Implementation :: PyPy
Requires-Dist: six
===============================
Python BiDi
===============================
.. image:: https://badge.fury.io/py/python-bidi.png
:target: http://badge.fury.io/py/python-bidi
.. image:: https://travis-ci.org/MeirKriheli/python-bidi.png?branch=master
:target: https://travis-ci.org/MeirKriheli/python-bidi
`Bi-directional`_ (BiDi) layout implementation in pure python
`Package documentation`_
.. _Bi-directional: http://en.wikipedia.org/wiki/Bi-directional_text
.. _Package documentation: http://python-bidi.readthedocs.org/en/latest/
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'``).
.. _unicodedata: http://docs.python.org/library/unicodedata.html
.. _sys.stderr: http://docs.python.org/library/sys.html?highlight=sys.stderr#sys.stderr
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