<commit_before># Automata

*Copyright 2016-2022 <NAME>*
*Released under the MIT license*

[![tests](https://github.com/caleb531/automata/actions/workflows/tests.yml/badge.svg)](https://github.com/caleb531/automata/actions/workflows/tests.yml)
[![Coverage Status](https://coveralls.io/repos/caleb531/automata/badge.svg?branch=main)](https://coveralls.io/r/caleb531/automata?branch=main)

Automata is a Python 3 library which implements the structures and algorithms
for finite automata, pushdown automata, and Turing machines. The library
requires Python 3.7 or newer.

Huge thanks to [@YtvwlD][YtvwlD], [@dengl11][dengl11],
[@Tagl][Tagl], [@lewiuberg][lewiuberg], and
[@abhinavsinha‑adrino][abhinavsinha-adrino] for their invaluable code
contributions to this project! 🎉

[YtvwlD]: https://github.com/YtvwlD
[dengl11]: https://github.com/dengl11
[Tagl]: https://github.com/Tagl
[lewiuberg]: https://github.com/lewiuberg
[abhinavsinha-adrino]: https://github.com/abhinavsinha-adrino

## Migrating to v6

If you wish to migrate to Automata v6 from an older version, please follow the
[migration guide][migration].

[migration]: https://github.com/caleb531/automata/blob/main/MIGRATION.md

## Installing

You can install the latest version of Automata via pip:

```sh
pip install automata-lib
```

## API

- [class Automaton](#class-automatonmetaclassabcmeta)
  - [Finite Automaton (FA)](#class-faautomaton-metaclassabcmeta)
    - [Deterministic (DFA)](#class-dfafa)
    - [Non-Deterministic (NFA)](#class-nfafa)
    - [Generalized Non-Deterministic (GNFA)](#class-gnfafa)<commit_msg>Make Migration Guide link in README branch-agnostic<commit_after># Automata

*Copyright 2016-2022 <NAME>*
*Released under the MIT license*

[![tests](https://github.com/caleb531/automata/actions/workflows/tests.yml/badge.svg)](https://github.com/caleb531/automata/actions/workflows/tests.yml)
[![Coverage Status](https://coveralls.io/repos/caleb531/automata/badge.svg?branch=main)](https://coveralls.io/r/caleb531/automata?branch=main)

Automata is a Python 3 library which implements the structures and algorithms
for finite automata, pushdown automata, and Turing machines. The library
requires Python 3.7 or newer.

Huge thanks to [@YtvwlD][YtvwlD], [@dengl11][dengl11],
[@Tagl][Tagl], [@lewiuberg][lewiuberg], and
[@abhinavsinha‑adrino][abhinavsinha-adrino] for their invaluable code
contributions to this project! 🎉

[YtvwlD]: https://github.com/YtvwlD
[dengl11]: https://github.com/dengl11
[Tagl]: https://github.com/Tagl
[lewiuberg]: https://github.com/lewiuberg
[abhinavsinha-adrino]: https://github.com/abhinavsinha-adrino

## Migrating to v6

If you wish to migrate to Automata v6 from an older version, please follow the
[migration guide][migration].

[migration]: MIGRATION.md

## Installing

You can install the latest version of Automata via pip:

```sh
pip install automata-lib
```

## API

- [class Automaton](#class-automatonmetaclassabcmeta)
  - [Finite Automaton (FA)](#class-faautomaton-metaclassabcmeta)
    - [Deterministic (DFA)](#class-dfafa)
    - [Non-Deterministic (NFA)](#class-nfafa)
    - [Generalized Non-Deterministic (GNFA)](#class-gnfafa)
{'fraction_non_alphanumeric': 0.14335553441167143, 'fraction_numerical': 0.021883920076117985, 'mean_word_length': 5.626050420168068, 'pattern_counts': {'":': 0, '<': 5, '<?xml version=': 0, '>': 5, 'https://': 19, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '432720', 'n_tokens_mistral': 1219, 'n_tokens_neox': 1113, 'n_words': 241}