diff --git a/MANIFEST.in b/MANIFEST.in new file mode 100644 index 0000000..cc2fdc5 --- /dev/null +++ b/MANIFEST.in @@ -0,0 +1,19 @@ +graft docs +graft src +graft ci +graft tests + +include .bumpversion.cfg +include .coveragerc +include .cookiecutterrc +include .editorconfig + +include AUTHORS.rst +include CHANGELOG.rst +include CONTRIBUTING.rst +include LICENSE +include README.rst + +include tox.ini .travis.yml .appveyor.yml .readthedocs.yml .pre-commit-config.yaml + +global-exclude *.py[cod] __pycache__/* *.so *.dylib diff --git a/README.md b/README.md index 70f72c8..24f2fe4 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # EasyGA - A general solution to Genetic Algorithms -The projects has just started +The project has just started ## Installation @@ -12,34 +12,48 @@ pip3 install EasyGA To use the package: ```python -import EasyGA as ga +import EasyGA ``` ## Usage - ```python -import EasyGA as ga +import random +import EasyGA -chromosome = ga.chromosome() +# The user defined gene function +def user_gene_function(): + return random.randint(1, 100) -# Fill the chromosome with genes with Gene Number i'th number -for i in range(10): - gene_value = f"Gene Number {i}" - new_gene = ga.gene("gene_value") - chromosome.add_gene(new_gene) +# Standard user size requirements: +Population_size = 10 +Chromosome_length = 10 -# Chromosome has 10 genes in it -print(len(chromosome.genes)) +# Create the Genetic algorithm +ga = EasyGA.GA(Population_size, Chromosome_length,user_gene_function) +ga.initialize() -# Get the first genes value -print(chromosome.genes[0].get_value()) +# Looking at the first chromosome in the population: +ga.population.chromosomes[0].print_chromosome() ``` # Developing EasyGA +Download the repository to some folder - If you never used git. Look up a youtube tutorial. It will all make sense. +``` +git clone https://github.com/danielwilczak101/EasyGA.git +``` +Then install the repositroy using this command: +``` +pip install -e . +``` +# Working on developing a devel branch To install EASY, along with the tools you need to develop and run tests, run the following in your virtual env: ```bash +<<<<<<< HEAD $ pip install -e .[dev] +======= +$ pip install -e .[devel] +>>>>>>> 306f98d8664024828f5d094268f3da852e904262 ``` diff --git a/setup.py b/setup.py index 0bd3e91..157dce4 100644 --- a/setup.py +++ b/setup.py @@ -5,10 +5,11 @@ with open("README.md", "r") as fh: setup( name='EasyGA', - version='0.0.7', + version='0.0.8', description='A ubiquitous or general purpuse GA', py_modules=["EasyGA"], package_dir={'':'src'}, + python_requires='>=3.6', url="https://github.com/danielwilczak101/EasyGA", author="Daniel Wilczak", author_email="danielwilczak101@gmail.com", diff --git a/src/EasyGA.py b/src/EasyGA.py index 88e5914..e8d2d85 100644 --- a/src/EasyGA.py +++ b/src/EasyGA.py @@ -1,6 +1,7 @@ from initialization.random_initialization import random_initialization def check_gene(value): + #Check to make sure the gene is not empty assert value != "" , "Gene can not be empty" return value @@ -36,11 +37,15 @@ class chromosome: def print_chromosome(self): for i in range(len(self.genes)): - print(f"[{self.genes[i].get_value()}],", end = '') + # Print the gene one by one. + if(i == len(self.genes) - 1): + print(f"[{self.genes[i].get_value()}]", end = '') + else: + print(f"[{self.genes[i].get_value()}],", end = '') class population: - # chromosomes = [chromosome,chromosome,etc] + # population = [chromosome,chromosome,etc] def __init__(self): self.chromosomes = [] diff --git a/src/example.py b/src/example.py index 1f1ab53..f0ce9d9 100644 --- a/src/example.py +++ b/src/example.py @@ -1,15 +1,17 @@ import random import EasyGA +# The user defined gene function def user_gene_function(): return random.randint(1, 100) +# Standard user size requirements Population_size = 10 Chromosome_length = 10 +# Create the Genetic algorithm ga = EasyGA.GA(Population_size, Chromosome_length,user_gene_function) - -# Setup the GA's population,chromosomes and genes ga.initialize() -print(ga.population.chromosomes[0].print_chromosome()) +# Looking at the first chromosome in the population +ga.population.chromosomes[0].print_chromosome()