-
Notifications
You must be signed in to change notification settings - Fork 0
/
test.py
44 lines (31 loc) · 1009 Bytes
/
test.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
import os
from pathlib import Path
from confluent_kafka import avro
# key_schema = avro.load(
# f"{Path(__file__).parents[0]}/producers/models/schemas/arrival_key.json"
# )
# print(type(key_schema))
# print(key_schema)
from enum import IntEnum
class Train:
"""Defines CTA Train Model"""
status = IntEnum("status", "out_of_service in_service broken_down", start=0)
def __init__(self, train_id, status):
self.train_id = train_id
self.status = status
if self.status is None:
self.status = Train.status.out_of_service
def __str__(self):
return f"Train ID {self.train_id} is {self.status.name.replace('_', ' ')}"
def __repr__(self):
return str(self)
def broken(self):
return self.status == Train.status.broken_down
train = Train(3, Train.status.in_service)
print(train)
print(train.status)
print(type(train.status.name))
print(train.status.name)
print()
for stat in Train.status:
print(stat.name, stat.value)