From 6e958c5f1ff83101920e233eb6f2912497d66747 Mon Sep 17 00:00:00 2001 From: sanj <67624670+iodrift@users.noreply.github.com> Date: Tue, 30 Jul 2024 12:54:25 -0700 Subject: [PATCH] Auto-update: Tue Jul 30 12:54:25 PDT 2024 --- sijapi/classes.py | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/sijapi/classes.py b/sijapi/classes.py index 6b52b91..78f335f 100644 --- a/sijapi/classes.py +++ b/sijapi/classes.py @@ -14,7 +14,7 @@ import reverse_geocoder as rg from pathlib import Path from typing import Any, Dict, List, Optional, Tuple, Union, TypeVar from dotenv import load_dotenv -from pydantic import BaseModel, Field, create_model, validator +from pydantic import BaseModel, Field, create_model, PrivateAttr from concurrent.futures import ThreadPoolExecutor from contextlib import asynccontextmanager from datetime import datetime, timedelta, timezone @@ -204,10 +204,14 @@ class APIConfig(BaseModel): TZ: str KEYS: List[str] GARBAGE: Dict[str, Any] + _db_pool: DatabasePool = PrivateAttr(default_factory=DatabasePool) - def __init__(self, **data): - super().__init__(**data) - self._db_pool = DatabasePool() + class Config: + arbitrary_types_allowed = True + + @property + def db_pool(self): + return self._db_pool @property def db_pool(self): @@ -252,9 +256,7 @@ class APIConfig(BaseModel): config_data['MODULES'] = cls._create_dynamic_config(config_data.get('MODULES', {}), 'DynamicModulesConfig') config_data['EXTENSIONS'] = cls._create_dynamic_config(config_data.get('EXTENSIONS', {}), 'DynamicExtensionsConfig') - instance = cls(**config_data) - instance.db_pool = DatabasePool() - return instance + return cls(**config_data) @classmethod @@ -739,12 +741,12 @@ class APIConfig(BaseModel): """, table_name, column_name) return exists + async def close_db_pools(self): if self._db_pool: await self._db_pool.close_all() - class Location(BaseModel): latitude: float longitude: float