@@ -230,6 +230,38 @@ def _create_pointer_item(
230230 return None , None
231231
232232
233+ def _generate_pointers_for_custodian (
234+ template : dict ,
235+ pointer_type : str ,
236+ custodian : str ,
237+ pointers_per_type : int ,
238+ counter_start : int ,
239+ testnum_iter ,
240+ ) -> tuple [list [dict ], list [list [str ]], int ]:
241+ batch_items = []
242+ csv_rows = []
243+ counter = counter_start
244+
245+ for _ in range (pointers_per_type ):
246+ counter += 1
247+
248+ try :
249+ nhs_number = next (testnum_iter )
250+ except StopIteration :
251+ print (f"\n ✗ Error: Ran out of NHS numbers at pointer { counter } " )
252+ break
253+
254+ put_req , csv_data = _create_pointer_item (
255+ template , custodian , nhs_number , counter , pointer_type
256+ )
257+
258+ if put_req and csv_data :
259+ batch_items .append (put_req )
260+ csv_rows .append (csv_data )
261+
262+ return batch_items , csv_rows , counter
263+
264+
233265def _generate_and_write_pointers (
234266 table_name : str , templates : dict [str , dict ], pointers_per_type : int , testnum_iter
235267) -> tuple [list [list [str ]], int ]:
@@ -240,26 +272,21 @@ def _generate_and_write_pointers(
240272
241273 for pointer_type , template in templates .items ():
242274 for custodian in CUSTODIANS :
243- for _ in range (pointers_per_type ):
244- counter += 1
245-
246- try :
247- nhs_number = next (testnum_iter )
248- except StopIteration :
249- print (f"\n ✗ Error: Ran out of NHS numbers at pointer { counter } " )
250- break
251-
252- put_req , csv_data = _create_pointer_item (
253- template , custodian , nhs_number , counter , pointer_type
254- )
255-
256- if put_req and csv_data :
257- batch_upsert_items .append (put_req )
258- pointer_data .append (csv_data )
259-
260- if len (batch_upsert_items ) >= 25 :
261- _write_batch_to_dynamodb (table_name , batch_upsert_items )
262- batch_upsert_items = []
275+ batch_items , csv_rows , counter = _generate_pointers_for_custodian (
276+ template ,
277+ pointer_type ,
278+ custodian ,
279+ pointers_per_type ,
280+ counter ,
281+ testnum_iter ,
282+ )
283+
284+ batch_upsert_items .extend (batch_items )
285+ pointer_data .extend (csv_rows )
286+
287+ if len (batch_upsert_items ) >= 25 :
288+ _write_batch_to_dynamodb (table_name , batch_upsert_items )
289+ batch_upsert_items = []
263290
264291 _write_batch_to_dynamodb (table_name , batch_upsert_items )
265292
0 commit comments