# Path: lantern/modules/simplesubstitution.py
# def crack(ciphertext, *fitness_functions, ntrials=30, nswaps=3000):
#     def next_node_inner_climb(node):
#     def next_node_outer_climb(node):
# def decrypt(key: str, ciphertext: str):
# def encrypt(key: str, plaintext: str):


from lantern.modules import simplesubstitution
from typing import Iterable

def decrypt(ciphertext: str) -> Iterable:
    """Decrypt Atbash enciphered ``ciphertext``.

    Examples:
        >>> ''.join(decrypt("SVOOL"))
        HELLO

    Args:
        ciphertext (str): English string to decrypt

    Returns:
        Decrypted text
    """
    return simplesubstitution.decrypt(KEY, ciphertext)


def encrypt(plaintext: str) -> Iterable:
    """Encrypt ``plaintext`` using the Atbash cipher.

    Examples:
        >>> ''.join(encrypt("HELLO"))
        SVOOL

    Args:
        plaintext (str): English string to encrypt

    Returns:
        Encrypted text
    """

# Path: lantern/modules/simplesubstitution.py
# def crack(ciphertext, *fitness_functions, ntrials=30, nswaps=3000):
#     def next_node_inner_climb(node):
#     def next_node_outer_climb(node):
# def decrypt(key: str, ciphertext: str):
# def encrypt(key: str, plaintext: str):


# Path: lantern/modules/atbash.py
from lantern.modules import simplesubstitution
from typing import Iterable


def decrypt(ciphertext: str) -> Iterable:
    """Decrypt Atbash enciphered ``ciphertext``.

    Examples:
        >>> ''.join(decrypt("SVOOL"))
        HELLO

    Args:
        ciphertext (str): English string to decrypt

    Returns:
        Decrypted text
    """
    return simplesubstitution.decrypt(KEY, ciphertext)


def encrypt(plaintext: str) -> Iterable:
    """Encrypt ``plaintext`` using the Atbash cipher.

    Examples:
        >>> ''.join(encrypt("HELLO"))
        SVOOL

    Args:
        plaintext (str): English string to encrypt

    Returns:
        Encrypted text
    """

    return simplesubstitution.encrypt(KEY, plaintext)