@@ -345,7 +345,7 @@ def load_registry_overrides(self, override_path, keys : list[str]):
345345 reader = csv .DictReader (csvfile )
346346 for row in reader :
347347 for key in keys :
348- key_value = row [key ]
348+ key_value = row [key ]. strip (). lower (). replace ( ' ' , '_' )
349349 if key_value :
350350 overrides [key ][key_value ] = row
351351 return overrides
@@ -367,25 +367,25 @@ def load__registry(self, path, registry_type : Registry_Type = Registry_Type.INP
367367
368368
369369 overrides : dict [str , dict ] = None
370- override_keys = ['documented name' , 'registry ' ]
370+ override_keys = ['documented name' , 'register ' ]
371371 overrided_keys = set ()
372372 ''' list / set of keys that were used for overriding. to track unique entries'''
373373
374374 #assuming path ends with .csv
375- overrides_path = path [:- 4 ] + '.overrides .csv'
375+ override_path = path [:- 4 ] + '.override .csv'
376376
377- if os .path .exists (overrides_path ):
378- self ._log .info ("loading override file: " + overrides_path )
377+ if os .path .exists (override_path ):
378+ self ._log .info ("loading override file: " + override_path )
379379
380- overrides = self .load_registry_overrides (override_keys )
380+ overrides = self .load_registry_overrides (override_path , override_keys )
381381
382382 def determine_delimiter (first_row ) -> str :
383383 if first_row .count (';' ) > first_row .count (',' ):
384384 return ';'
385385 else :
386386 return ','
387387
388- def process_row ():
388+ def process_row (row ):
389389 # Initialize variables to hold numeric and character parts
390390 numeric_part = 1
391391 character_part = ''
@@ -409,24 +409,25 @@ def process_row():
409409 #clean up doc name, for extra parsing
410410 row ['documented name' ] = row ['documented name' ].strip ().lower ().replace (' ' , '_' )
411411
412- #apply overrides using documented name or register
413- override_row = None
414- # Check each key in order until a match is found
415- for key in override_keys :
416- key_value = row .get (key )
417- if key_value and key_value in overrides [key ]:
418- override_row = overrides [key ][key_value ]
419- overrided_keys .add (key_value )
420- break
421-
422- # Apply non-empty override values if an override row is found
423- if override_row :
424- for field , override_value in override_row .items ():
425- if override_value : # Only replace if override value is non-empty
426- row [field ] = override_value
412+ if overrides != None :
413+ #apply overrides using documented name or register
414+ override_row = None
415+ # Check each key in order until a match is found
416+ for key in override_keys :
417+ key_value = row .get (key )
418+ if key_value and key_value in overrides [key ]:
419+ override_row = overrides [key ][key_value ]
420+ overrided_keys .add (key_value )
421+ break
422+
423+ # Apply non-empty override values if an override row is found
424+ if override_row :
425+ for field , override_value in override_row .items ():
426+ if override_value : # Only replace if override value is non-empty
427+ row [field ] = override_value
427428
428429 variable_name = row ['variable name' ] if row ['variable name' ] else row ['documented name' ]
429- variable_name = variable_name = variable_name .strip ().lower ().replace (' ' , '_' ).replace ('__' , '_' ) #clean name
430+ variable_name = variable_name .strip ().lower ().replace (' ' , '_' ).replace ('__' , '_' ) #clean name
430431
431432 if re .search (r"[^a-zA-Z0-9\_]" , variable_name ) :
432433 self ._log .warning ("Invalid Name : " + str (variable_name ) + " reg: " + str (row ['register' ]) + " doc name: " + str (row ['documented name' ]) + " path: " + str (path ))
@@ -611,18 +612,25 @@ def process_row():
611612 for row in reader :
612613 process_row (row )
613614
614- # Add any unmatched overrides as new entries... probably need to add some better error handling to ensure entry isnt empty ect...
615- for key in override_keys :
616- applied = False
617- for key_value , override_row in overrides [key ].items ():
618- if key_value not in overrided_keys :
619- self ._log .info ("Loading unique entry from overrides" )
620- process_row (override_row )
621- applied = True
622- break
623-
624- if applied :
625- continue
615+ if overrides != None :
616+ # Add any unmatched overrides as new entries... probably need to add some better error handling to ensure entry isnt empty ect...
617+ for key in override_keys :
618+ applied = False
619+ for key_value , override_row in overrides [key ].items ():
620+ # Check if both keys are unique before applying
621+ if all (override_row .get (k ) not in overrided_keys for k in override_keys ):
622+ self ._log .info ("Loading unique entry from overrides for both unique keys" )
623+ process_row (override_row )
624+
625+ # Mark both keys as applied
626+ for k in override_keys :
627+ overrided_keys .add (override_row .get (k ))
628+
629+ applied = True
630+ break # Exit inner loop after applying unique entry
631+
632+ if applied :
633+ continue
626634
627635 for index in reversed (range (len (registry_map ))):
628636 item = registry_map [index ]
0 commit comments