Skip to content

Commit eee0a13

Browse files
author
alex-omophub
committed
Prep for v1.5.0 release
1 parent b972391 commit eee0a13

2 files changed

Lines changed: 20 additions & 1 deletion

File tree

CHANGELOG.md

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,20 @@ All notable changes to this project will be documented in this file.
55
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
66
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
77

8+
## [1.5.0] - 2026-03-26
9+
10+
### Added
11+
12+
- **Bulk lexical search** (`search.bulk_basic()`): Execute up to 50 keyword searches in a single API call. Supports shared defaults for vocabulary, domain, and other filters. Each search is identified by a unique `search_id` for result matching. Maps to `POST /v1/search/bulk`.
13+
- **Bulk semantic search** (`search.bulk_semantic()`): Execute up to 25 natural-language searches using neural embeddings in a single call. Supports per-search similarity thresholds and shared defaults. Includes query enhancement data (abbreviation expansion, misspelling correction). Maps to `POST /v1/search/semantic-bulk`.
14+
- New TypedDict types for bulk search: `BulkSearchInput`, `BulkSearchDefaults`, `BulkSearchResponse`, `BulkSearchResultItem`, `BulkSemanticSearchInput`, `BulkSemanticSearchDefaults`, `BulkSemanticSearchResponse`, `BulkSemanticSearchResultItem`, `QueryEnhancement`.
15+
- Both sync (`OMOPHub`) and async (`AsyncOMOPHub`) clients support bulk search methods.
16+
17+
### Changed
18+
19+
- Updated `__all__` exports to alphabetical order (ruff RUF022 compliance).
20+
- `BulkSearchInput` and `BulkSemanticSearchInput` now use `Required[str]` for `search_id` and `query` fields for proper type checking.
21+
822
## [1.4.1] - 2026-02-28
923

1024
### Fixed

tests/conftest.py

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -142,7 +142,12 @@ def rate_limit_delay(request: pytest.FixtureRequest) -> None:
142142
yield
143143
# Only delay for integration tests
144144
if "integration" in request.keywords:
145-
time.sleep(2)
145+
# Bulk endpoints consume more rate limit budget
146+
test_name = request.node.name
147+
if "bulk" in test_name:
148+
time.sleep(5)
149+
else:
150+
time.sleep(2)
146151

147152

148153
# Well-known test concept IDs for integration tests

0 commit comments

Comments
 (0)