pycrypt.keygenerators package

Submodules

pycrypt.keygenerators.combinationkeygenerator module

class pycrypt.keygenerators.combinationkeygenerator.CombinationKeyGenerator(alphabet='ABCDEFGHIJKLMNOPQRSTUVWXYZ', rand_func=<function <lambda>>, length_range=(1, 6), **kwargs)[source]

Bases: pycrypt.keygenerators.keygenerator.KeyGenerator

getRandomKey(length=None)[source]

If length is None, random from range is set

getAllKeys()[source]

Generator of all combinations from shortest to longest from length_range

mutateKey(key)[source]

Changes random number of elements, randomly changes length by 1

pycrypt.keygenerators.crossovers module

pycrypt.keygenerators.crossovers.point1(parent1, parent2)[source]

Basic 1 point crossover for lists

pycrypt.keygenerators.crossovers.point2(parent1, parent2)[source]

Basic 2 point crossover for lists

pycrypt.keygenerators.crossovers.permutation(parent1, parent2)[source]

Crossover for permutations, parents should be dicts. Inspired by order crossover 1 from http://www.cs.colostate.edu/~genitor/1995/permutations.pdf

Note that crossing over two same individuals won’t always return the same.

class pycrypt.keygenerators.crossovers.Tournament(crossover_func=<function point2>, tournament_size=20, crossovers=6)[source]

Basic tournament selector for crossovers

crossover(population)[source]

Returns a list of new offsprings from population

pycrypt.keygenerators.keygenerator module

class pycrypt.keygenerators.keygenerator.KeyGenerator(crossover=<pycrypt.keygenerators.crossovers.Tournament instance>, **kwargs)[source]

Bases: object

Abstract class for generating keys for specific Translator

getRandomKey()[source]

Random key i.e. for starting genetic population

getAllKeys()[source]

Get all possible keys, python generator preferably

mutateKey(key)[source]

For genetics - get similar key

crossover(population)[source]

For genetics - get some new offsprings

pycrypt.keygenerators.numberkeygenerator module

class pycrypt.keygenerators.numberkeygenerator.NumberKeyGenerator(max_number=26, rand_func=<function <lambda>>, **kwargs)[source]

Bases: pycrypt.keygenerators.keygenerator.KeyGenerator

getRandomKey()[source]
getAllKeys()[source]
mutateKey(key)[source]

Change randFunc for different transformation number after random.random

pycrypt.keygenerators.permutationkeygenerator module

class pycrypt.keygenerators.permutationkeygenerator.PermutationKeyGenerator(sequence='ABCDEFGHIJKLMNOPQRSTUVWXYZ', rand_func=<function <lambda>>, **kwargs)[source]

Bases: pycrypt.keygenerators.substitutionkeygenerator.SubstitutionKeyGenerator

getRandomKey()[source]
getAllKeys()[source]

Returns all permutations in lexicographic order (according to indexing in the given sequence)

mutateKey(key)[source]

Swaps random number of elements around

lock(indx, value)[source]

Lock an index of the key, so that the other functions return only keys with the set value on the given index

unlock(indx)[source]

pycrypt.keygenerators.substitutionkeygenerator module

class pycrypt.keygenerators.substitutionkeygenerator.SubstitutionKeyGenerator(alphabet='ABCDEFGHIJKLMNOPQRSTUVWXYZ', rand_func=<function <lambda>>, weighted=None, crossover=<pycrypt.keygenerators.crossovers.Tournament instance>, **kwargs)[source]

Bases: pycrypt.keygenerators.keygenerator.KeyGenerator

getRandomKey(_return_list=False)[source]
getAllKeys(_return_list=False)[source]

Generator of all keys in lexicographic order (according to indexing in the given alphabet)

mutateKey(key, _return_list=False, temp=1)[source]

Swaps random number of elements around

lock(element, value=None, key=None)[source]

Lock an element of the key, so that the other functions return only keys with the set value

unlock(element)[source]
clearLock()[source]

pycrypt.keygenerators.test_crossovers module

class pycrypt.keygenerators.test_crossovers.TestCrossovers(methodName='runTest')[source]

Bases: unittest.case.TestCase

test_point1()[source]
test_point2()[source]
test_permutation()[source]

Module contents