Example #1
0
    def __new__(mcs, name, bases, attrs, **kwargs):
        slots = []

        try:
            for attr_name, attr in attrs.items():
                if isinstance(attr, (Field, Record)):
                    field = attrs[attr_name] = mcs._prepare_field(attr)
                    field.name = field.name or mangle_name(name, attr_name)
                    slots.append(field.name)
        except NameError:
            pass

        for option, value in kwargs.items():
            attrs['__{}__'.format(option)] = value

        attrs['__slots__'] = tuple(slots)

        return super(MetaRecord, mcs).__new__(mcs, name, bases, attrs)
Example #2
0
 def test_mangle_name(self):
     self.assertEqual(mangle_name(TestNameUtils.Dummy, 'x'), '_Dummy__x')
     self.assertEqual(mangle_name('Dummy', 'x'), '_Dummy__x')