v0.146.0
 1"""
 2Typed field imports for better IDE and type checker support.
 3
 4This module provides the same field classes as plain.postgres.fields,
 5but with a companion .pyi stub file that makes type checkers interpret
 6field assignments as their primitive Python types.
 7
 8Usage:
 9    from plain.postgres import types
10
11    @postgres.register_model
12    class User(postgres.Model):
13        email: str = types.EmailField()
14        age: int = types.IntegerField()
15        is_active: bool = types.BooleanField(default=True)
16
17This is optional - you can continue using untyped field definitions.
18"""
19
20# Re-export scalar field types
21from plain.postgres.fields import (
22    BigIntegerField,
23    BinaryField,
24    BooleanField,
25    DateField,
26    DateTimeField,
27    DecimalField,
28    DurationField,
29    EmailField,
30    FloatField,
31    GenericIPAddressField,
32    IntegerField,
33    PrimaryKeyField,
34    RandomStringField,
35    SmallIntegerField,
36    TextField,
37    TimeField,
38    URLField,
39    UUIDField,
40)
41from plain.postgres.fields.encrypted import (
42    EncryptedJSONField,
43    EncryptedTextField,
44)
45from plain.postgres.fields.json import JSONField
46from plain.postgres.fields.related import ForeignKeyField, ManyToManyField
47from plain.postgres.fields.related_managers import (
48    ManyToManyManager,
49    ReverseForeignKeyManager,
50)
51from plain.postgres.fields.reverse_descriptors import (
52    ReverseForeignKey,
53    ReverseManyToMany,
54)
55from plain.postgres.fields.timezones import TimeZoneField
56
57__all__ = [
58    "BigIntegerField",
59    "BinaryField",
60    "BooleanField",
61    "DateField",
62    "DateTimeField",
63    "DecimalField",
64    "DurationField",
65    "EmailField",
66    "EncryptedJSONField",
67    "EncryptedTextField",
68    "FloatField",
69    "ForeignKeyField",
70    "GenericIPAddressField",
71    "IntegerField",
72    "JSONField",
73    "ManyToManyField",
74    "ManyToManyManager",
75    "ReverseForeignKey",
76    "ReverseForeignKeyManager",
77    "ReverseManyToMany",
78    "PrimaryKeyField",
79    "RandomStringField",
80    "SmallIntegerField",
81    "TextField",
82    "TimeField",
83    "TimeZoneField",
84    "URLField",
85    "UUIDField",
86]