Metadata-Version: 2.0
Name: dinsort
Version: 0.1
Summary: Sort terms according to German DIN.
Home-page: https://github.com/ulif/dinsort/
Author: Uli Fouquet
Author-email: uli@gnufix.de
License: GPL 3.0
Keywords: sort terms order DIN 5007 german words
Platform: UNKNOWN
Classifier: Development Status :: 3 - Alpha
Classifier: Environment :: Console
Classifier: Intended Audience :: Developers
Classifier: Natural Language :: German
Classifier: Topic :: Utilities
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Topic :: Text Processing
Classifier: Topic :: Internet :: WWW/HTTP :: Indexing/Search
Classifier: License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)
Classifier: Programming Language :: Python :: 2
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.4
Classifier: Programming Language :: Python :: Implementation :: CPython
Requires-Dist: setuptools
Provides-Extra: docs
Requires-Dist: Sphinx; extra == 'docs'
Provides-Extra: tests
Requires-Dist: pytest (>=2.0.3); extra == 'tests'
Requires-Dist: pytest-cov; extra == 'tests'

dinsort
*******

Sort terms according to German DIN 5007.

|bdg-build|  | `sources <https://github.com/ulif/dinsort>`_ | `issues <https://github.com/ulif/dinsort/issues>`_

.. |bdg-build| image:: https://travis-ci.org/ulif/dinsort.png?branch=master
    :target: https://travis-ci.org/ulif/dinsort
    :alt: Build Status


Little Python library to support sorting of terms according to DIN
(German Standards Institute) standard 5007.

This standard describes how to sort german terms alphabtically. It
provides two variants:

* Variant 1:

   - ``'ä'`` equals ``'a'``
   - ``'ß'`` equals ``'ss'``
   - ...

* Variant 2:

   - ``'ä'`` equals ``'ae'``
   - ``'ß'`` equals ``'ss'``
   - ...

In both variants other diacritics are removed. So ``'é'`` and ``'ç'``
become ``'e'`` and ``'c'`` respecively.


Usage
=====

`dinsort` is a Python_ library.


Normalizing Terms
-----------------

Main function is `dinsort.normalize`. It generates a normalized form
of any string term given::

   >>> from dinsort import normalize
   >>> normalize("Löblich")
   'loblich'

Variants are defined as constants::

   >>> from dinsort import VARIANT1, VARIANT2
   >>> normalize("Müßig", variant=VARIANT1)
   'mussig'

   >>> normalize("Müßig", variant=VARIANT2)
   'muessig'

Terms are normalized to lower-case by default. You can request
case-sensitiveness::

   >>> normalize("Maße", case_sensitive=True)
   'Masse'


Install
=======

User Install
------------

The latest release of `dinsort` can be installed via pip_::

  $ pip install dinsort

The exact way depends on your operating system.


Developer Install
-----------------

Developers clone the sources from github::

  $ git clone https://github.com/ulif/dinsort.git

Create a virtual env (Python versions >= 2.6 supported)::

  $ cd dinsort
  $ virtualenv py27
  $ source py27/bin/activate

and install dependencies::

  (py27) python setup py dev

You can run tests with `py.test`::

  (py27) py.test

or with `tox`::

  (py27) pip install tox
  (py27) tox



.. _pip: https://pip.pypa.io/en/latest/
.. _Python: https://python.org/



Changes
=======

0.1 (2015-10-13)
----------------

- Initial version.


