Skip to content

Commit d3aa982

Browse files
Fix example to match previous changes.
1 parent 864b5ac commit d3aa982

File tree

3 files changed

+35
-14
lines changed

3 files changed

+35
-14
lines changed

example_sync/example/__init__.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
from . import models
2+
from .example import run

example_sync/example/example.py

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
from db_wrapper import SyncClient, ConnectionParameters
1010
from db_wrapper.model import SyncModel as Model
1111

12-
from models import (
12+
from example.models import (
1313
AModel,
1414
ExtendedModel,
1515
ExtendedModelData,
@@ -39,7 +39,7 @@ def default(self, obj: Any) -> Any:
3939
database=os.getenv('DB_NAME', 'dev'))
4040
client = SyncClient(conn_params)
4141

42-
a_model = Model[AModel](client, 'a_model')
42+
a_model = Model[AModel](client, 'a_model', AModel)
4343
extended_model = ExtendedModel(client)
4444

4545

@@ -122,13 +122,14 @@ def run() -> None:
122122
new_id = create_a_model_record()
123123
created_a_model = read_a_model(new_id)
124124
create_extended_models()
125-
extended_models = read_extended_models()
125+
created_extended_models = read_extended_models()
126126
finally:
127127
client.disconnect()
128128

129129
# Print results to stdout
130-
print(json.dumps(created_a_model, cls=UUIDJsonEncoder))
131-
print(json.dumps(extended_models, cls=UUIDJsonEncoder))
130+
print(json.dumps(created_a_model.dict(), cls=UUIDJsonEncoder))
131+
print(json.dumps([item.dict()
132+
for item in created_extended_models], cls=UUIDJsonEncoder))
132133

133134

134135
if __name__ == '__main__':

example_sync/example/models/extended_model.py

Lines changed: 27 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,16 @@
55

66
from psycopg2 import sql
77
from psycopg2.extensions import register_adapter
8-
from psycopg2.extras import Json
8+
from psycopg2.extras import Json # type: ignore
99

1010
from db_wrapper import SyncClient
11-
from db_wrapper.model import ModelData, SyncModel, SyncRead, SyncCreate
11+
from db_wrapper.model import (
12+
ModelData,
13+
RealDictRow,
14+
SyncModel,
15+
SyncRead,
16+
SyncCreate
17+
)
1218

1319
# tell psycopg2 to adapt all dictionaries to json instead of
1420
# the default hstore
@@ -51,10 +57,12 @@ def one(self, item: ExtendedModelData) -> ExtendedModelData:
5157
values=sql.SQL(',').join(values),
5258
)
5359

54-
result: List[ExtendedModelData] = \
60+
query_result: List[RealDictRow] = \
5561
self._client.execute_and_return(query)
5662

57-
return result[0]
63+
result = self._return_constructor(**query_result[0])
64+
65+
return result
5866

5967

6068
class ExtendedReader(SyncRead[ExtendedModelData]):
@@ -81,8 +89,10 @@ def all(self) -> List[ExtendedModelData]:
8189
query = sql.SQL('SELECT * FROM {table}').format(
8290
table=self._table)
8391

84-
result: List[ExtendedModelData] = self \
85-
._client.execute_and_return(query)
92+
query_result: List[RealDictRow] = \
93+
self._client.execute_and_return(query)
94+
95+
result = [self._return_constructor(**item) for item in query_result]
8696

8797
return result
8898

@@ -94,6 +104,14 @@ class ExtendedModel(SyncModel[ExtendedModelData]):
94104
create: ExtendedCreator
95105

96106
def __init__(self, client: SyncClient) -> None:
97-
super().__init__(client, 'extended_model')
98-
self.read = ExtendedReader(self.client, self.table)
99-
self.create = ExtendedCreator(self.client, self.table)
107+
super().__init__(client, 'extended_model', ExtendedModelData)
108+
self.read = ExtendedReader(
109+
self.client,
110+
self.table,
111+
ExtendedModelData
112+
)
113+
self.create = ExtendedCreator(
114+
self.client,
115+
self.table,
116+
ExtendedModelData
117+
)

0 commit comments

Comments
 (0)