Skip to content

Commit

Permalink
ElementsQuery split from FormulaQuery
Browse files Browse the repository at this point in the history
  • Loading branch information
Jason Munro committed Mar 25, 2021
1 parent 0d45dc4 commit d62eacf
Show file tree
Hide file tree
Showing 7 changed files with 32 additions and 15 deletions.
10 changes: 4 additions & 6 deletions src/mp_api/bandstructure/resources.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
from mp_api.bandstructure.models.core import BSPathType

from mp_api.core.query_operator import PaginationQuery, SparseFieldsQuery, SortQuery
from mp_api.materials.query_operators import FormulaQuery, MinMaxQuery
from mp_api.materials.query_operators import ElementsQuery, FormulaQuery, MinMaxQuery
from mp_api.bandstructure.query_operators import BSDataQuery

from mp_api.core.utils import STORE_PARAMS
Expand All @@ -25,13 +25,10 @@ def custom_bs_endpoint_prep(self):

async def get_object(
key: str = Query(
...,
alias=key_name,
title=f"The {key_name} of the {model_name} to get",
..., alias=key_name, title=f"The {key_name} of the {model_name} to get",
),
path_type: BSPathType = Query(
...,
title="The k-path convention type for the band structure object",
..., title="The k-path convention type for the band structure object",
),
fields: STORE_PARAMS = Depends(field_input),
):
Expand Down Expand Up @@ -83,6 +80,7 @@ async def get_object(
query_operators=[
BSDataQuery(),
FormulaQuery(),
ElementsQuery(),
MinMaxQuery(),
SortQuery(),
PaginationQuery(),
Expand Down
7 changes: 3 additions & 4 deletions src/mp_api/dos/resources.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
from fastapi.param_functions import Query

from mp_api.core.query_operator import PaginationQuery, SortQuery, SparseFieldsQuery
from mp_api.materials.query_operators import FormulaQuery, MinMaxQuery
from mp_api.materials.query_operators import ElementsQuery, FormulaQuery, MinMaxQuery
from mp_api.dos.query_operators import DOSDataQuery

from mp_api.core.utils import STORE_PARAMS
Expand All @@ -25,9 +25,7 @@ def custom_dos_endpoint_prep(self):

async def get_object(
key: str = Query(
...,
alias=key_name,
title=f"The {key_name} of the {model_name} to get",
..., alias=key_name, title=f"The {key_name} of the {model_name} to get",
),
fields: STORE_PARAMS = Depends(field_input),
):
Expand Down Expand Up @@ -79,6 +77,7 @@ async def get_object(
query_operators=[
DOSDataQuery(),
FormulaQuery(),
ElementsQuery(),
MinMaxQuery(),
SortQuery(),
PaginationQuery(),
Expand Down
20 changes: 17 additions & 3 deletions src/mp_api/materials/query_operators.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,23 @@ def query(
None,
description="Query by formula including anonymized formula or by including wild cards",
),
) -> STORE_PARAMS:

crit = {}

if formula:
crit.update(formula_to_criteria(formula))

return {"criteria": crit}


class ElementsQuery(QueryOperator):
"""
Factory method to generate a dependency for querying by element data
"""

def query(
self,
elements: Optional[str] = Query(
None,
description="Query by elements in the material composition as a comma-separated list",
Expand All @@ -30,9 +47,6 @@ def query(

crit = {}

if formula:
crit.update(formula_to_criteria(formula))

if elements or exclude_elements:
crit["elements"] = {}

Expand Down
2 changes: 2 additions & 0 deletions src/mp_api/materials/resources.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
SortQuery,
)
from mp_api.materials.query_operators import (
ElementsQuery,
FormulaQuery,
DeprecationQuery,
MinMaxQuery,
Expand Down Expand Up @@ -252,6 +253,7 @@ async def formula_autocomplete(
query_operators=[
VersionQuery(),
FormulaQuery(),
ElementsQuery(),
MultiTaskIDQuery(),
SymmetryQuery(),
DeprecationQuery(),
Expand Down
2 changes: 2 additions & 0 deletions src/mp_api/search/resources.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
from mp_api.core.query_operator import PaginationQuery, SortQuery, SparseFieldsQuery
from mp_api.core.resource import Resource
from mp_api.materials.query_operators import (
ElementsQuery,
FormulaQuery,
MinMaxQuery,
SymmetryQuery,
Expand Down Expand Up @@ -128,6 +129,7 @@ async def generate_stats(
query_operators=[
MultipleTaskIDsQuery(),
FormulaQuery(),
ElementsQuery(),
MinMaxQuery(),
SymmetryQuery(),
ThermoEnergySearchQuery(),
Expand Down
3 changes: 2 additions & 1 deletion src/mp_api/tasks/resources.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@

from mp_api.core.query_operator import PaginationQuery, SortQuery, SparseFieldsQuery
from mp_api.tasks.query_operators import MultipleTaskIDsQuery
from mp_api.materials.query_operators import FormulaQuery
from mp_api.materials.query_operators import ElementsQuery, FormulaQuery

from monty.json import jsanitize
import json
Expand All @@ -23,6 +23,7 @@ def task_resource(task_store):
TaskDoc,
query_operators=[
FormulaQuery(),
ElementsQuery(),
MultipleTaskIDsQuery(),
SortQuery(),
PaginationQuery(),
Expand Down
3 changes: 2 additions & 1 deletion src/mp_api/xas/resources.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
from mp_api.xas.models import XASDoc

from mp_api.core.query_operator import PaginationQuery, SortQuery, SparseFieldsQuery
from mp_api.materials.query_operators import FormulaQuery
from mp_api.materials.query_operators import ElementsQuery, FormulaQuery
from mp_api.xas.query_operator import XASQuery, XASTaskIDQuery


Expand All @@ -12,6 +12,7 @@ def xas_resource(xas_store):
XASDoc,
query_operators=[
FormulaQuery(),
ElementsQuery(),
XASQuery(),
XASTaskIDQuery(),
SortQuery(),
Expand Down

0 comments on commit d62eacf

Please sign in to comment.