Sushruth21 commited on
Commit
be60b79
·
1 Parent(s): 92cefac

refactor: proper package structure - move he_demo package to dedicated folder

Browse files

This refactoring fixes the hacky pyproject.toml setup where the root was acting as the package.

Changes:
- Created he_demo/ subfolder with proper Python package structure
- Moved core files: __init__.py, client.py, models.py, task_graders.py, task_registry.py, grader_manifest.py
- Moved server/ to he_demo/server/ with all files (__init__.py, app.py, he_demo_environment.py)
- Updated pyproject.toml:
* Removed hacky package-dir = {he_demo: ., he_demo.server: server}
* Kept clean: packages = [he_demo, he_demo.server]
* Removed py-modules = [graders]
- Updated all root-level scripts to use proper imports:
* validate_comprehensive.py: server.he_demo_environment → he_demo.server.he_demo_environment
* gym_wrapper.py: server.he_demo_environment → he_demo.server.he_demo_environment
* test_environment.py: server.he_demo_environment → he_demo.server.he_demo_environment
* validate.py: server.he_demo_environment → he_demo.server.he_demo_environment

Benefits:
✓ Proper Python package structure (no more hacky root-level package dir)
✓ All imports use he_demo.* paths consistently
✓ Can be properly installed with pip install -e .
✓ Compatible with build tools and package managers
✓ Better IDE support and import resolution

gym_wrapper.py CHANGED
@@ -20,7 +20,7 @@ he_demo.TaskSummary = TaskSummary
20
  sys.modules['he_demo'] = he_demo
21
  sys.modules['he_demo.models'] = he_demo
22
 
23
- from server.he_demo_environment import EnergyOptimizationEnvironment
24
 
25
  class EnergyOptimizationGymEnv(gym.Env):
26
  """Gym wrapper for the Energy Optimization Environment."""
 
20
  sys.modules['he_demo'] = he_demo
21
  sys.modules['he_demo.models'] = he_demo
22
 
23
+ from he_demo.server.he_demo_environment import EnergyOptimizationEnvironment
24
 
25
  class EnergyOptimizationGymEnv(gym.Env):
26
  """Gym wrapper for the Energy Optimization Environment."""
__init__.py → he_demo/__init__.py RENAMED
@@ -6,9 +6,9 @@
6
 
7
  """Energy & Memory RAM Optimization Environment."""
8
 
9
- from .client import EnergyOptimizationEnv
10
- from .models import EnergyOptimizationAction, EnergyOptimizationObservation, Task
11
- from .task_graders import (
12
  TASK_GRADERS,
13
  get_grader,
14
  get_all_graders,
@@ -19,14 +19,14 @@ from .task_graders import (
19
  task_4_advanced_efficiency_grader,
20
  task_5_expert_optimization_grader,
21
  )
22
- from .task_registry import (
23
  TASK_REGISTRY,
24
  get_all_tasks_with_graders,
25
  get_task_grader,
26
  get_tasks_count,
27
  is_grader_requirement_met,
28
  )
29
- from .grader_manifest import (
30
  GRADERS_MANIFEST,
31
  get_graders_manifest,
32
  get_active_graders_count,
 
6
 
7
  """Energy & Memory RAM Optimization Environment."""
8
 
9
+ from he_demo.client import EnergyOptimizationEnv
10
+ from he_demo.models import EnergyOptimizationAction, EnergyOptimizationObservation, Task
11
+ from he_demo.task_graders import (
12
  TASK_GRADERS,
13
  get_grader,
14
  get_all_graders,
 
19
  task_4_advanced_efficiency_grader,
20
  task_5_expert_optimization_grader,
21
  )
22
+ from he_demo.task_registry import (
23
  TASK_REGISTRY,
24
  get_all_tasks_with_graders,
25
  get_task_grader,
26
  get_tasks_count,
27
  is_grader_requirement_met,
28
  )
29
+ from he_demo.grader_manifest import (
30
  GRADERS_MANIFEST,
31
  get_graders_manifest,
32
  get_active_graders_count,
client.py → he_demo/client.py RENAMED
File without changes
grader_manifest.py → he_demo/grader_manifest.py RENAMED
File without changes
models.py → he_demo/models.py RENAMED
File without changes
{server → he_demo/server}/__init__.py RENAMED
File without changes
{server → he_demo/server}/app.py RENAMED
File without changes
{server → he_demo/server}/he_demo_environment.py RENAMED
File without changes
{server → he_demo/server}/requirements.txt RENAMED
File without changes
task_graders.py → he_demo/task_graders.py RENAMED
File without changes
task_registry.py → he_demo/task_registry.py RENAMED
File without changes
pyproject.toml CHANGED
@@ -41,6 +41,4 @@ server = "he_demo.server.app:main"
41
 
42
  [tool.setuptools]
43
  include-package-data = true
44
- packages = ["he_demo", "he_demo.server"]
45
- package-dir = { "he_demo" = ".", "he_demo.server" = "server" }
46
- py-modules = ["graders"]
 
41
 
42
  [tool.setuptools]
43
  include-package-data = true
44
+ packages = ["he_demo", "he_demo.server"]
 
 
test_environment.py CHANGED
@@ -26,7 +26,7 @@ sys.modules['he_demo'] = he_demo
26
  sys.modules['he_demo.models'] = he_demo
27
 
28
  # Now import the environment
29
- from server.he_demo_environment import EnergyOptimizationEnvironment
30
 
31
  def test_environment():
32
  """Test the energy optimization environment."""
 
26
  sys.modules['he_demo.models'] = he_demo
27
 
28
  # Now import the environment
29
+ from he_demo.server.he_demo_environment import EnergyOptimizationEnvironment
30
 
31
  def test_environment():
32
  """Test the energy optimization environment."""
validate.py CHANGED
@@ -31,7 +31,7 @@ sys.modules['he_demo.models'] = he_demo
31
  sys.modules['he_demo.task_graders'] = sys.modules.get('task_graders')
32
 
33
  # Now import the environment
34
- from server.he_demo_environment import EnergyOptimizationEnvironment
35
 
36
  def main():
37
  print("🔋 Energy & Memory RAM Optimization Environment - Final Validation")
 
31
  sys.modules['he_demo.task_graders'] = sys.modules.get('task_graders')
32
 
33
  # Now import the environment
34
+ from he_demo.server.he_demo_environment import EnergyOptimizationEnvironment
35
 
36
  def main():
37
  print("🔋 Energy & Memory RAM Optimization Environment - Final Validation")
validate_comprehensive.py CHANGED
@@ -28,7 +28,7 @@ sys.modules['he_demo'] = he_demo
28
  sys.modules['he_demo.models'] = he_demo
29
 
30
  # Now import the environment
31
- from server.he_demo_environment import EnergyOptimizationEnvironment
32
 
33
  def create_observation(ram_usage, energy_consumption, steps_taken):
34
  """Helper to create observations for testing."""
 
28
  sys.modules['he_demo.models'] = he_demo
29
 
30
  # Now import the environment
31
+ from he_demo.server.he_demo_environment import EnergyOptimizationEnvironment
32
 
33
  def create_observation(ram_usage, energy_consumption, steps_taken):
34
  """Helper to create observations for testing."""