/
__init__.py
46 lines (42 loc) · 1.2 KB
/
__init__.py
1
2
3
4
5
6
7
8
9
10
11
12
13
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
# -*- coding: utf-8 -*-
# 18/8/6
# create by: snower
from .database import DataBase
from .memory import MemoryDB
from .textline import TextLineDB
from .mongodb import MongoDB
from .mysql import MysqlDB
from .postgresql import PostgresqlDB
from .clickhouse import ClickhouseDB
from .influxdb import InfluxDB
from .elasticsearch import ElasticsearchDB
from .excel import ExeclDB
from .csv import CsvDB
from .json import JsonDB
from .beanstalk import BeanstalkDB
from .redis import RedisDB
from ..errors import DatabaseUnknownException
DATABASES = {
"memory": MemoryDB,
"textline": TextLineDB,
"mongo": MongoDB,
"mysql": MysqlDB,
"postgresql": PostgresqlDB,
"clickhouse": ClickhouseDB,
"influxdb": InfluxDB,
"elasticsearch": ElasticsearchDB,
"execl": ExeclDB,
"csv": CsvDB,
"json": JsonDB,
"beanstalk": BeanstalkDB,
"redis": RedisDB,
}
def find_database(name):
if name not in DATABASES:
raise DatabaseUnknownException("%s is unknown database driver" % name)
return DATABASES[name]
def register_database(name, database):
if not issubclass(database, DataBase):
raise TypeError("is not DataBase")
DATABASES[name] = database
return database