Coverage for mongodb_odm / utils / _internal_models.py: 100%

21 statements  

« prev     ^ index     » next       coverage.py v7.12.0, created at 2025-12-07 08:37 +0000

1from typing import Any, Optional, Union 1abcdef

2 

3from mongodb_odm.types import DICT_TYPE 1abcdef

4from pydantic import BaseModel 1abcdef

5from pydantic._internal._repr import Representation as PydanticRepresentation 1abcdef

6from pymongo import AsyncMongoClient, MongoClient 1abcdef

7 

8 

9class Connection: 1abcdef

10 # Use this model to maintain database connection object structure. 

11 url: Optional[str] = None 1abcdef

12 client: Optional[Union[MongoClient[Any], AsyncMongoClient[Any]]] = None 1abcdef

13 databases: Optional[set[str]] = None 1abcdef

14 connection_kwargs: Optional[DICT_TYPE] = None 1abcdef

15 async_is_enabled: bool = False 1abcdef

16 

17 

18class RelationalFieldInfo(PydanticRepresentation): 1abcdef

19 def __init__( 1abcdef

20 self, *, model: Any, local_field: str, related_field: Optional[str] = None 

21 ) -> None: 

22 self.model = model 1abcdef

23 self.local_field = local_field 1abcdef

24 self.related_field = related_field 1abcdef

25 

26 

27class CollectionConfig(BaseModel): 1abcdef

28 # Connection configuration model for each model. 

29 collection_name: str 1abcdef

30 child_collection_name: Optional[str] = None 1abcdef

31 database_name: Optional[str] = None 1abcdef

32 has_children: bool = False 1abcdef