academic-timetable 0.1.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (89) hide show
  1. academic_timetable-0.1.0/.gitignore +192 -0
  2. academic_timetable-0.1.0/LICENSE +21 -0
  3. academic_timetable-0.1.0/PKG-INFO +567 -0
  4. academic_timetable-0.1.0/README.md +493 -0
  5. academic_timetable-0.1.0/pyproject.toml +199 -0
  6. academic_timetable-0.1.0/src/timetable/__init__.py +18 -0
  7. academic_timetable-0.1.0/src/timetable/api/__init__.py +7 -0
  8. academic_timetable-0.1.0/src/timetable/api/routes/__init__.py +5 -0
  9. academic_timetable-0.1.0/src/timetable/cli/__init__.py +77 -0
  10. academic_timetable-0.1.0/src/timetable/cli/build.py +965 -0
  11. academic_timetable-0.1.0/src/timetable/cli/build_stages/__init__.py +24 -0
  12. academic_timetable-0.1.0/src/timetable/cli/build_stages/stage2.py +69 -0
  13. academic_timetable-0.1.0/src/timetable/cli/build_stages/stage3.py +86 -0
  14. academic_timetable-0.1.0/src/timetable/cli/build_stages/stage4.py +64 -0
  15. academic_timetable-0.1.0/src/timetable/cli/build_stages/stage5.py +62 -0
  16. academic_timetable-0.1.0/src/timetable/cli/build_stages/stage6.py +84 -0
  17. academic_timetable-0.1.0/src/timetable/cli/export.py +523 -0
  18. academic_timetable-0.1.0/src/timetable/cli/info.py +365 -0
  19. academic_timetable-0.1.0/src/timetable/cli/init.py +201 -0
  20. academic_timetable-0.1.0/src/timetable/cli/load.py +372 -0
  21. academic_timetable-0.1.0/src/timetable/cli/schema.py +137 -0
  22. academic_timetable-0.1.0/src/timetable/cli/status.py +128 -0
  23. academic_timetable-0.1.0/src/timetable/cli/utils.py +230 -0
  24. academic_timetable-0.1.0/src/timetable/cli/validate.py +342 -0
  25. academic_timetable-0.1.0/src/timetable/config/__init__.py +7 -0
  26. academic_timetable-0.1.0/src/timetable/config/settings.py +179 -0
  27. academic_timetable-0.1.0/src/timetable/core/__init__.py +49 -0
  28. academic_timetable-0.1.0/src/timetable/core/exceptions.py +329 -0
  29. academic_timetable-0.1.0/src/timetable/core/loader.py +775 -0
  30. academic_timetable-0.1.0/src/timetable/core/logging.py +209 -0
  31. academic_timetable-0.1.0/src/timetable/core/schema.py +331 -0
  32. academic_timetable-0.1.0/src/timetable/models/__init__.py +185 -0
  33. academic_timetable-0.1.0/src/timetable/models/stage1.py +452 -0
  34. academic_timetable-0.1.0/src/timetable/models/stage2.py +259 -0
  35. academic_timetable-0.1.0/src/timetable/models/stage3.py +376 -0
  36. academic_timetable-0.1.0/src/timetable/models/stage4.py +200 -0
  37. academic_timetable-0.1.0/src/timetable/models/stage5.py +76 -0
  38. academic_timetable-0.1.0/src/timetable/models/stage6.py +79 -0
  39. academic_timetable-0.1.0/src/timetable/schemas/stage1/config.schema.json +163 -0
  40. academic_timetable-0.1.0/src/timetable/schemas/stage1/faculty.schema.json +61 -0
  41. academic_timetable-0.1.0/src/timetable/schemas/stage1/roomPreferences.schema.json +57 -0
  42. academic_timetable-0.1.0/src/timetable/schemas/stage1/studentGroups.schema.json +151 -0
  43. academic_timetable-0.1.0/src/timetable/schemas/stage1/subject.schema.json +79 -0
  44. academic_timetable-0.1.0/src/timetable/schemas/stage2/faculty.schema.json +222 -0
  45. academic_timetable-0.1.0/src/timetable/schemas/stage2/subjects.schema.json +185 -0
  46. academic_timetable-0.1.0/src/timetable/schemas/stage3/overlapConstraints.schema.json +42 -0
  47. academic_timetable-0.1.0/src/timetable/schemas/stage3/statistics.schema.json +430 -0
  48. academic_timetable-0.1.0/src/timetable/schemas/stage3/teachingAssignments.schema.json +283 -0
  49. academic_timetable-0.1.0/src/timetable/schemas/stage4/schedulingInput.schema.json +626 -0
  50. academic_timetable-0.1.0/src/timetable/schemas/stage5/ai_solved_schedule.schema.json +95 -0
  51. academic_timetable-0.1.0/src/timetable/schemas/stage6/timetable_enriched.schema.json +167 -0
  52. academic_timetable-0.1.0/src/timetable/scripts/stage2/README.md +296 -0
  53. academic_timetable-0.1.0/src/timetable/scripts/stage2/build_all.py +121 -0
  54. academic_timetable-0.1.0/src/timetable/scripts/stage2/build_faculty_full.py +263 -0
  55. academic_timetable-0.1.0/src/timetable/scripts/stage2/build_subjects_full.py +293 -0
  56. academic_timetable-0.1.0/src/timetable/scripts/stage2/calculate_workload.py +359 -0
  57. academic_timetable-0.1.0/src/timetable/scripts/stage2/data_loader.py +186 -0
  58. academic_timetable-0.1.0/src/timetable/scripts/stage2/expand_components.py +223 -0
  59. academic_timetable-0.1.0/src/timetable/scripts/stage2/validate_stage2.py +282 -0
  60. academic_timetable-0.1.0/src/timetable/scripts/stage3/assignment_generator.py +461 -0
  61. academic_timetable-0.1.0/src/timetable/scripts/stage3/build_all.py +103 -0
  62. academic_timetable-0.1.0/src/timetable/scripts/stage3/build_assignments_sem1.py +272 -0
  63. academic_timetable-0.1.0/src/timetable/scripts/stage3/build_assignments_sem3.py +272 -0
  64. academic_timetable-0.1.0/src/timetable/scripts/stage3/constraint_builder.py +255 -0
  65. academic_timetable-0.1.0/src/timetable/scripts/stage3/data_loader_stage2.py +303 -0
  66. academic_timetable-0.1.0/src/timetable/scripts/stage3/generate_overlap_matrix.py +350 -0
  67. academic_timetable-0.1.0/src/timetable/scripts/stage3/generate_reports.py +476 -0
  68. academic_timetable-0.1.0/src/timetable/scripts/stage3/generate_statistics.py +359 -0
  69. academic_timetable-0.1.0/src/timetable/scripts/stage3/room_preference_extractor.py +152 -0
  70. academic_timetable-0.1.0/src/timetable/scripts/stage3/validate_stage3.py +252 -0
  71. academic_timetable-0.1.0/src/timetable/scripts/stage4/build_scheduling_input.py +370 -0
  72. academic_timetable-0.1.0/src/timetable/scripts/stage4/view_scheduling_input.py +309 -0
  73. academic_timetable-0.1.0/src/timetable/scripts/stage5/generate_schedule_template.py +293 -0
  74. academic_timetable-0.1.0/src/timetable/scripts/stage6/analyze_schedule.py +262 -0
  75. academic_timetable-0.1.0/src/timetable/scripts/stage6/enrich_schedule.py +400 -0
  76. academic_timetable-0.1.0/src/timetable/scripts/stage6/generate_faculty_views.py +183 -0
  77. academic_timetable-0.1.0/src/timetable/scripts/stage6/generate_student_views.py +193 -0
  78. academic_timetable-0.1.0/src/timetable/scripts/stage6/validate_assignments.py +163 -0
  79. academic_timetable-0.1.0/src/timetable/stages/__init__.py +13 -0
  80. academic_timetable-0.1.0/src/timetable/stages/stage_1/config.json +136 -0
  81. academic_timetable-0.1.0/src/timetable/stages/stage_1/electiveDifferentiation.json +54 -0
  82. academic_timetable-0.1.0/src/timetable/stages/stage_1/facultyBasic.json +157 -0
  83. academic_timetable-0.1.0/src/timetable/stages/stage_1/roomPreferences.json +233 -0
  84. academic_timetable-0.1.0/src/timetable/stages/stage_1/studentGroups.json +136 -0
  85. academic_timetable-0.1.0/src/timetable/stages/stage_1/subjects1CoreBasic.json +81 -0
  86. academic_timetable-0.1.0/src/timetable/stages/stage_1/subjects1Diff.json +96 -0
  87. academic_timetable-0.1.0/src/timetable/stages/stage_1/subjects3CoreBasic.json +26 -0
  88. academic_timetable-0.1.0/src/timetable/stages/stage_1/subjects3Diff.json +82 -0
  89. academic_timetable-0.1.0/src/timetable/stages/stage_1/subjects3ElectBasic.json +70 -0
@@ -0,0 +1,192 @@
1
+ *docs/
2
+
3
+ # Byte-compiled / optimized / DLL files
4
+ __pycache__/
5
+ *.py[cod]
6
+ *$py.class
7
+
8
+ # C extensions
9
+ *.so
10
+
11
+ # Distribution / packaging
12
+ .Python
13
+ build/
14
+ develop-eggs/
15
+ dist/
16
+ downloads/
17
+ eggs/
18
+ .eggs/
19
+ lib/
20
+ lib64/
21
+ parts/
22
+ sdist/
23
+ var/
24
+ wheels/
25
+ share/python-wheels/
26
+ *.egg-info/
27
+ .installed.cfg
28
+ *.egg
29
+ MANIFEST
30
+
31
+ # PyInstaller
32
+ *.manifest
33
+ *.spec
34
+
35
+ # Installer logs
36
+ pip-log.txt
37
+ pip-delete-this-directory.txt
38
+
39
+ # Unit test / coverage reports
40
+ htmlcov/
41
+ .tox/
42
+ .nox/
43
+ .coverage
44
+ .coverage.*
45
+ .cache
46
+ nosetests.xml
47
+ coverage.xml
48
+ *.cover
49
+ *.py,cover
50
+ .hypothesis/
51
+ .pytest_cache/
52
+ cover/
53
+
54
+ # Translations
55
+ *.mo
56
+ *.pot
57
+
58
+ # Django stuff (if applicable)
59
+ *.log
60
+ local_settings.py
61
+ db.sqlite3
62
+ db.sqlite3-journal
63
+
64
+ # Flask stuff (if applicable)
65
+ instance/
66
+ .webassets-cache
67
+
68
+ # Scrapy stuff
69
+ .scrapy
70
+
71
+ # Sphinx documentation
72
+ docs/_build/
73
+
74
+ # PyBuilder
75
+ .pybuilder/
76
+ target/
77
+
78
+ # Jupyter Notebook
79
+ .ipynb_checkpoints
80
+
81
+ # IPython
82
+ profile_default/
83
+ ipython_config.py
84
+
85
+ # pyenv
86
+ .python-version
87
+
88
+ # pipenv
89
+ Pipfile.lock
90
+
91
+ # poetry
92
+ poetry.lock
93
+
94
+ # pdm
95
+ .pdm.toml
96
+ .pdm-python
97
+ .pdm-build/
98
+
99
+ # PEP 582
100
+ __pypackages__/
101
+
102
+ # Celery stuff
103
+ celerybeat-schedule
104
+ celerybeat.pid
105
+
106
+ # SageMath parsed files
107
+ *.sage.py
108
+
109
+ # Environments
110
+ .venv
111
+ env/
112
+ venv/
113
+ ENV/
114
+ env.bak/
115
+ venv.bak/
116
+
117
+ # Spyder project settings
118
+ .spyderproject
119
+ .spyproject
120
+
121
+ # Rope project settings
122
+ .ropeproject
123
+
124
+ # mkdocs documentation
125
+ /site
126
+
127
+ # mypy
128
+ .mypy_cache/
129
+ .dmypy.json
130
+ dmypy.json
131
+
132
+ # Pyre type checker
133
+ .pyre/
134
+
135
+ # pytype static type analyzer
136
+ .pytype/
137
+
138
+ # Cython debug symbols
139
+ cython_debug/
140
+
141
+ # Ruff
142
+ .ruff_cache/
143
+
144
+ # VS Code
145
+ .vscode/
146
+ *.code-workspace
147
+
148
+ # IDE
149
+ .idea/
150
+ *.iml
151
+ *.ipr
152
+ *.iws
153
+
154
+ # macOS
155
+ .DS_Store
156
+ .AppleDouble
157
+ .LSOverride
158
+
159
+ # Windows
160
+ Thumbs.db
161
+ ehthumbs.db
162
+ Desktop.ini
163
+
164
+ # Linux
165
+ *~
166
+ .fuse_hidden*
167
+ .directory
168
+ .Trash-*
169
+
170
+ # Project-specific
171
+ logs/*.log
172
+ *.log
173
+ .env.local
174
+ .env.production
175
+
176
+ # Docker
177
+ docker/data/
178
+ docker/logs/
179
+
180
+ # Temporary files
181
+ *.tmp
182
+ *.temp
183
+ *.bak
184
+ *.swp
185
+
186
+ # Keep stage data (should be tracked)
187
+ # !stage_*/
188
+ prompts/
189
+ GEMINI.md
190
+
191
+ # But ignore generated reports that may have timestamps
192
+ stage_*/scripts/__pycache__/
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Eagle Campus
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.