From c486029248200a7059040c62bddaf471c43c4c5d Mon Sep 17 00:00:00 2001 From: Steph Prince <40640337+stephprince@users.noreply.github.com> Date: Wed, 10 Sep 2025 10:35:29 -0700 Subject: [PATCH 01/14] device model mapper - wip --- src/pynwb/io/device.py | 239 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 239 insertions(+) create mode 100644 src/pynwb/io/device.py diff --git a/src/pynwb/io/device.py b/src/pynwb/io/device.py new file mode 100644 index 000000000..81198e6e2 --- /dev/null +++ b/src/pynwb/io/device.py @@ -0,0 +1,239 @@ +from hdmf.build import ObjectMapper +from hdmf.utils import docval, getargs +from warnings import warn + +from .. import register_map +from ..device import Device, DeviceModel +from .core import NWBContainerMapper + + +@register_map(Device) +class DeviceMapper(NWBContainerMapper): + """ + Custom mapper for Device objects to handle known schema conflicts between core schema and extensions. + + This mapper detects when extensions define Device.model as a string attribute instead of + a link to DeviceModel, or when extensions define their own DeviceModel type. + """ + + def __init__(self, spec): + super().__init__(spec) + self._model_conflict_detected = False + self._model_mapping_strategy = 'core' # 'core', 'extension_string', 'extension_custom' + self._detect_model_conflicts(spec) # TODO - this is already checked when the namespace is loaded - better way to propagate from there? + + def _detect_model_conflicts(self, spec): + """ + Detect conflicts in Device.model definition between core schema and extensions. + + Args: + spec: The GroupSpec for Device + """ + # Check if model is defined as a link (core schema) or attribute (extension) + model_link = None + model_attr = None + + # Look for model as a link + for link in spec.links: + if link.name == 'model': + model_link = link + break + + # Look for model as an attribute + model_attr = spec.get_attribute('model') + + self._model_mapping_strategy = 'core' #default behavior + if model_link is not None and model_attr is None: + if model_link and model_attr: + # Both link and attribute defined - this is a conflict + self._model_conflict_detected = True + self._model_mapping_strategy = 'conflict' + elif model_attr and not model_link: + # Only attribute defined - extension overrides core + self._model_conflict_detected = True + if hasattr(model_attr, 'dtype') and model_attr.dtype == 'text': + self._model_mapping_strategy = 'extension_string' + else: + self._model_mapping_strategy = 'extension_custom' + + + @NWBContainerMapper.constructor_arg("model") + def model_carg(self, builder, manager): + """ + Handle different model mapping strategies based on detected schema conflicts. + + Args: + builder: The GroupBuilder for the Device + manager: The BuildManager + + Returns: + The appropriate model object or value based on the mapping strategy + """ + model_builder = builder.get('model') + if model_builder is None: + return None + + if self._model_mapping_strategy == 'core': + # Standard core schema: model is a link to DeviceModel + if hasattr(model_builder, 'builder'): + # This is a LinkBuilder + target_builder = model_builder.builder + if target_builder.parent is not None: + return manager.construct(target_builder) + else: + # External link case + return target_builder.data + else: + # Direct reference to DeviceModel + return manager.construct(model_builder) + + elif self._model_mapping_strategy == 'extension_string': + # Extension schema: model is a string attribute + if hasattr(model_builder, 'data'): + return model_builder.data + else: + return str(model_builder) + + elif self._model_mapping_strategy == 'extension_custom': + # Extension schema: model is a custom type + return manager.construct(model_builder) + + elif self._model_mapping_strategy == 'conflict': + # Conflict detected: prefer core schema behavior with warning + warn( + "Using core schema mapping for Device.model due to detected conflicts.", + UserWarning, + stacklevel=2 + ) + if hasattr(model_builder, 'builder'): + target_builder = model_builder.builder + if target_builder.parent is not None: + return manager.construct(target_builder) + else: + return target_builder.data + else: + return manager.construct(model_builder) + + # Fallback to core behavior + return manager.construct(model_builder) if model_builder else None + + @NWBContainerMapper.object_attr("model") + def model_attr(self, container, manager): + """ + Handle writing model attribute based on schema type and mapping strategy. + + Args: + container: The Device container + manager: The BuildManager + + Returns: + The appropriate model representation for writing + """ + model = container.fields.get('model') + if model is None: + return None + + if self._model_mapping_strategy == 'core': + # Standard core schema: model should be a DeviceModel object + if isinstance(model, DeviceModel): + # Create a link to the DeviceModel + from hdmf.build import LinkBuilder + model_builder = manager.build(model) + return LinkBuilder(model_builder, 'model') + else: + # Handle case where model is not a DeviceModel (backward compatibility) + warn( + f"Device.model should be a DeviceModel object, got {type(model)}. " + "Consider updating to use DeviceModel.", + UserWarning, + stacklevel=2 + ) + return model + + elif self._model_mapping_strategy == 'extension_string': + # Extension schema: model should be a string + if isinstance(model, str): + return model + elif isinstance(model, DeviceModel): + # Convert DeviceModel to string representation + warn( + "Extension expects Device.model as string, but DeviceModel object provided. " + "Using DeviceModel name as string.", + UserWarning, + stacklevel=2 + ) + return model.name + else: + return str(model) + + elif self._model_mapping_strategy in ('extension_custom', 'conflict'): + # Extension or conflict: try to handle appropriately + return model + + # Fallback + return model + + +@register_map(DeviceModel) +class DeviceModelMapper(NWBContainerMapper): + """ + Custom mapper for DeviceModel objects to handle potential conflicts with extension schemas. + + This mapper ensures DeviceModel objects are properly handled even when extensions + define their own DeviceModel types or when Device.model conflicts exist. + """ + + def __init__(self, spec): + super().__init__(spec) + self._extension_devicemodel_detected = False + self._detect_extension_conflicts(spec) + + def _detect_extension_conflicts(self, spec): + """ + Detect if this DeviceModel spec comes from an extension that might conflict with core. + + Args: + spec: The GroupSpec for DeviceModel + """ + # Check if this DeviceModel spec has non-standard attributes or structure + # that might indicate it's from an extension + + # Core DeviceModel should have: manufacturer, model_number (optional), description (optional) + expected_core_attrs = {'manufacturer', 'model_number', 'description'} + actual_attrs = {attr.name for attr in spec.attributes} + + # If there are attributes beyond the core set, this might be an extension + extra_attrs = actual_attrs - expected_core_attrs + if extra_attrs: + self._extension_devicemodel_detected = True + warn( + f"Extension DeviceModel detected with additional attributes: {extra_attrs}. " + "Using extension-specific mapping.", + UserWarning, + stacklevel=3 + ) + + + @NWBContainerMapper.constructor_arg("manufacturer") + def manufacturer_carg(self, builder, manager): + """Handle manufacturer field construction with extension compatibility.""" + manufacturer_builder = builder.get('manufacturer') + if manufacturer_builder is None: + return None + return manufacturer_builder.data if hasattr(manufacturer_builder, 'data') else manufacturer_builder + + @NWBContainerMapper.constructor_arg("model_number") + def model_number_carg(self, builder, manager): + """Handle model_number field construction with extension compatibility.""" + model_number_builder = builder.get('model_number') + if model_number_builder is None: + return None + return model_number_builder.data if hasattr(model_number_builder, 'data') else model_number_builder + + @NWBContainerMapper.constructor_arg("description") + def description_carg(self, builder, manager): + """Handle description field construction with extension compatibility.""" + description_builder = builder.get('description') + if description_builder is None: + return None + return description_builder.data if hasattr(description_builder, 'data') else description_builder From 1263c24b6c48e0ec5eb23b1acf42345e9aa5fe58 Mon Sep 17 00:00:00 2001 From: Steph Prince <40640337+stephprince@users.noreply.github.com> Date: Wed, 10 Sep 2025 22:40:04 -0700 Subject: [PATCH 02/14] add device mapper for schema conflicts --- src/pynwb/io/__init__.py | 1 + src/pynwb/io/device.py | 233 +++++---------------------------------- 2 files changed, 29 insertions(+), 205 deletions(-) diff --git a/src/pynwb/io/__init__.py b/src/pynwb/io/__init__.py index e0de46b87..ff892970b 100644 --- a/src/pynwb/io/__init__.py +++ b/src/pynwb/io/__init__.py @@ -1,5 +1,6 @@ from . import base as __base from . import core as __core +from . import device as __device from . import file as __file from . import behavior as __behavior from . import ecephys as __ecephys diff --git a/src/pynwb/io/device.py b/src/pynwb/io/device.py index 81198e6e2..0aca7c377 100644 --- a/src/pynwb/io/device.py +++ b/src/pynwb/io/device.py @@ -1,5 +1,4 @@ -from hdmf.build import ObjectMapper -from hdmf.utils import docval, getargs +from hdmf.build import LinkBuilder from warnings import warn from .. import register_map @@ -16,47 +15,6 @@ class DeviceMapper(NWBContainerMapper): a link to DeviceModel, or when extensions define their own DeviceModel type. """ - def __init__(self, spec): - super().__init__(spec) - self._model_conflict_detected = False - self._model_mapping_strategy = 'core' # 'core', 'extension_string', 'extension_custom' - self._detect_model_conflicts(spec) # TODO - this is already checked when the namespace is loaded - better way to propagate from there? - - def _detect_model_conflicts(self, spec): - """ - Detect conflicts in Device.model definition between core schema and extensions. - - Args: - spec: The GroupSpec for Device - """ - # Check if model is defined as a link (core schema) or attribute (extension) - model_link = None - model_attr = None - - # Look for model as a link - for link in spec.links: - if link.name == 'model': - model_link = link - break - - # Look for model as an attribute - model_attr = spec.get_attribute('model') - - self._model_mapping_strategy = 'core' #default behavior - if model_link is not None and model_attr is None: - if model_link and model_attr: - # Both link and attribute defined - this is a conflict - self._model_conflict_detected = True - self._model_mapping_strategy = 'conflict' - elif model_attr and not model_link: - # Only attribute defined - extension overrides core - self._model_conflict_detected = True - if hasattr(model_attr, 'dtype') and model_attr.dtype == 'text': - self._model_mapping_strategy = 'extension_string' - else: - self._model_mapping_strategy = 'extension_custom' - - @NWBContainerMapper.constructor_arg("model") def model_carg(self, builder, manager): """ @@ -70,170 +28,35 @@ def model_carg(self, builder, manager): The appropriate model object or value based on the mapping strategy """ model_builder = builder.get('model') - if model_builder is None: - return None - - if self._model_mapping_strategy == 'core': - # Standard core schema: model is a link to DeviceModel - if hasattr(model_builder, 'builder'): - # This is a LinkBuilder - target_builder = model_builder.builder - if target_builder.parent is not None: - return manager.construct(target_builder) - else: - # External link case - return target_builder.data - else: - # Direct reference to DeviceModel - return manager.construct(model_builder) - - elif self._model_mapping_strategy == 'extension_string': - # Extension schema: model is a string attribute - if hasattr(model_builder, 'data'): - return model_builder.data - else: - return str(model_builder) - - elif self._model_mapping_strategy == 'extension_custom': - # Extension schema: model is a custom type - return manager.construct(model_builder) - - elif self._model_mapping_strategy == 'conflict': - # Conflict detected: prefer core schema behavior with warning - warn( - "Using core schema mapping for Device.model due to detected conflicts.", - UserWarning, - stacklevel=2 - ) - if hasattr(model_builder, 'builder'): - target_builder = model_builder.builder - if target_builder.parent is not None: - return manager.construct(target_builder) - else: - return target_builder.data - else: - return manager.construct(model_builder) - - # Fallback to core behavior - return manager.construct(model_builder) if model_builder else None + if isinstance(model_builder, str): + warn(f'Device.model was detected as a string. Remapping {model_builder} to a DeviceModel') - @NWBContainerMapper.object_attr("model") - def model_attr(self, container, manager): - """ - Handle writing model attribute based on schema type and mapping strategy. + # replace the model string with a DeviceModel object using the model name and device attributes + device_model_attributes = dict(name=model_builder, + description=builder.attributes.get('description'), + manufacturer=builder.attributes.get('manufacturer', ''), + model_number=builder.attributes.get('model_number')) + model = DeviceModel(**device_model_attributes) - Args: - container: The Device container - manager: The BuildManager - - Returns: - The appropriate model representation for writing - """ - model = container.fields.get('model') - if model is None: - return None - - if self._model_mapping_strategy == 'core': - # Standard core schema: model should be a DeviceModel object - if isinstance(model, DeviceModel): - # Create a link to the DeviceModel - from hdmf.build import LinkBuilder - model_builder = manager.build(model) - return LinkBuilder(model_builder, 'model') - else: - # Handle case where model is not a DeviceModel (backward compatibility) - warn( - f"Device.model should be a DeviceModel object, got {type(model)}. " - "Consider updating to use DeviceModel.", - UserWarning, - stacklevel=2 - ) - return model - - elif self._model_mapping_strategy == 'extension_string': - # Extension schema: model should be a string - if isinstance(model, str): - return model - elif isinstance(model, DeviceModel): - # Convert DeviceModel to string representation - warn( - "Extension expects Device.model as string, but DeviceModel object provided. " - "Using DeviceModel name as string.", - UserWarning, - stacklevel=2 - ) - return model.name - else: - return str(model) - - elif self._model_mapping_strategy in ('extension_custom', 'conflict'): - # Extension or conflict: try to handle appropriately return model - - # Fallback - return model - -@register_map(DeviceModel) -class DeviceModelMapper(NWBContainerMapper): - """ - Custom mapper for DeviceModel objects to handle potential conflicts with extension schemas. + return None - This mapper ensures DeviceModel objects are properly handled even when extensions - define their own DeviceModel types or when Device.model conflicts exist. - """ - - def __init__(self, spec): - super().__init__(spec) - self._extension_devicemodel_detected = False - self._detect_extension_conflicts(spec) - - def _detect_extension_conflicts(self, spec): - """ - Detect if this DeviceModel spec comes from an extension that might conflict with core. - - Args: - spec: The GroupSpec for DeviceModel - """ - # Check if this DeviceModel spec has non-standard attributes or structure - # that might indicate it's from an extension - - # Core DeviceModel should have: manufacturer, model_number (optional), description (optional) - expected_core_attrs = {'manufacturer', 'model_number', 'description'} - actual_attrs = {attr.name for attr in spec.attributes} - - # If there are attributes beyond the core set, this might be an extension - extra_attrs = actual_attrs - expected_core_attrs - if extra_attrs: - self._extension_devicemodel_detected = True - warn( - f"Extension DeviceModel detected with additional attributes: {extra_attrs}. " - "Using extension-specific mapping.", - UserWarning, - stacklevel=3 - ) - - - @NWBContainerMapper.constructor_arg("manufacturer") - def manufacturer_carg(self, builder, manager): - """Handle manufacturer field construction with extension compatibility.""" - manufacturer_builder = builder.get('manufacturer') - if manufacturer_builder is None: - return None - return manufacturer_builder.data if hasattr(manufacturer_builder, 'data') else manufacturer_builder - - @NWBContainerMapper.constructor_arg("model_number") - def model_number_carg(self, builder, manager): - """Handle model_number field construction with extension compatibility.""" - model_number_builder = builder.get('model_number') - if model_number_builder is None: - return None - return model_number_builder.data if hasattr(model_number_builder, 'data') else model_number_builder - - @NWBContainerMapper.constructor_arg("description") - def description_carg(self, builder, manager): - """Handle description field construction with extension compatibility.""" - description_builder = builder.get('description') - if description_builder is None: - return None - return description_builder.data if hasattr(description_builder, 'data') else description_builder + + def __new_container__(self, cls, container_source, parent, object_id, **kwargs): + model = kwargs.get('model', None) + + if model is None or isinstance(model, DeviceModel): + device_obj = super().__new_container__(cls, container_source, parent, object_id, **kwargs) + else: + # create device object without model + kwargs.pop('model') + device_obj = super().__new_container__(cls, container_source, parent, object_id, **kwargs) + + # add the conflicting Device.model object as a new attribute on Device + # e.g. Device.model in the file -> Device.ndx_optogenetics_model in the python object + warn('Device.model was detected as a non-DeviceModel object. ' + f'Adding it as a new attribute at Device.{model.namespace.replace("-", "_")}_model') + setattr(device_obj, f"{model.namespace.replace('-', '_')}_model", model) + + return device_obj From 0084b3467598febd2972b47b46a1fa86b33b02fb Mon Sep 17 00:00:00 2001 From: Steph Prince <40640337+stephprince@users.noreply.github.com> Date: Mon, 15 Sep 2025 09:30:44 -0700 Subject: [PATCH 03/14] update warning stack levels --- src/pynwb/io/device.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/pynwb/io/device.py b/src/pynwb/io/device.py index 0aca7c377..7fcde29e7 100644 --- a/src/pynwb/io/device.py +++ b/src/pynwb/io/device.py @@ -29,7 +29,8 @@ def model_carg(self, builder, manager): """ model_builder = builder.get('model') if isinstance(model_builder, str): - warn(f'Device.model was detected as a string. Remapping {model_builder} to a DeviceModel') + warn(f'Device.model was detected as a string. Remapping {model_builder} to a DeviceModel', + stacklevel=3) # replace the model string with a DeviceModel object using the model name and device attributes device_model_attributes = dict(name=model_builder, @@ -56,7 +57,8 @@ def __new_container__(self, cls, container_source, parent, object_id, **kwargs): # add the conflicting Device.model object as a new attribute on Device # e.g. Device.model in the file -> Device.ndx_optogenetics_model in the python object warn('Device.model was detected as a non-DeviceModel object. ' - f'Adding it as a new attribute at Device.{model.namespace.replace("-", "_")}_model') + f'Adding it as a new attribute at Device.{model.namespace.replace("-", "_")}_model', + stacklevel=2) setattr(device_obj, f"{model.namespace.replace('-', '_')}_model", model) return device_obj From f68197ec9d88819da08e26aea593b5ca4dcc672f Mon Sep 17 00:00:00 2001 From: Steph Prince <40640337+stephprince@users.noreply.github.com> Date: Mon, 15 Sep 2025 15:16:52 -0700 Subject: [PATCH 04/14] update device mapping warnings for clarity --- src/pynwb/io/device.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/pynwb/io/device.py b/src/pynwb/io/device.py index 7fcde29e7..e6f534fba 100644 --- a/src/pynwb/io/device.py +++ b/src/pynwb/io/device.py @@ -1,4 +1,3 @@ -from hdmf.build import LinkBuilder from warnings import warn from .. import register_map @@ -29,7 +28,7 @@ def model_carg(self, builder, manager): """ model_builder = builder.get('model') if isinstance(model_builder, str): - warn(f'Device.model was detected as a string. Remapping {model_builder} to a DeviceModel', + warn(f'Device.model was detected as a string. Remapping "{model_builder}" to a DeviceModel', stacklevel=3) # replace the model string with a DeviceModel object using the model name and device attributes @@ -56,8 +55,9 @@ def __new_container__(self, cls, container_source, parent, object_id, **kwargs): # add the conflicting Device.model object as a new attribute on Device # e.g. Device.model in the file -> Device.ndx_optogenetics_model in the python object - warn('Device.model was detected as a non-DeviceModel object. ' - f'Adding it as a new attribute at Device.{model.namespace.replace("-", "_")}_model', + warn(f'The model attribute of the Device "{device_obj.name}" was detected as a non-DeviceModel ' + f'object. Data associated with this object can be accessed at ' + f'"nwbfile.devices["{device_obj.name}"].{model.namespace.replace("-", "_")}_model"', stacklevel=2) setattr(device_obj, f"{model.namespace.replace('-', '_')}_model", model) From b7bcba6917a5ed918c27b4f86ce82e3ae7a91925 Mon Sep 17 00:00:00 2001 From: Steph Prince <40640337+stephprince@users.noreply.github.com> Date: Mon, 15 Sep 2025 15:17:18 -0700 Subject: [PATCH 05/14] add extension back compatibility test files --- .../3.0.0_fiber_photometry_extension.nwb | Bin 0 -> 238624 bytes .../3.0.0_ophys_devices_extension.nwb | Bin 0 -> 226176 bytes .../3.0.0_optogenetics_extension.nwb | Bin 0 -> 228160 bytes 3 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 tests/back_compat/3.0.0_fiber_photometry_extension.nwb create mode 100644 tests/back_compat/3.0.0_ophys_devices_extension.nwb create mode 100644 tests/back_compat/3.0.0_optogenetics_extension.nwb diff --git a/tests/back_compat/3.0.0_fiber_photometry_extension.nwb b/tests/back_compat/3.0.0_fiber_photometry_extension.nwb new file mode 100644 index 0000000000000000000000000000000000000000..c796430f2e0cde7887fedcac9ea9d8087faa5dab GIT binary patch literal 238624 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 literal 0 HcmV?d00001 diff --git a/tests/back_compat/3.0.0_ophys_devices_extension.nwb b/tests/back_compat/3.0.0_ophys_devices_extension.nwb new file mode 100644 index 0000000000000000000000000000000000000000..028978d5f17e921bf96ca675b72af66a5f4e7c93 GIT binary patch literal 226176 zcmeFaYml7Tc^=l_k`^S9^2(B^m1R4hMwgitrw4PxU;v3Euoz$gYZnUvv*b!xWYE+7 z%}fhD-OcVE3}z`h8%K7nQYnY7a#d(mxr+J6+$>i7N2PKqOj1cURr$gEKz{5%#Z!9< z^ZM$9{*DFV%(rHKX(SC0n9Vo+PLI*zD>-@Y&KaLK3ue7gx-#sfjFb;pq`n=-rcsXqKZzzPE zem!q^P1^r(L7(-m#`T;(>DK#Jj0z5{T^pfydpd%zlsp>{r#3*R<2X2 zeCOXNKIeSsS;=|2zt2}zt>G8{J?+o?S+(D9{R6%Jt_|n>YsKg0?f2a~dVR(kc=Y#+ z&%I~AzxAG8-_ftid6N^p-*4T}8}GlW-*@fCcmARN_UC?Jzt0;T{HETneCzj%&wbZ^ ze{f%~f8U;)H$Lj^&70xp?w&s2{Pxjh{q4`aXTQJoJ9^#e?fVP*`*l5-<&ED!bMOCJ?EBU0Z@eaBFhR=4!{_*U15MX!t!%5gnfJ2YP9w+PonF@I4m#U; zJI7s_p$)G>8HS%XZdMl-mnsz}|7Jd|+>~}+ueJBKYW2ZhFYoE|pVY6)&)avq@wD3M z?i}>1F3IT)cYFGCHa=vzxU&eedFRoNKmo8tfuGZ_dOUsSLt)sb^{nO=;*?k`8=%qjr%%(H;ekZzgFu5 ze})0z^Km$I+Ih9R(;2Asv=ZRr>)v8J7^}DI@EwOQzhLun^)}A$zD&zt zvbc?{!oIuv`np{I>-PLn@Un210N=uV z99U?}$ZN&nwQ_M~E3YqKsxB;Dx?Ek}sx4GE7nU}wEBWTi#nt8IrG<+*hwwLT9537V zTC={>>on`xZnM`L0kI;sRl>gX{kHbH!p+&5ulMWPTnTEGN@o2Y1qUOM6>rbSsqIEU zOj&ylhy2neC`zqS-K;GvRF`X8o7Gz5@@93Zw!E;gvT%8Ee!k9Ee%;=y+V?B9c7sIK zh;3_7pti$1&--(F^@T>mRV>PcXFD)-rSGQ`L)y0*S&Bf)drLFl(f+xRi?K^yKG`91T zz{lyC!{>&;Z$v7;{4<{L|wR+g5wR^*ihd(Y`&uerT5z_mrY?)zi2mv8UZDwQR>e$=`y+jCCW zg|XglgXpS=Axsj__;~Z$rTIKxs#oi)Sk&c}i;e2#`NeuQ-&(zNdGYdQeRFGtP0By` zc0PsWxPOORcln~+y2OX@Df3;GJBB3=m!poFkBL>WU)^FdE%tYX|KQ{ESy;?B7nc@l z)%xYUQC+^cwN<^mIe)QwX>(z8F)%5&V_kwclm2*xoY=)9-H;8mCZ}}a&GQYC4Sgmg@Yy!`gR;#te)jGt}ix-zy z7O{60WGnujz2|b;-O|Kfv-?gj@9wqwc_Yh*#5hi`hdU*P`ntV;)ci~ht2n*ae#*0i z++UjKW$c$rtE)9^b?zsK;nmvmQVlc4uG+d>tJM~SG~KoLeElE~71rtf^=Ea3Zb#dWRjazMg zz6NSrsk~|L`FtR!6z20KyYF&<%NH&OjmE}GMWwtb7mt&B-?H|dj(htmzf>xJVE27q zOPkB}+ExSl(Z!3v$JP18YHbNZT%!)%VF4P_$|WKFe`xPHyeN016MJCyU5*$f*NmFm z+xFg3>-Dho+>qR1_y0}%4)a@CTv@IyT&m8mVzri6w;-QxUS6p#)$`@Nu~KhrUEbm= z8}^>hk8(pgzejf8=Qm0&88tsa3cP#N{6wipo*R-ItbY+A@wd-!e*W_6%KYWU>cvYr z^u5}$=zB}mmF2~YOOQt|ZZ0{?lop&$xqsnZ6U@J9f^@Vqd`A2lyVR{W+Izb&1F(Uk z{2JtcZfE!e{vK+tWC1v;y}y>U_d=n)UzG9HJH33P(X8!4U+Qf%+Z%hkcna{&zGyo7 z)yneER+j%YU&iO0e%ZeVSL678LH#&;yLpeo_(rV@*$0LSee|gI{_G#~^FMqsw)ZpI z9!A#hlH=>=sQD649Dbj~-?6>Fs_o@_y-uSxsBH`mx@hzy?R~1yo{q1x`A1M$H<}F{ z-jVGQ?|gh*>vOPV5T-6Cxc%z8Cis1wNPy48Zmn>b{5u)~^wjzP`=$szGJK8u2!SLx6q95ckZp& z-r4E$XGgVnLb{ypclw0m_;kN-*J$HtHwU=K&r$S^?APZ@9sSc4H3yxmd`jpq+haRp z={j$Q&mUa<(enw_N8GjUl>H?0rf<9q$MzZQGW4m(_D)CFQ~vv_h4#))*Xg65&~*S| z@)-+(adiC$?l7}ApBG&($K}QSbUM1ucmt<%G-=27&Q8~9%Nc6#gmj&cLtVoofAM+op>n)=+;^wr zL#dtW*D?6m-s$)deFx4r=zAM#?+kqCHw*3Qe77WS(5397^$YqUe09-c+wbIadI-4R zqnyta>Dt-(6@4H>?VW*N%@*1_JHH~Y{&eLn0phvJZ;Bq!Z*{u)Mvh#U_Vz|Wc>@1J zL{J@kh%X$E@2rFGc>B{y`~5);an*&EI-Ha$&41_8r?V-p>#0_xTciEz6IY5Ab99 z?ebq4UQwR-o5J@4<=IdRb+i zahw`w*tMLf4H%-)DD3CDut&9<#;Y$%yI18!uj|vuyK1}GMeqwg$D8k`6S?efl;9Xf z+IT`S>O}3HKTf;5trNHVL&$qBM~)qDt$X5jD;Te@``PU-OMriD?{sqC&!G*syDS&l zJG zPOF9XPPb0!e3{Ex9^YBybLM`IiywUNE4Yb|#}6JQ$AA5?KA-8=)U(@I2O)j@?Drz75smgck!h2@dbvdX^e_THMzzk^q zTsi;iyVlN`J)y*um zr_KH-mFRf-K`PIjP9Gv!a(VD~@OK>Nv(tyjQli|&ynyqS{Z8*O4cCn(Y}gj1L>1#=5fsNC2$(g`lz#D3c*gPR^Y}Zi``Pt@FBIB4oj$-E6(1i%!pq}3i#~7_ z?fC~eFa3Z;0HR-agX&njtGwt>MS19vH}H(VonDpYvIv*6>zUUu=GdO^*OS#9q<_QL z?Uh1%XUD7Sh4xN|S3jGKZ>`YY+3f*0(B4t{F?H$E$R{t0e;WObk3Wtx|zvKAL_e*v&XCf1R^Wnk} z=Qm}0XQU&i<2RqdG@UN}9{!H)osQqIMuWHaTA{rUE59LiC%;iUM>nrM-srNZB7y<) z-nQ^D5ZL4MovYTK#=&cQk%=9@9UqtJ_cEj&P8K9%z4eZCf`5)`kI%jPCttW0*Y)iD z@O88q+dCaUOyl60@)6rRJ3nMi%5i?azxWf}#OJtvzV5%H&rkTK!r|lgZ<%kd8US80 zyl{Ao<(pF6K4h``W5FMmc>|^IiJn#h$SHq1-z@tbBfU8t-%R5aXyJ|RosMs2Xv6vD z?-$xTJH5VFXzz6NI+YXd7uq{JytSN3UP{I&R`~TzdW8f1uA#=(WP( zuI#%^!h=ey|dHnw+ro^j$X3{rH}7np}n)yYo^4Eqt{pe1Kh;txb%95!a6<^ zdaZEyxcxhhUeElaA|#vy56Ra#4#wIzIlcDQ=@4jguGg5mR(yW8CdZVIFwCH2zWJmUc&sSFSt1e9QlktCN4u z3IXSn<@07EUpqUWWGZiL@9cc?QK7xF^T}GFy|eSl%|d%;=aY4`$NH#(`iB3k6UWav zt6S&W!oOd@eg6F`_=i4z{$KAYhx`;cC4Yb76MFf)wfDlgAO2%p#)ogDpOT>>z4c@G zJ42u6|4cjPJjR_L%;)%7oL{_HoxfaNxVXNsd}V&=%Ee1_OE_R}X{9=U>B{{4C-kv! z4lZjR4shUvp9}ng-De#;e)_o_pt?~$hr`k{Dw#Z0=y!1;^t-rv>Eh?+=g}|oNcqX+ z-=m*rekecw-s0Tq+&q3WUX~y4pXU(qx64C*|IU|R!BL!f<)?WQpWo20%F^<3esO*g zr#vp_IPbC1s8?4n*Osd|uy3WlS=(A#xh(Ddj6MGq1K3xmc=%60AM~fLJiw1med@~8 zwRTq9?4w#qeUR~X#|h+wOYWfMst^#HKm!Z#F2KVU419-b+RY5)?VJ9 z;zLAO0DKQ&V_XNp>h&GYr?t0hXHVyX94y?7C*?RpyiANZvd3O$zmEeDfeSd+x;E%F zpJt!S77pzgukgsk{At$hFqW-Hbcua;2fgEUJ!-OHcBPxeAtoIX^ArVjy8|q{-5w|+ z&UM7$Vm)jyj#sBPmkCzZdbw;;Ir>p%&V-Fdt=Gt|-@iu`!sD~qK2z{ZU>5um0A$5h z4CoK=4FEi7KD^?8eQx35!;JeLAa3^1UJt|TcBG7wt#hd@&S^|TMH+B4>S8{x%c^3D zY6C3q=H39P5$Pi_NsuI)iD*cqn9bsEMYaCRL{T9c23dn@Tz*BjA*6LITpWq?V|tr< zh%LrVMn57ye@Nzv&sPQ6pY+dRl_t-XE| zgYDN*VxcBL(70f1noaCdMO!%o9ajdm%~t7>PFv8;@O`JTyHy3sp=UI_g?+tYci0!` zlHGX%`i%m>Xm){IlB=;d*y;4R{jaqfy?j4g?==V9;cv8>csjecmv81R{JwWkYiF+= z;ICJ3)I1NZ#Fpa*t&{fG2W+DDM_Agy;A(5LHMiY)f@eEDc|W<*YaJxNHmL=np>RoI zP59ET#Ls^i;7x=KL@XsptLRB7l5DKOPHn&q2nO5h>}IuWtNE1sFdqT9+|WWDIm;OGAx$%lkIzHXuiWTMXA01HGAWVQNN_L_Qba;7zt zX0v>5du|q|4K$i}@^$Wv%x*{W^-m2|X^HzK94cN(m700&C{1 zi_e&-l|O0L^Kmd=%R^F)QlH$0nAQ5gvOKSnTxWy)>0mCqP4Yyd4Y{V)KEN@?TZ4Vj z=?h!U-Y);ZOZ`s0i4ZXrf@Fn!%3Lk33*T*Iwqr$f!%hVssbe2*qKO8n3DDH!*SY;# ze?v=7q1lbi1A&IJ;zT5uvVfJ zug_+8Tlv#Ydp27KVQE3?O$L%Sal(;^naY{L4310&R~=jcS#5yC+I8a$zBZ0NckjKj zv9PhcF^|J@Hx@9!*WRjr>24KAJTF|le`Ds-#h0ryi!1Zh)%llaa1L^HVgBXn()@gN zX5r=QZ``@Cw76US(rot1jeD9C_7T;5eL12%dokZCl@{J$a+)mTc^Ml7rKjH8=sl9CGBMA@3sYDEs zOSN{bbZd9@I*rQt|JeQ*^EG4F ze_)0=pT~=4aGN)U?5REX(tk3hA-nu_`=0qv4}b1`yZzR$=pWwi`M=cPGyhz_SM9lP z**N^U@7nJVOc4H-J@@@Tw?EGKb$mK@(tW%7k=(a_p6NGjUG5ruqkrXe{t()Y-JVWc zacu8&{t&j|?VT^QcY1$_x97HNG#ftLCVro$Y1--iH&wGN`OUeeziCUSJ=>pWTmJ;^ zl^xq0#C6&k{XT7vw2Sy}ZUO4;{+qh|zrsUL|1bQ358wZv@sI!J`2JuDu?;`PJ9?k` zqrcCs^!M<4W-;FXJrsrZ-+ceGcj9l(@6T^lDsTO>`25zd#@~E?^LHziAHK%Fw7;G0 z_?uV%5`*^l+1^cT_#awvF1Gq7NR09Ogx{ayCI3zM{e2X{cz=;^YWrWqOMc&d7IJg) z&jbP!2uvU_fxrX;&kzDf)fxEqf2p0h9QzEro;39lfPlvbe%r?Ca`Wnf%1qB|3Lane zo^|jo6~Q21&&!o_h{QOL|IJa6ZFTBCj$g(fl$(8YQ9nB;*C3wC$J>ADztG>ShUZ7^ zhrjr5^m+C%`F#8!;QQe%oBE6P{g&a6Lqt5M_~Cd6HRDVlwTpbxu)k7y?_X(i-u}1k z_jj#F$IlN;-}UFp`0o4R*8f^;uWP@*{=eyUr~lu6L0j_ny1)H`Jn-~_U(x43tpAb< zaHKwOrvur4r6ay-`}-(5@Zx``&-?m+Sm!$#*YklunGPsds#G2s{&=qp)!^R}pn-3V z%BWPtciXM`@fLwj%=n9AzRP*3Km3k9=)13s$77oL*k3-ree|S$uUj8U`>695=Npy( z_HY!*?Dp#aa`IYnHes1bx>L zht@?95Z~1xs@sfNokdJqua8)8?@wZdS{*#a_#eh1dWcQhhlB*>wfYVMNAqr03ondn zEvx4U<+hNH7Q?xEnJ}w48wrEVB%BCgKpn;u$>tf7K$mxAK2K^rfdq2Dwh>r|fZrNor`y|%i%texm@)z; z5yP54B?J-Y%eXvr69dxNFCzT}oKGY;PhdGn9(gc-B^l_0`G*hnr9R@yB*vXFAt8?h^~i+hhT3I+Zf5|Z!yL@hE%@kD4hV5ac4Ne3-M1S3_(~W)>LqXA(e zKN@>LZ4L+&m`vbcBs0?xoNNb)Yqee-lLl+=sn6Vg^lp>5S z*0Cv3`f8Z6vM)g}!TvGyh)E7($x+%co&o^M@#i2%mH{Sfb6W3Xh|@J|ZnIVRFn~Gyyx)#6(FLX|~DP!;UlV#aso5I}#$_YHqi& z_dzfTiL!t@bA1m9OzlDIU>5fUy(H+F*%uU3TfmWQuS-6D?e1+Zb%u1C`eTt1@-{?^ zdj7Id4G31D_bB)_np<*8DHBPU;1;seOoG0~@N>^E(MNRbHoN{f&L+}3_AH0Z90AU? z4Iz@hK$kRfJB(;9gZR}0tH4uCGvGWB`Hxu~Br)6dJtTYXCh}9DO*1z7myvPVgNl;w zB#7#uIsLtEx6>Pd0i=R{zyQrYlR+CZb;?bS1pURq)Nj6n_SbEAqgtD#et~xq%BWeV zn3Lii7rL0377ja+5$0uv)yVw z=0K>Lb@uSQa1)XgX4{b~0-qT6+1c*w3F>$*Ef}*fwQ6Ups>xm0Jw++R!9x{rdq-p( zq=&UjTn@bJPWjC7!Xc;s&htJQI?LqA^RuZBWwhXKU zdxY9eEMk8bE2Kmo$c1AWu(DwEfLyDC1$FQNT>ycuE)YQ3$bnm1f(Ak_k%ZISY_^a( z%_S}3=qRD!dPw00y#{+rGtyG3F-{s-$KDmww=xaSST(wdWii4jSZ_-WfV%vrQOj6u zAa}1pONA!j86is89j-_}QCyf3H5Un$WAmCftQjP89x5qdn4XY6j@uqCCZP3HOt56& z6n>OyQ*#peNVC2N`wVb?kZ*T-2eODZVjWM8{Uq$L&=OuHw=<68nt@`(>u=s)mu+Hf zR0Qgo=3G8En_(NPYTIZ2QOvKUB>6HE+K7P4kkbCJLqTi6k}XgB_(Mun=rBpZdK~P1WX$t{v08*q>m@5-09^AYK$0iO5mM=Ki~C&909b8`U@t;0%TY$ECdV%ush1C za?#TEipxc4vxY<_h;bMO7-JH;mxH?tjRqZ7l22B)SZ(D`a-&hi22&+{j6(9zVG&)D z;Y+mya&R@6i2Nq~aj7BR7@s0AMf3tB2>``xib66K!9`Qgt6D1&U~%{Ona ziKCij!4P*O0}W0auTLpgWyk{4L&q$I9`r>EG@vbmrQ4*QQsVy_hFBPwxcS%;97lv0 z^xq>peIAgKa5WTEf>V-q=deggghn=V{mpx~Zv<~YI6kb*^dgFeFRwj-jT2SZ9$tB1 z-c2O(V98^c2g0YcX4LeZ>#yA2Siknx8+Wc;UYTE+POw2+9tG53#pOo8XoB5aU%^1c z8X_({Sk4otv)Vblh!&u{+l7f7?iN^y=4?zmgF&}{<-&#i{r$OieX}{&Ztc#sn>#FO zcVWGT>QwwY`$d%foI_7t{r zmxilkPnr3ad*o&AB;P;?#li}}T2uxdE2S2|sE3XtlOAl?Vw2>>M`3t?kGePboYWjQYJ~PN6e%H}I$i$}=N&j31WvNVBjAX-(rHCtx{u1vS!@L&5h=Z^GFs6eRko*lS8D;v{9{Lz5dx^^N>V2&~%7 z6(hvVYy8Mq5jM9GucH}|HNr6jBlNT3n?qaOP}(=U_3YbSFoe34GM zyT~aI=JK4ON@#IE8c20g2~hRI;Xn-wD0OUaxafG#MMtfqeBXm5Sk=|ay!KH-T3v4{ z8z9)=G0Dde?MQbTAa2``xYbnTW|YJe#JosYsUg$W9_tZv7D@Tx zFc1i>X(?fmxV;c@YTqfAD0VpnwZ5@lw%?_l!aE}h6Q`5KkYagaF^1yG8OsyTPND2H zNYQ?F?Mdwb*%AzM7Yh5#3Kq{!?E=VbdqfRmuJZ@32=d3|^Aih!=VuT3)<@DFGS2@{ z&Szgg!hd%Dle&S<|HNX>WMYRwpzMEe|Jes2vs&Nwb6=d?-a4$&W852uzg;_D=<8N5 zLGkw!WBtF6{)&$1srC8Nt11cn#WBV(dE}!H0mt7*hM3>8DRplv9*o7aQvHo_&wYLN z1!?iybNcNNEBnuGmCnT~`SJC?_(<|~#j8(M-ZwBkdbx;qMd)eGCSJSy zDW}ZkC-nD@U7ndg{5kit&HVP^&pEyQ;hJk+qx=1FU3GuayHh#>pAGAv@`H?~)JbGH zG*D2FagJE&gp0%&H0JaR93ruX-t_bbbzcMr%6+8sAtIHrruf$km+SEK--o{+{)%ai z69=9k{%<-Ir=Aww6}ouHV-E(cMiyTd1$HR8N362Uc+gY{jfO>X0?bP2HZdWTb`V^{>)HmnDn(`?p&p&r%(u>$7Z zPMzjU(`+SH|Bw!$k|#4n6L8K+I|{<+i-=7M*rey!ZaF760u9dqm^NKCP4Ng8fI#BS zuj`3i?vx8~7eit#9oh^%7|4RU32TQ0&Bi`-#7SO_#^P!Oshan+Fu6?%i!X4Yc?p-8 zmZ>r3uty*}h1Lgx7k6QmK%BE?StHhbpLzd`IY;3C<{#m5w8yxqDvnC5FU1sJHmi$9 za28K?QM`|n7=A*N@?!`0-0GUVl=>ZGsR~q^V8Wl&rkGtS{8~nF06$gj!4!QP2U3MX z|H9(UX4|vb=BR7PCeo4=wz_g^PqU6Dj@rXf^$g;1cx!G*SrtvZyfj#XbUc@|J zepxo^s14!3wQY{!6tPAmk4ocdVTLkA za5xPU14oxPm`Vdg@5=7ANUVo2SkjO2@Kj25*4i4`I!;-Lzb+lxXjZA^I zb<1Q4z5^42fD;l#B4kJ00|9Y+HO*I?%idt>UL3WcFouJ02xfhuQ^^Dt+y}K1G@mBy zAyJ{{-A-S?3=%8V3*eH?x_dpMN$Q~D3qX`4#p#Qh!-UnR5T>ULT7H}`u9Rb?e;>C5 z6F8HcIzj>^XNTG^U@Pvd-F{swFU7}_8{tpXUmEvv@=W-1IVsmfybfpi$q(ar5H%L6 zYqQ8w!av}5!uOV|YokR?^YGSMB3_348CfvCAu9#kFI7kqgvd6Lv-DvLD3ryocx@@y+4%KJ~6?3ZRS>xoy)rRK7LM*L>vM+&&xrJv@FcLhAV+HEe-- z-*87HQ?9ZJpCEF5Ej+NWQr!foI9^oF>Sr_fYheY6?UZM6c--uzl~oQ-{<>r_8ZmpF zw`$qNFWCz-)x|mdz(syT7*i5y^BDo$ZD#vnT&wf*^KS`>(D14PYz%rRZNiqfQT|7A z#GUvQW^W~R@SGl}h*f{mX<-4;3C4tD?l7SX>@NF!c6sjN(#oa0dO1PExG0CoHZC_o z1TjHfI-a_MW9%Z^jA+Yh1{hOV+S(TIBkKdL$t6Z00}{`15BbzYzIrF`)eX5uW5oJC z@kh>N&7Yd?Cn6)J4gCOhFY;`r_VS4BxQ9Y;Qi6iAxUw_DYetWtbPOs?6h|wtl~iyp zh#{*k^~~nWimo#DhOGgo=sZ(44zmCEdcvFPHM-8xk8W_}cGIyfp+OK}S*6Os2In_| zLAe)`#nR_bwNUegg<>{37%n8P8cTK{CqEQ@0AKT>T!vgmZBWdnkSQGZDb|xC_256k zsJ`PGqBP>!yRE#2UbzBtm=*Gzu^WY!gM?}^JMb22_6YRhV_=N!4kLH4u#elFeJ41U zZLQ_`+HyxLQB;AE3B*pO77U>`TZ{NDN2+tCoDM+Ohtpk3lR%ux_B%ZZMF??Tq-h9U zz)``Ngn`Z=>Yja+Yhn;kra=dC5ZMqHtZA5p4*hk zPM8bf5FQ%Yrb(`mOv*llqJsJXeUtHmCfOGOW@aj9`jG&>IfnKT5J{CCJ((MPbJ~D<6v;u5P_4Dc z=z4pB!BvQKJEZo9z#fW5akQfr+{%`kln}`*kyl_~eey)=7PcqLXn2_tlQ2974jTcx zwO8c{7LOB(4VCdGrTc&o#W>B>j)$xQXt4# z);Lkjt`>peohNosRNM7h5_*-AL0Ay5H>rZ=4S)XgSt^r_Xm1D{!SC^E-bRVXU>?z4 z)HNWRYK#$W4V(LRFpy!_6rU@52+)6^v8jEt1W+gX=1@v@bpji-HP-&@t5sB@rcf#_ zZ6I#kTTI`o;<(v{gnLru5h0@%*!4P~u7)j>0hF4>_CU^5EHHiqNkDWnA%tmNmP8y7 zi9C!5EhP6`5l0!WU9poS2J|3*MBAH)!y1;qN75PQV#zsxR$%oyxzoYVL1Ua_$Q(+9 zaFcjKxkZeL_GqqXvM+y|qbp*LdY{bK5iu+-**aIMSSAM>>*QUeg;Uh(XLYAyQzURE z*J4crp&2va>mUS>CiC9#q;xyn4QC*~-f8Sf>CWSAio*QH3`#4#1e`+9Ze-o5_=aT) zrcIUH#G7$^fPQXxdb(!PPU1p7nH!~mGa#RkSV27n&8%dPwC@%tY60K}Hg>gAN8VvV zNQXvbGA1!u^OqEi<%?WQng;BhVreJiOvZCeVFoTV>0&F`3+O4@=xlB19Y7{Q?k^q+ zsFLT$9F++kbDgzWtFEU745i4vC?(} zjZNQ{szcy3QKYtXAZw3WMDT=3)o$@)yIn$+!gh9>K@UbViG@Yi^KAj*IM@tr{2>CN zdnvSX${nOL8p~i@ME9NZ@M{`g@*L|Qz5kJnYkGchUf-L*12}iyPUd>y+z%%3D8S=~ z6L=KhasHnviSkHq{Z*-a!~ghDetVqnTQ)i${WnVI=grS8KGQl+rv=9IqjxWTB-hX3 zm?Xf-rJ+PNdl0TZIsdKQcv|grcMkeh^W@llkLP@3zdvkW9)CLjZ|lf>ynpWn{XM>3 ziHj6&^>drTeF+p5+)N2*Pw_`C64c2MJ;=7b}A>~v4lp{wDd zQN0Ok0#=!&ub~*%w$0k)Y29>%dx1(AdQc-3R{mtxeB+pcb$R;Iy-1^)&5D*v4eOaR zCu&~WOVk|rJ46b`zc8H@B1P3Zo^}bCt8L|&T}JCe&=-!HWawgKzo(yYuoztvgO+Hz z8l1GfjRPWJ*o8G+&{s5z;Hr;PfNFx^CNY}nb1|q_#yU!`E@J!FWmVqjy5nsd70-Fx+w!v?lI1hFtMIHFPu>M;0{v8iqg zS7e(ffuhv?!Kp`k&4!DCrPis`;Nkv`BnVkUNJ|%n&(4$BB&=kNOD~`36Vv*P4!eKkT%`ZAaF1)PvW8ST{Txt;-Mz-P}m%kcqsD5qR(X#4|Rx}D$xOo zP@BXAFZh2&>kuD5Ivr@Ur^DP5!;}hMe6a{`b^xRqVwNeDo|7(^H|C zO5bRd$BU{9U!-eZPQ+-Rr+~J+8e_!k8;qy%7ggeykUs`$K#wkfAJ-6JfFwP}6-Yt^ zjWhxqBu=Wsvk;FE1bPDX33GJupW7s`wlGd;Ua1BkS(_r>%ZzOhh)}}ANO$7tS4=|% z1~+g#o}L({NH85@;-nSi+IVe19FN3f%4Xd(fFXp#YUNowFbR<>@sJpvRF+OCOjJ&# z*4JpDBJ^aaJpL9dW4>Q=5eLkZ6$u&CbJ-u}y-t-WP<#U(Nzt~f*5Ql|S8A7qwFt^o~r`;mmoPilo|2ai?+@h6=mTi z;qJnGxb5!)Es=m4o>+`epmqAify7~D0B}HA{M#Dbls%ZA%`VPn3m0*o_iaHfxOMpo zBCX_5@qnq)g&1wLJRuKDa%3!^rfA-Zl}f>IL?XsgZZ~R^1j88kA{ab_kf2MY6t-q>^^SoRt|}wklHs+Ij2cLV^`uD^ggCVK-}7Y&;Ga zudpg!8mp(l7AE1-=qDtfV}a>blLt^_6=t$VvLgD}Fo`TF3R7rC;%`WI)7Y@rc%q@f zV=aGzGtoWxLr`)bTgPLq>a{Kl^bvF%O*u?MT?`nB97^eNd~))+gB(dEBFb--#LIY;txD55$ThM>Knaty zJ@_Y-C5;}vvsQ_66MNJlFQhgt9VK>h{qbD(Kp4Qo2Tvb9ICw}WLE*xKcXacQvKg-f z#!8H^wj)iiw}~P42qma-sFyrfz&#(|zAAOZ6l@SxS*sWCVj8^RKV)pjnChBe=-G{#6eKtMp_+gvAR#=_#9 zaOfmaLz*`JAU%YH0hfdjGS%#NTeSnSQ-Tknt{jiO#OEUp!ghSk?lUU#3F8_^3LpvAx;_q*^zT?IrY$d0B%C z`9UgXGVO&g4N<2gYX89^@_?5LWi$4hjlm9uu_jK@h1~yOs&EArT5$O3PQg;0*doMV z_T{t*ky+%O!24uZ3kD$T3DKtFtOQ|0wr7I*LP8jB_N1BbA3BNPf*F%TU7Vm01++Kb z4j<}-P!+NzDZ3zKxkEIzqBycfSV#rIY)bN?j|a;HgeEPSSkfn%#goip@c@N1^GRm$ zB(r#uSxl)&v?Na(hLj^ml=C=wiu)=m7ao~p7F$s{$c~fDVxHsyMR1Z?Trj+>CD~7I zeJSLT_MueAqy)8v9Z$0Jq%4i+P6RV!NNh-?*bd4X!bHnl?;#nM z;-vhiGTs;;F;)4^;2 zM2UUiK{q%+KZ*x|yLRr`a!7vJgDDk{tAY=BQaX2N?clJBT|R*8q*$g(>a)>eQSY!c zjc5UUL-Nfr96msGz~5Fa7lwln7>ZQL5ERAT4xV$jSU zb%|uuq}Ra^i|t5yrNIkk`e|#)%)`NR>1mzpk6cxAGgD5YMQ~#Kgi1o492!lE4vd{2 zVR0S`sgG`t`>aC6F5ow&uY# z#WscuN-BVwPdgd@ZCSmcsUKoDM^Omsmn&t3beplLA#e$U946u9qyMz&n(&H3H(tjS?Iqzlr!04X zf~UQrei4FdxS?W+$z%3b$f=0?p0LHXgbcsi4@wJmJ%T`pwCW|KwV&axBu+W=x3Ew2 zi{->vpbZA}LEZLSIWM2ZDXOa6NWnt38&5kUg@9ufh2|OMA$y(PQg;%uL~Reefj2pC zK3lF>YkHV@q9g)=wYA{B6qd&Kd~GmQ&^a;N1UIRBF5z?+dLc|nDc0jWmy=~T_gaq+ zVk00jVI$K$t4>G!)0t>jDOu;DTu87=i!f+(iabp!if|gZk1=|Z zK1AYBm38PD4N4=appCFu@oVe$6D5U&*a~cLyquqxE=%}XG8U1mlRc;#?>cJkFjNTz z*$(w`NtBMWb7Abq{%g7J(8OB1!256pBJW zg$OZd$8y|*Ph8Q_V^^NOiYsC2u>GLQo$vlI5?K_T zNw`*eGtM}ZAS-hF0akYp=0le5z?z_8akguy2-hLqOtwiz?Lupmxd^b}QF$+!VY z6|vJASOt6|Pn-;k23sFDoMiQ22Jyuq@Z6yUIJs6a6iD;`f8ZZ%CD z*v)xTObu)18z@=mzDi6*Sfjo<0tki(=xtW=Li84QRe`(+=_NvO$ZY&LfE}uH6rsyK zx@a3DO&Bf-Rp`up5~1n9`&2_RMC1*k&Fe5{?nx|yQ|Y>Q#)iK;?g z+1N99`rYPZP)Y=Dp+77XM46{#zOutnJRZlzV{0ojb)L*2z_5y=`=rbhEL$xcPWEzuLoG`Scyd&BXQ?)%TjFnz5v^!OPBgmxQq<BU0frHKC?zGsvj6|g&30s7iKygfFD%*z#S%4q= zAr7*pBFBMNajin=_A?n6`d-7v5V{hM(9q$fRQs&Ap6!1z-5VD_7i&@%u0={*3SUHMjoV+P#)MD&D_z`xn zhTVgv=+lUVMP)ja8y7;y2b`d}xVf3b-NRDpDxiX5%X003gsAJQ&^(m~l`Z`-@Cfoi z8m!#RCTYs)8cHmokO@+Qs7O7+HOxiH2-6rqb3qLfObC-p07CpmCDi_o$Z;SVY}8U$ zW^(WjA(UYrtUQO(&$x`^17J=QHCaVk4f$t`WT4D~a}XryiGw&G2qcXrRng@(6-ib0 zM4=Mvl*2@9P(jp>a`$cx)%(k;cm#)W7?A`Zk;hf$x)oILAqD)tnhrN1c_#Zz$J3Ox z_pwEM(RFM|ASYH)1Ih)KSc3pQ%0iJ$T9&%jL{(oT?<1dtQWuq7BW*nvxDS1{nwvd< z86vqL7e<5`iKK;?bSY0l_)(nF%J?o>j9Fzo49z#_{|N+TseHYaUlx{~v9V)B=p$~gYsZL%yyy#u9O&3aJ?vf&n00#z?`4Q{80V1;tJKs*ScRH=cb zeV3*+P=kme(5K142 zc5LsQVr=hlY&}N9r$Bq>*$(XXZZ~g8h<|Z8B{aUXvzyvq;4nH{=Y{a7*BoE0k+{KJ7AniGQiNtnO3rV zFlC9JFgT}tT&;(k-SY!iU3@OSiwObiBQD?vL{$}4l4%I-I}4ESP&zTpJN*bYM6EvA zS|3VNft7LYVUkKNp?7RNPm+05-_MgI9@Y05sor7xi#sUzt`q1(RJ?%AA8&~v-K0j6 zg(9Z9G{Uos!1!PTq+=@2A;UjrvN&v-`94Zl<3&`oZbMw8Mj~Fo8st|-DR@`d*Esu# z*zF51qV{k`)iDq+gnC{>{X)h|h2rZsT#QOgSPx?UEinV%NBrG!N{ay}@mfq~XzCqpQK5cL?Ch#z=@_ku<7$vU7Fx&fj)=;z7Dm^@# z-OIbk_@&i2Y5oSRn>gD6jJMW;zoen}6|<=1A|M$0dESOdNFPyu569a=%Oo;Ixt%9F z$=WAq)#t=FWQ65~9E0Q$R0;4M$pf&1Nt@vTme@=#`QYR>Gc#%@SiF?>@j`Uf7KATVYcc2gncsL=140 z60qO{MjSFMQ*=WxdmX9`0-5PHhgF+r+a|35=F~)Oo-`NeAh0ep6+{C-N%2PeLfIrc zp5~B}wW7)wYS?2 z0do8K-%WVJkH}9`=v82igy3*qb$H5nNgRq#K>u6--A`EZ(TfTyP5yY3+aBc0v z8j6*wY6Tmg$0f450m>D0>U4LhwIP)lC@nF-+!zbE>PT`IX{w0%s=~^8tKT(QJ_|u1 zPe`_Fq1BCm+$C@8ScR@YMDG>J*ofWCg%sM!b&2G&Fo?Kv=5``559`O+VIU9!;(fX< z0|KSn9(zlSbFupZCp1o-zHxG}974R04;4E;4kUdfNDk?v1QD9TfKT`@(kT%QhKcLw zKA|H4np_9$8r4Vyw{>qcUHX=TvZ&Il=bs7pTxSO6fKkvn7WZ~EqXM;Ks|jYtp_~H# zigxkUNY4Ji;8;vWamjTnBJU`B4-;ur1Ob z8=&we#U%3^^TaXddSj%Jv`*<;eK4aeZ3PXbAVao7 zd_pKV8j^ya%(*dRf}#*Pa@=vVpmn-oLG>V@FbdWTC0@{ntO*g?kWmK^-P#Gq$IH?- z-DdS(Q{xAt2geQZ6plFQq}-5*iL96v`A@PaVZ`NSh<4;rN<|TW4pS-$Po7MvK;|P* zu#HVox2*^vg)T(+{yBx?XckDe@iy+8sCpl-CvLkiJ%uc)+Q8))-*O@#T_=D`9vNcL zW3?niVG9**L6mb6o!zw}|4;^EAaO{nm*63AEaJ{sm zXv4%(&ks1>s;nh+o2%d3!?_n^A5<1RfS&oY+)H8zN5_~R7q8aXZMLD_;%_jcYdFFf z_xjBmmUk8m20l`h^viqllZJO(MC=q|VfzwS0B&4|aRC4WN+`#Pvp^jw6mP>Og)QjV z@VSvNV;U$19W;Q6K;fo{qi0H+BT;7uZhP(eo7cm`R{k+T0&iy2AP(8K-MvkA$f=FT zzq|1vKpPxU9UF+kd;Rv>Y_|5s?b+S%WOyhy8%Br9+kuk3C#O)DHHIFiDFLgmQO06hJ?QY-oT43@RI&$EPf* zl%eVu!d$#cK|&r?2R8Z`6xd`0`tsgL*{ra>?n1l6s&i6hH<2N1@AUUjk*#-dLBE^D zt%gOB)l$Np3Iq09Ix20bjIk6LM-FN@X5vY+x7VM^9Xo&mk@poSfIJAo1MtaaL8&+H zD8_mb16bM&I2r;BBn}O!6J;7G%?yns*(UuW~L{yD{L3ovWMq*Gn6(eXTS~r|S0^p^>357wveW3JAHRilZeyv)qP9YM6 zeaUix%mJ~I)KG$^CFT?DliQ(YUl$dZH3E=Gu+wQ^aTR|Otk8x9=Au5Mdk_BJLFIA$ z1Wrj*xGe(oagth17~p+yR~Ww;x`#U1)Zxu|K-y~627xPTS7)>zlLPX2ICoggxH_P) zvAPGl0DcxgLR_VZ2_hkVkC5;{nFt0VGVL|{W_%cPeMFe1!U27r+Xo{ObYN57kpOar*swsc@q z5=Gn3OOzhT|ur{!F;&G^7!QMVXLX*?U zhFHlM9~$i}w@Fv9*f@QRq+P~JYaRAMDPvQQx5JXb8zLrI)JgAbOIVCs=M!LHiP>mL z20h_GI6$nRjZnLeq?BQn&_Zp`SaMi01oJ9sX@xV6Y zP0)(MB07E+V3vk!uHg+Af8cHgMrcA2OWmZgPx8A6`mrvmH~H?cz3CA34w+v}aUIt0 zn*9#uB;~Wwx$dxQwuxPy=50*x9`7^t**>3fd0gsKWLi*Kddt13a(^}^9!rh`ODSC)%Att zE6Yn)E-ue4EG~U+e(}ouJgm*=H%K7XE7M2u=i5_%h-ep)O5mj>{wMwGo5*Uaql^mT z)IeZ0eRmh;fu>68U>57(4gwI1X$~+Mm4Q!VQEv|-jKoKyMY=B4bfpx6ye6VPDJ@*l z92nB+Xmw8EYD_F^?{De|P@9Yv>o#hRk$oX2T(c&m0Ca+`qMYeCH@GTFRYw`Wu7Sri z5vQl}f*mQ^#O@_E;aJ(!Ty`@uZ^?6FeHn(|HkctSF@IukH_k;lncZFxf6=^h22m4rx3cFMnObCq?;R~L}n$E_oz2JSw;esqpw9pT+=^H(oBhm zZ@`4u^*Wsaab{F)9`t@aRHhhu2C5qT6?o<*Xa$;x>O&$j^IovxDCN
Tu0#`LwB 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%0DdbSd+iGB-Y>t4vUgz&{@6fEp7sKuf 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 z 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 literal 0 HcmV?d00001 From 37189efe80c4d358ea61e0f3dbaf7c0b983068db Mon Sep 17 00:00:00 2001 From: Steph Prince <40640337+stephprince@users.noreply.github.com> Date: Mon, 15 Sep 2025 15:18:00 -0700 Subject: [PATCH 06/14] add tests for reading old extension files with nwb schema 2.9.0 --- tests/back_compat/test_read.py | 53 +++++++++++++++++++++++++++++++++- 1 file changed, 52 insertions(+), 1 deletion(-) diff --git a/tests/back_compat/test_read.py b/tests/back_compat/test_read.py index 2d05c54b7..1df7aa302 100644 --- a/tests/back_compat/test_read.py +++ b/tests/back_compat/test_read.py @@ -4,6 +4,7 @@ import warnings from pynwb import NWBHDF5IO, validate, TimeSeries +from pynwb.device import DeviceModel from pynwb.ecephys import ElectrodesTable from pynwb.image import ImageSeries from pynwb.misc import FrequencyBandsTable @@ -166,4 +167,54 @@ def test_read_bands_table_as_neurodata_type(self): f = Path(__file__).parent / '3.0.0_decompositionseries_bands_dynamic_table.nwb' with self.get_io(f) as io: read_nwbfile = io.read() - assert isinstance(read_nwbfile.processing['test_mod']['LFPSpectralAnalysis'].bands, FrequencyBandsTable) \ No newline at end of file + assert isinstance(read_nwbfile.processing['test_mod']['LFPSpectralAnalysis'].bands, FrequencyBandsTable) + + def test_read_device_model_str_attribute(self): + """Test that a Device.model written as a string attribute is read and remapped to a DeviceModel object""" + f = Path(__file__).parent / '3.0.0_fiber_photometry_extension.nwb' + with self.get_io(f) as io: + # assert warning is issued to inform user the attribute is being remapped + with self.assertWarnsWith(UserWarning, + 'Device.model was detected as a string. ' \ + 'Remapping "dichroic mirror model" to a DeviceModel'): + read_nwbfile = io.read() + + # assert data was remapped correctly + device = read_nwbfile.devices['dichroic_mirror_1'] + self.assertIsInstance(device.model, DeviceModel) + self.assertEqual(device.model.name, 'dichroic mirror model') + self.assertEqual(device.model.description, 'Dichroic mirror for green indicator') + self.assertEqual(device.model.manufacturer, '') + self.assertEqual(device.model.model_number, None) + + def test_read_device_model_link_to_other_object(self): + """Test that a Device.model written as a link to another object is read and remapped to a new attribute""" + f = Path(__file__).parent / '3.0.0_optogenetics_extension.nwb' + with self.get_io(f) as io: + # assert warning is issued to inform user where old data is being remapped + with self.assertWarnsWith(UserWarning, + 'The model attribute of the Device "Lambda" was detected as a non-DeviceModel ' + 'object. Data associated with this object can be accessed at ' + '\"nwbfile.devices["Lambda"].ndx_optogenetics_model\"'): + read_nwbfile = io.read() + + # assert data was remapped correctly + device = read_nwbfile.devices['Lambda'] + self.assertIsNone(device.model) + self.assertIsNotNone(device.ndx_optogenetics_model) + self.assertEqual(device.ndx_optogenetics_model.name, 'Lambda Model') + self.assertEqual(device.ndx_optogenetics_model.description, 'Lambda fiber (tapered fiber) from Optogenix.') + self.assertEqual(device.ndx_optogenetics_model.numerical_aperture, 0.39) + + def test_read_device_model_link_to_extension_devce_model(self): + """Test that a Device.model written as a link to an extension DeviceModel object is read successfully""" + f = Path(__file__).parent / '3.0.0_ophys_devices_extension.nwb' + with self.get_io(f) as io: + read_nwbfile = io.read() + + # assert model is read correct + band_optical_filter = read_nwbfile.devices['band_optical_filter'] + self.assertIsInstance(band_optical_filter.model, DeviceModel) + self.assertEqual(band_optical_filter.model.name, 'band_optical_filter_model') + self.assertEqual(band_optical_filter.model.description, 'Band optical filter model for green indicator') + self.assertEqual(band_optical_filter.model.bandwidth_in_nm, 30.0) From e2bec2241f09e0053ee0b58123b0c591d81e7754 Mon Sep 17 00:00:00 2001 From: Steph Prince <40640337+stephprince@users.noreply.github.com> Date: Mon, 15 Sep 2025 15:24:38 -0700 Subject: [PATCH 07/14] update CHANGELOG --- CHANGELOG.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index e52e1cbf0..c0442add8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,9 +4,10 @@ ### Fixed - Fixed incorrect warning for path not ending in `.nwb` when no path argument was provided. @t-b [#2130](https://github.com/NeurodataWithoutBorders/pynwb/pull/2130) +- Fixed inability to read extensions that had schema conflicts with DeviceModel introduced in NWB Schema 2.9.0. @stephprince [#2132](https://github.com/NeurodataWithoutBorders/pynwb/pull/2132) -### Documentation and tutorial enhancements -- Change UI of assistant to be an accordion that is always visible. [#2124](https://github.com/NeurodataWithoutBorders/pynwb/pull/2124) +### Changed +- Change UI of documentation assistant to be an accordion that is always visible. @bendichter [#2124](https://github.com/NeurodataWithoutBorders/pynwb/pull/2124) ## PyNWB 3.1.2 (August 13, 2025) From fed02a0371e390bbac49198f4c566435fc397c66 Mon Sep 17 00:00:00 2001 From: Steph Prince <40640337+stephprince@users.noreply.github.com> Date: Mon, 15 Sep 2025 15:29:55 -0700 Subject: [PATCH 08/14] fix test name --- CHANGELOG.md | 2 +- tests/back_compat/test_read.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index c0442add8..1deae50b7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,7 +4,7 @@ ### Fixed - Fixed incorrect warning for path not ending in `.nwb` when no path argument was provided. @t-b [#2130](https://github.com/NeurodataWithoutBorders/pynwb/pull/2130) -- Fixed inability to read extensions that had schema conflicts with DeviceModel introduced in NWB Schema 2.9.0. @stephprince [#2132](https://github.com/NeurodataWithoutBorders/pynwb/pull/2132) +- Fixed inability to read files created with extensions that had schema conflicts with the DeviceModel type introduced in NWB Schema 2.9.0. @stephprince [#2132](https://github.com/NeurodataWithoutBorders/pynwb/pull/2132) ### Changed - Change UI of documentation assistant to be an accordion that is always visible. @bendichter [#2124](https://github.com/NeurodataWithoutBorders/pynwb/pull/2124) diff --git a/tests/back_compat/test_read.py b/tests/back_compat/test_read.py index 1df7aa302..7049bfbd0 100644 --- a/tests/back_compat/test_read.py +++ b/tests/back_compat/test_read.py @@ -206,7 +206,7 @@ def test_read_device_model_link_to_other_object(self): self.assertEqual(device.ndx_optogenetics_model.description, 'Lambda fiber (tapered fiber) from Optogenix.') self.assertEqual(device.ndx_optogenetics_model.numerical_aperture, 0.39) - def test_read_device_model_link_to_extension_devce_model(self): + def test_read_device_model_link_to_extension_device_model(self): """Test that a Device.model written as a link to an extension DeviceModel object is read successfully""" f = Path(__file__).parent / '3.0.0_ophys_devices_extension.nwb' with self.get_io(f) as io: From 68258c9c97921bbdca2e318dad7458188041b88d Mon Sep 17 00:00:00 2001 From: Steph Prince <40640337+stephprince@users.noreply.github.com> Date: Fri, 24 Oct 2025 10:10:27 -0700 Subject: [PATCH 09/14] bump hdmf minimum requirement --- requirements-min.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements-min.txt b/requirements-min.txt index ac0bcfe1b..00e79597b 100644 --- a/requirements-min.txt +++ b/requirements-min.txt @@ -1,6 +1,6 @@ # minimum versions of package dependencies for installing PyNWB h5py==3.2.0 -hdmf==4.1.0 +hdmf==4.1.1 numpy==1.24.0 pandas==1.2.0 python-dateutil==2.8.2 From f281060ee4a0e9337897bee29efb8837bc4920e2 Mon Sep 17 00:00:00 2001 From: Steph Prince <40640337+stephprince@users.noreply.github.com> Date: Fri, 24 Oct 2025 10:38:44 -0700 Subject: [PATCH 10/14] update requirements.txt --- requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index 5edb7d071..1ed2fcd75 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,6 +1,6 @@ # pinned dependencies to reproduce an entire development environment to use PyNWB h5py==3.12.1 -hdmf==4.1.0 +hdmf==4.1.1 numpy==2.1.1; python_version > "3.9" # numpy 2.1+ is not compatible with py3.9 numpy==2.0.2; python_version == "3.9" pandas==2.2.3 From 7bbcee251360fd325b52ec0b6eae9ba86bd885ee Mon Sep 17 00:00:00 2001 From: Steph Prince <40640337+stephprince@users.noreply.github.com> Date: Wed, 29 Oct 2025 09:48:39 -0700 Subject: [PATCH 11/14] Update dandi download URL for testing data --- .github/workflows/run_inspector_tests.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/run_inspector_tests.yml b/.github/workflows/run_inspector_tests.yml index ece4e000c..5a1dd204b 100644 --- a/.github/workflows/run_inspector_tests.yml +++ b/.github/workflows/run_inspector_tests.yml @@ -36,7 +36,7 @@ jobs: python -m pip install pytest python -m pip install ".[dandi]" # this might install a pinned version of pynwb instead of the current one # Download testing data and set config path - dandi download "https://gui-staging.dandiarchive.org/#/dandiset/204919" + dandi download "https://sandbox.dandiarchive.org/dandiset/204919" cd .. python -m pip uninstall -y pynwb # uninstall the pinned version of pynwb python -m pip install . # reinstall current branch of pynwb From 8156574525c9de7d5f10ce21f9343da46305dbda Mon Sep 17 00:00:00 2001 From: Steph Prince <40640337+stephprince@users.noreply.github.com> Date: Wed, 29 Oct 2025 12:35:20 -0700 Subject: [PATCH 12/14] Update src/pynwb/io/device.py Co-authored-by: Ryan Ly --- src/pynwb/io/device.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/pynwb/io/device.py b/src/pynwb/io/device.py index e6f534fba..a9daabeca 100644 --- a/src/pynwb/io/device.py +++ b/src/pynwb/io/device.py @@ -28,7 +28,9 @@ def model_carg(self, builder, manager): """ model_builder = builder.get('model') if isinstance(model_builder, str): - warn(f'Device.model was detected as a string. Remapping "{model_builder}" to a DeviceModel', + warn( + 'Device.model was detected as a string, but NWB 2.9 specifies Device.model as a link to a DeviceModel. ' + f'Remapping "{model_builder}" to a new DeviceModel.', stacklevel=3) # replace the model string with a DeviceModel object using the model name and device attributes From 8535bfc4105d3d54622aff34297685ec7d70f830 Mon Sep 17 00:00:00 2001 From: Steph Prince <40640337+stephprince@users.noreply.github.com> Date: Wed, 29 Oct 2025 12:35:32 -0700 Subject: [PATCH 13/14] Update src/pynwb/io/device.py Co-authored-by: Ryan Ly --- src/pynwb/io/device.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/pynwb/io/device.py b/src/pynwb/io/device.py index a9daabeca..b07191268 100644 --- a/src/pynwb/io/device.py +++ b/src/pynwb/io/device.py @@ -46,6 +46,10 @@ def model_carg(self, builder, manager): def __new_container__(self, cls, container_source, parent, object_id, **kwargs): + # Override ObjectMapper.__new_container__ to handle the case where the Device.model argument + # is not a DeviceModel, which can happen in extensions written to be compatible with NWB<2.9. + # The original Device.model object will be accessible under a new attribute name based on the + # extension namespace. model = kwargs.get('model', None) if model is None or isinstance(model, DeviceModel): From 851cb6f9a26e2a035f67f6ed9e69056de8a06934 Mon Sep 17 00:00:00 2001 From: Steph Prince <40640337+stephprince@users.noreply.github.com> Date: Wed, 29 Oct 2025 12:43:59 -0700 Subject: [PATCH 14/14] update test warning assertion --- tests/back_compat/test_read.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/tests/back_compat/test_read.py b/tests/back_compat/test_read.py index 7049bfbd0..b7702ee97 100644 --- a/tests/back_compat/test_read.py +++ b/tests/back_compat/test_read.py @@ -175,8 +175,9 @@ def test_read_device_model_str_attribute(self): with self.get_io(f) as io: # assert warning is issued to inform user the attribute is being remapped with self.assertWarnsWith(UserWarning, - 'Device.model was detected as a string. ' \ - 'Remapping "dichroic mirror model" to a DeviceModel'): + 'Device.model was detected as a string, ' \ + 'but NWB 2.9 specifies Device.model as a link to a DeviceModel. ' + 'Remapping "dichroic mirror model" to a new DeviceModel.'): read_nwbfile = io.read() # assert data was remapped correctly