# Copyright 2025-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2

# Autogenerated by pycargoebuild 0.15.0

EAPI=8

DISTUTILS_EXT=1
DISTUTILS_USE_PEP517=maturin
PYTHON_COMPAT=( python3_{11..13} )

CRATES="
	adler2@2.0.1
	android_system_properties@0.1.5
	autocfg@1.5.0
	base64@0.22.1
	bincode@1.3.3
	bitflags@1.3.2
	bumpalo@3.20.2
	byteorder@1.5.0
	cc@1.2.56
	cdshealpix@0.9.1
	cfg-if@1.0.4
	chrono@0.4.44
	colorous@1.0.16
	core-foundation-sys@0.8.7
	crc32fast@1.5.0
	crossbeam-deque@0.8.6
	crossbeam-epoch@0.9.18
	crossbeam-utils@0.8.21
	either@1.15.0
	equivalent@1.0.2
	fdeflate@0.3.7
	find-msvc-tools@0.1.9
	flate2@1.1.9
	hashbrown@0.16.1
	heck@0.5.0
	iana-time-zone-haiku@0.1.2
	iana-time-zone@0.1.65
	indexmap@2.13.0
	indoc@2.0.7
	itertools@0.14.0
	itoa@1.0.17
	js-sys@0.3.91
	katex-doc@0.1.0
	libc@0.2.183
	log@0.4.29
	mapproj@0.4.0
	matrixmultiply@0.3.10
	memchr@2.8.0
	memmap2@0.9.10
	memoffset@0.9.1
	minimal-lexical@0.2.1
	miniz_oxide@0.8.9
	moc@0.19.2
	ndarray@0.16.1
	nom@7.1.3
	num-bigint@0.4.6
	num-complex@0.4.6
	num-integer@0.1.46
	num-iter@0.1.45
	num-rational@0.4.2
	num-traits@0.2.19
	num@0.4.3
	num_threads@0.1.7
	numpy@0.26.0
	once_cell@1.21.3
	png@0.17.16
	portable-atomic-util@0.2.5
	portable-atomic@1.13.1
	proc-macro2@1.0.106
	pyo3-build-config@0.26.0
	pyo3-ffi@0.26.0
	pyo3-macros-backend@0.26.0
	pyo3-macros@0.26.0
	pyo3@0.26.0
	quick-error@2.0.1
	quote@1.0.45
	rawpointer@0.2.1
	rayon-core@1.13.0
	rayon@1.11.0
	rustc-hash@2.1.1
	rustversion@1.0.22
	serde@1.0.228
	serde_core@1.0.228
	serde_derive@1.0.228
	serde_json@1.0.149
	serde_spanned@0.6.9
	shlex@1.3.0
	simd-adler32@0.3.8
	slab@0.4.12
	stc-s@0.1.0
	syn@2.0.117
	target-lexicon@0.13.5
	thiserror-impl@2.0.18
	thiserror@2.0.18
	toml@0.8.23
	toml_datetime@0.6.11
	toml_edit@0.22.27
	toml_write@0.1.2
	unicode-ident@1.0.24
	unindent@0.2.4
	wasm-bindgen-macro-support@0.2.114
	wasm-bindgen-macro@0.2.114
	wasm-bindgen-shared@0.2.114
	wasm-bindgen@0.2.114
	windows-core@0.62.2
	windows-implement@0.60.2
	windows-interface@0.59.3
	windows-link@0.2.1
	windows-result@0.4.1
	windows-strings@0.5.1
	winnow@0.7.15
	zmij@1.0.21
"

#declare -A GIT_CRATES=(
#	[moc]='https://github.com/cds-astro/cds-moc-rust;8d2d57a1883d54bd3d7df677908cbcf577a0703c;cds-moc-rust-%commit%'
#)

inherit cargo distutils-r1

DESCRIPTION="MOC parsing and manipulation in Python"
HOMEPAGE="https://cds-astro.github.io/mocpy"
SRC_URI="https://github.com/cds-astro/mocpy/archive/refs/tags/v${PV}.tar.gz -> ${P}.gh.tar.gz
	${CARGO_CRATE_URIS}
	doc? (
		http://alasky.u-strasbg.fr/hips-image-services/hips2fits?hips=CDS%2FP%2F2MASS%2FK&width=1200&height=700&fov=30&projection=TAN&coordsys=galactic&rotation_angle=0.0&object=gal%20center&format=fits -> cutout-CDS_P_2MASS_K.fits
		http://skies.esac.esa.int/Spitzer/IRAC1_bright_ISM/Moc.fits
	)
"
LICENSE="BSD"
# Dependent crate licenses
LICENSE+=" Apache-2.0 Apache-2.0-with-LLVM-exceptions BSD-2 MIT Unicode-3.0"
SLOT="0"
KEYWORDS="~amd64 ~x86"
IUSE="astropy_regions doc examples intersphinx plots query_fits"
PROPERTIES="test_network"
RESTRICT="test
	intersphinx? ( network-sandbox )"
REQUIRED_USE="intersphinx? ( doc )"

RDEPEND="dev-python/astropy[${PYTHON_USEDEP}]
	astropy_regions? ( dev-python/regions[${PYTHON_USEDEP}] )
	plots? (
		>=dev-python/cdshealpix-0.6.4[${PYTHON_USEDEP}]
		dev-python/matplotlib[${PYTHON_USEDEP}]
		>=dev-python/networkx-2.5[${PYTHON_USEDEP}]
	)
	query_fits? ( dev-python/requests[${PYTHON_USEDEP}] )
"
BDEPEND="doc? (
		${RDEPEND}
		dev-python/sphinx-astropy[${PYTHON_USEDEP}]
		dev-python/sphinx-collections[${PYTHON_USEDEP}]
		dev-python/sphinx-copybutton[${PYTHON_USEDEP}]
		dev-python/sphinxcontrib-bibtex[${PYTHON_USEDEP}]
		dev-python/nbsphinx[${PYTHON_USEDEP}]
		dev-python/astropy-healpix[${PYTHON_USEDEP}]
		dev-python/cdshealpix[${PYTHON_USEDEP}]
		dev-python/matplotlib[${PYTHON_USEDEP}]
		dev-python/networkx[${PYTHON_USEDEP}]
		dev-python/toml[${PYTHON_USEDEP}]
		virtual/pandoc
	)
	test? (
		dev-python/cdshealpix[${PYTHON_USEDEP}]
		dev-python/matplotlib[${PYTHON_USEDEP}]
		dev-python/regions[${PYTHON_USEDEP}]
		dev-python/requests[${PYTHON_USEDEP}]
	)
"
#BDEPEND="doc? ( virtual/pandoc )

EPYTEST_PLUGINS=( pytest-mock )
distutils_enable_tests pytest
#distutils_enable_sphinx docs dev-python/sphinx-astropy \
#	dev-python/sphinx-collections \
#	dev-python/sphinx-copybutton \
#	dev-python/sphinxcontrib-bibtex \
#	dev-python/nbsphinx \
#	dev-python/astropy-healpix

python_prepare_all() {
#	cat > "${S}"/Cargo.lock <<-EOF || die
#		[[package]]
#		name = "moc"
#		version = "0.19.1"
#		source = "git+https://github.com/cds-astro/cds-moc-rust?rev=8d2d57a1883d54bd3d7df677908cbcf577a0703c#8d2d57a1883d54bd3d7df677908cbcf577a0703c"
#	EOF
	use doc && { eapply "${FILESDIR}"/${PN}-0.18.0-doc-use-local-fits.patch ; cp "${DISTDIR}"/*.fits docs/examples || die ; }
#	sed -e '/"source":/s|../||' -e '/"target":/s|note|docs/note|' -i docs/conf.py || die
	use test && { sed -e "/pathlib/a import os" -e "/parent/c \        Path(os.environ['S'])" \
		-i python/mocpy/tests/test_sfmoc.py || die ; }

	distutils-r1_python_prepare_all
}

python_compile_all() {
	if use doc; then
		VARTEXFONTS="${T}"/fonts MPLCONFIGDIR="${T}" PYTHONPATH="${BUILD_DIR}"/install/$(python_get_sitedir) \
			emake "SPHINXOPTS=$(usex intersphinx '' '-D disable_intersphinx=1')" -C docs html
		HTML_DOCS=( docs/_build/html/. )
	fi
}

python_install_all() {
	if use examples; then
		docompress -x "/usr/share/doc/${PF}/notebooks"
		docinto notebooks
		dodoc -r notebooks/.
	fi

	distutils-r1_python_install_all
}

python_test() {
	epytest "${BUILD_DIR}/install/usr"
}