About Amargan

https://img.shields.io/badge/Author:%20francis%20horsman-Available-brightgreen.svg?style=plastic https://img.shields.io/pypi/v/amargan.svg https://img.shields.io/travis/sys-git/amargan.svg https://coveralls.io/repos/github/sys-git/amargan/badge.svg https://badge.fury.io/py/amargan.svg https://img.shields.io/pypi/l/amargan.svg https://img.shields.io/pypi/wheel/amargan.svg https://img.shields.io/pypi/pyversions/amargan.svg https://img.shields.io/pypi/status/amargan.svg https://readthedocs.org/projects/amargan/badge/?version=latest https://pyup.io/repos/github/sys-git/amargan/shield.svg
1
>>> print('Anagrams for everyone')

Reasons to use amargan

  • A simple but powerful pythonic interface
1
2
3
4
5
6
>>> from amargan import Amargan
...
... with open('words.txt') as iterator:
...     anagrams = Amargan(iterator)
... anagrams['hello']
set(['elloh' 'hello' 'lehol'])
  • A powerful command-line tool
1
2
3
4
5
$ find_anagrams -i words.txt hello
elloh hello lehol

$ amargan -i words.txt hello
elloh hello lehol
  • Extensive configuration options

    • Case (in)sensitivity
    • Exclusion of word from results
    • Output formatting (one per line, multiple-per-line, custom seperator)
    • Output to a file
    • Read from a file
    • Use existing dictionary of words
  • Time complexity: O(1)

  • Space complexity: O(n) where n = number of words in dictionary.

  • Memory efficient, uses iterators extensively.

  • Add and remove word(s) from the dictionary.

  • Extensively tested with excellent code and branch coverage.

  • Extensive error checking with a rich set of checked exceptions.

  • Uses Certifiable if available to catch runtime type and parameter validation errors.

  • JSON serializable and reconstitutable.

  • Fully documented

  • Free software: MIT license

  • Documentation: https://amargan.readthedocs.io