summaryrefslogtreecommitdiff
path: root/ricky/param/options.py
blob: dadb8f954ab1fffd19bf1bb354c3be45f459c395 (plain)
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
from ricky.param.option import Option


class Options:
    def __init__(self, *args):
        self._values = args

    def __iter__(self):
        return iter(self._values)

    def __len__(self):
        return len(self._values)

    def __str__(self):
        return str(self._values)

    def __getitem__(self, i):
        return self._values[i]

    def search(self, s):
        for i in self:
            if str(s) in i.value:
                return i

    @classmethod
    def from_dict(cls, *args):
        options = map(lambda x: Option(**x), args)
        return cls(*options)