Skip to content

Commit

Permalink
support single values as search filters (#672)
Browse files Browse the repository at this point in the history
e.g. num_elements=1 instead of num_elements=[1, 1]
  • Loading branch information
janosh authored Sep 23, 2022
1 parent 3f97dec commit f29b2e0
Show file tree
Hide file tree
Showing 7 changed files with 39 additions and 23 deletions.
7 changes: 3 additions & 4 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -7,12 +7,11 @@ repos:
- id: trailing-whitespace
- id: flake8
- repo: https://github.com/psf/black
rev: 22.6.0
rev: 22.8.0
hooks:
- id: black
language_version: python3 # Should be a command that runs python3.6+
- repo: https://github.com/myint/autoflake
rev: v1.4
- repo: https://github.com/PyCQA/autoflake
rev: v1.5.3
hooks:
- id: autoflake
args: [--in-place, --remove-all-unused-imports, --remove-unused-variable]
2 changes: 2 additions & 0 deletions mp_api/client/routes/electrodes.py
Original file line number Diff line number Diff line change
Expand Up @@ -131,6 +131,8 @@ def search( # pragma: ignore
query_params.update({"elements": ",".join(elements)})

if num_elements:
if isinstance(num_elements, int):
num_elements = (num_elements, num_elements)
query_params.update(
{"nelements_min": num_elements[0], "nelements_max": num_elements[1]}
)
Expand Down
8 changes: 5 additions & 3 deletions mp_api/client/routes/electronic_structure.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import base64
import warnings
import zlib
from collections import defaultdict
from typing import List, Optional, Tuple, Union
Expand All @@ -10,13 +11,12 @@
ElectronicStructureDoc,
)
from monty.serialization import MontyDecoder
from mp_api.client.core import BaseRester, MPRestError
from mp_api.client.core.utils import validate_ids
from pymatgen.analysis.magnetism.analyzer import Ordering
from pymatgen.core.periodic_table import Element
from pymatgen.electronic_structure.core import OrbitalType, Spin

import warnings
from mp_api.client.core import BaseRester, MPRestError
from mp_api.client.core.utils import validate_ids


class ElectronicStructureRester(BaseRester[ElectronicStructureDoc]):
Expand Down Expand Up @@ -126,6 +126,8 @@ def search(
query_params.update({"magnetic_ordering": magnetic_ordering.value})

if num_elements:
if isinstance(num_elements, int):
num_elements = (num_elements, num_elements)
query_params.update(
{"nelements_min": num_elements[0], "nelements_max": num_elements[1]}
)
Expand Down
11 changes: 6 additions & 5 deletions mp_api/client/routes/materials.py
Original file line number Diff line number Diff line change
@@ -1,15 +1,14 @@
import warnings
from typing import List, Optional, Tuple, Union
from pymatgen.core.structure import Structure

from emmet.core.vasp.material import MaterialsDoc
from emmet.core.symmetry import CrystalSystem
from emmet.core.settings import EmmetSettings
from emmet.core.symmetry import CrystalSystem
from emmet.core.vasp.material import MaterialsDoc
from pymatgen.core.structure import Structure

from mp_api.client.core import BaseRester, MPRestError
from mp_api.client.core.utils import validate_ids

import warnings

_EMMET_SETTINGS = EmmetSettings()


Expand Down Expand Up @@ -154,6 +153,8 @@ def search(
)

if num_elements:
if isinstance(num_elements, int):
num_elements = (num_elements, num_elements)
query_params.update(
{"nelements_min": num_elements[0], "nelements_max": num_elements[1]}
)
Expand Down
10 changes: 6 additions & 4 deletions mp_api/client/routes/summary.py
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
import warnings
from collections import defaultdict
from typing import List, Optional, Tuple, Union

from emmet.core.mpid import MPID
from emmet.core.summary import HasProps, SummaryDoc
from emmet.core.symmetry import CrystalSystem
from mp_api.client.core import BaseRester
from mp_api.client.core.utils import validate_ids
from pymatgen.analysis.magnetism import Ordering

import warnings
from mp_api.client.core import BaseRester
from mp_api.client.core.utils import validate_ids


class SummaryRester(BaseRester[SummaryDoc]):
Expand Down Expand Up @@ -210,6 +210,8 @@ def search(

for param, value in locals().items():
if param in min_max_name_dict and value:
if isinstance(value, (int, float)):
value = (value, value)
query_params.update(
{
f"{min_max_name_dict[param]}_min": value[0],
Expand Down Expand Up @@ -289,5 +291,5 @@ def search(
chunk_size=chunk_size,
all_fields=all_fields,
fields=fields,
**query_params
**query_params,
)
11 changes: 7 additions & 4 deletions mp_api/client/routes/thermo.py
Original file line number Diff line number Diff line change
@@ -1,11 +1,12 @@
import warnings
from collections import defaultdict
from typing import Optional, List, Tuple, Union
from mp_api.client.core import BaseRester
from mp_api.client.core.utils import validate_ids
from typing import List, Optional, Tuple, Union

from emmet.core.thermo import ThermoDoc
from pymatgen.analysis.phase_diagram import PhaseDiagram

import warnings
from mp_api.client.core import BaseRester
from mp_api.client.core.utils import validate_ids


class ThermoRester(BaseRester[ThermoDoc]):
Expand Down Expand Up @@ -95,6 +96,8 @@ def search(
query_params.update({"material_ids": ",".join(validate_ids(material_ids))})

if num_elements:
if isinstance(num_elements, int):
num_elements = (num_elements, num_elements)
query_params.update(
{"nelements_min": num_elements[0], "nelements_max": num_elements[1]}
)
Expand Down
13 changes: 10 additions & 3 deletions setup.cfg
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,10 @@
addopts = --durations=30

[pycodestyle]
count = True
count = true
ignore = E121,E123,E126,E133,E226,E241,E242,E704,W503,W504,W505,E741,W605,W293,E203
max-line-length = 120
statistics = True
statistics = true
exclude = documentation.py

[flake8]
Expand All @@ -18,4 +18,11 @@ max-line-length = 120
ignore = D105,D2,D4

[mypy]
ignore_missing_imports = True
ignore_missing_imports = true

[autoflake]
in-place = true
remove-unused-variables = true
remove-all-unused-imports = true
expand-star-imports = true
ignore-init-module-imports = true

0 comments on commit f29b2e0

Please sign in to comment.