Example #1
0
class Index(ffd.ValueObject):
    name: str = ffd.optional()
    table: str = ffd.optional()
    columns: List[str] = ffd.list_()
    unique: bool = ffd.optional(default=False)

    def __post_init__(self):
        if self.name is None:
            self.name = f'idx_{self.table}_{"_".join(self.columns)}'

    def __eq__(self, other):
        return self.name == other.name
 class ConcreteEntity(Entity):
     id: str = ffd.id_()
     strings: str = ffd.list_()
     now: datetime = ffd.now()
     today: date = ffd.today()
     required_field: str = ffd.required()
     dictionary: dict = ffd.dict_()
     list_of_ints: List[int] = ffd.list_()
     widget: Widget = ffd.optional()
Example #3
0
class Column(ffd.ValueObject):
    name: str = ffd.required()
    type: str = ffd.required()
    length: int = ffd.optional()
    is_id: bool = ffd.optional(default=False)
    is_indexed: bool = ffd.optional(default=False)
    is_required: bool = ffd.optional(default=False)
    default: any = ffd.optional()

    @property
    def string_type(self):
        return str(self.type.__name__)

    def index(self):
        return self.is_id or (self.is_indexed and self.type is str)

    def __eq__(self, other):
        return self.name == other.name
Example #4
0
    def __new__(mcs, name, bases, dct, **kwargs):
        # __pragma__('skip')
        my_dict = dct.copy()
        # __pragma__('noskip')
        # __pragma__('ecom')
        """?
        my_dict = dct
        ?"""
        # __pragma__('noecom')

        if 'fields_' in kwargs and 'annotations_' in kwargs:
            for k, v in kwargs['fields_'].items():
                my_dict[k] = ffd.optional(default=v)
            if '__annotations__' in my_dict:
                my_dict['__annotations__'].update(kwargs['annotations_'])
            else:
                my_dict['__annotations__'] = kwargs['annotations_']

        ret = type.__new__(mcs, name, bases, my_dict)

        return dataclass(ret, eq=False, repr=False)
class ThisCommand(ffd.Command):
    x: str = ffd.required()
    y: int = ffd.optional(default=0)