python类Enum()的实例源码

test_convert_redbaron.py 文件源码 项目:pyha 作者: gasparka 项目源码 文件源码 阅读 13 收藏 0 点赞 0 评论 0
def test_enum_local_var_assign(converter):
    class EnumType(Enum):
        ENUMVALUE = 0

    code = textwrap.dedent("""\
        def f():
            a = EnumType.ENUMVALUE""")

    datamodel = DataModel(locals={'f': {'a': EnumType.ENUMVALUE}},
                          self_data={})

    expect = textwrap.dedent("""\

        procedure f is
            variable a: EnumType;
        begin
            a := ENUMVALUE;
        end procedure;""")
    conv = converter(code, datamodel)
    assert expect == str(conv)
test_convert_redbaron.py 文件源码 项目:pyha 作者: gasparka 项目源码 文件源码 阅读 13 收藏 0 点赞 0 评论 0
def test_enum_self_var_assign(converter):
    class EnumType(Enum):
        ENUMVALUE = 0

    code = textwrap.dedent("""\
        def f():
            self.a = EnumType.ENUMVALUE""")

    datamodel = DataModel(locals={},
                          self_data={'a': EnumType.ENUMVALUE})

    expect = textwrap.dedent("""\

        procedure f is

        begin
            self.a := ENUMVALUE;
        end procedure;""")
    conv = converter(code, datamodel)
    assert expect == str(conv)
test_convert_redbaron.py 文件源码 项目:pyha 作者: gasparka 项目源码 文件源码 阅读 14 收藏 0 点赞 0 评论 0
def test_enum_in_if(converter):
    class EnumType(Enum):
        ENUMVALUE = 0

    code = textwrap.dedent("""\
        def f():
            if a == EnumType.ENUMVALUE:
                b""")

    datamodel = DataModel(locals={'f': {'c': EnumType.ENUMVALUE}},
                          self_data={})

    expect = textwrap.dedent("""\

        procedure f is

        begin
            if a = ENUMVALUE then
                b
            end if;
        end procedure;""")
    conv = converter(code, datamodel)
    assert expect == str(conv)
top_generator.py 文件源码 项目:pyha 作者: gasparka 项目源码 文件源码 阅读 18 收藏 0 点赞 0 评论 0
def normal_to_slv(self, var, var_name) -> str:
        if type(var) == int:
            return f'std_logic_vector(to_signed({var_name}, 32))'
        elif type(var) == bool:
            return f'bool_to_logic({var_name})'
        elif type(var) == Sfix:
            return f'to_slv({var_name})'
        elif type(var) == ComplexSfix:
            return f'to_slv({var_name}.real) & to_slv({var_name}.imag)'
        elif isinstance(var, Enum):
            return self.normal_to_slv(var.value, var_name)
        elif isinstance(var, list):
            if isinstance(var[0], bool):
                return f'bool_list_to_logic({var_name})'
        else:
            assert 0
hwsim.py 文件源码 项目:pyha 作者: gasparka 项目源码 文件源码 阅读 13 收藏 0 点赞 0 评论 0
def is_convertible(obj):
    allowed_types = [ComplexSfix, Sfix, int, bool, Const]
    if type(obj) in allowed_types:
        return True
    elif isinstance(obj, list):
        # To check whether all elements are of the same type
        if len(set(map(type, obj))) == 1:
            if all(type(x) in allowed_types for x in obj):
                return True
            elif isinstance(obj[0], HW):  # list of submodules
                return True
    elif isinstance(obj, Enum):
        return True
    elif isinstance(obj, HW):
        return True

    return False
sqltypes.py 文件源码 项目:webapp 作者: superchilli 项目源码 文件源码 阅读 20 收藏 0 点赞 0 评论 0
def adapt(self, impltype, **kw):
        schema = kw.pop('schema', self.schema)
        metadata = kw.pop('metadata', self.metadata)
        _create_events = kw.pop('_create_events', False)
        if issubclass(impltype, Enum):
            if self.enum_class is not None:
                args = [self.enum_class]
            else:
                args = self.enums
            return impltype(name=self.name,
                            schema=schema,
                            metadata=metadata,
                            convert_unicode=self.convert_unicode,
                            native_enum=self.native_enum,
                            inherit_schema=self.inherit_schema,
                            validate_strings=self.validate_strings,
                            _create_events=_create_events,
                            *args,
                            **kw)
        else:
            # TODO: why would we be here?
            return super(Enum, self).adapt(impltype, **kw)
data.py 文件源码 项目:nlp 作者: Shmuma 项目源码 文件源码 阅读 23 收藏 0 点赞 0 评论 0
def encode_tags(tags, output):
    result = []

    for tag in tags:
        t_set = set(tag.split(' '))
        assert issubclass(output, enum.Enum)
        res_index = None
        for idx, member in enumerate(output.__members__.values()):
            if member.value == '' or member.value in t_set:
                res_index = idx
        assert res_index is not None
        v = np.zeros(len(output), dtype=np.float32)
        v[res_index] = 1.0
        result.append(v)

    return result
test_enum.py 文件源码 项目:ouroboros 作者: pybee 项目源码 文件源码 阅读 19 收藏 0 点赞 0 评论 0
def test_attribute_deletion(self):
        class Season(Enum):
            SPRING = 1
            SUMMER = 2
            AUTUMN = 3
            WINTER = 4

            def spam(cls):
                pass

        self.assertTrue(hasattr(Season, 'spam'))
        del Season.spam
        self.assertFalse(hasattr(Season, 'spam'))

        with self.assertRaises(AttributeError):
            del Season.SPRING
        with self.assertRaises(AttributeError):
            del Season.DRY
        with self.assertRaises(AttributeError):
            del Season.SPRING.name
test_enum.py 文件源码 项目:ouroboros 作者: pybee 项目源码 文件源码 阅读 33 收藏 0 点赞 0 评论 0
def test_invalid_names(self):
        with self.assertRaises(ValueError):
            class Wrong(Enum):
                mro = 9
        with self.assertRaises(ValueError):
            class Wrong(Enum):
                _create_= 11
        with self.assertRaises(ValueError):
            class Wrong(Enum):
                _get_mixins_ = 9
        with self.assertRaises(ValueError):
            class Wrong(Enum):
                _find_new_ = 1
        with self.assertRaises(ValueError):
            class Wrong(Enum):
                _any_name_ = 9
test_enum.py 文件源码 项目:ouroboros 作者: pybee 项目源码 文件源码 阅读 21 收藏 0 点赞 0 评论 0
def test_comparisons(self):
        Season = self.Season
        with self.assertRaises(TypeError):
            Season.SPRING < Season.WINTER
        with self.assertRaises(TypeError):
            Season.SPRING > 4

        self.assertNotEqual(Season.SPRING, 1)

        class Part(Enum):
            SPRING = 1
            CLIP = 2
            BARREL = 3

        self.assertNotEqual(Season.SPRING, Part.SPRING)
        with self.assertRaises(TypeError):
            Season.SPRING < Part.CLIP
test_enum.py 文件源码 项目:ouroboros 作者: pybee 项目源码 文件源码 阅读 20 收藏 0 点赞 0 评论 0
def test_enum_duplicates(self):
        class Season(Enum):
            SPRING = 1
            SUMMER = 2
            AUTUMN = FALL = 3
            WINTER = 4
            ANOTHER_SPRING = 1
        lst = list(Season)
        self.assertEqual(
            lst,
            [Season.SPRING, Season.SUMMER,
             Season.AUTUMN, Season.WINTER,
            ])
        self.assertIs(Season.FALL, Season.AUTUMN)
        self.assertEqual(Season.FALL.value, 3)
        self.assertEqual(Season.AUTUMN.value, 3)
        self.assertIs(Season(3), Season.AUTUMN)
        self.assertIs(Season(1), Season.SPRING)
        self.assertEqual(Season.FALL.name, 'AUTUMN')
        self.assertEqual(
                [k for k,v in Season.__members__.items() if v.name != k],
                ['FALL', 'ANOTHER_SPRING'],
                )
test_enum.py 文件源码 项目:ouroboros 作者: pybee 项目源码 文件源码 阅读 23 收藏 0 点赞 0 评论 0
def test_programatic_function_string(self):
        SummerMonth = Enum('SummerMonth', 'june july august')
        lst = list(SummerMonth)
        self.assertEqual(len(lst), len(SummerMonth))
        self.assertEqual(len(SummerMonth), 3, SummerMonth)
        self.assertEqual(
                [SummerMonth.june, SummerMonth.july, SummerMonth.august],
                lst,
                )
        for i, month in enumerate('june july august'.split(), 1):
            e = SummerMonth(i)
            self.assertEqual(int(e.value), i)
            self.assertNotEqual(e, i)
            self.assertEqual(e.name, month)
            self.assertIn(e, SummerMonth)
            self.assertIs(type(e), SummerMonth)
test_enum.py 文件源码 项目:ouroboros 作者: pybee 项目源码 文件源码 阅读 22 收藏 0 点赞 0 评论 0
def test_programatic_function_string_list(self):
        SummerMonth = Enum('SummerMonth', ['june', 'july', 'august'])
        lst = list(SummerMonth)
        self.assertEqual(len(lst), len(SummerMonth))
        self.assertEqual(len(SummerMonth), 3, SummerMonth)
        self.assertEqual(
                [SummerMonth.june, SummerMonth.july, SummerMonth.august],
                lst,
                )
        for i, month in enumerate('june july august'.split(), 1):
            e = SummerMonth(i)
            self.assertEqual(int(e.value), i)
            self.assertNotEqual(e, i)
            self.assertEqual(e.name, month)
            self.assertIn(e, SummerMonth)
            self.assertIs(type(e), SummerMonth)
test_enum.py 文件源码 项目:ouroboros 作者: pybee 项目源码 文件源码 阅读 25 收藏 0 点赞 0 评论 0
def test_programatic_function_iterable(self):
        SummerMonth = Enum(
                'SummerMonth',
                (('june', 1), ('july', 2), ('august', 3))
                )
        lst = list(SummerMonth)
        self.assertEqual(len(lst), len(SummerMonth))
        self.assertEqual(len(SummerMonth), 3, SummerMonth)
        self.assertEqual(
                [SummerMonth.june, SummerMonth.july, SummerMonth.august],
                lst,
                )
        for i, month in enumerate('june july august'.split(), 1):
            e = SummerMonth(i)
            self.assertEqual(int(e.value), i)
            self.assertNotEqual(e, i)
            self.assertEqual(e.name, month)
            self.assertIn(e, SummerMonth)
            self.assertIs(type(e), SummerMonth)
queries.py 文件源码 项目:datapipelines-python 作者: meraki-analytics 项目源码 文件源码 阅读 32 收藏 0 点赞 0 评论 0
def evaluate(self, query: MutableMapping[str, Any], context: PipelineContext = None) -> True:
        try:
            value = query[self.key]
            for type in self.types:
                if issubclass(type, Enum) and isinstance(value, str):
                    value = type(value)
                if isinstance(value, type):
                    query[self.key] = value
                    return True
            raise WrongValueTypeError("{key} must be of type {type} in query!".format(key=self.key, type=self))
        except KeyError:
            if self.child:
                self.child.evaluate(query, context)
        return True
metadata.py 文件源码 项目:aws-encryption-sdk-cli 作者: awslabs 项目源码 文件源码 阅读 33 收藏 0 点赞 0 评论 0
def json_ready_header(header):
    # type: (MessageHeader) -> Dict[str, Any]
    """Create a JSON-serializable representation of a :class:`aws_encryption_sdk.structures.MessageHeader`.

    http://docs.aws.amazon.com/encryption-sdk/latest/developer-guide/message-format.html#header-structure

    :param header: header for which to create a JSON-serializable representation
    :type header: aws_encryption_sdk.structures.MessageHeader
    :rtype: dict
    """
    dict_header = attr.asdict(header)

    del dict_header['content_aad_length']
    dict_header['version'] = str(float(dict_header['version'].value))
    dict_header['algorithm'] = dict_header['algorithm'].name

    for key, value in dict_header.items():
        if isinstance(value, Enum):
            dict_header[key] = value.value

    dict_header['message_id'] = unicode_b64_encode(dict_header['message_id'])

    dict_header['encrypted_data_keys'] = sorted(
        list(dict_header['encrypted_data_keys']),
        key=lambda x: six.b(x['key_provider']['provider_id']) + x['key_provider']['key_info']
    )
    for data_key in dict_header['encrypted_data_keys']:
        data_key['key_provider']['provider_id'] = unicode_b64_encode(six.b(data_key['key_provider']['provider_id']))
        data_key['key_provider']['key_info'] = unicode_b64_encode(data_key['key_provider']['key_info'])
        data_key['encrypted_data_key'] = unicode_b64_encode(data_key['encrypted_data_key'])

    return dict_header
standard_fx.py 文件源码 项目:uchroma 作者: cyanogen 项目源码 文件源码 阅读 12 收藏 0 点赞 0 评论 0
def set_effect(self, effect: Enum, *args) -> bool:
        if self._driver.has_quirk(Quirks.EXTENDED_FX_CMDS):
            if effect.name in ExtendedFX.__members__:
                return self._set_effect_extended(ExtendedFX[effect.name], *args)
            return False
        return self._set_effect_basic(effect, *args)
traits.py 文件源码 项目:uchroma 作者: cyanogen 项目源码 文件源码 阅读 24 收藏 0 点赞 0 评论 0
def trait_as_dict(trait: TraitType) -> dict:
    """
    Convert a trait to a dict for sending over D-Bus or the like

    :param trait: the trait to be converted
    :return: dict representing this trait
    """
    cls = trait.__class__
    tdict = {}

    for k, v in vars(trait).items():
        if k.startswith('__') or k == 'this_class':
            continue
        if hasattr(cls, k) and getattr(cls, k) == v:
            continue
        if isinstance(v, Iterable) and len(v) == 0:
            continue

        if k.startswith('_'):
            tdict[k[1:]] = v
        else:
            tdict[k] = v

    if isinstance(trait, UseEnum):
        cls = CaselessStrEnum
        tdict['values'] = tuple(trait.enum_class.__members__.keys())
        if 'enum_class' in tdict:
            del tdict['enum_class']

    for k, v in tdict.items():
        if isinstance(v, TraitType):
            tdict[k] = trait_as_dict(v)
        if isinstance(v, enum.Enum):
            tdict[k] = v.name
        if isinstance(v, type):
            tdict[k] = '%s.%s' % (v.__module__, v.__name__)

    tdict['__class__'] = (cls.__module__, cls.__name__)
    return tdict
traits.py 文件源码 项目:uchroma 作者: cyanogen 项目源码 文件源码 阅读 20 收藏 0 点赞 0 评论 0
def add_traits_to_argparse(obj: HasTraits, parser: ArgumentParser,
                           prefix: str=None):
    """
    Add all traits from the given object to the argparse context.

    :param obj: an instance of HasTraits
    :param parser: argparse parser
    :param prefix: string to prefix keys with
    """
    for key, trait in obj.traits().items():
        if trait.get_metadata('config') is not True:
            continue

        argname = '--%s' % key
        if prefix is not None:
            argname = '--%s.%s' % (prefix, key)

        if isinstance(trait, Container):
            parser.add_argument(argname, nargs='+', help=trait.info_text)
        elif isinstance(trait, Enum):
            parser.add_argument(argname, type=str.lower,
                                choices=[x.lower() for x in trait.values],
                                help=trait.info_text)
        else:
            argtype = str
            if hasattr(trait, 'default_value'):
                argtype = type(trait.default_value)
            parser.add_argument(argname, type=argtype, help=trait.info_text)
uimg.py 文件源码 项目:pyUBoot 作者: molejar 项目源码 文件源码 阅读 20 收藏 0 点赞 0 评论 0
def CRC32(data):
    """ Help function for 32bit CRC calculation
    :param data: Tha data blob as byte array
    :return: CRC Value
    """
    return zlib.crc32(data) & 0xFFFFFFFF
# ----------------------------------------------------------------------------------------------------------------------


# ----------------------------------------------------------------------------------------------------------------------
# Customized Enum Class
# ----------------------------------------------------------------------------------------------------------------------


问题


面经


文章

微信
公众号

扫码关注公众号