Skip to content

Commit

Permalink
spglib 2.5 compatibility (#943)
Browse files Browse the repository at this point in the history
* update spglib symmetry dataset access and pin min version

* move spglib version pin

* ensure correct spglib installed in requirements

* ensure correct spglib installed in requirements

* add a few attempts to connect to dataset downloads in case internet has bad day

* remove mac hidden ds_stores and add to gitignore

* precommit

* ensure backwards compat with older spglib, loosen lower pin on spglib version, upper pin on numpy

* precommit

* repin spglib == 2.5, add read permissions for workflow actions (somehow GH token not being read

* Update .github/workflows/test.yml

---------

Co-authored-by: Matthew Evans <7916000+ml-evs@users.noreply.github.com>
  • Loading branch information
esoteric-ephemera and ml-evs authored Oct 2, 2024
1 parent 6edbd24 commit 6df36ea
Show file tree
Hide file tree
Showing 5 changed files with 19 additions and 5 deletions.
3 changes: 3 additions & 0 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,9 @@
# The ext package is also only tested in this workflow. Coverage is also computed based on this platform.
name: Testing

permissions:
contents: read

env:
PYTEST_ADDOPTS: "--color=yes"

Expand Down
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,8 @@ docs/_build/*/*/*
# C extensions
*.so

.DS_Store

# Packages
*.egg
*.egg-info
Expand Down
11 changes: 10 additions & 1 deletion matminer/datasets/tests/test_datasets.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import os
import unittest
from time import sleep

import numpy as np
import requests
Expand All @@ -20,6 +21,7 @@ def universal_dataset_check(
numeric_headers=None,
bool_headers=None,
test_func=None,
max_connect_attempts: int = 5,
):
# "Hard" integrity checks that take a long time.
# These tests only run if the MATMINER_DATASET_FULL_TEST
Expand Down Expand Up @@ -75,7 +77,14 @@ def universal_dataset_check(
# This runs when on a system with the CI environment var present
# (e.g. when running a continuous integration VCS system)
else:
download_page = requests.head(self.dataset_dict[dataset_name]["url"])
# try to be lenient in connecting to DB, in case a request fails once
for iconnect in range(max_connect_attempts):
download_page = requests.head(self.dataset_dict[dataset_name]["url"])
if download_page.ok:
break
if iconnect < max_connect_attempts - 1:
sleep(5)

self.assertTrue(download_page.ok)


Expand Down
4 changes: 2 additions & 2 deletions matminer/featurizers/structure/bonding.py
Original file line number Diff line number Diff line change
Expand Up @@ -805,8 +805,8 @@ def get_equiv_sites(self, s, site):
sga = SpacegroupAnalyzer(s, symprec=0.01)
sg = sga.get_space_group_operations
sym_data = sga.get_symmetry_dataset()
equiv_atoms = sym_data["equivalent_atoms"]
wyckoffs = sym_data["wyckoffs"]
equiv_atoms = getattr(sym_data, "equivalent_atoms", sym_data["equivalent_atoms"])
wyckoffs = getattr(sym_data, "wyckoffs", sym_data["wyckoffs"])
sym_struct = SymmetrizedStructure(s, sg, equiv_atoms, wyckoffs)
equivs = sym_struct.find_equivalent_sites(site)
return equivs
Expand Down
4 changes: 2 additions & 2 deletions pyproject.toml
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
[build-system]
requires = [
# pin NumPy version used in the build
"numpy>=1.20.1",
"setuptools>=43.0.0"
"numpy>=1.20.1, <2",
"setuptools>=43.0.0",
]
build-backend = "setuptools.build_meta"

Expand Down

0 comments on commit 6df36ea

Please sign in to comment.