# Path: alfpy/utils/distance.py
# class Distance(object):
#     def __getitem__(self, seqnum):
#     def get_disttypes(cls):
#     def set_disttype(self, disttype):
#     def __init__(self, vector, disttype):
#     def pwdist_euclid_squared(self, seq1idx, seq2idx):
#     def pwdist_euclid_norm(self, seq1idx, seq2idx):
#     def pwdist_google(self, seq1idx, seq2idx):


from .utils import distance
    from .utils.seqrecords import SeqRecords
    from .utils import distmatrix
"""Distance methods measuring dissimilarity between sets of words.

These methods are also implemented in numpy and provided in the
`word_bool_distance` module. However, here are their faster
implemetations based on python sets.
"""



def _getwords(seq, word_size):
    """Return a set of words (of a given size) that are present
    in a given sequence.

    Args:
        seq (str)
        word_size (int): >= 1

    Example:
        >>> seq = 'ATGCGTA'
        >>> print(_getwords(seq, 2))
        set(['GT', 'CG', 'GC', 'AT', 'TG', 'TA'])

    """
    s = set([])
    for i in range(0, len(seq) - word_size + 1):
        word = seq[i:i + word_size]
        s.add(word)
    return s



# Path: alfpy/utils/distance.py
# class Distance(object):
#     def __getitem__(self, seqnum):
#     def get_disttypes(cls):
#     def set_disttype(self, disttype):
#     def __init__(self, vector, disttype):
#     def pwdist_euclid_squared(self, seq1idx, seq2idx):
#     def pwdist_euclid_norm(self, seq1idx, seq2idx):
#     def pwdist_google(self, seq1idx, seq2idx):


# Path: alfpy/word_sets_distance.py
from .utils import distance
    from .utils.seqrecords import SeqRecords
    from .utils import distmatrix

"""Distance methods measuring dissimilarity between sets of words.

These methods are also implemented in numpy and provided in the
`word_bool_distance` module. However, here are their faster
implemetations based on python sets.
"""



def _getwords(seq, word_size):
    """Return a set of words (of a given size) that are present
    in a given sequence.

    Args:
        seq (str)
        word_size (int): >= 1

    Example:
        >>> seq = 'ATGCGTA'
        >>> print(_getwords(seq, 2))
        set(['GT', 'CG', 'GC', 'AT', 'TG', 'TA'])

    """
    s = set([])
    for i in range(0, len(seq) - word_size + 1):
        word = seq[i:i + word_size]
        s.add(word)
    return s



class Distance(distance.Distance):