Project Structure
This page provides an overview of the key files and directories within the Ensemble Genetic Algorithm project.
Root Directory
README.md: The main project README, providing a high-level overview, installation instructions, and usage examples.main.py: The primary command-line entry point for running experiments.config.yml.example: An example configuration file that users can copy toconfig.ymlto customize their experiments.CONTRIBUTING.md: Guidelines for contributing to the project.LICENSE: The project’s license (MIT License).pyproject.toml: Defines the project’s build system, metadata, and dependencies. This is the central file for dependency management.setup.sh: A comprehensive shell script to automate the setup of the development environment, including virtual environment creation and dependency installation.setup-hooks.sh: (If present) A script for setting up Git hooks for development workflows.notebooks/: Contains example Jupyter notebooks, such asexample_usage.ipynb.assets/: Stores diagrams and other static assets used in the documentation.
pyproject.toml
This file is crucial for modern Python project management. It defines:
Build System: Specifies
setuptoolsfor building the package.Project Metadata: Includes the project name (
ensemble-genetic-algorithm), version, description, authors, license, and Python requirements (>=3.12).Dependencies: Lists all core libraries required for the project to run (e.g.,
deap,scikit-learn,torch,pandas).Optional Dependencies: Defines groups of additional dependencies for specific purposes:
dev: For development, testing (pytest,pre-commit), and documentation (sphinx).gpu: For GPU-specific libraries (currently empty, but intended for future GPU-specific dependencies).all: Combinesdevandgpudependencies.
Package Structure: Explicitly tells
setuptoolsthat the source code for the main package is located in theml_griddirectory.
setup.sh
This shell script streamlines the environment setup process. It handles:
Python Version Check: Ensures Python 3.12+ is installed.
Virtual Environment Creation: Creates a
ga_envvirtual environment.Dependency Installation: Installs project dependencies using
pip install .orpip install -e .[option]based on command-line arguments (--cpu,--gpu,--dev,--all).Jupyter Kernel Setup: Registers the virtual environment as a Jupyter kernel.
Verification: Performs basic checks to confirm successful installation of key libraries.
ml_grid/
This directory is expected to contain the main Python source code for the ensemble-genetic-algorithm package, as indicated by tool.setuptools.packages = ["ml_grid"] in pyproject.toml.