Repository: catalystneuro/neuroconv

Issue:
[Backend Follow-up]: Change 'location' field name to 'location_in_file'
### What would you like to see added to NeuroConv?

To avoid confusion with 'location' as interpreted as 'brain area' in NWB

### Is your feature request related to a problem?

_No response_

### Do you have any interest in helping implement the feature?

Yes.

### Code of Conduct

- [X] I agree to follow this project's [Code of Conduct](https://github.com/catalystneuro/neuroconv/blob/main/.github/CODE_OF_CONDUCT.rst)
- [X] Have you ensured this bug was not already [reported](https://github.com/catalystneuro/neuroconv/issues)?

Discussion:
codecov[bot]: ## [Codecov](https://app.codecov.io/gh/catalystneuro/neuroconv/pull/761?src=pr&el=h1&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=catalystneuro) Report
All modified and coverable lines are covered by tests :white_check_mark:
> Comparison is base [(`22318d9`)](https://app.codecov.io/gh/catalystneuro/neuroconv/commit/22318d9640374d61d5be14eb5e6e2b1ef420ef8e?el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=catalystneuro) 92.60% compared to head [(`839bfd0`)](https://app.codecov.io/gh/catalystneuro/neuroconv/pull/761?src=pr&el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=catalystneuro) 92.63%.
> Report is 12 commits behind head on main.

<details><summary>Additional details and impacted files</summary>


[![Impacted file tree graph](https://app.codecov.io/gh/catalystneuro/neuroconv/pull/761/graphs/tree.svg?width=650&height=150&src=pr&token=h63OQoWehP&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=catalystneuro)](https://app.codecov.io/gh/catalystneuro/neuroconv/pull/761?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=catalystneuro)

```diff
@@            Coverage Diff             @@
##             main     #761      +/-   ##
==========================================
+ Coverage   92.60%   92.63%   +0.02%     
==========================================
  Files         115      115              
  Lines        6221     6216       -5     
==========================================
- Hits         5761     5758       -3     
+ Misses        460      458       -2     
```

| [Flag](https://app.codecov.io/gh/catalystneuro/neuroconv/pull/761/flags?src=pr&el=flags&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=catalystneuro) | Coverage Δ | |
|---|---|---|
| [unittests](https://app.codecov.io/gh/catalystneuro/neuroconv/pull/761/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=catalystneuro) | `92.63% <100.00%> (+0.02%)` | :arrow_up: |

Flags with carried forward coverage won't be shown. [Click here](https://docs.codecov.io/docs/carryforward-flags?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=catalystneuro#carryforward-flags-in-the-pull-request-comment) to find out more.

| [Files](https://app.codecov.io/gh/catalystneuro/neuroconv/pull/761?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=catalystneuro) | Coverage Δ | |
|---|---|---|
| [...nwb\_helpers/\_configuration\_models/\_base\_backend.py](https://app.codecov.io/gh/catalystneuro/neuroconv/pull/761?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=catalystneuro#diff-c3JjL25ldXJvY29udi90b29scy9ud2JfaGVscGVycy9fY29uZmlndXJhdGlvbl9tb2RlbHMvX2Jhc2VfYmFja2VuZC5weQ==) | `100.00% <ø> (ø)` | |
| [...\_helpers/\_configuration\_models/\_base\_dataset\_io.py](https://app.codecov.io/gh/catalystneuro/neuroconv/pull/761?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=catalystneuro#diff-c3JjL25ldXJvY29udi90b29scy9ud2JfaGVscGVycy9fY29uZmlndXJhdGlvbl9tb2RlbHMvX2Jhc2VfZGF0YXNldF9pby5weQ==) | `95.04% <100.00%> (ø)` | |
| [...roconv/tools/testing/\_mock/\_mock\_dataset\_models.py](https://app.codecov.io/gh/catalystneuro/neuroconv/pull/761?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=catalystneuro#diff-c3JjL25ldXJvY29udi90b29scy90ZXN0aW5nL19tb2NrL19tb2NrX2RhdGFzZXRfbW9kZWxzLnB5) | `100.00% <ø> (ø)` | |

</details>
codecov[bot]: ## [Codecov](https://app.codecov.io/gh/catalystneuro/neuroconv/pull/761?src=pr&el=h1&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=catalystneuro) Report
All modified and coverable lines are covered by tests :white_check_mark:
> Comparison is base [(`22318d9`)](https://app.codecov.io/gh/catalystneuro/neuroconv/commit/22318d9640374d61d5be14eb5e6e2b1ef420ef8e?el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=catalystneuro) 92.60% compared to head [(`839bfd0`)](https://app.codecov.io/gh/catalystneuro/neuroconv/pull/761?src=pr&el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=catalystneuro) 92.63%.
> Report is 12 commits behind head on main.

> :exclamation: Current head 839bfd0 differs from pull request most recent head 9c4f5d6. Consider uploading reports for the commit 9c4f5d6 to get more accurate results

<details><summary>Additional details and impacted files</summary>


[![Impacted file tree graph](https://app.codecov.io/gh/catalystneuro/neuroconv/pull/761/graphs/tree.svg?width=650&height=150&src=pr&token=h63OQoWehP&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=catalystneuro)](https://app.codecov.io/gh/catalystneuro/neuroconv/pull/761?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=catalystneuro)

```diff
@@            Coverage Diff             @@
##             main     #761      +/-   ##
==========================================
+ Coverage   92.60%   92.63%   +0.02%     
==========================================
  Files         115      115              
  Lines        6221     6216       -5     
==========================================
- Hits         5761     5758       -3     
+ Misses        460      458       -2     
```

| [Flag](https://app.codecov.io/gh/catalystneuro/neuroconv/pull/761/flags?src=pr&el=flags&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=catalystneuro) | Coverage Δ | |
|---|---|---|
| [unittests](https://app.codecov.io/gh/catalystneuro/neuroconv/pull/761/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=catalystneuro) | `92.63% <100.00%> (+0.02%)` | :arrow_up: |

Flags with carried forward coverage won't be shown. [Click here](https://docs.codecov.io/docs/carryforward-flags?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=catalystneuro#carryforward-flags-in-the-pull-request-comment) to find out more.

| [Files](https://app.codecov.io/gh/catalystneuro/neuroconv/pull/761?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=catalystneuro) | Coverage Δ | |
|---|---|---|
| [...nwb\_helpers/\_configuration\_models/\_base\_backend.py](https://app.codecov.io/gh/catalystneuro/neuroconv/pull/761?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=catalystneuro#diff-c3JjL25ldXJvY29udi90b29scy9ud2JfaGVscGVycy9fY29uZmlndXJhdGlvbl9tb2RlbHMvX2Jhc2VfYmFja2VuZC5weQ==) | `100.00% <ø> (ø)` | |
| [...\_helpers/\_configuration\_models/\_base\_dataset\_io.py](https://app.codecov.io/gh/catalystneuro/neuroconv/pull/761?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=catalystneuro#diff-c3JjL25ldXJvY29udi90b29scy9ud2JfaGVscGVycy9fY29uZmlndXJhdGlvbl9tb2RlbHMvX2Jhc2VfZGF0YXNldF9pby5weQ==) | `95.04% <100.00%> (ø)` | |
| [...roconv/tools/testing/\_mock/\_mock\_dataset\_models.py](https://app.codecov.io/gh/catalystneuro/neuroconv/pull/761?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=catalystneuro#diff-c3JjL25ldXJvY29udi90b29scy90ZXN0aW5nL19tb2NrL19tb2NrX2RhdGFzZXRfbW9kZWxzLnB5) | `100.00% <ø> (ø)` | |

</details>
codecov[bot]: ## [Codecov](https://app.codecov.io/gh/catalystneuro/neuroconv/pull/761?src=pr&el=h1&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=catalystneuro) Report
All modified and coverable lines are covered by tests :white_check_mark:
> Comparison is base [(`22318d9`)](https://app.codecov.io/gh/catalystneuro/neuroconv/commit/22318d9640374d61d5be14eb5e6e2b1ef420ef8e?el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=catalystneuro) 92.60% compared to head [(`9c4f5d6`)](https://app.codecov.io/gh/catalystneuro/neuroconv/pull/761?src=pr&el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=catalystneuro) 92.63%.
> Report is 12 commits behind head on main.

<details><summary>Additional details and impacted files</summary>


[![Impacted file tree graph](https://app.codecov.io/gh/catalystneuro/neuroconv/pull/761/graphs/tree.svg?width=650&height=150&src=pr&token=h63OQoWehP&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=catalystneuro)](https://app.codecov.io/gh/catalystneuro/neuroconv/pull/761?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=catalystneuro)

```diff
@@            Coverage Diff             @@
##             main     #761      +/-   ##
==========================================
+ Coverage   92.60%   92.63%   +0.02%     
==========================================
  Files         115      115              
  Lines        6221     6216       -5     
==========================================
- Hits         5761     5758       -3     
+ Misses        460      458       -2     
```

| [Flag](https://app.codecov.io/gh/catalystneuro/neuroconv/pull/761/flags?src=pr&el=flags&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=catalystneuro) | Coverage Δ | |
|---|---|---|
| [unittests](https://app.codecov.io/gh/catalystneuro/neuroconv/pull/761/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=catalystneuro) | `92.63% <100.00%> (+0.02%)` | :arrow_up: |

Flags with carried forward coverage won't be shown. [Click here](https://docs.codecov.io/docs/carryforward-flags?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=catalystneuro#carryforward-flags-in-the-pull-request-comment) to find out more.

| [Files](https://app.codecov.io/gh/catalystneuro/neuroconv/pull/761?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=catalystneuro) | Coverage Δ | |
|---|---|---|
| [...nwb\_helpers/\_configuration\_models/\_base\_backend.py](https://app.codecov.io/gh/catalystneuro/neuroconv/pull/761?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=catalystneuro#diff-c3JjL25ldXJvY29udi90b29scy9ud2JfaGVscGVycy9fY29uZmlndXJhdGlvbl9tb2RlbHMvX2Jhc2VfYmFja2VuZC5weQ==) | `100.00% <ø> (ø)` | |
| [...\_helpers/\_configuration\_models/\_base\_dataset\_io.py](https://app.codecov.io/gh/catalystneuro/neuroconv/pull/761?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=catalystneuro#diff-c3JjL25ldXJvY29udi90b29scy9ud2JfaGVscGVycy9fY29uZmlndXJhdGlvbl9tb2RlbHMvX2Jhc2VfZGF0YXNldF9pby5weQ==) | `95.04% <100.00%> (ø)` | |
| [...roconv/tools/testing/\_mock/\_mock\_dataset\_models.py](https://app.codecov.io/gh/catalystneuro/neuroconv/pull/761?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=catalystneuro#diff-c3JjL25ldXJvY29udi90b29scy90ZXN0aW5nL19tb2NrL19tb2NrX2RhdGFzZXRfbW9kZWxzLnB5) | `100.00% <ø> (ø)` | |

</details>

Patch:
diff --git a/src/neuroconv/tools/nwb_helpers/_configuration_models/_base_backend.py b/src/neuroconv/tools/nwb_helpers/_configuration_models/_base_backend.py
index b9491171..b66d5697 100644
--- a/src/neuroconv/tools/nwb_helpers/_configuration_models/_base_backend.py
+++ b/src/neuroconv/tools/nwb_helpers/_configuration_models/_base_backend.py
@@ -41,7 +41,7 @@ class BackendConfiguration(BaseModel):
     def from_nwbfile(cls, nwbfile: NWBFile) -> "BackendConfiguration":
         default_dataset_configurations = get_default_dataset_io_configurations(nwbfile=nwbfile, backend=cls.backend)
         dataset_configurations = {
-            default_dataset_configuration.dataset_info.location: default_dataset_configuration
+            default_dataset_configuration.dataset_info.location_in_file: default_dataset_configuration
             for default_dataset_configuration in default_dataset_configurations
         }
 
diff --git a/src/neuroconv/tools/nwb_helpers/_configuration_models/_base_dataset_io.py b/src/neuroconv/tools/nwb_helpers/_configuration_models/_base_dataset_io.py
index 418033a1..0d4b842a 100644
--- a/src/neuroconv/tools/nwb_helpers/_configuration_models/_base_dataset_io.py
+++ b/src/neuroconv/tools/nwb_helpers/_configuration_models/_base_dataset_io.py
@@ -77,8 +77,8 @@ class DatasetInfo(BaseModel):
         arbitrary_types_allowed = True
 
     object_id: str = Field(description="The UUID of the neurodata object containing the dataset.")
-    location: str = Field(  # TODO: in v2, use init_var=False or assign as a property
-        description="The relative location of the this dataset within the in-memory NWBFile."
+    location_in_file: str = Field(  # TODO: in v2, use init_var=False or assign as a property
+        description="The relative location of the this dataset within the in-memory NWBFile. (e.g. 'acquisition/TestElectricalSeries/data')"
     )
     dataset_name: Literal["data", "timestamps"] = Field(description="The reference name of the dataset.")
     dtype: np.dtype = Field(  # TODO: When using Pydantic v2, replace np.dtype with InstanceOf[np.dtype]
@@ -102,8 +102,8 @@ class DatasetInfo(BaseModel):
         source_size_in_gb = math.prod(self.full_shape) * self.dtype.itemsize / 1e9
 
         string = (
-            f"\n{self.location}"
-            f"\n{'-' * len(self.location)}"
+            f"\n{self.location_in_file}"
+            f"\n{'-' * len(self.location_in_file)}"
             f"\n  dtype : {self.dtype}"
             f"\n  full shape of source array : {self.full_shape}"
             f"\n  full size of source array : {source_size_in_gb:0.2f} GB"
@@ -111,7 +111,7 @@ class DatasetInfo(BaseModel):
         return string
 
     def __init__(self, **values):
-        location = values["location"]
+        location = values["location_in_file"]
 
         # For more efficient / explicit reference downstream, instead of reparsing from location multiple times
         dataset_name = location.split("/")[-1]
@@ -120,7 +120,9 @@ class DatasetInfo(BaseModel):
 
     @classmethod
     def from_neurodata_object(cls, neurodata_object: Container, field_name: str) -> "DatasetInfo":
-        location = _find_location_in_memory_nwbfile(current_location=field_name, neurodata_object=neurodata_object)
+        location_in_file = _find_location_in_memory_nwbfile(
+            current_location=field_name, neurodata_object=neurodata_object
+        )
         candidate_dataset = getattr(neurodata_object, field_name)
 
         full_shape = get_data_shape(data=candidate_dataset)
@@ -129,7 +131,7 @@ class DatasetInfo(BaseModel):
         return cls(
             object_id=neurodata_object.object_id,
             object_name=neurodata_object.name,
-            location=location,
+            location_in_file=location_in_file,
             full_shape=full_shape,
             dtype=dtype,
         )
@@ -178,8 +180,8 @@ class DatasetIOConfiguration(BaseModel, ABC):
         disk_space_usage_per_chunk_in_mb = math.prod(self.chunk_shape) * self.dataset_info.dtype.itemsize / 1e6
 
         string = (
-            f"\n{self.dataset_info.location}"
-            f"\n{'-' * len(self.dataset_info.location)}"
+            f"\n{self.dataset_info.location_in_file}"
+            f"\n{'-' * len(self.dataset_info.location_in_file)}"
             f"\n  dtype : {self.dataset_info.dtype}"
             f"\n  full shape of source array : {self.dataset_info.full_shape}"
             f"\n  full size of source array : {source_size_in_gb:0.2f} GB"
@@ -207,37 +209,37 @@ class DatasetIOConfiguration(BaseModel, ABC):
         chunk_shape = values["chunk_shape"]
         buffer_shape = values["buffer_shape"]
         full_shape = values["dataset_info"].full_shape
-        location = values["dataset_info"].location  # For more identifiable error messages.
+        location_in_file = values["dataset_info"].location_in_file  # For more identifiable error messages.
 
         if len(chunk_shape) != len(buffer_shape):
             raise ValueError(
-                f"{len(chunk_shape)=} does not match {len(buffer_shape)=} for dataset at location '{location}'!"
+                f"{len(chunk_shape)=} does not match {len(buffer_shape)=} for dataset at location '{location_in_file}'!"
             )
         if len(buffer_shape) != len(full_shape):
             raise ValueError(
-                f"{len(buffer_shape)=} does not match {len(full_shape)=} for dataset at location '{location}'!"
+                f"{len(buffer_shape)=} does not match {len(full_shape)=} for dataset at location '{location_in_file}'!"
             )
 
         if any(chunk_axis <= 0 for chunk_axis in chunk_shape):
             raise ValueError(
                 f"Some dimensions of the {chunk_shape=} are less than or equal to zero for dataset at "
-                f"location '{location}'!"
+                f"location '{location_in_file}'!"
             )
         if any(buffer_axis <= 0 for buffer_axis in buffer_shape):
             raise ValueError(
                 f"Some dimensions of the {buffer_shape=} are less than or equal to zero for dataset at "
-                f"location '{location}'!"
+                f"location '{location_in_file}'!"
             )
 
         if any(chunk_axis > buffer_axis for chunk_axis, buffer_axis in zip(chunk_shape, buffer_shape)):
             raise ValueError(
                 f"Some dimensions of the {chunk_shape=} exceed the {buffer_shape=} for dataset at "
-                f"location '{location}'!"
+                f"location '{location_in_file}'!"
             )
         if any(buffer_axis > full_axis for buffer_axis, full_axis in zip(buffer_shape, full_shape)):
             raise ValueError(
                 f"Some dimensions of the {buffer_shape=} exceed the {full_shape=} for dataset at "
-                f"location '{location}'!"
+                f"location '{location_in_file}'!"
             )
 
         if any(
@@ -247,7 +249,7 @@ class DatasetIOConfiguration(BaseModel, ABC):
         ):
             raise ValueError(
                 f"Some dimensions of the {chunk_shape=} do not evenly divide the {buffer_shape=} for dataset at "
-                f"location '{location}'!"
+                f"location '{location_in_file}'!"
             )
 
         return values


Test patch:
diff --git a/src/neuroconv/tools/testing/_mock/_mock_dataset_models.py b/src/neuroconv/tools/testing/_mock/_mock_dataset_models.py
index e8ea8082..6d23e0af 100644
--- a/src/neuroconv/tools/testing/_mock/_mock_dataset_models.py
+++ b/src/neuroconv/tools/testing/_mock/_mock_dataset_models.py
@@ -17,14 +17,14 @@ from ...nwb_helpers import (
 
 def mock_DatasetInfo(
     object_id: str = "481a0860-3a0c-40ec-b931-df4a3e9b101f",
-    location: str = "acquisition/TestElectricalSeries/data",
+    location_in_file: str = "acquisition/TestElectricalSeries/data",
     full_shape: Tuple[int, ...] = (60 * 30_000, 384),  # ~1 minute of v1 NeuroPixels probe
     dtype=np.dtype("int16"),
 ) -> DatasetInfo:
     """Mock instance of a DatasetInfo with NeuroPixel-like values to showcase chunk/buffer recommendations."""
     return DatasetInfo(
         object_id=object_id,
-        location=location,
+        location_in_file=location_in_file,
         full_shape=full_shape,
         dtype=dtype,
     )
@@ -72,14 +72,14 @@ def mock_HDF5BackendConfiguration() -> HDF5BackendConfiguration:
     """Mock instance of a HDF5BackendConfiguration with two NeuroPixel-like datasets."""
     dataset_configurations = {
         "acquisition/TestElectricalSeriesAP/data": HDF5DatasetIOConfiguration(
-            dataset_info=mock_DatasetInfo(location="acquisition/TestElectricalSeriesAP/data"),
+            dataset_info=mock_DatasetInfo(location_in_file="acquisition/TestElectricalSeriesAP/data"),
             chunk_shape=(78_125, 64),  # ~10 MB
             buffer_shape=(1_250_000, 384),  # ~1 GB
         ),
         "acquisition/TestElectricalSeriesLF/data": HDF5DatasetIOConfiguration(
             dataset_info=mock_DatasetInfo(
                 object_id="bc37e164-519f-4b65-a976-206440f1d325",
-                location="acquisition/TestElectricalSeriesLF/data",
+                location_in_file="acquisition/TestElectricalSeriesLF/data",
                 full_shape=(75_000, 384),
             ),
             chunk_shape=(37_500, 128),  # ~10 MB
@@ -94,7 +94,7 @@ def mock_ZarrBackendConfiguration() -> ZarrBackendConfiguration:
     """Mock instance of a HDF5BackendConfiguration with several NeuroPixel-like datasets."""
     dataset_configurations = {
         "acquisition/TestElectricalSeriesAP/data": ZarrDatasetIOConfiguration(
-            dataset_info=mock_DatasetInfo(location="acquisition/TestElectricalSeriesAP/data"),
+            dataset_info=mock_DatasetInfo(location_in_file="acquisition/TestElectricalSeriesAP/data"),
             chunk_shape=(78_125, 64),
             buffer_shape=(1_250_000, 384),  # ~1 GB
             filter_methods=["delta"],
@@ -102,7 +102,7 @@ def mock_ZarrBackendConfiguration() -> ZarrBackendConfiguration:
         "acquisition/TestElectricalSeriesLF/data": ZarrDatasetIOConfiguration(
             dataset_info=mock_DatasetInfo(
                 object_id="bc37e164-519f-4b65-a976-206440f1d325",
-                location="acquisition/TestElectricalSeriesLF/data",
+                location_in_file="acquisition/TestElectricalSeriesLF/data",
                 full_shape=(75_000, 384),
             ),
             chunk_shape=(37_500, 128),  # ~10 MB
diff --git a/tests/test_minimal/test_tools/test_backend_and_dataset_configuration/test_helpers/test_get_default_dataset_io_configurations.py b/tests/test_minimal/test_tools/test_backend_and_dataset_configuration/test_helpers/test_get_default_dataset_io_configurations.py
index f3da9a99..768ceb63 100644
--- a/tests/test_minimal/test_tools/test_backend_and_dataset_configuration/test_helpers/test_get_default_dataset_io_configurations.py
+++ b/tests/test_minimal/test_tools/test_backend_and_dataset_configuration/test_helpers/test_get_default_dataset_io_configurations.py
@@ -40,7 +40,7 @@ def test_configuration_on_time_series(iterator: callable, backend: Literal["hdf5
     dataset_configuration = dataset_configurations[0]
     assert isinstance(dataset_configuration, DATASET_IO_CONFIGURATIONS[backend])
     assert dataset_configuration.dataset_info.object_id == time_series.object_id
-    assert dataset_configuration.dataset_info.location == "acquisition/TestTimeSeries/data"
+    assert dataset_configuration.dataset_info.location_in_file == "acquisition/TestTimeSeries/data"
     assert dataset_configuration.dataset_info.full_shape == array.shape
     assert dataset_configuration.dataset_info.dtype == array.dtype
     assert dataset_configuration.chunk_shape == array.shape
@@ -82,7 +82,7 @@ def test_configuration_on_dynamic_table(iterator: callable, backend: Literal["hd
     dataset_configuration = dataset_configurations[0]
     assert isinstance(dataset_configuration, DATASET_IO_CONFIGURATIONS[backend])
     assert dataset_configuration.dataset_info.object_id == column.object_id
-    assert dataset_configuration.dataset_info.location == "acquisition/TestDynamicTable/TestColumn/data"
+    assert dataset_configuration.dataset_info.location_in_file == "acquisition/TestDynamicTable/TestColumn/data"
     assert dataset_configuration.dataset_info.full_shape == array.shape
     assert dataset_configuration.dataset_info.dtype == array.dtype
     assert dataset_configuration.chunk_shape == array.shape
@@ -117,7 +117,7 @@ def test_configuration_on_ragged_units_table(backend: Literal["hdf5", "zarr"]):
     dataset_configuration = next(
         dataset_configuration
         for dataset_configuration in dataset_configurations
-        if dataset_configuration.dataset_info.location == "units/spike_times/data"
+        if dataset_configuration.dataset_info.location_in_file == "units/spike_times/data"
     )
     assert isinstance(dataset_configuration, DATASET_IO_CONFIGURATIONS[backend])
     assert dataset_configuration.dataset_info.full_shape == (5,)
@@ -134,7 +134,7 @@ def test_configuration_on_ragged_units_table(backend: Literal["hdf5", "zarr"]):
     dataset_configuration = next(
         dataset_configuration
         for dataset_configuration in dataset_configurations
-        if dataset_configuration.dataset_info.location == "units/spike_times_index/data"
+        if dataset_configuration.dataset_info.location_in_file == "units/spike_times_index/data"
     )
     assert isinstance(dataset_configuration, DATASET_IO_CONFIGURATIONS[backend])
     assert dataset_configuration.dataset_info.full_shape == (2,)
@@ -151,7 +151,7 @@ def test_configuration_on_ragged_units_table(backend: Literal["hdf5", "zarr"]):
     dataset_configuration = next(
         dataset_configuration
         for dataset_configuration in dataset_configurations
-        if dataset_configuration.dataset_info.location == "units/waveforms/data"
+        if dataset_configuration.dataset_info.location_in_file == "units/waveforms/data"
     )
     assert isinstance(dataset_configuration, DATASET_IO_CONFIGURATIONS[backend])
     assert dataset_configuration.dataset_info.full_shape == (12, 3)
@@ -168,7 +168,7 @@ def test_configuration_on_ragged_units_table(backend: Literal["hdf5", "zarr"]):
     dataset_configuration = next(
         dataset_configuration
         for dataset_configuration in dataset_configurations
-        if dataset_configuration.dataset_info.location == "units/waveforms_index/data"
+        if dataset_configuration.dataset_info.location_in_file == "units/waveforms_index/data"
     )
     assert isinstance(dataset_configuration, DATASET_IO_CONFIGURATIONS[backend])
     assert dataset_configuration.dataset_info.full_shape == (4,)
@@ -185,7 +185,7 @@ def test_configuration_on_ragged_units_table(backend: Literal["hdf5", "zarr"]):
     dataset_configuration = next(
         dataset_configuration
         for dataset_configuration in dataset_configurations
-        if dataset_configuration.dataset_info.location == "units/waveforms_index_index/data"
+        if dataset_configuration.dataset_info.location_in_file == "units/waveforms_index_index/data"
     )
     assert isinstance(dataset_configuration, DATASET_IO_CONFIGURATIONS[backend])
     assert dataset_configuration.dataset_info.full_shape == (2,)
@@ -220,7 +220,8 @@ def test_configuration_on_compass_direction(iterator: callable, backend: Literal
     assert isinstance(dataset_configuration, DATASET_IO_CONFIGURATIONS[backend])
     assert dataset_configuration.dataset_info.object_id == spatial_series.object_id
     assert (
-        dataset_configuration.dataset_info.location == "processing/behavior/TestCompassDirection/TestSpatialSeries/data"
+        dataset_configuration.dataset_info.location_in_file
+        == "processing/behavior/TestCompassDirection/TestSpatialSeries/data"
     )
     assert dataset_configuration.dataset_info.full_shape == array.shape
     assert dataset_configuration.dataset_info.dtype == array.dtype
@@ -270,7 +271,7 @@ def test_configuration_on_ndx_events(backend: Literal["hdf5", "zarr"]):
     )
     assert isinstance(data_dataset_configuration, DATASET_IO_CONFIGURATIONS[backend])
     assert data_dataset_configuration.dataset_info.object_id == labeled_events.object_id
-    assert data_dataset_configuration.dataset_info.location == "processing/behavior/TestLabeledEvents/data"
+    assert data_dataset_configuration.dataset_info.location_in_file == "processing/behavior/TestLabeledEvents/data"
     assert data_dataset_configuration.dataset_info.full_shape == data.shape
     assert data_dataset_configuration.dataset_info.dtype == data.dtype
     assert data_dataset_configuration.chunk_shape == data.shape
@@ -289,7 +290,10 @@ def test_configuration_on_ndx_events(backend: Literal["hdf5", "zarr"]):
     )
     assert isinstance(timestamps_dataset_configuration, DATASET_IO_CONFIGURATIONS[backend])
     assert timestamps_dataset_configuration.dataset_info.object_id == labeled_events.object_id
-    assert timestamps_dataset_configuration.dataset_info.location == "processing/behavior/TestLabeledEvents/timestamps"
+    assert (
+        timestamps_dataset_configuration.dataset_info.location_in_file
+        == "processing/behavior/TestLabeledEvents/timestamps"
+    )
     assert timestamps_dataset_configuration.dataset_info.full_shape == timestamps.shape
     assert timestamps_dataset_configuration.dataset_info.dtype == timestamps.dtype
     assert timestamps_dataset_configuration.chunk_shape == timestamps.shape
diff --git a/tests/test_minimal/test_tools/test_backend_and_dataset_configuration/test_helpers/test_get_default_dataset_io_configurations_appended_files.py b/tests/test_minimal/test_tools/test_backend_and_dataset_configuration/test_helpers/test_get_default_dataset_io_configurations_appended_files.py
index 3924e7e0..b7844839 100644
--- a/tests/test_minimal/test_tools/test_backend_and_dataset_configuration/test_helpers/test_get_default_dataset_io_configurations_appended_files.py
+++ b/tests/test_minimal/test_tools/test_backend_and_dataset_configuration/test_helpers/test_get_default_dataset_io_configurations_appended_files.py
@@ -63,7 +63,7 @@ def test_unwrapped_time_series_hdf5(hdf5_nwbfile_path):
     dataset_configuration = dataset_configurations[0]
     assert isinstance(dataset_configuration, HDF5DatasetIOConfiguration)
     assert dataset_configuration.dataset_info.object_id == new_time_series.object_id
-    assert dataset_configuration.dataset_info.location == "acquisition/NewTimeSeries/data"
+    assert dataset_configuration.dataset_info.location_in_file == "acquisition/NewTimeSeries/data"
     assert dataset_configuration.dataset_info.full_shape == array.shape
     assert dataset_configuration.dataset_info.dtype == array.dtype
     assert dataset_configuration.chunk_shape == array.shape
@@ -86,7 +86,7 @@ def test_unwrapped_time_series_zarr(zarr_nwbfile_path):
     dataset_configuration = dataset_configurations[0]
     assert isinstance(dataset_configuration, ZarrDatasetIOConfiguration)
     assert dataset_configuration.dataset_info.object_id == new_time_series.object_id
-    assert dataset_configuration.dataset_info.location == "acquisition/NewTimeSeries/data"
+    assert dataset_configuration.dataset_info.location_in_file == "acquisition/NewTimeSeries/data"
     assert dataset_configuration.dataset_info.full_shape == array.shape
     assert dataset_configuration.dataset_info.dtype == array.dtype
     assert dataset_configuration.chunk_shape == array.shape
@@ -112,7 +112,7 @@ def test_unwrapped_dynamic_table_hdf5(hdf5_nwbfile_path):
     dataset_configuration = dataset_configurations[0]
     assert isinstance(dataset_configuration, HDF5DatasetIOConfiguration)
     assert dataset_configuration.dataset_info.object_id == column.object_id
-    assert dataset_configuration.dataset_info.location == "acquisition/TestDynamicTable/TestColumn/data"
+    assert dataset_configuration.dataset_info.location_in_file == "acquisition/TestDynamicTable/TestColumn/data"
     assert dataset_configuration.dataset_info.full_shape == array.shape
     assert dataset_configuration.dataset_info.dtype == array.dtype
     assert dataset_configuration.chunk_shape == array.shape
@@ -136,7 +136,7 @@ def test_unwrapped_dynamic_table_zarr(zarr_nwbfile_path):
     dataset_configuration = dataset_configurations[0]
     assert isinstance(dataset_configuration, ZarrDatasetIOConfiguration)
     assert dataset_configuration.dataset_info.object_id == column.object_id
-    assert dataset_configuration.dataset_info.location == "acquisition/TestDynamicTable/TestColumn/data"
+    assert dataset_configuration.dataset_info.location_in_file == "acquisition/TestDynamicTable/TestColumn/data"
     assert dataset_configuration.dataset_info.full_shape == array.shape
     assert dataset_configuration.dataset_info.dtype == array.dtype
     assert dataset_configuration.chunk_shape == array.shape
diff --git a/tests/test_minimal/test_tools/test_backend_and_dataset_configuration/test_models/test_dataset_info_model.py b/tests/test_minimal/test_tools/test_backend_and_dataset_configuration/test_models/test_dataset_info_model.py
index 5b253c18..b9469ef5 100644
--- a/tests/test_minimal/test_tools/test_backend_and_dataset_configuration/test_models/test_dataset_info_model.py
+++ b/tests/test_minimal/test_tools/test_backend_and_dataset_configuration/test_models/test_dataset_info_model.py
@@ -30,7 +30,7 @@ def test_dataset_info_repr():
     # Important to keep the `repr` unmodified for appearance inside iterables of DatasetInfo objects
     expected_repr = (
         "DatasetInfo(object_id='481a0860-3a0c-40ec-b931-df4a3e9b101f', "
-        "location='acquisition/TestElectricalSeries/data', dataset_name='data', dtype=dtype('int16'), "
+        "location_in_file='acquisition/TestElectricalSeries/data', dataset_name='data', dtype=dtype('int16'), "
         "full_shape=(1800000, 384))"
     )
     assert repr(dataset_info) == expected_repr
diff --git a/tests/test_minimal/test_tools/test_backend_and_dataset_configuration/test_models/test_hdf5_dataset_io_configuration_model.py b/tests/test_minimal/test_tools/test_backend_and_dataset_configuration/test_models/test_hdf5_dataset_io_configuration_model.py
index 7f186892..63579a72 100644
--- a/tests/test_minimal/test_tools/test_backend_and_dataset_configuration/test_models/test_hdf5_dataset_io_configuration_model.py
+++ b/tests/test_minimal/test_tools/test_backend_and_dataset_configuration/test_models/test_hdf5_dataset_io_configuration_model.py
@@ -91,7 +91,7 @@ def test_hdf5_dataset_configuration_repr():
     # Important to keep the `repr` unmodified for appearance inside iterables of DatasetInfo objects
     expected_repr = (
         "HDF5DatasetIOConfiguration(dataset_info=DatasetInfo(object_id='481a0860-3a0c-40ec-b931-df4a3e9b101f', "
-        "location='acquisition/TestElectricalSeries/data', dataset_name='data', dtype=dtype('int16'), "
+        "location_in_file='acquisition/TestElectricalSeries/data', dataset_name='data', dtype=dtype('int16'), "
         "full_shape=(1800000, 384)), chunk_shape=(78125, 64), buffer_shape=(1250000, 384), compression_method='gzip', "
         "compression_options=None)"
     )
diff --git a/tests/test_minimal/test_tools/test_backend_and_dataset_configuration/test_models/test_zarr_dataset_io_configuration_model.py b/tests/test_minimal/test_tools/test_backend_and_dataset_configuration/test_models/test_zarr_dataset_io_configuration_model.py
index 6b660e17..ce7ddb0c 100644
--- a/tests/test_minimal/test_tools/test_backend_and_dataset_configuration/test_models/test_zarr_dataset_io_configuration_model.py
+++ b/tests/test_minimal/test_tools/test_backend_and_dataset_configuration/test_models/test_zarr_dataset_io_configuration_model.py
@@ -156,7 +156,7 @@ def test_zarr_dataset_configuration_repr():
     # Important to keep the `repr` unmodified for appearance inside iterables of DatasetInfo objects
     expected_repr = (
         "ZarrDatasetIOConfiguration(dataset_info=DatasetInfo(object_id='481a0860-3a0c-40ec-b931-df4a3e9b101f', "
-        "location='acquisition/TestElectricalSeries/data', dataset_name='data', dtype=dtype('int16'), "
+        "location_in_file='acquisition/TestElectricalSeries/data', dataset_name='data', dtype=dtype('int16'), "
         "full_shape=(1800000, 384)), chunk_shape=(78125, 64), buffer_shape=(1250000, 384), compression_method='gzip', "
         "compression_options=None, filter_methods=None, filter_options=None)"
     )