1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144 | import pprint
import databases
import ormar
import sqlalchemy
database = databases.Database("sqlite:///db.sqlite")
metadata = sqlalchemy.MetaData()
class Course(ormar.Model):
ormar_config = ormar.OrmarConfig(
database=database,
metadata=metadata,
)
id: int = ormar.Integer(primary_key=True)
name: str = ormar.String(max_length=100)
completed: bool = ormar.Boolean(default=False)
pprint.pp({x: v.__dict__ for x, v in Course.ormar_config.model_fields.items()})
"""
Will produce:
{'id': {'__type__': <class 'int'>,
'__pydantic_type__': <class 'int'>,
'__sample__': 0,
'related_name': None,
'column_type': Integer(),
'constraints': [],
'name': 'id',
'db_alias': None,
'primary_key': True,
'autoincrement': True,
'nullable': True,
'sql_nullable': False,
'index': False,
'unique': False,
'virtual': None,
'is_multi': None,
'is_relation': None,
'is_through': False,
'through_relation_name': None,
'through_reverse_relation_name': None,
'skip_reverse': False,
'skip_field': False,
'owner': <class '__main__.Course'>,
'to': None,
'to_pk_only': None,
'through': None,
'self_reference': False,
'self_reference_primary': None,
'orders_by': None,
'related_orders_by': None,
'encrypt_secret': None,
'encrypt_backend': <EncryptBackends.NONE: 0>,
'encrypt_custom_backend': None,
'ormar_default': None,
'server_default': None,
'comment': None,
'represent_as_base64_str': False,
'minimum': None,
'maximum': None,
'multiple_of': None,
'ge': None,
'le': None},
'name': {'__type__': <class 'str'>,
'__pydantic_type__': <class 'str'>,
'__sample__': 'string',
'related_name': None,
'column_type': String(length=100),
'constraints': [],
'name': 'name',
'db_alias': None,
'primary_key': False,
'autoincrement': False,
'nullable': False,
'sql_nullable': False,
'index': False,
'unique': False,
'virtual': None,
'is_multi': None,
'is_relation': None,
'is_through': False,
'through_relation_name': None,
'through_reverse_relation_name': None,
'skip_reverse': False,
'skip_field': False,
'owner': <class '__main__.Course'>,
'to': None,
'to_pk_only': None,
'through': None,
'self_reference': False,
'self_reference_primary': None,
'orders_by': None,
'related_orders_by': None,
'encrypt_secret': None,
'encrypt_backend': <EncryptBackends.NONE: 0>,
'encrypt_custom_backend': None,
'ormar_default': None,
'server_default': None,
'comment': None,
'represent_as_base64_str': False,
'max_length': 100,
'min_length': None,
'regex': None},
'completed': {'__type__': <class 'bool'>,
'__pydantic_type__': <class 'bool'>,
'__sample__': True,
'related_name': None,
'column_type': Boolean(),
'constraints': [],
'name': 'completed',
'db_alias': None,
'primary_key': False,
'autoincrement': False,
'nullable': True,
'sql_nullable': True,
'index': False,
'unique': False,
'virtual': None,
'is_multi': None,
'is_relation': None,
'is_through': False,
'through_relation_name': None,
'through_reverse_relation_name': None,
'skip_reverse': False,
'skip_field': False,
'owner': <class '__main__.Course'>,
'to': None,
'to_pk_only': None,
'through': None,
'self_reference': False,
'self_reference_primary': None,
'orders_by': None,
'related_orders_by': None,
'encrypt_secret': None,
'encrypt_backend': <EncryptBackends.NONE: 0>,
'encrypt_custom_backend': None,
'ormar_default': False,
'server_default': None,
'comment': None,
'represent_as_base64_str': False}}
"""
|