Skip to content

Latest commit

 

History

History
124 lines (94 loc) · 3.52 KB

File metadata and controls

124 lines (94 loc) · 3.52 KB

PyBDR Final Package Structure

📁 Essential Files for Package Installation

PyBDR/
├── pybdr/                  # Main package source code
│   ├── __init__.py
│   ├── algorithm/
│   ├── dynamic_system/
│   ├── geometry/
│   ├── model/
│   ├── util/
│   └── misc/
│
├── test/                   # Test files
├── benchmarks/             # Benchmark scripts
├── doc/                    # Documentation and images
│
├── environment.yml         # Conda environment specification (MAIN INSTALL FILE)
├── pyproject.toml          # Modern Python package configuration
├── setup.py                # Package setup script (for pip install -e .)
├── MANIFEST.in             # Specifies files to include in distribution
│
├── README.md               # Project overview with quick install guide
├── INSTALL.md              # Detailed installation instructions
├── LICENSE.md              # License information
│
└── .gitignore              # Git ignore rules

🎯 Installation (Simple 3-Step Process)

conda env create -f environment.yml
conda activate pybdr
pip install -e .

📋 What Each File Does

Core Package Files

  • environment.yml - Conda environment definition

    • Installs Python 3.8+
    • Installs cddlib (system dependency)
    • Installs all Python dependencies
    • This is the main file users interact with
  • pyproject.toml - Modern Python packaging metadata

    • Package name, version, description
    • Dependencies list
    • Build system configuration
    • Tool configurations (pytest, black, mypy)
  • setup.py - Traditional setup script

    • Works with pip install -e .
    • Reads metadata from pyproject.toml
    • Defines install_requires directly
  • MANIFEST.in - Distribution manifest

    • Specifies which files to include in package distribution
    • Includes docs, environment.yml, README, etc.

Documentation Files

  • README.md - Project overview

    • Quick installation guide
    • Links to detailed documentation
    • Project description and motivation
  • INSTALL.md - Detailed installation guide

    • Step-by-step conda installation
    • Troubleshooting section
    • Verification instructions

Configuration Files

  • .gitignore - Git exclusions
    • Build artifacts
    • Python bytecode
    • Virtual environments
    • IDE files

🗑️ Files Removed (Were Redundant)

  • requirements.txt - Replaced by environment.yml
  • requirements-conda.txt - Replaced by environment.yml
  • INSTALL_QUICKSTART.md - Merged into INSTALL.md
  • PACKAGING_SUMMARY.md - Development notes, not needed

✅ Result: Clean and Focused

  • Single source of truth: environment.yml for all dependencies
  • One clear installation path: Conda-based workflow
  • No confusion: No multiple requirement files
  • Modern standards: Uses pyproject.toml
  • Simple docs: One installation guide (INSTALL.md)

🚀 Benefits

  1. Less confusion - One way to install, clearly documented
  2. Handles system deps - cddlib installed automatically
  3. No build errors - Conda manages C library dependencies
  4. Easy to maintain - Dependencies in one place
  5. User-friendly - Simple 3-step installation

📦 Package Distribution

When ready to distribute:

# Build package
python -m build

# Distribute via PyPI (if desired)
python -m twine upload dist/*

Users can then install with conda from the repository or via PyPI with conda-installed cddlib.