mongomantic.core.database   A
last analyzed

Complexity

Total Complexity 4

Size/Duplication

Total Lines 28
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
wmc 4
eloc 18
dl 0
loc 28
rs 10
c 0
b 0
f 0

2 Functions

Rating   Name   Duplication   Size   Complexity  
A connect() 0 11 3
A disconnect() 0 2 1
1
# # Package # #
2
from pymongo import MongoClient
3
from pymongo.database import Database
4
5
__all__ = ["MongomanticClient"]
6
7
8
class MongomanticClient:
9
    client: MongoClient = None
10
    db: Database = None
11
12
13
def connect(uri: str, database: str, mock: bool = False) -> None:
14
    if mock:
15
        try:
16
            import mongomock
17
        except ImportError:
18
            raise RuntimeError("Mongomock needs to be installed for mocking a connection")
19
        MongomanticClient.client = mongomock.MongoClient(uri)
20
    else:
21
        MongomanticClient.client = MongoClient(uri)
22
23
    MongomanticClient.db = MongomanticClient.client.__getattr__(database)
24
25
26
def disconnect() -> None:
27
    MongomanticClient.client.close()
28