New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

dinsort

Package Overview
Dependencies
Maintainers
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

dinsort

Sort terms according to German DIN.

  • 0.2
  • PyPI
  • Socket score

Maintainers
1

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'

Sorting

Normalized terms can easily be used for sorting lists of terms:

sorted(["fas", "fair", "fär"], key=lambda x: normalize(x)) ['fair', 'fär', 'fas']

We provide a shortcut to avoid (sometimes not easy to read) lambda statements with normalize in your code. Use sort_func for that::

from dinsort import sort_func sorted(["fas", "fair", "fär"], key=sort_func()) ['fair', 'fär', 'fas']

The sort_func accepts the keywords of normalize::

sorted(["Muße", "muß"], key=sort_func()) ['muß', 'Muße']

sorted(["Muße", "muß"], key=sort_func(case_sensitive=True)) ['Muße', 'muß']

sorted(["far", "fähre"], key=sort_func()) ['fähre', 'far']

sorted(["far", "färe", "fast"], key=sort_func()) ['far', 'färe', 'fast']

sorted(["far", "färe", "fast"], key=sort_func(variant=VARIANT2)) ['färe', 'far', 'fast']

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.2 (2015-10-14)

  • Add sort_func. It is as shortcut for lambda expressions with normalize.
  • Support pypy officially.

0.1 (2015-10-13)

  • Initial version.

Keywords

FAQs


Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc