Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 8 additions & 3 deletions RELEASE_MEMO.md
Original file line number Diff line number Diff line change
Expand Up @@ -150,11 +150,16 @@ If the bot doesn't create a PR, manually update the feedstock:
run:
- python >={{ python_min }}
- numpy
- pymysql >=0.7.2
- deepdiff
- pyparsing
- pandas
- pymysql >=1.0
- minio
- tqdm
- networkx
- pydot
- fsspec >=2023.1.0
- pydantic-settings >=2.0.0
- packaging
# ... etc
```

5. **Submit PR** to the feedstock
Expand Down
14 changes: 9 additions & 5 deletions src/datajoint/builtin_codecs/filepath.py
Original file line number Diff line number Diff line change
Expand Up @@ -22,8 +22,10 @@ class FilepathCodec(Codec):

This codec gives users maximum freedom in organizing their files while
reusing DataJoint's store configuration. Files can be placed anywhere
in the store EXCEPT the reserved ``_hash/`` and ``_schema/`` sections
which are managed by DataJoint.
in the store EXCEPT the reserved sections managed by DataJoint (the
hash-addressed and schema-addressed sections — from each store's
``hash_prefix`` and ``schema_prefix`` settings, defaults ``_hash`` and
``_schema``).

This is useful when:
- Files are managed externally (e.g., by acquisition software)
Expand Down Expand Up @@ -54,7 +56,8 @@ class Recordings(dj.Manual):
JSON metadata: ``{path, store, size, timestamp}``

Reserved Sections:
Paths cannot start with ``_hash/`` or ``_schema/`` - these are managed by DataJoint.
Paths cannot start with the store's reserved ``hash_prefix`` or
``schema_prefix`` sections (defaults ``_hash/`` and ``_schema/``).

Warning:
The file must exist in the store at the specified path.
Expand All @@ -78,7 +81,8 @@ def encode(self, value: Any, *, key: dict | None = None, store_name: str | None
Parameters
----------
value : str
Relative path within the store. Cannot use reserved sections (_hash/, _schema/).
Relative path within the store. Cannot use the store's reserved
hash/schema sections.
key : dict, optional
Primary key values (unused).
store_name : str, optional
Expand All @@ -92,7 +96,7 @@ def encode(self, value: Any, *, key: dict | None = None, store_name: str | None
Raises
------
ValueError
If path uses reserved sections (_hash/ or _schema/).
If path uses the store's reserved hash/schema sections.
FileNotFoundError
If file does not exist in the store.
"""
Expand Down
2 changes: 1 addition & 1 deletion tests/integration/test_trace.py
Original file line number Diff line number Diff line change
Expand Up @@ -400,7 +400,7 @@ def test_trace_stops_at_master_no_part_down_collection(schema_by_backend):

This corrects the design comment on datajoint/datajoint-python discussion
1232, which described a Master->Parts down-collection that was never
implemented; the spec (provenance.md, Allowed table set) matches this
implemented; the spec (trace.md §Allowed table set) matches this
test. If down-collection is ever added deliberately, this test must be
revised alongside the spec — it exists so the semantics cannot drift
silently."""
Expand Down
Loading