Source code for fdi.dataset.stringparameter

# -*- coding: utf-8 -*-

from .metadata import Parameter
from .typecoded import Typecoded

from copy import copy
from collections import OrderedDict
import logging
# create logger
logger = logging.getLogger(__name__)
#logger.debug('level %d' %  (logger.getEffectiveLevel()))


[docs]class StringParameter(Parameter, Typecoded): """ has a unicode string as the value, a typecode for length and char. """ def __init__(self, value=None, description='UNKNOWN', default=None, valid=None, typecode='B', **kwds): typ_ = kwds.pop('typ_', 'string') # collect args-turned-local-variables. args = copy(locals()) args.pop('__class__', None) args.pop('kwds', None) args.pop('self', None) args.update(kwds) self.setTypecode(typecode) super().__init__( value=value, description=description, typ_=typ_, default=default, valid=valid, typecode=typecode) # Must overwrite the self._all_attrs set by supera() self._all_attrs = args def __getstate__(self): """ Can be encoded with serializableEncoder """ return OrderedDict( description=self.description if hasattr( self, 'description') else '', default=self._default, value=self._value if hasattr(self, '_value') else None, valid=self._valid, typecode=self._typecode)