You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
- Client does not use configured HTTP session for scraping provider list [\#2275](https://github.com/Materials-Consortia/optimade-python-tools/issues/2275)
10
+
11
+
**Closed issues:**
12
+
13
+
- Migrate off httpx [\#2388](https://github.com/Materials-Consortia/optimade-python-tools/issues/2388)
14
+
- Switch dependency management to `uv`[\#2311](https://github.com/Materials-Consortia/optimade-python-tools/issues/2311)
- Do not create release-specific changelog [\#2407](https://github.com/Materials-Consortia/optimade-python-tools/pull/2407) ([ml-evs](https://github.com/ml-evs))
20
+
- Bump the github-actions group across 1 directory with 3 updates [\#2401](https://github.com/Materials-Consortia/optimade-python-tools/pull/2401) ([dependabot[bot]](https://github.com/apps/dependabot))
21
+
- Revert "Revert "Use `uv` in CI workflows and add `uv.lock`"" [\#2397](https://github.com/Materials-Consortia/optimade-python-tools/pull/2397) ([ml-evs](https://github.com/ml-evs))
22
+
- Allow a custom requests.Session for provider-list scraping [\#2380](https://github.com/Materials-Consortia/optimade-python-tools/pull/2380) ([vasa-develop](https://github.com/vasa-develop))
Users of the `OptimadeClient` are recommended to install this update.
132
-
152
+
Users of the `OptimadeClient` are recommended to install this update.
153
+
133
154
This release fixes a nasty issue with the client that can cause it to hang infinitely when an malformed OPTIMADE API continues to return `next_url` with no additional data (thanks to @mehmetgiritli for the report and fix!) It also reduces the default MongoDB timeout when counting how many results are in a filter. As this count is performed for every page of queries, the previous high timeout could effectively set a minimum response time of 5 seconds. Issue #2251 tracks future improvements to this behaviour.
134
155
135
156
**Fixed bugs:**
@@ -445,14 +466,14 @@ This v1.2.0 release is coincidentally the first to support some features from OP
We have decided to make this first major release at this point due to the arduous migration to pydantic v2 between v1.0.0 and v0.25.3. This will allow for improved compatibility with the rest of the ecosystem, plus all of the performance and ergonomics benefits of the new pydantic.
451
-
452
-
If you are using optimade-python-tools primarily as a library, then you may need to make some code changes to support the new version. For example, the underlying API for dealing with the pydantic models has changed (e.g., `model.dict()` is now `model.model_dump()`) -- a full migration guide can be found in the [pydantic docs](https://docs.pydantic.dev/latest/migration/). Additionally, any cases where the underlying JSON schemas were being modified may need to be updated; internally we are pretty much exclusively operating on the pydantic model objects without needing to modify the raw schemas anymore.
453
-
454
-
Going forward, v1.0.x will be the last series to support v1.1 of the OPTIMADE specification, with future versions of the package v1.x.y adding features from the pre-release of OPTIMADE v1.2.
455
-
469
+
optimade-python-tools has reached v1.0.0!
470
+
471
+
We have decided to make this first major release at this point due to the arduous migration to pydantic v2 between v1.0.0 and v0.25.3. This will allow for improved compatibility with the rest of the ecosystem, plus all of the performance and ergonomics benefits of the new pydantic.
472
+
473
+
If you are using optimade-python-tools primarily as a library, then you may need to make some code changes to support the new version. For example, the underlying API for dealing with the pydantic models has changed (e.g., `model.dict()` is now `model.model_dump()`) -- a full migration guide can be found in the [pydantic docs](https://docs.pydantic.dev/latest/migration/). Additionally, any cases where the underlying JSON schemas were being modified may need to be updated; internally we are pretty much exclusively operating on the pydantic model objects without needing to modify the raw schemas anymore.
474
+
475
+
Going forward, v1.0.x will be the last series to support v1.1 of the OPTIMADE specification, with future versions of the package v1.x.y adding features from the pre-release of OPTIMADE v1.2.
476
+
456
477
A branch will be maintained for the v0.25.x series will be maintained for those who are stuck on pydantic v1 and run into bugs. Please make it clear in any bug reports if you are using this version.
457
478
458
479
**Fixed bugs:**
@@ -639,36 +660,36 @@ This release adds a new feature to the reference server for avoiding validating
- Ability to create OPTIMADE structure objects from ASE atoms:
684
+
```python
685
+
from optimade.adapters import Structure
686
+
from ase import Atoms
687
+
688
+
co = Atoms('CO', positions=[(0, 0, 0), (0, 0, 1.1)])
689
+
690
+
structure = Structure.from_ase_atoms(co)
691
+
```
692
+
672
693
- Added ability to mute the client progress bars with `--silent`/`silent=True` and increased default response timeouts to better reflect those required for practical queries.
673
694
674
695
**Implemented enhancements:**
@@ -704,25 +725,25 @@ This release primarily adds compatibility for the newest FastAPI releases (`>=0.
This release adds the ability to include or exclude particular providers from queries with the `OptimadeClient` class and `optimade-get` CLI, via the provider's registered prefix (#1412)
708
-
709
-
For example:
710
-
711
-
```shell
712
-
# Only query databases served by the example providers
713
-
optimade-get --include-providers exmpl,optimade
714
-
# Exclude example providers from global list
715
-
optimade-get --exclude-providers exmpl,optimade
716
-
```
717
-
718
-
You can also now exclude particular databases by their URLs:
The release also includes some server enhancements and fixes:
725
-
- Caching of `/info/` and `/info/<entry>` endpoint responses (#1433)
728
+
This release adds the ability to include or exclude particular providers from queries with the `OptimadeClient` class and `optimade-get` CLI, via the provider's registered prefix (#1412)
729
+
730
+
For example:
731
+
732
+
```shell
733
+
# Only query databases served by the example providers
734
+
optimade-get --include-providers exmpl,optimade
735
+
# Exclude example providers from global list
736
+
optimade-get --exclude-providers exmpl,optimade
737
+
```
738
+
739
+
You can also now exclude particular databases by their URLs:
This release continues the modularisation of the package by moving the server exceptions and warnings out into top-level modules, and removing the core dependency on FastAPI (now a server dependency only). This should allow for easier use of the `optimade.models` and `optimade.client` modules within other packages.
763
-
783
+
This release continues the modularisation of the package by moving the server exceptions and warnings out into top-level modules, and removing the core dependency on FastAPI (now a server dependency only). This should allow for easier use of the `optimade.models` and `optimade.client` modules within other packages.
784
+
764
785
Aside from that, the package now supports Python 3.11, and our example server is now deployed at [Fly.io](https://optimade.fly.dev) rather than Heroku.
765
786
766
787
**Implemented enhancements:**
@@ -851,7 +872,7 @@ This is a hotfix release for #1335, a bug regarding chunked responses triggered
This is a feature release that includes the new `optimade.client.OptimadeClient` class, a client capable asynchronously querying multiple OPTIMADE APIs simultaneously.
892
-
It also contains a patch for the OPTIMADE models that allows them to be used with more recent FastAPI versions without breaking OpenAPI 3.0 compatibility.
912
+
This is a feature release that includes the new `optimade.client.OptimadeClient` class, a client capable asynchronously querying multiple OPTIMADE APIs simultaneously.
913
+
It also contains a patch for the OPTIMADE models that allows them to be used with more recent FastAPI versions without breaking OpenAPI 3.0 compatibility.
893
914
Other changes can be found below.
894
-
This release includes improvements to the validator to catch more cases where OPTIMADE APIs are only partially implemented.
915
+
This release includes improvements to the validator to catch more cases where OPTIMADE APIs are only partially implemented.
895
916
Previously, APIs that did not support filtering, pagination or limiting response fields at all (i.e., the query parameter is simply ignored) would pass most validation tests erroneously in some unlucky situations (#1180).
896
917
897
918
**Implemented enhancements:**
@@ -915,7 +936,7 @@ Previously, APIs that did not support filtering, pagination or limiting response
This release includes improvements to the validator to catch more cases where OPTIMADE APIs are only partially implemented.
939
+
This release includes improvements to the validator to catch more cases where OPTIMADE APIs are only partially implemented.
919
940
Previously, APIs that did not support filtering, pagination or limiting response fields at all (i.e., the query parameter is simply ignored) would pass most validation tests erroneously in some unlucky situations (#1180).
920
941
921
942
**Fixed bugs:**
@@ -930,10 +951,10 @@ Previously, APIs that did not support filtering, pagination or limiting response
This patch release adds a pre-built Docker container for the reference server to the GitHub Container Registry (GHCR) and a series of [Deployment instructions](https://www.optimade.org/optimade-python-tools/v0.17.1/deployment/container/) in the online documentation.
934
-
935
-
The image can be easily pulled from GHCR with:
936
-
954
+
This patch release adds a pre-built Docker container for the reference server to the GitHub Container Registry (GHCR) and a series of [Deployment instructions](https://www.optimade.org/optimade-python-tools/v0.17.1/deployment/container/) in the online documentation.
This minor release contains fixes recommended for those deploying the optimade-python-tools reference server:
957
-
958
-
- The `meta->data_returned` field was previously incorrect when using the MongoDB backend.
959
-
- Incoming URL query parameters are now validated against the provided query parameters class (if using custom query parameters, this class should be extended or the parameters should use your registered provider prefix). This functionality can be disabled with the `validate_query_parameters` config option.
977
+
This minor release contains fixes recommended for those deploying the optimade-python-tools reference server:
978
+
979
+
- The `meta->data_returned` field was previously incorrect when using the MongoDB backend.
980
+
- Incoming URL query parameters are now validated against the provided query parameters class (if using custom query parameters, this class should be extended or the parameters should use your registered provider prefix). This functionality can be disabled with the `validate_query_parameters` config option.
960
981
- The results of some queries were not reversible with MongoDB (e.g., `nelements != 2` vs `2 != nelements`); this has now been fixed.
Copy file name to clipboardExpand all lines: openapi/index_openapi.json
+1-1Lines changed: 1 addition & 1 deletion
Original file line number
Diff line number
Diff line change
@@ -2,7 +2,7 @@
2
2
"openapi": "3.1.0",
3
3
"info": {
4
4
"title": "OPTIMADE API - Index meta-database",
5
-
"description": "The [Open Databases Integration for Materials Design (OPTIMADE) consortium](https://www.optimade.org/) aims to make materials databases interoperational by developing a common REST API.\nThis is the \"special\" index meta-database.\n\nThis specification is generated using [`optimade-python-tools`](https://github.com/Materials-Consortia/optimade-python-tools/tree/v1.4.2) v1.4.2.",
5
+
"description": "The [Open Databases Integration for Materials Design (OPTIMADE) consortium](https://www.optimade.org/) aims to make materials databases interoperational by developing a common REST API.\nThis is the \"special\" index meta-database.\n\nThis specification is generated using [`optimade-python-tools`](https://github.com/Materials-Consortia/optimade-python-tools/tree/v1.5.0) v1.5.0.",
Copy file name to clipboardExpand all lines: openapi/openapi.json
+1-1Lines changed: 1 addition & 1 deletion
Original file line number
Diff line number
Diff line change
@@ -2,7 +2,7 @@
2
2
"openapi": "3.1.0",
3
3
"info": {
4
4
"title": "OPTIMADE API",
5
-
"description": "The [Open Databases Integration for Materials Design (OPTIMADE) consortium](https://www.optimade.org/) aims to make materials databases interoperational by developing a common REST API.\n\nThis specification is generated using [`optimade-python-tools`](https://github.com/Materials-Consortia/optimade-python-tools/tree/v1.4.2) v1.4.2.",
5
+
"description": "The [Open Databases Integration for Materials Design (OPTIMADE) consortium](https://www.optimade.org/) aims to make materials databases interoperational by developing a common REST API.\n\nThis specification is generated using [`optimade-python-tools`](https://github.com/Materials-Consortia/optimade-python-tools/tree/v1.5.0) v1.5.0.",
0 commit comments