66from uuid import uuid4 , UUID
77from typing import Any , List
88
9- from db_wrapper import ConnectionParameters , SyncClient , Model
9+ from db_wrapper import SyncClient , ConnectionParameters
10+ from db_wrapper .model import SyncModel as Model
1011
1112from models import (
1213 AModel ,
13- # ExtendedModel,
14- # ExtendedModelData,
14+ ExtendedModel ,
15+ ExtendedModelData ,
1516)
1617
1718logging .basicConfig (level = logging .INFO )
@@ -39,7 +40,7 @@ def default(self, obj: Any) -> Any:
3940client = SyncClient (conn_params )
4041
4142a_model = Model [AModel ](client , 'a_model' )
42- # extended_model = ExtendedModel(client)
43+ extended_model = ExtendedModel (client )
4344
4445
4546def create_a_model_record () -> UUID :
@@ -67,50 +68,49 @@ def read_a_model(id_value: UUID) -> AModel:
6768 return a_model .read .one_by_id (str (id_value ))
6869
6970
70- # def create_extended_models() -> None:
71- # """Show how using an extended Model can be the same as the defaults."""
72- # dicts = [{
73- # 'id': uuid4(),
74- # 'string': 'something',
75- # 'integer': 1,
76- # 'data': {'a': 1, 'b': 2, 'c': True}
77- # }, {
78- # 'id': uuid4(),
79- # 'string': 'something',
80- # 'integer': 1,
81- # 'data': {'a': 1, 'b': 2, 'c': True}
82- # }, {
83- # 'id': uuid4(),
84- # 'string': 'something',
85- # 'integer': 1,
86- # 'data': {'a': 1, 'b': 2, 'c': True}
87- # }, {
88- # 'id': uuid4(),
89- # 'string': 'something',
90- # 'integer': 1,
91- # 'data': {'a': 1, 'b': 2, 'c': True}
92- # }]
93- #
94- # new_records: List[ExtendedModelData] = [
95- # ExtendedModelData(**record) for record in dicts]
96- #
97- # # by looping over a list of records, you can use the default create.one
98- # # method to create each record as a separate transaction
99- # for record in new_records:
100- # extended_model.create.one(record)
101- #
102- #
103- # def read_extended_models() -> List[ExtendedModelData]:
104- # """Show how to use an extended Model's new methods."""
105- # # We defined read.all in ./models/extended_model.py's ExtendedRead class,
106- # # then replaced ExtendedModel's read property with ExtendedRead.
107- # # As a result, we can call it just like any other method on Model.read.
108- # return extended_model.read.all()
71+ def create_extended_models () -> None :
72+ """Show how using an extended Model can be the same as the defaults."""
73+ dicts = [{
74+ 'id' : uuid4 (),
75+ 'string' : 'something' ,
76+ 'integer' : 1 ,
77+ 'data' : {'a' : 1 , 'b' : 2 , 'c' : True }
78+ }, {
79+ 'id' : uuid4 (),
80+ 'string' : 'something' ,
81+ 'integer' : 1 ,
82+ 'data' : {'a' : 1 , 'b' : 2 , 'c' : True }
83+ }, {
84+ 'id' : uuid4 (),
85+ 'string' : 'something' ,
86+ 'integer' : 1 ,
87+ 'data' : {'a' : 1 , 'b' : 2 , 'c' : True }
88+ }, {
89+ 'id' : uuid4 (),
90+ 'string' : 'something' ,
91+ 'integer' : 1 ,
92+ 'data' : {'a' : 1 , 'b' : 2 , 'c' : True }
93+ }]
94+
95+ new_records : List [ExtendedModelData ] = [
96+ ExtendedModelData (** record ) for record in dicts ]
97+
98+ # by looping over a list of records, you can use the default create.one
99+ # method to create each record as a separate transaction
100+ for record in new_records :
101+ extended_model .create .one (record )
102+
103+
104+ def read_extended_models () -> List [ExtendedModelData ]:
105+ """Show how to use an extended Model's new methods."""
106+ # We defined read.all in ./models/extended_model.py's ExtendedRead class,
107+ # then replaced ExtendedModel's read property with ExtendedRead.
108+ # As a result, we can call it just like any other method on Model.read.
109+ return extended_model .read .all ()
109110
110111
111112def run () -> None :
112113 """Show how to make a connection, execute queries, & disconnect."""
113-
114114 # First, have the client make a connection to the database
115115 client .connect ()
116116
@@ -121,8 +121,8 @@ def run() -> None:
121121 try :
122122 new_id = create_a_model_record ()
123123 created_a_model = read_a_model (new_id )
124- # create_extended_models()
125- # extended_models = read_extended_models()
124+ create_extended_models ()
125+ extended_models = read_extended_models ()
126126 finally :
127127 client .disconnect ()
128128
0 commit comments