Bases: BaseSettings
Data.Rentgen Kafka consumer settings.
Application can be configured in 2 ways:
- By explicitly passing
settings object as an argument to :obj:application_factory <data_rentgen.consumer.application_factory>
- By setting up environment variables matching a specific key.
All environment variable names are written in uppercase and should be prefixed with DATA_RENTGEN__.
Nested items are delimited with __.
More details can be found in Pydantic documentation <https://docs.pydantic.dev/latest/concepts/pydantic_settings/>_.
Examples
.. code-block:: bash
# same as settings.database.url = "postgresql+asyncpg://postgres:postgres@localhost:5432/data_rentgen"
DATA_RENTGEN__DATABASE__URL=postgresql+asyncpg://postgres:postgres@localhost:5432/data_rentgen
# same as settings.kafka.bootstrap_servers = ["kafka1:9092", "kafka2:9092"]
DATA_RENTGEN__KAFKA__BOOTSTRAP_SERVERS="kafka1:9092,kafka2:9092"
# same as settings.logging.preset = "json"
DATA_RENTGEN__LOGGING__PRESET=json
Source code in data_rentgen/consumer/settings/__init__.py
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 | class ConsumerApplicationSettings(BaseSettings):
"""Data.Rentgen Kafka consumer settings.
Application can be configured in 2 ways:
* By explicitly passing ``settings`` object as an argument to :obj:`application_factory <data_rentgen.consumer.application_factory>`
* By setting up environment variables matching a specific key.
All environment variable names are written in uppercase and should be prefixed with ``DATA_RENTGEN__``.
Nested items are delimited with ``__``.
More details can be found in `Pydantic documentation <https://docs.pydantic.dev/latest/concepts/pydantic_settings/>`_.
Examples
--------
.. code-block:: bash
# same as settings.database.url = "postgresql+asyncpg://postgres:postgres@localhost:5432/data_rentgen"
DATA_RENTGEN__DATABASE__URL=postgresql+asyncpg://postgres:postgres@localhost:5432/data_rentgen
# same as settings.kafka.bootstrap_servers = ["kafka1:9092", "kafka2:9092"]
DATA_RENTGEN__KAFKA__BOOTSTRAP_SERVERS="kafka1:9092,kafka2:9092"
# same as settings.logging.preset = "json"
DATA_RENTGEN__LOGGING__PRESET=json
""" # noqa: E501
database: DatabaseSettings = Field(
default_factory=DatabaseSettings, # type: ignore[arg-type]
description=":ref:`Database settings <configuration-database>`",
)
logging: LoggingSettings = Field(
default_factory=LoggingSettings,
description=":ref:`Logging settings <configuration-consumer-logging>`",
)
kafka: KafkaSettings = Field(
description=":ref:`Kafka settings <configuration-consumer-kafka>`",
)
consumer: ConsumerSettings = Field(
default_factory=ConsumerSettings,
description=":ref:`Consumer settings <configuration-consumer-specific>`",
)
producer: ProducerSettings = Field(
default_factory=ProducerSettings,
description=":ref:`Producer settings <configuration-producer-specific>`",
)
model_config = SettingsConfigDict(env_prefix="DATA_RENTGEN__", env_nested_delimiter="__", extra="forbid")
|
database = Field(default_factory=DatabaseSettings, description=':ref:`Database settings <configuration-database>`')
class-attribute
instance-attribute
logging = Field(default_factory=LoggingSettings, description=':ref:`Logging settings <configuration-consumer-logging>`')
class-attribute
instance-attribute
kafka = Field(description=':ref:`Kafka settings <configuration-consumer-kafka>`')
class-attribute
instance-attribute
consumer = Field(default_factory=ConsumerSettings, description=':ref:`Consumer settings <configuration-consumer-specific>`')
class-attribute
instance-attribute
producer = Field(default_factory=ProducerSettings, description=':ref:`Producer settings <configuration-producer-specific>`')
class-attribute
instance-attribute