File: rules

package info (click to toggle)
pymatgen 2025.2.18%2Bdfsg1-5
  • links: PTS, VCS
  • area: main
  • in suites: sid, trixie
  • size: 85,888 kB
  • sloc: python: 176,173; javascript: 780; makefile: 221; sh: 78
file content (140 lines) | stat: -rwxr-xr-x 5,712 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
#!/usr/bin/make -f
# See debhelper(7) (uncomment to enable)
# output every command that modifies files on the build system.
#export DH_VERBOSE = 1

export PYBUILD_NAME=pymatgen

include /usr/share/dpkg/architecture.mk

empty :=
space := $(empty)$(empty)

# bootstrapping problem with circular dependency between pymatgen and mp-api
# mp_api is only used by ext/matproj.py, so skip its test at build-time
# (in practice the matproj tests are skipped anyway since an MP API key is not available)
SKIP_TEST_LIST += test_matproj

# SeeK-path has not been packaged for debian
# so skip SeeK tests in io/pwmat/test_inputs.py
SKIP_TEST_LIST += TestGenKpt TestHighSymmetryPoint

# io/qchem is partly broken, skip failing tests
# io/qchem input
SKIP_TEST_LIST += test_from_multi_jobs_file test_from_string test_read_molecule test_read_nbo test_read_negative test_read_plots test_read_write_nbo7
# io/qchem output
SKIP_TEST_LIST += test_all test_custom_smd_write
# io/qchem sets (test_sets.py all fail)
SKIP_TEST_LIST += test_sets
# these io tests fail in chroot
SKIP_TEST_LIST += test_CifWriter test_read_write test_init test_get_site_symmetries
# times out
SKIP_TEST_LIST += BSDOSPlotterTest
# requires write permissions
SKIP_TEST_LIST += test_cdft_dc_parsing
# requires internet
SKIP_TEST_LIST += test_get_structure_by_id
# fragmenter openbabel test fails, see https://github.com/materialsproject/pymatgen/issues/3078
SKIP_TEST_LIST += test_babel_PC_with_RO_depth_0_vs_depth_10
# MoleculeMatcherTest.test_fit in test_molecule_matcher.py fails for some reason
SKIP_TEST_LIST += test_fit

ifneq (,$(findstring $(DEB_HOST_ARCH), arm64))
    SKIP_TEST_LIST += test_get_parchg "(TestAnharmonicQuasiharmociDebyeApprox and test_gruneisen_parameter)"
endif

ifneq (,$(findstring $(DEB_HOST_ARCH), i386))
    SKIP_TEST_LIST += test_get_parchg test_numerical_eoswrapper "(TestAnharmonicQuasiharmociDebyeApprox and test_gruneisen_parameter)"
endif

ifneq (,$(findstring $(DEB_HOST_ARCH), mips64el))
    SKIP_TEST_LIST += test_pca test_standard test_from_diff_fit test_relax_ase_opt_kwargs test_relax_ase_return_traj
    EXTRA_TEST_FLAGS += -v
endif

ifneq (,$(findstring $(DEB_HOST_ARCH), ppc64el))
    SKIP_TEST_LIST += test_get_parchg test_numerical_eoswrapper "(TestAnharmonicQuasiharmociDebyeApprox and test_gruneisen_parameter)"
endif

ifneq (,$(findstring $(DEB_HOST_ARCH), riscv64))
    SKIP_TEST_LIST += test_get_parchg "(TestAnharmonicQuasiharmociDebyeApprox and test_gruneisen_parameter)"
    SKIP_TEST_LIST += test_relax_ase_opt_kwargs test_relax_ase_return_traj test_rotate_sites
    EXTRA_TEST_FLAGS += -v
endif

# many VASP tests (and others) fail on s390x, hppa, powerpc ppc64
BAD_VASP_ARCH_LIST := s390x hppa powerpc ppc64
ifneq (,$(findstring $(space)$(DEB_HOST_ARCH)$(space), $(space)$(BAD_VASP_ARCH_LIST)$(space)))
    SKIP_TEST_LIST += test_spillage_from_vasprun test_process_parsed_hess test_from_file
    SKIP_TEST_LIST += test_optics test_generate_g_points test_generate_nbmax test_evaluate_wavefunc test_fft_mesh_advanced test_fft_mesh_basic
    SKIP_TEST_LIST += test_get_parchg test_n2_45210 test_n2_spin test_standard test_write_unks test_consistency
    SKIP_TEST_LIST += test_read_fe
    SKIP_TEST_LIST += "(TestAnharmonicQuasiharmociDebyeApprox and test_gruneisen_parameter)"
endif

ifneq (,$(findstring $(DEB_HOST_ARCH), hppa))
    SKIP_TEST_LIST += test_cohp
endif

ifneq (,$(findstring $(DEB_HOST_ARCH), hurd-i386))
    SKIP_TEST_LIST += plot test_structure_environments test_pca test_get_info_cohps_to_neighbors test_get_parchg test_as_dict_from_dict test_ir_spectra
endif

ifneq (,$(findstring $(DEB_HOST_ARCH), powerpc))
    SKIP_TEST_LIST += test_pmg_structure
endif

ifneq (,$(findstring $(DEB_HOST_ARCH), loong64))
    SKIP_TEST_LIST += test_get_parchg
endif

ifneq (,$(findstring $(DEB_HOST_ARCH), sparc64))
    SKIP_TEST_LIST += test_spillage_from_vasprun test_read_fe test_process_parsed_hess \
	test_chdir_behavior test_no_return_and_box test_from_file test_optics test_evaluate_wavefunc \
	test_fft_mesh_advanced test_fft_mesh_basic test_generate_g_points test_generate_nbmax \
	test_get_parchg test_n2_45210 test_n2_spin test_standard test_write_unks test_consistency
endif


%:
	dh $@ --buildsystem=pybuild

execute_after_dh_auto_clean:
	rm -f pymatgen/optimization/linear_assignment.c pymatgen/optimization/neighbors.c pymatgen/util/coord_cython.c
	rm -rf pd.json .hypothesis tmp_dir

ifeq (,$(filter nodoc,$(DEB_BUILD_OPTIONS)))
execute_after_dh_auto_build-indep: export http_proxy=127.0.0.1:9
execute_after_dh_auto_build-indep: export https_proxy=127.0.0.1:9
execute_after_dh_auto_build-indep:
	PYTHONPATH=$(shell pybuild --pyver `py3versions --default -v` --print build_dir | awk '{print $$3}' ) \
	  sphinx-build docs/apidoc build/html
endif

override_dh_auto_test:
	SKIP_TESTS=""; \
	list_initialised=0; \
	for t in $(SKIP_TEST_LIST); do \
	    if [ $${list_initialised} = 0 ]; then \
	        SKIP_TESTS=$$t; \
	        list_initialised=1; \
	    else \
	        SKIP_TESTS="$${SKIP_TESTS} or $$t"; \
	    fi; \
	done; \
	if [ "x$${SKIP_TESTS}" != "x" ]; then \
	    SKIP_TESTS="not ( $${SKIP_TESTS} )"; \
	fi; \
	echo "skipping tests: $${SKIP_TESTS}"; \
	for py in `py3versions -sv`; do \
	  pybuilddir=`pybuild --pyver $$py --print build_dir | awk '{print $$3}'`; \
	  testdir=$(CURDIR)/.pybuild/test_python$$py; \
	  cp -a $$pybuilddir $$testdir; \
	  cp -a tests $$testdir; \
	  PMG_TEST_FILES_DIR=/usr/share/doc/pymatgen-test-files/examples/files \
	    PYTHONPATH=$$testdir PATH=$$pybuilddir/../scripts:$$PATH \
	    python$$py -m pytest -v $(EXTRA_TEST_FLAGS) --import-mode=prepend --color=no -k "$${SKIP_TESTS}" $$testdir; \
	done

execute_after_dh_python3:
	dh_numpy3