Proposal
_special_value = object()
class SpetialOptionalParameter(luigi.OptionalParameter):
def __init__(self, *args, **kwargs):
assert not 'default' in kwargs.keys()
super().__init__(*args, default=_special_value, **kwargs)
def serialize(self, x):
if x == _special_value:
return super().serialize(None)
else:
return super().serialize(x)
def parse(self, x):
x = super().parse(x)
if x is None:
return _special_value
else:
return x
class TaskOnKart2(gokart.TaskOnKart):
def to_str_params(self, only_significant=False, only_public=False):
str_params = super().to_str_params()
for param_name, param_value in self.param_kwargs.items():
if param_value == _special_value:
del str_params[param_name]
return str_params