From ec52e5f40eae4d6b24a73424989754f4145e089f Mon Sep 17 00:00:00 2001 From: SowinskiBraeden Date: Tue, 11 Feb 2025 15:51:37 -0800 Subject: [PATCH] update input data --- .gitignore | 0 README.md | 0 preview/error-preview.png | Bin preview/generator-preview.png | Bin sample_data/course_selection_data.csv | 46 +++++++++++++------------- scheduleGenerator/generator.py | 10 +++--- tinker.py | 2 +- 7 files changed, 30 insertions(+), 28 deletions(-) mode change 100644 => 100755 .gitignore mode change 100644 => 100755 README.md mode change 100644 => 100755 preview/error-preview.png mode change 100644 => 100755 preview/generator-preview.png mode change 100644 => 100755 sample_data/course_selection_data.csv diff --git a/.gitignore b/.gitignore old mode 100644 new mode 100755 diff --git a/README.md b/README.md old mode 100644 new mode 100755 diff --git a/preview/error-preview.png b/preview/error-preview.png old mode 100644 new mode 100755 diff --git a/preview/generator-preview.png b/preview/generator-preview.png old mode 100644 new mode 100755 diff --git a/sample_data/course_selection_data.csv b/sample_data/course_selection_data.csv old mode 100644 new mode 100755 index 06b8274..5e75855 --- a/sample_data/course_selection_data.csv +++ b/sample_data/course_selection_data.csv @@ -96,8 +96,8 @@ Pupil #,CrsNo,Description,Alternate? 198219,MWEX-2A--S,WORK EXPERIENCE 12A,FALSE 198219,XAT--12A-S,FLEX SENIOR SEMESTER 1,FALSE 198219,XAT--12B-S,FLEX SENIOR SEMESTER 2,FALSE -198219,XSIEP2B--S,"BASES SR STUDY SKILLS, SEMESTERED",FALSE -198219,XSPBK1ATUS--S-LST,LST 11/FALSE +198219,XSIEP2B--S,BASES SR STUDY SKILLS SEMESTERED,FALSE +198219,XSPBK1ATUS--S-LST,LST 11,FALSE 198219,MTPA-11--S,ACTING 11,TRUE 206678,MADDL08--C,INFORMATION TECHNOLOGY 08 (ADST-Digital Literacy),FALSE 206678,MADFS08--C,FOOD STUDIES 08 (ADST),FALSE @@ -542,7 +542,7 @@ Pupil #,CrsNo,Description,Alternate? 612732,MWEX-2A--S,WORK EXPERIENCE 12A,FALSE 612732,XAT--12A-S,FLEX SENIOR SEMESTER 1,FALSE 612732,XAT--12B-S,FLEX SENIOR SEMESTER 2,FALSE -612732,XSPBK1ATUS--S-LST,LST 11/FALSE +612732,XSPBK1ATUS--S-LST,LST 11,FALSE 612732,MSADP12--S,DRAWING AND PAINTING,True 622270,MADDL08--C,INFORMATION TECHNOLOGY 08 (ADST-Digital Literacy),FALSE 622270,MADMA08--C,VISUAL ARTS 08 (ADST),FALSE @@ -753,7 +753,7 @@ Pupil #,CrsNo,Description,Alternate? 772554,MPE--11--S,PHYSICAL EDUCATION 11,FALSE 772554,XAT--12A-S,FLEX SENIOR SEMESTER 1,FALSE 772554,XAT--12B-S,FLEX SENIOR SEMESTER 2,FALSE -772554,XSPBK1ATUS--S-LST,LST 11/FALSE +772554,XSPBK1ATUS--S-LST,LST 11,FALSE 772554,YPSYC1A--S,PSYCHOLOGY 11 (BAA),FALSE 772554,YPSYC2A--S,PSYCHOLOGY 12 (BAA),TRUE 781879,MADDL08--C,INFORMATION TECHNOLOGY 08 (ADST-Digital Literacy),FALSE @@ -1861,8 +1861,8 @@ Pupil #,CrsNo,Description,Alternate? 1551767,XAT--12B-S,FLEX SENIOR SEMESTER 2,FALSE 1551767,XSIEP0A--S,BASES SR LIFESKILLS 1,FALSE 1551767,XSIEP0C--S,BASES SR LIFESKILLS 2,FALSE -1551767,XSIEP0D--Y,"BASES SR MATH 2, LINEAR",FALSE -1551767,XSIEP0E--Y,"BASES SR LIFESKILLS 1, LINEAR",FALSE +1551767,XSIEP0D--Y,BASES SR MATH 2 LINEAR,FALSE +1551767,XSIEP0E--Y,BASES SR LIFESKILLS 1 LINEAR,FALSE 1551767,MTEM-10--S,METALWORK 10 ,TRUE 1551767,YCCT-0B--S,DIGITAL MEDIA TECHNOLOGY,TRUE 1553617,MADDL08--C,INFORMATION TECHNOLOGY 08 (ADST-Digital Literacy),FALSE @@ -3006,7 +3006,7 @@ Pupil #,CrsNo,Description,Alternate? 2376561,XAT--12A-S,FLEX SENIOR SEMESTER 1,FALSE 2376561,XAT--12B-S,FLEX SENIOR SEMESTER 2,FALSE 2376561,MAC--11--S,ACCOUNTING 11,TRUE -2376561,XSPBK1ATUS--S-LST,LST 11/TRUE +2376561,XSPBK1ATUS--S-LST,LST 11,TRUE 2385555,MADFS09--Y,FOODS AND NUTRITION 09 (ADST),FALSE 2385555,MADM-09--Y,METALWORK 09 (ADST),FALSE 2385555,MFR--09--Y,FRENCH 09,FALSE @@ -3115,7 +3115,7 @@ Pupil #,CrsNo,Description,Alternate? 2476051,MSS--11--S-POLSTUD,POLITICAL STUDIES,FALSE 2476051,XAT--12A-S,FLEX SENIOR SEMESTER 1,FALSE 2476051,XAT--12B-S,FLEX SENIOR SEMESTER 2,FALSE -2476051,XSPBK1ATUS--S-LST,LST 11/FALSE +2476051,XSPBK1ATUS--S-LST,LST 11,FALSE 2476051,YVPA-1B--S,THEATRE COMPANY 11 (BAA),FALSE 2476051,MFDN-11--S,FOODS AND NUTRITION 11,TRUE 2476718,MCH--11--S,CHEMISTRY 11,FALSE @@ -3381,7 +3381,7 @@ Pupil #,CrsNo,Description,Alternate? 2645875,MWEX-2A--S,WORK EXPERIENCE 12A,FALSE 2645875,XAT--12A-S,FLEX SENIOR SEMESTER 1,FALSE 2645875,XAT--12B-S,FLEX SENIOR SEMESTER 2,FALSE -2645875,XSPBK1ATUS--S-LST,LST 11/FALSE +2645875,XSPBK1ATUS--S-LST,LST 11,FALSE 2645875,MBI--11--S,LIFE SCIENCES 11,TRUE 2645875,MFM--11--S,CHILD DEVELOPMENT AND CAREGIVING,TRUE 2650753,MCH--11--S,CHEMISTRY 11,FALSE @@ -3596,8 +3596,8 @@ Pupil #,CrsNo,Description,Alternate? 2774765,XSIEP0A--S,BASES SR LIFESKILLS 1,FALSE 2774765,XSIEP0B--S,BASES SR COMMUNITY,FALSE 2774765,XSIEP0C--S,BASES SR LIFESKILLS 2,FALSE -2774765,XSIEP0D--Y,"BASES SR MATH 2, LINEAR",FALSE -2774765,XSIEP0E--Y,"BASES SR LIFESKILLS 1, LINEAR",FALSE +2774765,XSIEP0D--Y,BASES SR MATH 2 LINEAR,FALSE +2774765,XSIEP0E--Y,BASES SR LIFESKILLS 1 LINEAR,FALSE 2774765,XSIEP0F--S,BASES SR EMPLOYMENT SKILLS,FALSE 2774765,XSIEP0G--S,BASES SR HEALTHY LIVING 1,FALSE 2774765,XSIEP0H--S,BASES SR HEALTHY LIVING 2,FALSE @@ -3908,7 +3908,7 @@ Pupil #,CrsNo,Description,Alternate? 2970350,MIPUN11--S,INTRODUCTORY PUNJABI 11,FALSE 2970350,XAT--12A-S,FLEX SENIOR SEMESTER 1,FALSE 2970350,XAT--12B-S,FLEX SENIOR SEMESTER 2,FALSE -2970350,XSPBK1ATUS--S-LST,LST 11/FALSE +2970350,XSPBK1ATUS--S-LST,LST 11,FALSE 2970350,MAC--11--S,ACCOUNTING 11,TRUE 2971229,MADFS09--Y,FOODS AND NUTRITION 09 (ADST),FALSE 2971229,MADMA09--Y,VISUAL ARTS 09 (ADST),FALSE @@ -4345,7 +4345,7 @@ Pupil #,CrsNo,Description,Alternate? 3326851,MPH--11--S,PHYSICS 11,FALSE 3326851,XAT--12A-S,FLEX SENIOR SEMESTER 1,FALSE 3326851,XAT--12B-S,FLEX SENIOR SEMESTER 2,FALSE -3326851,XSPBK1ATUS--S-LST,LST 11/FALSE +3326851,XSPBK1ATUS--S-LST,LST 11,FALSE 3326851,MCJ--12--S,CARPENTRY & JOINERY,True 3336516,MEN--10--S-FLIT,ENGLISH 10 FOCUSED LIT/COMPOSITION,FALSE 3336516,MFMP-10--S,FOUNDATIONS OF MATH AND PRE-CALCULUS 10,FALSE @@ -4836,7 +4836,7 @@ Pupil #,CrsNo,Description,Alternate? 3680143,MPE--10--S,PHYSICAL EDUCATION 10,FALSE 3680143,XAT--12A-S,FLEX SENIOR SEMESTER 1,FALSE 3680143,XAT--12B-S,FLEX SENIOR SEMESTER 2,FALSE -3680143,XSPBK1ATUS--S-LST,LST 11/FALSE +3680143,XSPBK1ATUS--S-LST,LST 11,FALSE 3680143,MBCA-11--S,BUSINESS COMPUTER APPLICATIONS 11,TRUE 3680143,YPSYC1A--S,PSYCHOLOGY 11 (BAA),TRUE 3684371,MADIT09--Y,COMPUTER PROGRAMMING (ADST),FALSE @@ -5667,7 +5667,7 @@ Pupil #,CrsNo,Description,Alternate? 4349400,MHI--12--S-2WLDHIS,20TH CENTURY WORLD HISTORY,FALSE 4349400,XAT--12A-S,FLEX SENIOR SEMESTER 1,FALSE 4349400,XAT--12B-S,FLEX SENIOR SEMESTER 2,FALSE -4349400,XSPBK1ATUS--S-LST,LST 11/FALSE +4349400,XSPBK1ATUS--S-LST,LST 11,FALSE 4349400,YHRA-1C--S,WEIGHT TRAINING 11 (BAA),FALSE 4349400,MMFM-11--S,METAL FABRICATION AND MACHINING 11(FNASK),TRUE 4353111,MEN--10--S-FLIT,ENGLISH 10 FOCUSED LIT/COMPOSITION,FALSE @@ -6465,7 +6465,7 @@ Pupil #,CrsNo,Description,Alternate? 4963292,MSADP11--S,DRAWING AND PAINTING 11,FALSE 4963292,XAT--12A-S,FLEX SENIOR SEMESTER 1,FALSE 4963292,XAT--12B-S,FLEX SENIOR SEMESTER 2,FALSE -4963292,XSPBK1ATUS--S-LST,LST 11/FALSE +4963292,XSPBK1ATUS--S-LST,LST 11,FALSE 4963292,YIA--1A--S,WOODCRAFT 11 (BAA),FALSE 4963292,MDDF-11--S,DRAFTING AND DESIGN (FNASK) 11,TRUE 4963292,MICTC12--S,GAME DEVELOPMENT,TRUE @@ -7872,7 +7872,7 @@ Pupil #,CrsNo,Description,Alternate? 6060628,MVAMT11--S,MEDIA ARTS 11,FALSE 6060628,XAT--12A-S,FLEX SENIOR SEMESTER 1,FALSE 6060628,XAT--12B-S,FLEX SENIOR SEMESTER 2,FALSE -6060628,XSPBK1ATUS--S-LST,LST 11/FALSE +6060628,XSPBK1ATUS--S-LST,LST 11,FALSE 6060628,YVPA-1A--S,MUSICAL THEATRE 11 (BAA),FALSE 6060628,MAF--11--S,ART FOUNDATIONS 11,TRUE 6060628,MFDN-11--S,FOODS AND NUTRITION 11,TRUE @@ -9760,9 +9760,9 @@ Pupil #,CrsNo,Description,Alternate? 7624742,XAT--12B-S,FLEX SENIOR SEMESTER 2,FALSE 7624742,XSIEP0A--S,BASES SR LIFESKILLS 1,FALSE 7624742,XSIEP0C--S,BASES SR LIFESKILLS 2,FALSE -7624742,XSIEP0D--Y,"BASES SR MATH 2, LINEAR",FALSE +7624742,XSIEP0D--Y,BASES SR MATH 2 LINEAR,FALSE 7624742,MVAG-10--S,VISUAL ARTS 10 GENERAL,TRUE -7624742,XSIEP0E--Y,"BASES SR LIFESKILLS 1, LINEAR",TRUE +7624742,XSIEP0E--Y,BASES SR LIFESKILLS 1 LINEAR,TRUE 7635240,MEN--10--S-FLIT,ENGLISH 10 FOCUSED LIT/COMPOSITION,FALSE 7635240,MFMP-10--S,FOUNDATIONS OF MATH AND PRE-CALCULUS 10,FALSE 7635240,MFR--10--S,FRENCH 10,FALSE @@ -10257,7 +10257,7 @@ Pupil #,CrsNo,Description,Alternate? 8007175,MVAMT11--S,MEDIA ARTS 11,FALSE 8007175,XAT--12A-S,FLEX SENIOR SEMESTER 1,FALSE 8007175,XAT--12B-S,FLEX SENIOR SEMESTER 2,FALSE -8007175,XSPBK1ATUS--S-LST,LST 11/FALSE +8007175,XSPBK1ATUS--S-LST,LST 11,FALSE 8007175,MICTM11--S,DIGITAL DESIGNS 11,TRUE 8008833,MADFS09--Y,FOODS AND NUTRITION 09 (ADST),FALSE 8008833,MDNC-09--Y-BEG,DANCE 09: BEGINNER,FALSE @@ -10588,7 +10588,7 @@ Pupil #,CrsNo,Description,Alternate? 8219194,MWEX-2A--S,WORK EXPERIENCE 12A,FALSE 8219194,XAT--12A-S,FLEX SENIOR SEMESTER 1,FALSE 8219194,XAT--12B-S,FLEX SENIOR SEMESTER 2,FALSE -8219194,XSPBK1ATUS--S-LST,LST 11/FALSE +8219194,XSPBK1ATUS--S-LST,LST 11,FALSE 8219194,YPHR-2A--S,PHILOSOPHY,True 8226206,MADFS09--Y,FOODS AND NUTRITION 09 (ADST),FALSE 8226206,MDNC-09--Y-BEG,DANCE 09: BEGINNER,FALSE @@ -12021,7 +12021,7 @@ Pupil #,CrsNo,Description,Alternate? 9336350,MGEO--12--S-HUMGEO,HUMAN GEOGRAPHY,False 9336350,XAT--12A-S,FLEX SENIOR SEMESTER 1,FALSE 9336350,XAT--12B-S,FLEX SENIOR SEMESTER 2,FALSE -9336350,XSPBK1ATUS--S-LST,LST 11/FALSE +9336350,XSPBK1ATUS--S-LST,LST 11,FALSE 9336350,MTXT-11AD--S,TEXTILES 11 ADVANCED,TRUE 9337158,MADGE09--Y,DIGITAL MEDIA ADST 09,FALSE 9337158,MADPT09--Y,TECHNOLOGY EDUCATION 09 (ADST),FALSE @@ -12908,7 +12908,7 @@ Pupil #,CrsNo,Description,Alternate? 9913220,MIMCB11--Y,CONCERT BAND 11,FALSE 9913220,MIMJB12--Y,JAZZ BAND,False 9913220,MPH--11--S,PHYSICS 11,FALSE -9913220,XSPBK1ATUS--S-LST,LST 11/FALSE +9913220,XSPBK1ATUS--S-LST,LST 11,FALSE 9913220,MAF--11--S,ART FOUNDATIONS 11,TRUE 9913220,MICTP11--S,COMPUTER PROGRAMMING,TRUE 9913220,MMCT-11--Y,MUSIC COMPOSITION & TECHNOLOGY 11,TRUE diff --git a/scheduleGenerator/generator.py b/scheduleGenerator/generator.py index ca27d51..2d95317 100755 --- a/scheduleGenerator/generator.py +++ b/scheduleGenerator/generator.py @@ -148,10 +148,12 @@ def generateScheduleV3( # If remaining fit in open slots in existing classes if remaining <= classRunCount * (classCap - median): # Equally disperse remaining into existing classes - for j in range(classRunCount): - if remaining == 0: break - emptyClasses[index][f"{index}-{hexdigits[j]}"]["expectedLen"] += 1 - remaining -= 1 + while remaining > 0: + for j in range(classRunCount): + if remaining == 0: break + emptyClasses[index][f"{index}-{hexdigits[j]}"]["expectedLen"] += 1 + remaining -= 1 + if remaining > 0: print("step 2 logic error", remaining, "remaining") # If we can create a class using remaining, create class elif remaining >= minReq: diff --git a/tinker.py b/tinker.py index abb7112..2b74a34 100755 --- a/tinker.py +++ b/tinker.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python3.11 +#!/usr/bin/env python3 from os.path import exists as file_exists from prettytable import PrettyTable from typing import Tuple