def __init__(self, s, separator=None, eq_separator=None):
        list.__init__(self)
        if separator is None:
            separator = self._separator
        if eq_separator is None:
            eq_separator = self._eq_separator
        args = s.split(separator)
        i = 0
        for arg in args:
            try: # PROCESS attr=val ARGUMENT FORMAT
                k, v = arg.split(eq_separator)
                try: # SEE IF WE HAVE A TYPE FOR THIS ATTRIBUTE
                    v = self._attrtype[k](v)
                except (AttributeError, KeyError):
                    pass # IF NO CONVERSION, JUST USE THE ORIGINAL STRING
                setattr(self, k, v) # SAVE VALUE AS ATTRIBUTE
            except ValueError: # JUST A SIMPLE ARGUMENT, SO SAVE AS ARG LIST
                try: # SEE IF WE HAVE A TYPE FOR THIS LIST ITEM
                    arg = self._attrtype[i](arg)
                except (AttributeError, __HOLE__):
                    pass # IF NO CONVERSION, JUST USE THE ORIGINAL STRING
                self.append(arg)
                i += 1 # ADVANCE OUR ARGUMENT COUNT
dataset/ETHPy150Open cjlee112/pygr/pygr/coordinator.py/ObjectFromString.__init__