Skip to content

CRITICAL: Fix package structure - code not in processbehavior/ directory #21

Description

@cnicholas

Problem

The package is currently BROKEN for pip installation. All production code lives in the root directory, but the Python package is processbehavior/ (which is nearly empty).

Current State (Broken)

project-root/
├── analysis_dataset.py     # ❌ 1,273 lines - NOT in package
├── objects.py             # ❌ 214 lines - NOT in package  
├── processbehavior/
│   ├── __init__.py       # ❌ EMPTY - no exports
│   └── datasets/
│       └── __init__.py

Result: Users cannot import anything!

# This won't work:
from processbehavior import analyze  # ModuleNotFoundError!

Target State (Working)

processbehavior/
├── __init__.py           # ✅ Exports public API
├── analysis.py           # ✅ Analysis class
├── specification.py      # ✅ AnalysisSpecification class
├── dataset.py            # ✅ AnalysisDataSet class
├── constants.py          # ✅ Statistical constants
├── limits.py             # ✅ Limit calculation functions
├── utils.py              # ✅ DataFrame utilities
└── datasets/
    └── __init__.py

Tasks

1. Move and Organize Core Modules

  • Move analysis_dataset.py → processbehavior/
  • Split into focused modules:
    • processbehavior/analysis.py - Analysis class
    • processbehavior/specification.py - AnalysisSpecification class
    • processbehavior/dataset.py - AnalysisDataSet class

2. Split objects.py Into Focused Modules

  • processbehavior/constants.py - Statistical constants (~30 lines)
  • processbehavior/limits.py - Control limit functions (~100 lines)
  • processbehavior/utils.py - DataFrame utilities (~50 lines)

3. Remove Legacy/Unused Code

  • Delete GoogleChart class from objects.py (appears unused)
  • Delete new_analysis_class.py (temporary file from refactoring)
  • Remove or relocate global constants (RSG_VARIABLE_NAME, etc.)

4. Set Up Package Exports

  • Create processbehavior/__init__.py with public API

5. Update All Imports

  • Fix imports in tests
  • Update cross-module imports

6. Verification

  • All 27 tests still pass
  • Can successfully import processbehavior
  • Build and install locally works

Impact

Without this fix: ❌ Package cannot be published to PyPI
With this fix: ✅ Ready for distribution

Priority

🔴 CRITICAL - Blocking deployment

Estimated Effort

~45-60 minutes

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions