Skip to content

Commit b6c72de

Browse files
committed
New Example: Food Packaging
1 parent e0d539a commit b6c72de

20 files changed

+963
-0
lines changed

examples/object_oriented/food_packaging/__init__.py

Whitespace-only changes.
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
2+
3+
4+
5+
class CotJob:
6+
def __init__(self, job_id=None, name=None, product_id=None, duration=None, min_start_time=None,
7+
ideal_end_time=None, max_end_time=None, priority=0, line_id=None, line_position=None):
8+
9+
self.job_id = job_id
10+
self.name = name
11+
self.product_id = product_id
12+
self.duration = duration
13+
self.min_start_time = min_start_time
14+
self.ideal_end_time = ideal_end_time
15+
self.max_end_time = max_end_time
16+
self.priority = priority
17+
18+
self.line_id = line_id
19+
self.line_position = line_position
20+
21+
def __str__(self):
22+
return f"{self.id}({self.product.name})" if self.product else f"{self.id}(None)"
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
2+
3+
4+
5+
class CotLine:
6+
def __init__(self, id=None, name=None, operator=None, start_date_time=None):
7+
self.line_id = id
8+
self.name = name
9+
self.operator = operator
10+
self.start_date_time = start_date_time
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
2+
3+
class CotProduct:
4+
def __init__(self, id=None, name=None):
5+
self.product_id = id
6+
self.name = name
7+
8+
def __str__(self):
9+
return self.name if self.name else ""
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
2+
3+
from greyjack.cotwin.CotwinBase import CotwinBase
4+
5+
class Cotwin(CotwinBase):
6+
def __init__(self):
7+
super().__init__()
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
2+
3+
from .Cotwin import Cotwin
4+
from .CotJob import CotJob
5+
from .CotLine import CotLine
6+
from .CotProduct import CotProduct
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
2+
3+
4+
5+
class Job:
6+
def __init__(self, id=None, name=None, product=None, duration=None, min_start_time=None,
7+
ideal_end_time=None, max_end_time=None, priority=0, pinned=False):
8+
9+
self.id = id
10+
self.name = name
11+
self.product = product
12+
self.duration = duration
13+
self.min_start_time = min_start_time
14+
self.ideal_end_time = ideal_end_time
15+
self.max_end_time = max_end_time
16+
self.priority = priority
17+
self.pinned = pinned
18+
19+
self.line = None
20+
21+
def __str__(self):
22+
job_info = "{} ({}) | duration {} | min_start_time {} | max_end_time {} | ideal_end_time {}".format(self.id, self.name, self.duration,
23+
self.min_start_time, self.max_end_time,
24+
self.ideal_end_time)
25+
return job_info
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
2+
3+
4+
5+
class Line:
6+
def __init__(self, id=None, name=None, operator=None, start_date_time=None):
7+
self.id = id
8+
self.name = name
9+
self.operator = operator
10+
self.start_date_time = start_date_time
11+
self.jobs = []
12+
13+
def __str__(self):
14+
15+
line_info = ""
16+
line_info += "Line: {} | start_date_time: {}".format(self.id, self.start_date_time) + "\n"
17+
18+
for job in self.jobs:
19+
line_info += str(job) + "\n"
20+
21+
return line_info
22+
23+
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
2+
3+
4+
5+
class PackagingSchedule:
6+
def __init__(self):
7+
8+
self.products = []
9+
self.lines = []
10+
self.jobs = []
11+
12+
def print_schedule(self):
13+
14+
schedule_info = ""
15+
for line in self.lines:
16+
schedule_info += "######################################################" + "\n"
17+
schedule_info += str(line) + "\n"
18+
19+
print(schedule_info)
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
2+
3+
4+
5+
class Product:
6+
def __init__(self, id=None, name=None):
7+
self.id = id
8+
self.name = name
9+
self.cleaning_durations = {}
10+
11+
def __str__(self):
12+
return self.name if self.name else ""
13+
14+
def get_cleanup_duration(self, previous_product):
15+
cleanup_duration = self.cleaning_durations.get(previous_product)
16+
if cleanup_duration is None:
17+
raise ValueError(f"Cleanup duration previous_product ({previous_product}) "
18+
f"to to_product ({self}) is missing.")
19+
return cleanup_duration

0 commit comments

Comments
 (0)