def __init__(self, expected_type, **kwargs):
self.expected_type = expected_type<EOL>self.default = kwargs.get("<STR_LIT:default>")<EOL>self.help_text = kwargs.get("<STR_LIT>")<EOL>self.handler = kwargs.get("<STR_LIT>")<EOL>self.choices = kwargs.get("<STR_LIT>")<EOL>self.prepare = kwargs.get("<STR_LIT>", [])<EOL>self.deprecated = kwargs.get("<STR_LIT>", False)<EOL>self.nested = kwargs.get("<STR_LIT>", <NUM_LIT:0>)<EOL>
Args:
    expected_type (class or function): type expected for this attribute, if specified
        as a function the result of the function will determine whether or not the value
        passed type validation.

Kwargs:
    default: if specified this value will be used as a default value, if not specified then
        configuration of this attribute is treated as mandatory
    help_text (str): explains the attribute
    choices (list): list of valid value choices for this attribute, if set any value not
        matching any of the choices will raise a configuration error
    handler (function): when the value for this attribute is a collection of configuration
        attributes (e.g. nested config) use this function to return the aproporiate config
        handler class to use to validate them
    prepare (function): allows you to prepare value for this attribute
    deprecated (str): if not None indicates that this attribute is still functional but
        deprecated and will be removed in the vodka version specified in the value