Skip to content

Commit

Permalink
S01E09
Browse files Browse the repository at this point in the history
  • Loading branch information
ansipunk committed Mar 3, 2024
1 parent 3f26f76 commit c3d5c98
Show file tree
Hide file tree
Showing 6 changed files with 11 additions and 73 deletions.
6 changes: 1 addition & 5 deletions databases/backends/aiopg.py
Expand Up @@ -5,15 +5,13 @@
import uuid

import aiopg
from sqlalchemy.dialects.postgresql.psycopg import PGDialect_psycopg
from sqlalchemy.engine.cursor import CursorResultMetaData
from sqlalchemy.engine.interfaces import Dialect, ExecutionContext
from sqlalchemy.engine.row import Row
from sqlalchemy.sql import ClauseElement
from sqlalchemy.sql.ddl import DDLElement

from databases.backends.common.records import Record, Row, create_column_maps
from databases.backends.compilers.psycopg import PGCompiler_psycopg
from databases.backends.dialects.psycopg import PGDialect_psycopg
from databases.core import LOG_EXTRA, DatabaseURL
from databases.interfaces import (
ConnectionBackend,
Expand All @@ -38,12 +36,10 @@ def _get_dialect(self) -> Dialect:
dialect = PGDialect_psycopg(
json_serializer=json.dumps, json_deserializer=lambda x: x
)
dialect.statement_compiler = PGCompiler_psycopg
dialect.implicit_returning = True
dialect.supports_native_enum = True
dialect.supports_smallserial = True # 9.2+
dialect._backslash_escapes = False
dialect.supports_sane_multi_rowcount = True # psycopg 2.0.9+
dialect._has_native_hstore = True
dialect.supports_native_decimal = True

Expand Down
Empty file.
17 changes: 0 additions & 17 deletions databases/backends/compilers/psycopg.py

This file was deleted.

Empty file.
46 changes: 0 additions & 46 deletions databases/backends/dialects/psycopg.py

This file was deleted.

15 changes: 10 additions & 5 deletions databases/backends/psycopg.py
Expand Up @@ -22,7 +22,7 @@ class PsycopgBackend(DatabaseBackend):
_database_url: DatabaseURL
_options: typing.Dict[str, typing.Any]
_dialect: Dialect
_pool: typing.Optional[psycopg_pool.AsyncConnectionPool]
_pool: typing.Optional[psycopg_pool.AsyncConnectionPool] = None

def __init__(
self,
Expand All @@ -33,7 +33,6 @@ def __init__(
self._options = options
self._dialect = PGDialect_psycopg()
self._dialect.implicit_returning = True
self._pool = None

async def connect(self) -> None:
if self._pool is not None:
Expand Down Expand Up @@ -95,7 +94,10 @@ async def fetch_all(self, query: ClauseElement) -> typing.List[RecordInterface]:
rows = await cursor.fetchall()

column_maps = create_column_maps(result_columns)
return [PsycopgRecord(row, result_columns, self._dialect, column_maps) for row in rows]
return [
PsycopgRecord(row, result_columns, self._dialect, column_maps)
for row in rows
]

async def fetch_one(self, query: ClauseElement) -> typing.Optional[RecordInterface]:
if self._connection is None:
Expand Down Expand Up @@ -167,7 +169,8 @@ def raw_connection(self) -> typing.Any:
return self._connection

def _compile(
self, query: ClauseElement,
self,
query: ClauseElement,
) -> typing.Tuple[str, typing.Mapping[str, typing.Any], tuple]:
compiled = query.compile(
dialect=self._dialect,
Expand Down Expand Up @@ -224,7 +227,9 @@ def _mapping(self) -> typing.Mapping:

def __getitem__(self, key: typing.Any) -> typing.Any:
if len(self._column_map) == 0:
return self._mapping[key]
if isinstance(key, str):
return self._mapping[key]
return self._row[key]
elif isinstance(key, Column):
idx, datatype = self._column_map_full[str(key)]
elif isinstance(key, int):
Expand Down

0 comments on commit c3d5c98

Please sign in to comment.