summaryrefslogtreecommitdiff
blob: 21deb84ad9423e0d7a49da8674d674521d75beae (plain)
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
141
# Copyright 2022 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2

EAPI=8

CRATES="
	ahash-0.7.6
	ahash-0.8.0
	autocfg-1.1.0
	bitflags-1.3.2
	cfg-if-1.0.0
	crossbeam-channel-0.5.6
	crossbeam-deque-0.8.2
	crossbeam-epoch-0.9.11
	crossbeam-utils-0.8.12
	either-1.8.0
	fixedbitset-0.4.2
	getrandom-0.2.7
	hashbrown-0.11.2
	hashbrown-0.12.3
	hermit-abi-0.1.19
	indexmap-1.9.1
	indoc-1.0.7
	libc-0.2.135
	libm-0.2.5
	lock_api-0.4.9
	matrixmultiply-0.3.2
	memoffset-0.6.5
	ndarray-0.15.6
	num-bigint-0.4.3
	num-complex-0.4.2
	num_cpus-1.13.1
	num-integer-0.1.45
	numpy-0.16.2
	num-traits-0.2.15
	once_cell-1.15.0
	parking_lot-0.12.1
	parking_lot_core-0.9.3
	petgraph-0.6.2
	ppv-lite86-0.2.16
	proc-macro2-1.0.46
	pyo3-0.16.6
	pyo3-build-config-0.16.6
	pyo3-ffi-0.16.6
	pyo3-macros-0.16.6
	pyo3-macros-backend-0.16.6
	quote-1.0.21
	rand-0.8.5
	rand_chacha-0.3.1
	rand_core-0.6.4
	rand_distr-0.4.3
	rand_pcg-0.3.1
	rawpointer-0.2.1
	rayon-1.5.3
	rayon-core-1.9.3
	redox_syscall-0.2.16
	retworkx-core-0.11.0
	scopeguard-1.1.0
	smallvec-1.10.0
	syn-1.0.102
	target-lexicon-0.12.4
	unicode-ident-1.0.5
	unindent-0.1.10
	version_check-0.9.4
	wasi-0.11.0+wasi-snapshot-preview1
	windows_aarch64_msvc-0.36.1
	windows_i686_gnu-0.36.1
	windows_i686_msvc-0.36.1
	windows-sys-0.36.1
	windows_x86_64_gnu-0.36.1
	windows_x86_64_msvc-0.36.1
"

DISTUTILS_USE_PEP517=setuptools
PYTHON_COMPAT=( python3_{8..10} )

inherit cargo distutils-r1

DESCRIPTION="Terra is the foundation on which Qiskit is built"
HOMEPAGE="https://github.com/Qiskit/qiskit-terra"
SRC_URI="https://github.com/Qiskit/qiskit-terra/archive/refs/tags/${PV}.tar.gz -> ${P}.gh.tar.gz"
SRC_URI+=" $(cargo_crate_uris)"

LICENSE="Apache-2.0"
SLOT="0"
IUSE="+visualization"
KEYWORDS="~amd64"

RDEPEND="
	>=dev-python/rustworkx-0.10.1[${PYTHON_USEDEP}]
	>=dev-python/numpy-1.17[${PYTHON_USEDEP}]
	>=dev-python/ply-3.10[${PYTHON_USEDEP}]
	>=dev-python/psutil-5[${PYTHON_USEDEP}]
	>=dev-python/scipy-1.5[${PYTHON_USEDEP}]
	>=dev-python/sympy-1.3[${PYTHON_USEDEP}]
	>=dev-python/dill-0.3[${PYTHON_USEDEP}]
	>=dev-python/python-constraint-1.4[${PYTHON_USEDEP}]
	>=dev-python/python-dateutil-2.8.0[${PYTHON_USEDEP}]
	>=dev-python/stevedore-3.0.0[${PYTHON_USEDEP}]
	>=dev-python/symengine-0.8[${PYTHON_USEDEP}]
	>=dev-python/tweedledum-1.1[${PYTHON_USEDEP}]
	visualization? (
		>=dev-python/matplotlib-3.3[${PYTHON_USEDEP}]
		>=dev-python/ipywidgets-7.3.0[${PYTHON_USEDEP}]
		dev-python/pydot[${PYTHON_USEDEP}]
		>=dev-python/pillow-4.2.1[${PYTHON_USEDEP}]
		>=dev-python/pylatexenc-1.4[${PYTHON_USEDEP}]
		>=dev-python/seaborn-0.9.0[${PYTHON_USEDEP}]
		>=dev-python/pygments-2.4[${PYTHON_USEDEP}]
	)"
BDEPEND="
	>=dev-python/cython-0.27.1[${PYTHON_USEDEP}]
	test? (
		app-text/poppler[png]
		>=dev-python/ddt-1.4.4[${PYTHON_USEDEP}]
		>=dev-python/hypothesis-4.24.3[${PYTHON_USEDEP}]
		>=dev-python/networkx-2.2[${PYTHON_USEDEP}]
		dev-python/qiskit-aer[${PYTHON_USEDEP}]
		>=sci-libs/scikit-learn-0.20.0[${PYTHON_USEDEP}]
	)
"

distutils_enable_tests pytest

# Small issues with the tests.
# qiskit.Aer module depends on qiskit-terra, it cannot be used,
# and an exact comparison of float switched to approximate comparison.
#PATCHES=( "${FILESDIR}/qiskit-terra-0.19.2-test-corrections.patch" )

python_test() {
	# We have to hide the source code directory so tests
	# do not use these, but instead the compiled library.
	mv qiskit qiskit.hidden || die

	# Some small tests are failing which test optional features.
	# Why they fail is still under investigation.
	# transpiler_equivalence tests take too long time, they are also skipped.
	epytest -k 'not (TestOptions and test_copy) and not TestUnitarySynthesisPlugin and not test_transpiler_equivalence and not (TestPauliSumOp and test_to_instruction)'

	mv qiskit.hidden qiskit || die
}