This issue tracks the second phase of our C/C++ code migration plan. The goal is to create a compatibility layer that maintains backward compatibility while introducing the new module structure.
Objectives:
- Create compatibility shim in StatTools/init.py
- Establish dual import paths (old and new)
- Set up transition directory structure
- Implement deprecation warnings for old imports
- Ensure seamless migration experience
Implementation Plan:
- Update StatTools/init.py to include compatibility layer:
# Maintain backward compatibility during transition
from fluctuation_analysis_tools import *
# Legacy imports
from fluctuation_analysis_tools.legacy import StatTools as legacy_StatTools
- Create _cpp_extensions directory structure:
- _cpp_extensions/init.py (bindings entry point)
- _cpp_extensions/core.so (compiled extension)
- Update setup.py to build extensions in correct location
- Add migration documentation showing equivalent imports
- Implement deprecation warnings for old import paths
Acceptance Criteria:
- Both old and new import paths work identically
- Deprecation warnings appear for old imports (not errors)
- All functionality accessible through both paths
- Migration guide documented with examples
- Tests verify compatibility layer works correctly
This issue tracks the second phase of our C/C++ code migration plan. The goal is to create a compatibility layer that maintains backward compatibility while introducing the new module structure.
Objectives:
Implementation Plan:
Acceptance Criteria: