diff --git a/.github/workflows/python-package.yml b/.github/workflows/python-package.yml index 620ea4aa..b468c2d7 100644 --- a/.github/workflows/python-package.yml +++ b/.github/workflows/python-package.yml @@ -17,11 +17,11 @@ jobs: - uses: actions/setup-python@v4 with: - python-version: "3.9" + python-version: "3.10" cache: pip cache-dependency-path: pyproject.toml - - uses: pre-commit/action@v3.0.0 + - uses: pre-commit/action@v3.0.1 test: runs-on: ubuntu-latest @@ -31,7 +31,7 @@ jobs: strategy: fail-fast: false matrix: - python-version: ["3.9", "3.10", "3.11", "3.12"] + python-version: ["3.10", "3.11", "3.12"] split: [1, 2, 3, 4, 5, 6] @@ -63,10 +63,12 @@ jobs: pytest --cov=lobsterpy --cov-report term-missing --cov-append --splits 6 --group ${{ matrix.split }} -vv --durations-path ./tests/test_data/.pytest-split-durations - name: Upload coverage - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: - name: coverage-${{ matrix.split }} - path: .coverage + name: coverage-${{ matrix.split }}-${{ matrix.python-version }} + include-hidden-files: true + overwrite: false + path: ./.coverage coverage: needs: test @@ -84,12 +86,12 @@ jobs: - name: Download coverage artifacts continue-on-error: true - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4 - name: Run coverage continue-on-error: true run: | - coverage combine coverage*/.coverage* + coverage combine coverage*/.coverage-*-3.10 coverage report --show-missing - name: Upload coverage reports to Codecov diff --git a/pyproject.toml b/pyproject.toml index 2ce0c954..214040b1 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -20,7 +20,6 @@ authors = [{ name = "Janine George", email = "janine.george@bam.de" }] version = "0.4.7" classifiers = [ "Programming Language :: Python :: 3", - "Programming Language :: Python :: 3.9", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", @@ -28,9 +27,9 @@ classifiers = [ "Intended Audience :: Science/Research", "Operating System :: OS Independent", ] -requires-python = ">=3.9,<3.13" +requires-python = ">=3.10,<3.13" dependencies = [ - "pymatgen>=2024.5.1", + "pymatgen>=2024.9.10", "numpy<3.0.0", "typing", ] diff --git a/src/lobsterpy/cohp/analyze.py b/src/lobsterpy/cohp/analyze.py index ee9be0e8..22a471c6 100644 --- a/src/lobsterpy/cohp/analyze.py +++ b/src/lobsterpy/cohp/analyze.py @@ -1693,18 +1693,18 @@ def get_lobster_calc_quality_summary( max_e=max_e, n_bins=n_bins, normalize=True, - type=orb.name, + fp_type=orb.name, ) fp_vasp_orb = dos_vasp.get_dos_fp( min_e=min_e, max_e=max_e, n_bins=n_bins, normalize=True, - type=orb.name, + fp_type=orb.name, ) tani_orb = round( - dos_vasp.get_dos_fp_similarity(fp_lobster_orb, fp_vasp_orb, tanimoto=True), + dos_vasp.get_dos_fp_similarity(fp_lobster_orb, fp_vasp_orb, metric="tanimoto"), 4, ) quality_dict["dos_comparisons"][f"tanimoto_orb_{orb.name}"] = tani_orb # type: ignore @@ -1714,17 +1714,17 @@ def get_lobster_calc_quality_summary( max_e=max_e, n_bins=n_bins, normalize=True, - type="summed_pdos", + fp_type="summed_pdos", ) fp_vasp = dos_vasp.get_dos_fp( min_e=min_e, max_e=max_e, n_bins=n_bins, normalize=True, - type="summed_pdos", + fp_type="summed_pdos", ) - tanimoto_summed = round(dos_vasp.get_dos_fp_similarity(fp_lobster, fp_vasp, tanimoto=True), 4) + tanimoto_summed = round(dos_vasp.get_dos_fp_similarity(fp_lobster, fp_vasp, metric="tanimoto"), 4) quality_dict["dos_comparisons"]["tanimoto_summed"] = tanimoto_summed # type: ignore quality_dict["dos_comparisons"]["e_range"] = [min_e, max_e] # type: ignore quality_dict["dos_comparisons"]["n_bins"] = n_bins # type: ignore diff --git a/src/lobsterpy/featurize/core.py b/src/lobsterpy/featurize/core.py index d8c20a00..0dac6646 100644 --- a/src/lobsterpy/featurize/core.py +++ b/src/lobsterpy/featurize/core.py @@ -1009,27 +1009,6 @@ def get_df(self, ids: str | None = None) -> pd.DataFrame: return df -class DosFingerprint(NamedTuple): - """ - Represents a Density of States (DOS) fingerprint. - - This named tuple is used to store information related to the Density of States (DOS) - in a material. It includes the energies, densities, type, number of bins, and bin width. - - :param energies: The energy values associated with the DOS. - :param densities: The corresponding density values for each energy. - :param type: The type of DOS fingerprint. - :param n_bins: The number of bins used in the fingerprint. - :param bin_width: The width of each bin in the DOS fingerprint. - """ - - energies: np.ndarray - densities: np.ndarray - type: str - n_bins: int - bin_width: float - - class FeaturizeDoscar: """ Class to compute DOS moments and fingerprints from DOSCAR.lobster / DOSCAR.LSO.lobster. @@ -1155,15 +1134,15 @@ def get_fingerprint_df( ids = Path(self.path_to_doscar).parent.name df = pd.DataFrame(index=[ids], columns=["DOS_FP"]) - fp = self.dos.get_dos_fp( - type=fp_type, + dos_fp = self.dos.get_dos_fp( + fp_type=fp_type, normalize=normalize, n_bins=n_bins, binning=binning, max_e=self.e_range[-1] if self.e_range is not None else None, min_e=self.e_range[0] if self.e_range is not None else None, - )._asdict() + ) - df.loc[ids, "DOS_FP"] = DosFingerprint(**fp) + df.loc[ids, "DOS_FP"] = dos_fp return df diff --git a/tests/featurize/test_batch.py b/tests/featurize/test_batch.py index c5a30f2b..bdb8fceb 100644 --- a/tests/featurize/test_batch.py +++ b/tests/featurize/test_batch.py @@ -8,8 +8,9 @@ BatchStructureGraphs, BatchSummaryFeaturizer, ) -from lobsterpy.featurize.core import CoxxFingerprint, DosFingerprint +from lobsterpy.featurize.core import CoxxFingerprint from pymatgen.analysis.graphs import StructureGraph +from pymatgen.electronic_structure.dos import DosFingerprint CurrentDir = Path(__file__).absolute().parent TestDir = CurrentDir / "../" @@ -576,7 +577,7 @@ def test_batch_dos_featurizer_non_lso(self): for dos_fp in df_fp["DOS_FP"]: assert isinstance(dos_fp, DosFingerprint) - assert dos_fp.type == "p" + assert dos_fp.fp_type == "p" assert dos_fp.n_bins == 100 def test_batch_dos_featurizer_lso(self): @@ -668,7 +669,7 @@ def test_batch_dos_featurizer_lso(self): for dos_fp in df_fp_lso["DOS_FP"]: assert isinstance(dos_fp, DosFingerprint) - assert dos_fp.type == "summed_pdos" + assert dos_fp.fp_type == "summed_pdos" assert dos_fp.n_bins == 256 diff --git a/tests/featurize/test_core.py b/tests/featurize/test_core.py index 44658df2..79b2136e 100644 --- a/tests/featurize/test_core.py +++ b/tests/featurize/test_core.py @@ -4,12 +4,12 @@ import pandas as pd import pytest from lobsterpy.featurize.core import ( - DosFingerprint, FeaturizeCharges, FeaturizeCOXX, FeaturizeDoscar, FeaturizeLobsterpy, ) +from pymatgen.electronic_structure.dos import DosFingerprint CurrentDir = Path(__file__).absolute().parent TestDir = CurrentDir / "../" diff --git a/tests/test_data/.pytest-split-durations b/tests/test_data/.pytest-split-durations index 316749cd..bfa6f3df 100644 --- a/tests/test_data/.pytest-split-durations +++ b/tests/test_data/.pytest-split-durations @@ -1,141 +1,137 @@ { - "tests/cli/test_cli.py::TestCLI::test_calc_quality_summary_k3sb": 9.741433955030516, - "tests/cli/test_cli.py::TestCLI::test_calc_quality_summary_nacl": 19.47500947501976, - "tests/cli/test_cli.py::TestCLI::test_cli_automatic_analysis_error": 0.02586230100132525, - "tests/cli/test_cli.py::TestCLI::test_cli_errors[args0-IndexError]": 0.19825673301238567, - "tests/cli/test_cli.py::TestCLI::test_cli_errors[args1-IndexError]": 0.19085935899056494, - "tests/cli/test_cli.py::TestCLI::test_cli_errors[args2-IndexError]": 0.1950487309950404, - "tests/cli/test_cli.py::TestCLI::test_cli_exceptions": 0.5877328989445232, - "tests/cli/test_cli.py::TestCLI::test_cli_interactive_plotter": 0.6612137550255284, - "tests/cli/test_cli.py::TestCLI::test_cli_interactive_plotter_cobi": 8.12934768293053, - "tests/cli/test_cli.py::TestCLI::test_cli_interactive_plotter_coops": 30.189751550962683, - "tests/cli/test_cli.py::TestCLI::test_cli_results[args0]": 1.2153693939908408, - "tests/cli/test_cli.py::TestCLI::test_cli_results[args10]": 0.39710763201583177, - "tests/cli/test_cli.py::TestCLI::test_cli_results[args11]": 0.5263242730288766, - "tests/cli/test_cli.py::TestCLI::test_cli_results[args12]": 0.3633864539442584, - "tests/cli/test_cli.py::TestCLI::test_cli_results[args13]": 0.3849749520304613, - "tests/cli/test_cli.py::TestCLI::test_cli_results[args14]": 0.34084628795972094, - "tests/cli/test_cli.py::TestCLI::test_cli_results[args15]": 0.3429515149910003, - "tests/cli/test_cli.py::TestCLI::test_cli_results[args16]": 0.2988667219178751, - "tests/cli/test_cli.py::TestCLI::test_cli_results[args17]": 0.2984549469547346, - "tests/cli/test_cli.py::TestCLI::test_cli_results[args18]": 0.32754426496103406, - "tests/cli/test_cli.py::TestCLI::test_cli_results[args1]": 0.8174758959794417, - "tests/cli/test_cli.py::TestCLI::test_cli_results[args2]": 0.7253834180883132, - "tests/cli/test_cli.py::TestCLI::test_cli_results[args3]": 0.7446725760237314, - "tests/cli/test_cli.py::TestCLI::test_cli_results[args4]": 0.6838094939594157, - "tests/cli/test_cli.py::TestCLI::test_cli_results[args5]": 1.0963237489922903, - "tests/cli/test_cli.py::TestCLI::test_cli_results[args6]": 0.3339202539646067, - "tests/cli/test_cli.py::TestCLI::test_cli_results[args7]": 0.37474135303637013, - "tests/cli/test_cli.py::TestCLI::test_cli_results[args8]": 0.3708881560014561, - "tests/cli/test_cli.py::TestCLI::test_cli_results[args9]": 0.9939800309948623, - "tests/cli/test_cli.py::TestCLI::test_dos_plot": 5.9737980449572206, - "tests/cli/test_cli.py::TestCLI::test_generate_ref_data": 0.0027734750183299184, - "tests/cli/test_cli.py::TestCLI::test_gz_cli_plot": 13.925920815672725, - "tests/cli/test_cli.py::TestCLI::test_gz_file_cli": 13.812490703072399, - "tests/cli/test_cli.py::TestCLI::test_gz_file_cli_lobsterinput_generation": 0.01884847303153947, - "tests/cli/test_cli.py::TestCLI::test_hideplot_cli": 3.402949992043432, - "tests/cli/test_cli.py::TestCLI::test_iaplot_saved": 0.616501658980269, - "tests/cli/test_cli.py::TestCLI::test_icohpplot_saved": 0.9010857357643545, - "tests/cli/test_cli.py::TestCLI::test_icoxxlist_plots": 0.8918652771390043, - "tests/cli/test_cli.py::TestCLI::test_json_saved": 0.6491281209746376, - "tests/cli/test_cli.py::TestCLI::test_lobsterin_generation": 0.696246603038162, - "tests/cli/test_cli.py::TestCLI::test_lobsterin_generation_error": 0.6703242319636047, - "tests/cli/test_cli.py::TestCLI::test_lobsterin_generation_error_userbasis": 0.016632156970445067, - "tests/cli/test_cli.py::TestCLI::test_nongz_file_cli": 10.212087913940195, - "tests/cli/test_cli.py::TestCLI::test_plot_saved": 0.6753205990535207, - "tests/cohp/test_analyze.py::TestAnalyse::test_all_attributes_analyse_nacl_comp_range_cobi": 7.910951062978711, - "tests/cohp/test_analyze.py::TestAnalyse::test_all_attributes_batio3": 1.7957146099652164, - "tests/cohp/test_analyze.py::TestAnalyse::test_all_attributes_cdf": 2.7801178239751607, - "tests/cohp/test_analyze.py::TestAnalyse::test_all_attributes_cdf_comp_range_coop": 29.148825906042475, - "tests/cohp/test_analyze.py::TestAnalyse::test_all_attributes_k3sb": 6.210403167002369, - "tests/cohp/test_analyze.py::TestAnalyse::test_all_attributes_k3sb_all": 6.070271233038511, - "tests/cohp/test_analyze.py::TestAnalyse::test_all_attributes_k3sb_all_cobi": 6.017465670011006, - "tests/cohp/test_analyze.py::TestAnalyse::test_all_attributes_k3sb_all_coop_orb": 9.30246137198992, - "tests/cohp/test_analyze.py::TestAnalyse::test_all_attributes_nacl_all": 0.5409183770534582, - "tests/cohp/test_analyze.py::TestAnalyse::test_all_attributes_nacl_comp_range_cobi_orbital": 8.459634662023745, - "tests/cohp/test_analyze.py::TestAnalyse::test_all_attributes_nacl_comp_range_orbital": 8.60801863198867, - "tests/cohp/test_analyze.py::TestAnalyse::test_all_attributes_nacl_mulliken": 0.546640124055557, - "tests/cohp/test_analyze.py::TestAnalyse::test_all_attributes_nacl_nan": 0.5324939820566215, - "tests/cohp/test_analyze.py::TestAnalyse::test_all_attributes_nacl_pymatgen_objs": 35.90189004398417, - "tests/cohp/test_analyze.py::TestAnalyse::test_all_attributes_nacl_valences": 0.5643983579939231, - "tests/cohp/test_analyze.py::TestAnalyse::test_all_attributes_nasbf6": 4.55566562799504, - "tests/cohp/test_analyze.py::TestAnalyse::test_all_attributes_nasbf6_anbd": 4.514600747032091, - "tests/cohp/test_analyze.py::TestAnalyse::test_exception": 0.08678195695392787, - "tests/cohp/test_analyze.py::TestAnalyse::test_final_dicts": 10.997999579063617, - "tests/cohp/test_analyze.py::TestAnalyse::test_icohp_sum_cdf": 9.278598632954527, - "tests/cohp/test_analyze.py::TestAnalyse::test_icohp_sum_nacl": 9.09595221793279, - "tests/cohp/test_analyze.py::TestAnalyseCalcQuality::test_calc_quality_summary_exceptions": 5.646795532957185, - "tests/cohp/test_analyze.py::TestAnalyseCalcQuality::test_calc_quality_summary_with_objs": 16.601815116999205, - "tests/cohp/test_describe.py::TestCalcQualityDescribe::test_calc_quality_description_text": 10.17742298997473, - "tests/cohp/test_describe.py::TestCalcQualityDescribeWarnings::test_warnings": 41.3236431380501, - "tests/cohp/test_describe.py::TestDescribe::test_coordination_environment_to_text": 0.0029987249872647226, - "tests/cohp/test_describe.py::TestDescribe::test_plot": 50.635168626962695, - "tests/cohp/test_describe.py::TestDescribe::test_text": 79.58914985897718, - "tests/cohp/test_describe.py::TestDescribe::test_write_description": 18.250865485984832, - "tests/featurize/test_batch.py::TestBatchCoxxFingerprint::test_fp_cobi": 10.94560893601738, - "tests/featurize/test_batch.py::TestBatchCoxxFingerprint::test_fp_cohp_bonding": 11.510163194965571, - "tests/featurize/test_batch.py::TestBatchCoxxFingerprint::test_fp_cohp_overall": 10.631286705029197, - "tests/featurize/test_batch.py::TestBatchCoxxFingerprint::test_fp_coop": 10.903221414017025, - "tests/featurize/test_batch.py::TestBatchDosFeaturizer::test_batch_dos_featurizer_lso": 1.8864470589905977, - "tests/featurize/test_batch.py::TestBatchDosFeaturizer::test_batch_dos_featurizer_non_lso": 1.744540375948418, - "tests/featurize/test_batch.py::TestBatchStructureGraphs::test_batch_structure_graphs_all_bonds": 11.579965177050326, - "tests/featurize/test_batch.py::TestBatchStructureGraphs::test_batch_structure_graphs_cation_anion_bonds": 11.816246839938685, - "tests/featurize/test_batch.py::TestBatchSummaryFeaturizer::test_summary_featurize_orbitalwise": 28.415147455001716, - "tests/featurize/test_batch.py::TestBatchSummaryFeaturizer::test_summary_featurize_with_json": 12.679505673062522, - "tests/featurize/test_batch.py::TestBatchSummaryFeaturizer::test_summary_featurize_with_json_antibonding": 13.064382734941319, - "tests/featurize/test_batch.py::TestBatchSummaryFeaturizer::test_summary_featurize_with_json_bonding": 12.282588435977232, - "tests/featurize/test_batch.py::TestBatchSummaryFeaturizer::test_summary_featurize_with_json_overall": 33.6021388330264, - "tests/featurize/test_batch.py::TestBatchSummaryFeaturizer::test_summary_featurize_with_no_bonds": 10.706089926010463, - "tests/featurize/test_batch.py::TestBatchSummaryFeaturizer::test_summary_featurize_without_json": 23.705967601912562, - "tests/featurize/test_batch.py::TestExceptions::test_batch_summary_featurizer_exception": 51.3124797239434, - "tests/featurize/test_core.py::TestExceptions::test_featurize_charges": 0.002617007994558662, - "tests/featurize/test_core.py::TestExceptions::test_featurize_coxx": 0.7539659420144744, - "tests/featurize/test_core.py::TestExceptions::test_lobsterpy_featurize_exception": 0.006973253039177507, - "tests/featurize/test_core.py::TestFeaturizeCOXX::test_featurize_cdf_coxx": 1.3094221510109492, - "tests/featurize/test_core.py::TestFeaturizeCOXX::test_featurize_cdf_coxx_fingerprint": 7.5965276579372585, - "tests/featurize/test_core.py::TestFeaturizeCOXX::test_featurize_k3sb_coxx": 6.078597009938676, - "tests/featurize/test_core.py::TestFeaturizeCOXX::test_featurize_nacl_coxx": 0.24473854195093736, - "tests/featurize/test_core.py::TestFeaturizeCOXX::test_featurize_nacl_coxx_fingerprint": 7.165197788970545, - "tests/featurize/test_core.py::TestFeaturizeCharges::test_featurize_c_charge": 0.32865086797391996, - "tests/featurize/test_core.py::TestFeaturizeCharges::test_featurize_cdf_charge": 0.31673474999843165, - "tests/featurize/test_core.py::TestFeaturizeCharges::test_featurize_k3sb_charge": 0.7031959099695086, - "tests/featurize/test_core.py::TestFeaturizeDoscar::test_featurize_k3sb_dos": 0.8675250100204721, - "tests/featurize/test_core.py::TestFeaturizeDoscar::test_featurize_nacl_dos": 0.3848497509607114, - "tests/featurize/test_core.py::TestFeaturizeLobsterpy::test_featurize_csh_madelung": 5.1772496629855596, - "tests/featurize/test_core.py::TestFeaturizeLobsterpy::test_featurize_mp1249_json": 0.07660240505356342, - "tests/featurize/test_core.py::TestFeaturizeLobsterpy::test_featurize_mp1249_json_ca": 0.05130231304792687, - "tests/featurize/test_core.py::TestFeaturizeLobsterpy::test_featurize_mp14652_json": 0.10726588300894946, - "tests/featurize/test_core.py::TestFeaturizeLobsterpy::test_featurize_mp1958_json": 0.05345680011669174, - "tests/featurize/test_core.py::TestFeaturizeLobsterpy::test_featurize_mp463": 14.417960792954545, - "tests/featurize/test_core.py::TestFeaturizeLobsterpy::test_featurize_mp66_json": 0.1857428440125659, - "tests/featurize/test_core.py::TestFeaturizeLobsterpy::test_featurize_mp7000_json": 0.4727617589524016, - "tests/featurize/test_utils.py::test_get_file_paths": 0.33429094502935186, - "tests/featurize/test_utils.py::test_get_structure_path": 0.005750379990786314, - "tests/plotting/test_plotting.py::TestIcohpDistancePlotter::test_icohp_plotter_labels": 0.3356196819804609, - "tests/plotting/test_plotting.py::TestIcohpDistancePlotter::test_plot_data": 0.46561949100578204, - "tests/plotting/test_plotting.py::TestInteractiveCohpPlotter::test_add_all_relevant_cohps_batio3_orb": 5.477035220013931, - "tests/plotting/test_plotting.py::TestInteractiveCohpPlotter::test_add_all_relevant_cohps_cdf": 9.493889904930256, - "tests/plotting/test_plotting.py::TestInteractiveCohpPlotter::test_add_all_relevant_cohps_k3sb": 25.857726164045744, - "tests/plotting/test_plotting.py::TestInteractiveCohpPlotter::test_add_all_relevant_cohps_nacl": 0.899734741949942, - "tests/plotting/test_plotting.py::TestInteractiveCohpPlotter::test_add_all_relevant_cohps_nacl_cobi": 8.084848062018864, - "tests/plotting/test_plotting.py::TestInteractiveCohpPlotter::test_add_all_relevant_cohps_nacl_cobi_orb": 12.860088205023203, - "tests/plotting/test_plotting.py::TestInteractiveCohpPlotter::test_add_cohp_nacl": 0.5711819549323991, - "tests/plotting/test_plotting.py::TestInteractiveCohpPlotter::test_add_cohps_by_lobster_label_nacl": 0.6723894390161149, - "tests/plotting/test_plotting.py::TestInteractiveCohpPlotter::test_add_cohps_from_plot_data": 4.292382772953715, - "tests/plotting/test_plotting.py::TestInteractiveCohpPlotter::test_add_cohps_from_plot_data_json": 2.0811131689697504, - "tests/plotting/test_plotting.py::TestInteractiveCohpPlotter::test_plaincohp_plotter_options": 0.24651583703234792, - "tests/plotting/test_plotting.py::TestInteractiveCohpPlotter::test_plot_colors": 33.05518862698227, - "tests/plotting/test_plotting.py::TestInteractiveCohpPlotter::test_plot_labels": 0.4029014039551839, - "tests/plotting/test_plotting.py::TestPlainDosPlotter::test_add_site_orbital_dos": 1.2675841199816205, - "tests/plotting/test_plotting.py::TestPlainDosPlotter::test_dos_plotter_exceptions": 0.3209491480374709, - "tests/plotting/test_plotting.py::TestPlainDosPlotter::test_k3sb_dos": 1.114712443028111, - "tests/plotting/test_plotting.py::TestPlainDosPlotter::test_nacl_dos": 0.949771391984541, - "tests/plotting/test_plotting.py::TestPlotterExceptions::test_plotter_exception": 4.101812801964115, - "tests/structuregraph/test_graph.py::TestGraph::test_graph_cdf_all": 7.670811482006684, - "tests/structuregraph/test_graph.py::TestGraph::test_graph_cdf_close_fermi": 7.586158991965931, - "tests/structuregraph/test_graph.py::TestGraph::test_graph_exceptions": 0.005922267970163375, - "tests/structuregraph/test_graph.py::TestGraph::test_graph_nacl_all": 8.157035773969255, - "tests/structuregraph/test_graph.py::TestGraph::test_graph_nacl_cation_anion": 8.143567192077171, - "tests/structuregraph/test_graph.py::TestGraph::test_graph_nacl_close_fermi": 7.98303498106543, - "tests/structuregraph/test_graph.py::TestGraph::test_graph_nacl_without_add_data": 8.158380611042958 + "tests/cli/test_cli.py::TestCLI::test_calc_quality_summary_k3sb": 4.0950144324451685, + "tests/cli/test_cli.py::TestCLI::test_calc_quality_summary_nacl": 8.353878727182746, + "tests/cli/test_cli.py::TestCLI::test_cli_automatic_analysis_error": 0.01409193966537714, + "tests/cli/test_cli.py::TestCLI::test_cli_errors[args0-IndexError]": 0.09223044198006392, + "tests/cli/test_cli.py::TestCLI::test_cli_errors[args1-IndexError]": 0.09140065126121044, + "tests/cli/test_cli.py::TestCLI::test_cli_errors[args2-IndexError]": 0.092406933195889, + "tests/cli/test_cli.py::TestCLI::test_cli_exceptions": 0.27853404730558395, + "tests/cli/test_cli.py::TestCLI::test_cli_interactive_plotter": 0.5513253239914775, + "tests/cli/test_cli.py::TestCLI::test_cli_interactive_plotter_cobi": 4.382422931492329, + "tests/cli/test_cli.py::TestCLI::test_cli_interactive_plotter_coops": 15.442310743965209, + "tests/cli/test_cli.py::TestCLI::test_cli_results[args0]": 0.3516423227265477, + "tests/cli/test_cli.py::TestCLI::test_cli_results[args10]": 0.12324593402445316, + "tests/cli/test_cli.py::TestCLI::test_cli_results[args11]": 0.18505036737769842, + "tests/cli/test_cli.py::TestCLI::test_cli_results[args12]": 0.222023100592196, + "tests/cli/test_cli.py::TestCLI::test_cli_results[args13]": 0.11626381427049637, + "tests/cli/test_cli.py::TestCLI::test_cli_results[args14]": 0.1095908535644412, + "tests/cli/test_cli.py::TestCLI::test_cli_results[args15]": 0.10976445022970438, + "tests/cli/test_cli.py::TestCLI::test_cli_results[args16]": 0.1107717901468277, + "tests/cli/test_cli.py::TestCLI::test_cli_results[args17]": 0.11043183412402868, + "tests/cli/test_cli.py::TestCLI::test_cli_results[args18]": 0.11088735610246658, + "tests/cli/test_cli.py::TestCLI::test_cli_results[args1]": 0.4054432772099972, + "tests/cli/test_cli.py::TestCLI::test_cli_results[args2]": 0.28728730510920286, + "tests/cli/test_cli.py::TestCLI::test_cli_results[args3]": 0.2842461662366986, + "tests/cli/test_cli.py::TestCLI::test_cli_results[args4]": 0.26858332846313715, + "tests/cli/test_cli.py::TestCLI::test_cli_results[args5]": 0.27032586839050055, + "tests/cli/test_cli.py::TestCLI::test_cli_results[args6]": 0.12373471073806286, + "tests/cli/test_cli.py::TestCLI::test_cli_results[args7]": 0.16384098213165998, + "tests/cli/test_cli.py::TestCLI::test_cli_results[args8]": 0.16000974364578724, + "tests/cli/test_cli.py::TestCLI::test_cli_results[args9]": 0.11839004326611757, + "tests/cli/test_cli.py::TestCLI::test_cli_with_poscar_lobster": 5.322758230380714, + "tests/cli/test_cli.py::TestCLI::test_dos_plot": 2.546899010427296, + "tests/cli/test_cli.py::TestCLI::test_generate_ref_data": 0.0005170097574591637, + "tests/cli/test_cli.py::TestCLI::test_gz_file_cli_lobsterinput_generation": 0.014171669259667397, + "tests/cli/test_cli.py::TestCLI::test_hideplot_cli": 1.2886009830981493, + "tests/cli/test_cli.py::TestCLI::test_iaplot_saved": 0.538690447807312, + "tests/cli/test_cli.py::TestCLI::test_icoxxlist_plots": 0.4873808631673455, + "tests/cli/test_cli.py::TestCLI::test_json_saved": 0.28273335564881563, + "tests/cli/test_cli.py::TestCLI::test_lobsterin_generation": 0.3324185200035572, + "tests/cli/test_cli.py::TestCLI::test_lobsterin_generation_error": 0.3201214885339141, + "tests/cli/test_cli.py::TestCLI::test_lobsterin_generation_error_userbasis": 0.010228721424937248, + "tests/cli/test_cli.py::TestCLI::test_nongz_file_cli": 5.468331811018288, + "tests/cli/test_cli.py::TestCLI::test_plot_saved": 0.3843928687274456, + "tests/cohp/test_analyze.py::TestAnalyse::test_all_attributes_analyse_nacl_comp_range_cobi": 4.091280100867152, + "tests/cohp/test_analyze.py::TestAnalyse::test_all_attributes_batio3": 0.983222040347755, + "tests/cohp/test_analyze.py::TestAnalyse::test_all_attributes_cdf": 1.352164490148425, + "tests/cohp/test_analyze.py::TestAnalyse::test_all_attributes_cdf_comp_range_coop": 15.06941937096417, + "tests/cohp/test_analyze.py::TestAnalyse::test_all_attributes_k3sb": 3.2131634699180722, + "tests/cohp/test_analyze.py::TestAnalyse::test_all_attributes_k3sb_all": 3.2004855247214437, + "tests/cohp/test_analyze.py::TestAnalyse::test_all_attributes_k3sb_all_cobi": 3.161739444360137, + "tests/cohp/test_analyze.py::TestAnalyse::test_all_attributes_k3sb_all_coop_orb": 4.135461085475981, + "tests/cohp/test_analyze.py::TestAnalyse::test_all_attributes_nacl_all": 0.25528423581272364, + "tests/cohp/test_analyze.py::TestAnalyse::test_all_attributes_nacl_comp_range_cobi_orbital": 4.322183872573078, + "tests/cohp/test_analyze.py::TestAnalyse::test_all_attributes_nacl_comp_range_orbital": 4.214871103875339, + "tests/cohp/test_analyze.py::TestAnalyse::test_all_attributes_nacl_mulliken": 0.2622301075607538, + "tests/cohp/test_analyze.py::TestAnalyse::test_all_attributes_nacl_nan": 0.2529503172263503, + "tests/cohp/test_analyze.py::TestAnalyse::test_all_attributes_nacl_pymatgen_objs": 14.70486436970532, + "tests/cohp/test_analyze.py::TestAnalyse::test_all_attributes_nacl_valences": 0.280254814773798, + "tests/cohp/test_analyze.py::TestAnalyse::test_all_attributes_nasbf6": 2.3201298732310534, + "tests/cohp/test_analyze.py::TestAnalyse::test_all_attributes_nasbf6_anbd": 2.4374079508706927, + "tests/cohp/test_analyze.py::TestAnalyse::test_exception": 0.05657295696437359, + "tests/cohp/test_analyze.py::TestAnalyse::test_final_dicts": 4.813784851692617, + "tests/cohp/test_analyze.py::TestAnalyse::test_icohp_sum_cdf": 3.872736777178943, + "tests/cohp/test_analyze.py::TestAnalyse::test_icohp_sum_nacl": 4.062445694580674, + "tests/cohp/test_analyze.py::TestAnalyseCalcQuality::test_calc_quality_summary_exceptions": 2.602509567514062, + "tests/cohp/test_analyze.py::TestAnalyseCalcQuality::test_calc_quality_summary_with_objs": 7.155370115302503, + "tests/cohp/test_describe.py::TestCalcQualityDescribe::test_calc_quality_description_text": 4.7112144865095615, + "tests/cohp/test_describe.py::TestCalcQualityDescribeWarnings::test_warnings": 18.57950626220554, + "tests/cohp/test_describe.py::TestDescribe::test_coordination_environment_to_text": 0.0008923541754484177, + "tests/cohp/test_describe.py::TestDescribe::test_plot": 4.73162333201617, + "tests/cohp/test_describe.py::TestDescribe::test_text": 39.79648862592876, + "tests/cohp/test_describe.py::TestDescribe::test_write_description": 8.81819846201688, + "tests/featurize/test_batch.py::TestBatchCoxxFingerprint::test_fp_cobi": 5.7737230490893126, + "tests/featurize/test_batch.py::TestBatchCoxxFingerprint::test_fp_cohp_bonding": 5.672441331669688, + "tests/featurize/test_batch.py::TestBatchCoxxFingerprint::test_fp_cohp_overall": 5.733194347470999, + "tests/featurize/test_batch.py::TestBatchCoxxFingerprint::test_fp_coop": 5.654533370397985, + "tests/featurize/test_batch.py::TestBatchDosFeaturizer::test_batch_dos_featurizer_lso": 1.1545323906466365, + "tests/featurize/test_batch.py::TestBatchDosFeaturizer::test_batch_dos_featurizer_non_lso": 1.0665673399344087, + "tests/featurize/test_batch.py::TestBatchStructureGraphs::test_batch_structure_graphs_all_bonds": 6.092236679978669, + "tests/featurize/test_batch.py::TestBatchStructureGraphs::test_batch_structure_graphs_cation_anion_bonds": 6.0910758432000875, + "tests/featurize/test_batch.py::TestBatchSummaryFeaturizer::test_summary_featurize_orbitalwise": 12.956901475787163, + "tests/featurize/test_batch.py::TestBatchSummaryFeaturizer::test_summary_featurize_with_json": 6.96282531414181, + "tests/featurize/test_batch.py::TestBatchSummaryFeaturizer::test_summary_featurize_with_json_antibonding": 6.778483359143138, + "tests/featurize/test_batch.py::TestBatchSummaryFeaturizer::test_summary_featurize_with_json_bonding": 6.7326176362112164, + "tests/featurize/test_batch.py::TestBatchSummaryFeaturizer::test_summary_featurize_with_json_overall": 17.07707231771201, + "tests/featurize/test_batch.py::TestBatchSummaryFeaturizer::test_summary_featurize_with_no_bonds": 5.854938242584467, + "tests/featurize/test_batch.py::TestBatchSummaryFeaturizer::test_summary_featurize_without_json": 12.14402518980205, + "tests/featurize/test_batch.py::TestExceptions::test_batch_summary_featurizer_exception": 26.749617834575474, + "tests/featurize/test_core.py::TestExceptions::test_featurize_charges": 0.0012777075171470642, + "tests/featurize/test_core.py::TestExceptions::test_featurize_coxx": 0.36030102614313364, + "tests/featurize/test_core.py::TestExceptions::test_lobsterpy_featurize_exception": 0.0034227436408400536, + "tests/featurize/test_core.py::TestFeaturizeCOXX::test_featurize_cdf_coxx": 0.616389355622232, + "tests/featurize/test_core.py::TestFeaturizeCOXX::test_featurize_k3sb_coxx": 3.033275702036917, + "tests/featurize/test_core.py::TestFeaturizeCOXX::test_featurize_nacl_coxx": 0.1168679166585207, + "tests/featurize/test_core.py::TestFeaturizeCharges::test_featurize_c_charge": 0.18711292371153831, + "tests/featurize/test_core.py::TestFeaturizeCharges::test_featurize_cdf_charge": 0.14959039352834225, + "tests/featurize/test_core.py::TestFeaturizeCharges::test_featurize_k3sb_charge": 0.330335414968431, + "tests/featurize/test_core.py::TestFeaturizeDoscar::test_featurize_k3sb_dos": 0.3924877569079399, + "tests/featurize/test_core.py::TestFeaturizeDoscar::test_featurize_nacl_dos": 0.17894761078059673, + "tests/featurize/test_core.py::TestFeaturizeLobsterpy::test_featurize_csh_madelung": 2.6118526328355074, + "tests/featurize/test_core.py::TestFeaturizeLobsterpy::test_featurize_mp1249_json": 0.049524785950779915, + "tests/featurize/test_core.py::TestFeaturizeLobsterpy::test_featurize_mp1249_json_ca": 0.026895499788224697, + "tests/featurize/test_core.py::TestFeaturizeLobsterpy::test_featurize_mp14652_json": 0.06313575897365808, + "tests/featurize/test_core.py::TestFeaturizeLobsterpy::test_featurize_mp1958_json": 0.04351545963436365, + "tests/featurize/test_core.py::TestFeaturizeLobsterpy::test_featurize_mp463": 5.939954977482557, + "tests/featurize/test_core.py::TestFeaturizeLobsterpy::test_featurize_mp66_json": 0.09159205574542284, + "tests/featurize/test_core.py::TestFeaturizeLobsterpy::test_featurize_mp7000_json": 0.2174781458452344, + "tests/featurize/test_utils.py::test_get_file_paths": 0.22587192617356777, + "tests/featurize/test_utils.py::test_get_structure_path": 0.003519093617796898, + "tests/plotting/test_plotting.py::TestIcohpDistancePlotter::test_icohp_plotter_labels": 0.07698161620646715, + "tests/plotting/test_plotting.py::TestIcohpDistancePlotter::test_plot_data": 0.09265228267759085, + "tests/plotting/test_plotting.py::TestInteractiveCohpPlotter::test_add_all_relevant_cohps_batio3_orb": 2.117870573885739, + "tests/plotting/test_plotting.py::TestInteractiveCohpPlotter::test_add_all_relevant_cohps_cdf": 4.4376729521900415, + "tests/plotting/test_plotting.py::TestInteractiveCohpPlotter::test_add_all_relevant_cohps_k3sb": 12.473269959911704, + "tests/plotting/test_plotting.py::TestInteractiveCohpPlotter::test_add_all_relevant_cohps_nacl": 1.4081987794488668, + "tests/plotting/test_plotting.py::TestInteractiveCohpPlotter::test_add_all_relevant_cohps_nacl_cobi": 4.113712824881077, + "tests/plotting/test_plotting.py::TestInteractiveCohpPlotter::test_add_all_relevant_cohps_nacl_cobi_orb": 5.351632470265031, + "tests/plotting/test_plotting.py::TestInteractiveCohpPlotter::test_add_cohp_nacl": 0.270128320902586, + "tests/plotting/test_plotting.py::TestInteractiveCohpPlotter::test_add_cohps_by_lobster_label_nacl": 0.33098835591226816, + "tests/plotting/test_plotting.py::TestInteractiveCohpPlotter::test_add_cohps_from_plot_data": 2.0231651347130537, + "tests/plotting/test_plotting.py::TestInteractiveCohpPlotter::test_add_cohps_from_plot_data_json": 1.0437344051897526, + "tests/plotting/test_plotting.py::TestInteractiveCohpPlotter::test_plaincohp_plotter_options": 0.08971770573407412, + "tests/plotting/test_plotting.py::TestInteractiveCohpPlotter::test_plot_colors": 16.774442240595818, + "tests/plotting/test_plotting.py::TestInteractiveCohpPlotter::test_plot_labels": 0.0717416238039732, + "tests/plotting/test_plotting.py::TestPlainDosPlotter::test_add_site_orbital_dos": 0.5678513385355473, + "tests/plotting/test_plotting.py::TestPlainDosPlotter::test_dos_plotter_exceptions": 0.12454297486692667, + "tests/plotting/test_plotting.py::TestPlainDosPlotter::test_k3sb_dos": 0.4425279162824154, + "tests/plotting/test_plotting.py::TestPlainDosPlotter::test_nacl_dos": 0.36087333131581545, + "tests/plotting/test_plotting.py::TestPlotterExceptions::test_plotter_exception": 2.067395103164017, + "tests/structuregraph/test_graph.py::TestGraph::test_graph_cdf_all": 3.8147850520908833, + "tests/structuregraph/test_graph.py::TestGraph::test_graph_cdf_close_fermi": 4.180577022023499, + "tests/structuregraph/test_graph.py::TestGraph::test_graph_exceptions": 0.0011831894516944885, + "tests/structuregraph/test_graph.py::TestGraph::test_graph_nacl_all": 4.156099556013942, + "tests/structuregraph/test_graph.py::TestGraph::test_graph_nacl_cation_anion": 4.2105081574991345, + "tests/structuregraph/test_graph.py::TestGraph::test_graph_nacl_close_fermi": 4.151408321224153, + "tests/structuregraph/test_graph.py::TestGraph::test_graph_nacl_without_add_data": 4.117549822665751 } \ No newline at end of file