Skip to content

Commit 5194ed6

Browse files
authored
Merge pull request #1310 from VisLab/new_release
Updated changelog for release 1.1.0
2 parents 135f494 + 2396ce1 commit 5194ed6

1 file changed

Lines changed: 30 additions & 2 deletions

File tree

CHANGELOG.md

Lines changed: 30 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,32 @@
1-
# Unreleased
1+
# Release 1.1.0 April 19, 2026
22

33
## New features
44

5+
### Search engine performance improvements
6+
7+
`ExpressionAnd`, `ExpressionOr`, and `ExpressionNegation` in `query_expressions.py` now use set-based deduplication instead of O(n²) list scanning, giving a significant speedup for queries that produce many intermediate results. Supporting this, `SearchResult` gains `__eq__` and `__hash__` methods so instances can be stored in sets and dicts. `QueryHandler._expr_has_wildcard()` replaces the fragile `"?" in str(interior)` string check with a proper recursive AST walk, eliminating false positives on queries whose string representations happen to contain a literal `?`.
8+
9+
### `StringQueryHandler` and `schema_lookup` (internal / experimental)
10+
11+
Two new internal modules support schema-free HED search:
12+
13+
- `hed/models/string_search.py``StringQueryHandler` subclasses `QueryHandler` and accepts a raw HED string instead of a parsed `HedString`, enabling query evaluation without loading a schema. `StringNode` duck-types `HedGroup`/`HedTag` so that existing `Expression` subclasses evaluate against it without modification.
14+
- `hed/models/schema_lookup.py``generate_schema_lookup(schema)` builds a compact `{short_tag: tag_terms}` dict from a loaded schema that can be passed to `StringQueryHandler.search()` to enable ancestor-aware matching on short-form strings. `save_schema_lookup()` / `load_schema_lookup()` persist the table as JSON for offline use.
15+
16+
These modules are not part of the public API and may change in future releases.
17+
18+
### `HedGroup` find-method documentation clarified
19+
20+
Docstrings for `find_tags`, `find_wildcard_tags`, `find_exact_tags`, and `find_tags_with_term` now document the exact comparison property each method uses (`short_base_tag`, `short_tag`, `HedTag.__eq__`, and `tag_terms` respectively) and explain the rationale for that choice.
21+
22+
### Search benchmarks
23+
24+
A new `benchmarks/` directory provides reproducible performance benchmarking tools: `search_benchmark.py` measures throughput across query types and string sizes, `data_generator.py` synthesizes realistic HED strings, and `report.py` generates Markdown and PNG reports. Pre-computed results are stored under `benchmarks/results/` and benchmark figures under `docs/_static/images/`.
25+
26+
### Search documentation
27+
28+
A new `docs/search_details.md` page covers all three HED search implementations (`basic_search`, `QueryHandler`, and `StringQueryHandler`): design trade-offs, query language reference, and measured performance characteristics with benchmark figures.
29+
530
### Pandas 3.0 compatibility
631

732
All pandas 3.0 breaking changes have been addressed, and the pandas version constraint in `pyproject.toml` has been updated from `<3.0.0` to `<4.0.0`:
@@ -36,7 +61,10 @@ hedpy extract bids-sidecar /path/to/dataset --filter sub-01
3661
## CI/CD
3762

3863
- Bumped `actions/configure-pages` from 5 to 6.
39-
- Updated `spec_tests/hed-tests` submodule.
64+
- Bumped `astral-sh/setup-uv` from v7 to v8.0.0.
65+
- Updated `anthropics/claude-code-action` to v1.0.97.
66+
- Pinned all GitHub Actions steps to full SHA hashes for supply-chain security.
67+
- Updated `spec_tests/hed-examples`, `spec_tests/hed-schemas`, and `spec_tests/hed-tests` submodules.
4068

4169
# Release 1.0.0 March 27, 2026
4270

0 commit comments

Comments
 (0)