This commit is contained in:
Ross
2025-12-09 11:55:00 +00:00
parent 7fe44df476
commit eb95f5fa6d
33 changed files with 57 additions and 57 deletions
+3 -3
View File
@@ -33,9 +33,9 @@ class RotaSchedule(models.Model):
Returns the RotaBuilder instance. Returns the RotaBuilder instance.
""" """
try: try:
from rota.shifts import RotaBuilder, SingleShift from rota_generator.shifts import RotaBuilder, SingleShift
except Exception: except Exception:
raise RuntimeError("Unable to import rota.shifts; ensure the rota package is importable") raise RuntimeError("Unable to import rota_generator.shifts; ensure the rota package is importable")
# compute weeks_to_rota (integer number of weeks) # compute weeks_to_rota (integer number of weeks)
delta = self.end_date - self.start_date delta = self.end_date - self.start_date
@@ -90,7 +90,7 @@ class Worker(models.Model):
pydantic defaults will fill the rest. pydantic defaults will fill the rest.
""" """
try: try:
from rota.workers import Worker as PydWorker from rota_generator.workers import Worker as PydWorker
except Exception: except Exception:
raise RuntimeError("Unable to import rota.workers.Worker; ensure project package is importable") raise RuntimeError("Unable to import rota.workers.Worker; ensure project package is importable")
+2 -2
View File
@@ -2,7 +2,7 @@ import datetime
import os import os
import sys import sys
import time import time
from rota.shifts import NoWorkers, RotaBuilder, SingleShift, WorkerRequirement, days from rota_generator.shifts import NoWorkers, RotaBuilder, SingleShift, WorkerRequirement, days
import typer import typer
import subprocess import subprocess
@@ -19,7 +19,7 @@ sites = (
"proc", "proc",
) )
from rota.workers import ( from rota_generator.workers import (
Worker, Worker,
NotAvailableToWork, NotAvailableToWork,
NonWorkingDays, NonWorkingDays,
+2 -2
View File
@@ -3,12 +3,12 @@ import datetime
import os import os
import sys import sys
import time import time
from rota.shifts import MaxShiftsPerWeekConstraint, NoWorkers, PostShiftConstraint, PreShiftConstraint, RotaBuilder, SingleShift, WorkerRequirement, days from rota_generator.shifts import MaxShiftsPerWeekConstraint, NoWorkers, PostShiftConstraint, PreShiftConstraint, RotaBuilder, SingleShift, WorkerRequirement, days
import typer import typer
import subprocess import subprocess
import pandas as pd import pandas as pd
from rota.workers import ( from rota_generator.workers import (
Worker, Worker,
NotAvailableToWork, NotAvailableToWork,
NonWorkingDays, NonWorkingDays,
+1 -1
View File
@@ -7,7 +7,7 @@ from loguru import logger
from rich.pretty import pprint from rich.pretty import pprint
from rota.workers import Worker, NotAvailableToWork, NonWorkingDays, WorkRequests, PreferenceNotToWork, OutOfProgramme from rota_generator.workers import Worker, NotAvailableToWork, NonWorkingDays, WorkRequests, PreferenceNotToWork, OutOfProgramme
date_re = r"[\d]{1,2}\/[\d]{1,2}\/[\d]{2}" date_re = r"[\d]{1,2}\/[\d]{1,2}\/[\d]{2}"
+3 -3
View File
@@ -16,9 +16,9 @@ from pyomo.environ import *
from pyomo.opt import SolverFactory, TerminationCondition, SolverStatus from pyomo.opt import SolverFactory, TerminationCondition, SolverStatus
import urllib.parse import urllib.parse
from rota.workers import Worker from rota_generator.workers import Worker
from rota.console import console from rota_generator.console import console
from rota.bank_holidays import bank_holiday_map from rota_generator.bank_holidays import bank_holiday_map
import json import json
@@ -4,7 +4,7 @@ from typing import Iterable, List, Literal, Optional, Set
from pydantic import BaseModel, ConfigDict, field_validator, Field from pydantic import BaseModel, ConfigDict, field_validator, Field
from rich.pretty import pprint from rich.pretty import pprint
from rota.console import console from rota_generator.console import console
# from .shifts import RotaBuilder, days, sites # from .shifts import RotaBuilder, days, sites
import uuid import uuid
@@ -13,7 +13,7 @@ import uuid
from typing import TYPE_CHECKING from typing import TYPE_CHECKING
if TYPE_CHECKING: if TYPE_CHECKING:
from rota.shifts import RotaBuilder from rota_generator.shifts import RotaBuilder
days = Literal["Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"] days = Literal["Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"]
whole_days = [ whole_days = [
+2 -2
View File
@@ -3,8 +3,8 @@ from pyomo.opt import SolverFactory
from pyomo.opt.results import SolverStatus from pyomo.opt.results import SolverStatus
from rota.shifts import SingleShift, RotaBuilder, days from rota_generator.shifts import SingleShift, RotaBuilder, days
from rota.workers import Worker from rota_generator.workers import Worker
import datetime import datetime
@@ -1,8 +1,8 @@
import datetime import datetime
import pytest import pytest
from rota.shifts import InvalidShift, NoWorkers, RotaBuilder, SingleShift, days from rota_generator.shifts import InvalidShift, NoWorkers, RotaBuilder, SingleShift, days
from rota.workers import Worker from rota_generator.workers import Worker
import itertools import itertools
@@ -1,8 +1,8 @@
import datetime import datetime
import pytest import pytest
from rota.shifts import InvalidShift, NoWorkers, RotaBuilder, SingleShift, days from rota_generator.shifts import InvalidShift, NoWorkers, RotaBuilder, SingleShift, days
from rota.workers import Worker from rota_generator.workers import Worker
import itertools import itertools
@@ -1,8 +1,8 @@
import datetime import datetime
import pytest import pytest
from rota.shifts import InvalidShift, NoWorkers, RotaBuilder, SingleShift, days, MinSummedGradeByShiftsPerDayConstraint from rota_generator.shifts import InvalidShift, NoWorkers, RotaBuilder, SingleShift, days, MinSummedGradeByShiftsPerDayConstraint
from rota.workers import Worker from rota_generator.workers import Worker
import itertools import itertools
+2 -2
View File
@@ -1,7 +1,7 @@
import pytest import pytest
import datetime import datetime
from rota.shifts import BalanceAcrossGroupsConstraint, RotaBuilder, SingleShift, days from rota_generator.shifts import BalanceAcrossGroupsConstraint, RotaBuilder, SingleShift, days
from rota.workers import Worker from rota_generator.workers import Worker
@pytest.fixture @pytest.fixture
def demo_rota_balance_sites(): def demo_rota_balance_sites():
+2 -2
View File
@@ -1,8 +1,8 @@
import datetime import datetime
import pytest import pytest
from pytest import approx from pytest import approx
from rota.shifts import PostShiftConstraint, PreShiftConstraint, RotaBuilder, SingleShift, days from rota_generator.shifts import PostShiftConstraint, PreShiftConstraint, RotaBuilder, SingleShift, days
from rota.workers import Worker from rota_generator.workers import Worker
def generate_basic_rota(weeks_to_rota=10): def generate_basic_rota(weeks_to_rota=10):
start_date = datetime.date(2022, 3, 7) start_date = datetime.date(2022, 3, 7)
+2 -2
View File
@@ -1,7 +1,7 @@
import pytest import pytest
import datetime import datetime
from rota.shifts import MinimumGradeNumberConstraint, RequireRemoteSitePresenceConstraint, RotaBuilder, SingleShift, days, LimitGradeNumberConstraint from rota_generator.shifts import MinimumGradeNumberConstraint, RequireRemoteSitePresenceConstraint, RotaBuilder, SingleShift, days, LimitGradeNumberConstraint
from rota.workers import Worker from rota_generator.workers import Worker
@pytest.fixture @pytest.fixture
def limit_constraint_rota(): def limit_constraint_rota():
+2 -2
View File
@@ -1,8 +1,8 @@
import pytest import pytest
import datetime import datetime
from rota.shifts import RotaBuilder, SingleShift, days from rota_generator.shifts import RotaBuilder, SingleShift, days
from rota.workers import Worker from rota_generator.workers import Worker
@pytest.fixture @pytest.fixture
def basic_rota(): def basic_rota():
+2 -2
View File
@@ -1,7 +1,7 @@
import pytest import pytest
import datetime import datetime
from rota.shifts import NightConstraint, RotaBuilder, SingleShift, days from rota_generator.shifts import NightConstraint, RotaBuilder, SingleShift, days
from rota.workers import Worker from rota_generator.workers import Worker
@pytest.fixture @pytest.fixture
def demo_rota_night_unavailable(): def demo_rota_night_unavailable():
+2 -2
View File
@@ -1,7 +1,7 @@
import datetime import datetime
import pytest import pytest
from rota.shifts import InvalidShift, NightConstraint, NoWorkers, PostShiftConstraint, PreShiftConstraint, RotaBuilder, SingleShift, days from rota_generator.shifts import InvalidShift, NightConstraint, NoWorkers, PostShiftConstraint, PreShiftConstraint, RotaBuilder, SingleShift, days
from rota.workers import Worker from rota_generator.workers import Worker
def generate_basic_rota(weeks_to_rota=10): def generate_basic_rota(weeks_to_rota=10):
start_date = datetime.date(2022, 3, 7) start_date = datetime.date(2022, 3, 7)
+2 -2
View File
@@ -1,7 +1,7 @@
import pytest import pytest
from rota.shifts import NoWorkers, RotaBuilder, SingleShift, days from rota_generator.shifts import NoWorkers, RotaBuilder, SingleShift, days
import datetime import datetime
from rota.workers import Worker from rota_generator.workers import Worker
def weeks_from_list(lst): def weeks_from_list(lst):
"""Yield successive n-sized chunks from a lst.""" """Yield successive n-sized chunks from a lst."""
+2 -2
View File
@@ -1,9 +1,9 @@
import pytest import pytest
from rota.shifts import NoWorkers, RequireRemoteSitePresenceConstraint, RotaBuilder, SingleShift, days from rota_generator.shifts import NoWorkers, RequireRemoteSitePresenceConstraint, RotaBuilder, SingleShift, days
import datetime import datetime
from rota.workers import Worker from rota_generator.workers import Worker
def setup_basic_rota(): def setup_basic_rota():
weeks_to_rota = 10 weeks_to_rota = 10
+2 -2
View File
@@ -3,11 +3,11 @@ from re import S
from black import main from black import main
import pytest import pytest
from pytest import approx from pytest import approx
from rota.shifts import NoWorkers, RotaBuilder, SingleShift, WarningTermination, days from rota_generator.shifts import NoWorkers, RotaBuilder, SingleShift, WarningTermination, days
import datetime import datetime
from rota.workers import Worker from rota_generator.workers import Worker
@pytest.fixture @pytest.fixture
+2 -2
View File
@@ -1,6 +1,6 @@
import pytest import pytest
from rota.shifts import PostShiftConstraint, PreShiftConstraint, RotaBuilder, SingleShift, days from rota_generator.shifts import PostShiftConstraint, PreShiftConstraint, RotaBuilder, SingleShift, days
from rota.workers import Worker from rota_generator.workers import Worker
import datetime import datetime
+2 -2
View File
@@ -1,8 +1,8 @@
import datetime import datetime
import pytest import pytest
from pytest import approx from pytest import approx
from rota.shifts import PostShiftConstraint, RotaBuilder, SingleShift, days from rota_generator.shifts import PostShiftConstraint, RotaBuilder, SingleShift, days
from rota.workers import Worker from rota_generator.workers import Worker
from web.rota.shifts import PreShiftConstraint from web.rota.shifts import PreShiftConstraint
@pytest.fixture @pytest.fixture
+2 -2
View File
@@ -1,8 +1,8 @@
import pytest import pytest
import datetime import datetime
from copy import deepcopy from copy import deepcopy
from rota.shifts import RotaBuilder, SingleShift, days from rota_generator.shifts import RotaBuilder, SingleShift, days
from rota.workers import Worker from rota_generator.workers import Worker
@pytest.fixture @pytest.fixture
def rota_2workers(): def rota_2workers():
+2 -2
View File
@@ -1,11 +1,11 @@
import datetime import datetime
import pytest import pytest
from rota.shifts import ( from rota_generator.shifts import (
InvalidShift, MaxShiftsPerWeekBlockConstraint, MaxShiftsPerWeekConstraint, InvalidShift, MaxShiftsPerWeekBlockConstraint, MaxShiftsPerWeekConstraint,
NoWorkers, PostShiftConstraint, PreShiftConstraint, RotaBuilder, SingleShift, NoWorkers, PostShiftConstraint, PreShiftConstraint, RotaBuilder, SingleShift,
WarningTermination, days, WorkerRequirement WarningTermination, days, WorkerRequirement
) )
from rota.workers import NotAvailableToWork, WorkRequests, Worker, generate_not_available_to_works from rota_generator.workers import NotAvailableToWork, WorkRequests, Worker, generate_not_available_to_works
def generate_basic_rota(weeks_to_rota=10, workers=2, start_date=datetime.date(2022, 3, 7)): def generate_basic_rota(weeks_to_rota=10, workers=2, start_date=datetime.date(2022, 3, 7)):
Rota = RotaBuilder( Rota = RotaBuilder(
+2 -2
View File
@@ -1,9 +1,9 @@
import pytest import pytest
from rota.shifts import NoWorkers, RotaBuilder, SingleShift, days from rota_generator.shifts import NoWorkers, RotaBuilder, SingleShift, days
import datetime import datetime
from rota.workers import Worker from rota_generator.workers import Worker
def weeks_from_list(lst): def weeks_from_list(lst):
"""Yield successive n-sized chunks from a lst.""" """Yield successive n-sized chunks from a lst."""
+2 -2
View File
@@ -1,9 +1,9 @@
import datetime import datetime
import pytest import pytest
from pytest import approx from pytest import approx
from rota.shifts import InvalidShift, NoWorkers, RotaBuilder, SingleShift, days from rota_generator.shifts import InvalidShift, NoWorkers, RotaBuilder, SingleShift, days
from rota.workers import Worker from rota_generator.workers import Worker
import itertools import itertools
+3 -3
View File
@@ -1,9 +1,9 @@
import pytest import pytest
from rota.shifts import InvalidShift, MaxShiftsPerWeekConstraint, NoWorkers, PostShiftConstraint, RotaBuilder, SingleShift, WarningTermination, WorkerRequirement, days from rota_generator.shifts import InvalidShift, MaxShiftsPerWeekConstraint, NoWorkers, PostShiftConstraint, RotaBuilder, SingleShift, WarningTermination, WorkerRequirement, days
import datetime import datetime
from rota.workers import NonWorkingDays, NotAvailableToWork, Worker, generate_not_available_to_works from rota_generator.workers import NonWorkingDays, NotAvailableToWork, Worker, generate_not_available_to_works
from rota.workers import WorkRequests from rota_generator.workers import WorkRequests
from web.rota.shifts import PreShiftConstraint from web.rota.shifts import PreShiftConstraint
def generate_basic_rota( def generate_basic_rota(
+1 -1
View File
@@ -8,7 +8,7 @@ from sqlalchemy.orm import Session
import os import os
from dotenv import load_dotenv from dotenv import load_dotenv
from rota.shifts import SingleShift, ShiftConstraint from rota_generator.shifts import SingleShift, ShiftConstraint
from models import SingleShift as ModelSingleShift from models import SingleShift as ModelSingleShift
#from models import ShiftConstraint as ModelShiftConstraint #from models import ShiftConstraint as ModelShiftConstraint
+2 -2
View File
@@ -1,5 +1,5 @@
from rota.shifts import SingleShift as SingleShiftBase, ShiftConstraint as ShiftConstraintBase from rota_generator.shifts import SingleShift as SingleShiftBase, ShiftConstraint as ShiftConstraintBase
from rota.workers import Worker as WorkerBase from rota_generator.workers import Worker as WorkerBase
class SingleShift(SingleShiftBase): class SingleShift(SingleShiftBase):