mirror of https://github.com/watcha-fr/synapse
parent
0e8f5095c7
commit
9236136f3a
@ -0,0 +1,35 @@ |
||||
# -*- coding: utf-8 -*- |
||||
# Copyright 2015 OpenMarket Ltd |
||||
# |
||||
# Licensed under the Apache License, Version 2.0 (the "License"); |
||||
# you may not use this file except in compliance with the License. |
||||
# You may obtain a copy of the License at |
||||
# |
||||
# http://www.apache.org/licenses/LICENSE-2.0 |
||||
# |
||||
# Unless required by applicable law or agreed to in writing, software |
||||
# distributed under the License is distributed on an "AS IS" BASIS, |
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
# See the License for the specific language governing permissions and |
||||
# limitations under the License. |
||||
|
||||
from .maria import MariaEngine |
||||
from .sqlite3 import Sqlite3Engine |
||||
|
||||
|
||||
SUPPORTED_MODULE = { |
||||
"sqlite3": Sqlite3Engine, |
||||
"mysql.connector": MariaEngine, |
||||
} |
||||
|
||||
|
||||
def create_engine(name): |
||||
engine_class = SUPPORTED_MODULE.get(name, None) |
||||
|
||||
if engine_class: |
||||
module = __import__(name) |
||||
return engine_class(module) |
||||
|
||||
raise RuntimeError( |
||||
"Unsupported database engine '%s'" % (name,) |
||||
) |
@ -0,0 +1,30 @@ |
||||
# -*- coding: utf-8 -*- |
||||
# Copyright 2015 OpenMarket Ltd |
||||
# |
||||
# Licensed under the Apache License, Version 2.0 (the "License"); |
||||
# you may not use this file except in compliance with the License. |
||||
# You may obtain a copy of the License at |
||||
# |
||||
# http://www.apache.org/licenses/LICENSE-2.0 |
||||
# |
||||
# Unless required by applicable law or agreed to in writing, software |
||||
# distributed under the License is distributed on an "AS IS" BASIS, |
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
# See the License for the specific language governing permissions and |
||||
# limitations under the License. |
||||
|
||||
|
||||
import types |
||||
|
||||
|
||||
class MariaEngine(object): |
||||
def __init__(self, database_module): |
||||
self.module = database_module |
||||
|
||||
def convert_param_style(self, sql): |
||||
return sql.replace("?", "%s") |
||||
|
||||
def encode_parameter(self, param): |
||||
if isinstance(param, types.BufferType): |
||||
return str(param) |
||||
return param |
@ -0,0 +1,25 @@ |
||||
# -*- coding: utf-8 -*- |
||||
# Copyright 2015 OpenMarket Ltd |
||||
# |
||||
# Licensed under the Apache License, Version 2.0 (the "License"); |
||||
# you may not use this file except in compliance with the License. |
||||
# You may obtain a copy of the License at |
||||
# |
||||
# http://www.apache.org/licenses/LICENSE-2.0 |
||||
# |
||||
# Unless required by applicable law or agreed to in writing, software |
||||
# distributed under the License is distributed on an "AS IS" BASIS, |
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
# See the License for the specific language governing permissions and |
||||
# limitations under the License. |
||||
|
||||
|
||||
class Sqlite3Engine(object): |
||||
def __init__(self, database_module): |
||||
self.module = database_module |
||||
|
||||
def convert_param_style(self, sql): |
||||
return sql |
||||
|
||||
def encode_parameter(self, param): |
||||
return param |
Loading…
Reference in new issue