@@ -58,12 +58,11 @@ def backoff_retry(op, *, delays=(0, 2, 5, 10, 20), retry_http_statuses=(400, 403
5858table_info = None
5959created_this_run = False
6060
61- # Check for existing table using list_tables
62- log_call ("client.list_tables()" )
63- tables = client .list_tables ()
64- existing_table = next ((t for t in tables if t .get ("SchemaName" ) == "new_SampleItem" ), None )
65- if existing_table :
66- table_info = client .get_table_info ("new_SampleItem" )
61+ # First check for existing table
62+ log_call ("client.get_table_info('SampleItem')" )
63+ existing = client .get_table_info ("SampleItem" )
64+ if existing :
65+ table_info = existing
6766 created_this_run = False
6867 print ({
6968 "table" : table_info .get ("entity_schema" ),
@@ -72,12 +71,13 @@ def backoff_retry(op, *, delays=(0, 2, 5, 10, 20), retry_http_statuses=(400, 403
7271 "logical" : table_info .get ("entity_logical_name" ),
7372 "metadata_id" : table_info .get ("metadata_id" ),
7473 })
74+
7575else :
7676 # Create it since it doesn't exist
7777 try :
7878 log_call ("client.create_table('SampleItem', schema={code,count,amount,when,active})" )
7979 table_info = client .create_table (
80- "new_SampleItem " ,
80+ "SampleItem " ,
8181 {
8282 "code" : "string" ,
8383 "count" : "int" ,
@@ -139,8 +139,12 @@ def print_line_summaries(label: str, summaries: list[dict]) -> None:
139139
140140# 2) Create a record in the new table
141141print ("Create records (OData):" )
142-
143- # Prepare payloads
142+ # Show planned creates before executing
143+ for _ in range (3 ):
144+ plan_call (f"client.create('{ entity_set } ', payload)" )
145+ pause ("Execute Create" )
146+ record_ids : list [str ] = []
147+ created_recs : list [dict ] = []
144148create_payloads = [
145149 {
146150 f"{ attr_prefix } _name" : "Sample A" ,
@@ -168,41 +172,14 @@ def print_line_summaries(label: str, summaries: list[dict]) -> None:
168172 },
169173]
170174
171- # Show planned creates before executing
172- plan_call (f"client.create('{ entity_set } ', single_payload)" )
173- plan_call (f"client.create('{ entity_set } ', [payload, ...])" )
174- pause ("Execute Create" )
175- record_ids : list [str ] = []
176- created_recs : list [dict ] = []
177-
178175try :
179- # Create the first record
180- single_payload = create_payloads [0 ]
181- log_call (f"client.create('{ entity_set } ', single_payload)" )
182- rec = backoff_retry (lambda : client .create (entity_set , single_payload ))
183- created_recs .append (rec )
184- rid = rec .get (id_key )
185- if rid :
186- record_ids .append (rid )
187-
188- # Create the remaining records in a single batch call
189- batch_payloads = create_payloads [1 :]
190- if batch_payloads :
191- log_call (f"client.create('{ entity_set } ', batch_payloads)" )
192- batch_recs = backoff_retry (lambda : client .create (entity_set , batch_payloads ))
193- # If the batch call returns a list, extend; else, append
194- if isinstance (batch_recs , list ):
195- created_recs .extend (batch_recs )
196- for rec in batch_recs :
197- rid = rec .get (id_key )
198- if rid :
199- record_ids .append (rid )
200- else :
201- created_recs .append (batch_recs )
202- rid = batch_recs .get (id_key )
203- if rid :
204- record_ids .append (rid )
205-
176+ for payload in create_payloads :
177+ log_call (f"client.create('{ entity_set } ', payload)" )
178+ rec = backoff_retry (lambda p = payload : client .create (entity_set , p ))
179+ created_recs .append (rec )
180+ rid = rec .get (id_key )
181+ if rid :
182+ record_ids .append (rid )
206183 print ({"entity" : logical , "created_ids" : record_ids })
207184 # Summarize the created records from the returned payloads
208185 summaries = []
@@ -344,11 +321,11 @@ def _retry_if(ex: Exception) -> bool:
344321print ("Cleanup (Metadata):" )
345322try :
346323 # Delete if present, regardless of whether it was created in this run
347- log_call ("client.get_table_info('new_SampleItem ')" )
348- info = client .get_table_info ("new_SampleItem " )
324+ log_call ("client.get_table_info('SampleItem ')" )
325+ info = client .get_table_info ("SampleItem " )
349326 if info :
350- log_call ("client.delete_table('new_SampleItem ')" )
351- client .delete_table ("new_SampleItem " )
327+ log_call ("client.delete_table('SampleItem ')" )
328+ client .delete_table ("SampleItem " )
352329 print ({"table_deleted" : True })
353330 else :
354331 print ({"table_deleted" : False , "reason" : "not found" })
0 commit comments