35 lines
762 B
Python
35 lines
762 B
Python
|
from enum import Enum
|
||
|
|
||
|
|
||
|
class Order(Enum):
|
||
|
FromTo = 0
|
||
|
ToFrom = 1
|
||
|
Any = 2
|
||
|
|
||
|
@staticmethod
|
||
|
def new(order):
|
||
|
if order is None:
|
||
|
return Order.Any
|
||
|
elif order == "to-from":
|
||
|
return Order.ToFrom
|
||
|
elif order == "from-to":
|
||
|
return Order.FromTo
|
||
|
else:
|
||
|
raise NotImplementedError("What kind of ordering is: {}".format(order))
|
||
|
|
||
|
|
||
|
def match(self, from_w, to_w):
|
||
|
if self is Order.Any:
|
||
|
return True
|
||
|
|
||
|
fi = from_w.int_id
|
||
|
ti = to_w.int_id
|
||
|
|
||
|
if self is Order.FromTo:
|
||
|
return fi < ti
|
||
|
elif self is Order.ToFrom:
|
||
|
return ti < fi
|
||
|
else:
|
||
|
raise NotImplementedError("Should not be here: Order match")
|
||
|
|