app.config moduleΒΆ

Application configuration via pydantic-settings. All values read from environment variables / .env file.

class app.config.Settings(_case_sensitive: bool | None = None, _env_prefix: str | None = None, _env_file: DotenvType | None = PosixPath('.'), _env_file_encoding: str | None = None, _env_ignore_empty: bool | None = None, _env_nested_delimiter: str | None = None, _env_parse_none_str: str | None = None, _secrets_dir: str | Path | None = None, *, app_name: str = 'FinParse API', app_version: str = '1.0.0', environment: str = 'development', log_level: str = 'INFO', api_port: int = 8000, database_url: str, database_url_sync: str, redis_url: str = 'redis://localhost:6379/0', storage_backend: str = 'local', storage_path: str = './uploads', max_pdf_size_mb: int = 50, max_csv_size_mb: int = 25, max_pdf_pages: int = 200, max_csv_rows: int = 100000, csv_chunk_size: int = 1000, csv_min_text_confidence: float = 0.3, pdf_min_text_per_page: int = 50)[source]ΒΆ

Bases: BaseSettings

api_port: intΒΆ
app_name: strΒΆ
app_version: strΒΆ
csv_chunk_size: intΒΆ
csv_min_text_confidence: floatΒΆ
database_url: strΒΆ
database_url_sync: strΒΆ
environment: strΒΆ
property is_development: boolΒΆ
log_level: strΒΆ
max_csv_rows: intΒΆ
property max_csv_size_bytes: intΒΆ
max_csv_size_mb: intΒΆ
max_pdf_pages: intΒΆ
property max_pdf_size_bytes: intΒΆ
max_pdf_size_mb: intΒΆ
model_computed_fields = {}ΒΆ

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config = {'arbitrary_types_allowed': True, 'case_sensitive': False, 'env_file': '.env', 'env_file_encoding': 'utf-8', 'env_ignore_empty': False, 'env_nested_delimiter': None, 'env_parse_none_str': None, 'env_prefix': '', 'extra': 'ignore', 'json_file': None, 'json_file_encoding': None, 'protected_namespaces': ('model_', 'settings_'), 'secrets_dir': None, 'toml_file': None, 'validate_default': True, 'yaml_file': None, 'yaml_file_encoding': None}ΒΆ

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

model_fields = {'api_port': FieldInfo(annotation=int, required=False, default=8000), 'app_name': FieldInfo(annotation=str, required=False, default='FinParse API'), 'app_version': FieldInfo(annotation=str, required=False, default='1.0.0'), 'csv_chunk_size': FieldInfo(annotation=int, required=False, default=1000), 'csv_min_text_confidence': FieldInfo(annotation=float, required=False, default=0.3), 'database_url': FieldInfo(annotation=str, required=True), 'database_url_sync': FieldInfo(annotation=str, required=True), 'environment': FieldInfo(annotation=str, required=False, default='development'), 'log_level': FieldInfo(annotation=str, required=False, default='INFO'), 'max_csv_rows': FieldInfo(annotation=int, required=False, default=100000), 'max_csv_size_mb': FieldInfo(annotation=int, required=False, default=25), 'max_pdf_pages': FieldInfo(annotation=int, required=False, default=200), 'max_pdf_size_mb': FieldInfo(annotation=int, required=False, default=50), 'pdf_min_text_per_page': FieldInfo(annotation=int, required=False, default=50), 'redis_url': FieldInfo(annotation=str, required=False, default='redis://localhost:6379/0'), 'storage_backend': FieldInfo(annotation=str, required=False, default='local'), 'storage_path': FieldInfo(annotation=str, required=False, default='./uploads')}ΒΆ

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

pdf_min_text_per_page: intΒΆ
redis_url: strΒΆ
storage_backend: strΒΆ
storage_path: strΒΆ
app.config.get_settings() Settings[source]ΒΆ

Cached settings singleton β€” call this everywhere.