python-specutils-doc
maintainer Universebenzene
· 0 votes
· base
python-specutils
· scanned 2026-08-03 00:08:14.047287
LOW
View on AUR ↗
Why flagged
The package downloads FITS data files from non-whitelisted hosts for offline documentation use, but these are non-executable scientific data files, not code, and are used only to build documentation locally.
Triggered rules
LOW
AI review downgraded a static finding
llm_review
The static rules flagged this MEDIUM, but an AI model (qwen/qwen3-235b-a22b-07-25) reviewed the full PKGBUILD and judged it LOW (confidence 95%): The package downloads FITS data files from non-whitelisted hosts for offline documentation use, but these are non-executable scientific data files, not code, and are used only to build documentation locally.
1 higher static finding superseded - not the current verdict (shown for transparency)
MEDIUM
source=() URL on a non-standard host
source_untrusted_domain
One or more source=() URLs point to a host outside the trusted allowlist (github.com, gitlab.com, codeberg.org, pypi.org, …).
-
PKGBUILD:29
"https://stsci.box.com/shared/static/28a88k1qfipo4yxc4p4d40v4axtlal8y.fits" -
PKGBUILD:30
"https://data.sdss.org/sas/dr16/sdss/spectro/redux/26/spectra/1323/spec-1323-52797-0012.fits"
PKGBUILD
2 offending line(s) highlighted
1
# Maintainer: Astro Benzene <universebenzene at sina dot com>
2
3
pkgbase=python-specutils
4
_pyname=${pkgbase#python-}
5
pkgname=("python-${_pyname}" "python-${_pyname}-doc")
6
pkgver=2.4.0
7
pkgrel=1
8
pkgdesc="Astropy Affiliated package for 1D spectral operations"
9
arch=('any')
10
url="http://specutils.readthedocs.io"
11
license=('BSD-3-Clause')
12
makedepends=('python-setuptools-scm'
13
'python-build'
14
'python-installer'
15
'python-sphinx-astropy'
16
'python-sphinx-copybutton'
17
# 'python-matplotlib' <- ... new astropy-sphinx-theme
18
'python-gwcs'
19
'python-ndcube>=2.0'
20
'graphviz') # wheel required by new setuptools
21
checkdepends=('python-pytest-astropy-header'
22
'python-pytest-asdf-plugin'
23
'python-pytest-doctestplus'
24
# 'python-pytest-xdist'
25
# 'python-pytest-timeout'
26
'python-pytest-remotedata'
27
'python-matplotlib') # gwcs, ndcube already in makedepends; header in conftest.py
28
source=("https://files.pythonhosted.org/packages/source/${_pyname:0:1}/${_pyname}/${_pyname}-${pkgver}.tar.gz"
29
"https://stsci.box.com/shared/static/28a88k1qfipo4yxc4p4d40v4axtlal8y.fits"
30
"https://data.sdss.org/sas/dr16/sdss/spectro/redux/26/spectra/1323/spec-1323-52797-0012.fits"
31
'use_local_doc_fits_offline.patch')
32
#https://dr15.sdss.org/sas/dr15/manga/spectro/redux/v2_4_3/8485/stack/manga-8485-1901-LOGRSS.fits.gz
33
md5sums=('c7812d5f5d9407476231bbe26eaaa2e3'
34
'6de4c8ee5659e87a302e3de595074ba5'
35
'3586c5d0810108a182ba9146908dc180'
36
'1bda649a83a3d021e75dc09a0da395b3')
37
38
prepare() {
39
cd ${srcdir}/${_pyname}-${pkgver}
40
41
cp ${srcdir}/*.fits docs
42
patch -Np1 -i "${srcdir}/use_local_doc_fits_offline.patch"
43
# sed -i "/astropy.utils.exceptions/a \ ignore:Subclassing validator classes is not intended:DeprecationWarning" setup.cfg
44
# sed -i "/astropy.utils.exceptions/a \ ignore:pkg_resources is deprecated as an API:DeprecationWarning" setup.cfg
45
}
46
47
build() {
48
cd ${srcdir}/${_pyname}-${pkgver}
49
python -m build --wheel --no-isolation
50
51
msg "Building Docs"
52
PYTHONPATH="../build/lib" make -C docs html
53
}
54
55
check() {
56
cd ${srcdir}/${_pyname}-${pkgver}
57
# skip some tests that need lots of online data or cost lots of time --ignore=docs/_build
58
pytest --ignore=docs/_build \
59
--ignore=specutils/io/asdf/tags/tests/test_spectra.py \
60
--ignore=specutils/io/default_loaders/tests/test_apogee.py \
61
--deselect=specutils/tests/test_loaders.py::test_ctypye_not_compliant[remote_data_path0] \
62
--deselect=specutils/tests/test_loaders.py::test_hst_cos[remote_data_path0] \
63
--deselect=specutils/tests/test_loaders.py::test_hst_cos[remote_data_path1] \
64
--deselect=specutils/tests/test_loaders.py::test_hst_stis[remote_data_path0] \
65
--deselect=specutils/tests/test_loaders.py::test_hst_stis[remote_data_path1] \
66
--deselect=specutils/tests/test_loaders.py::test_hst_stis[remote_data_path2] \
67
--deselect=specutils/tests/test_loaders.py::test_apstar_loader \
68
--deselect=specutils/tests/test_loaders.py::test_manga_cube \
69
--deselect=specutils/tests/test_loaders.py::test_manga_cube \
70
--deselect=specutils/tests/test_loaders.py::test_manga_rss \
71
--deselect=specutils/tests/test_loaders.py::test_sdss_spplate \
72
--deselect=specutils/tests/test_loaders.py::test_sdss_spspec \
73
--deselect=specutils/tests/test_loaders.py::test_sdss_compressed[gzip] \
74
--deselect=specutils/tests/test_loaders.py::test_sdss_compressed[bzip2] \
75
--deselect=specutils/tests/test_loaders.py::test_sdss_compressed[xz] \
76
--deselect=specutils/tests/test_loaders.py::TestAAOmega2dF::test_with_rwss[remote_data_path0] \
77
--deselect=specutils/tests/test_loaders.py::TestAAOmega2dF::test_without_rwss[remote_data_path0] \
78
--deselect=specutils/tests/test_loaders.py::TestAAOmega2dF::test_with_rwss_guess[remote_data_path0] \
79
--deselect=specutils/tests/test_loaders.py::TestAAOmega2dF::test_without_rwss_guess[remote_data_path0] \
80
--deselect=specutils/tests/test_loaders.py::test_apvisit_loader \
81
--deselect=specutils/tests/test_loaders.py::test_iraf_multispec_chebyshev \
82
--deselect=specutils/tests/test_loaders.py::test_iraf_multispec_legendre \
83
--deselect=specutils/tests/test_loaders.py::test_muscles_loader \
84
--deselect=specutils/tests/test_loaders.py::test_subaru_pfs_loader \
85
--deselect=specutils/tests/test_spectral_axis.py::test_create_spectral_axis || warning "Tests failed" # -vv -l -ra --color=yes -o console_output_style=count -p xdist -n 4
86
}
87
88
package_python-specutils() {
89
depends=('python>=3.11' 'python-scipy>=1.14' 'python-gwcs>=0.25.1' 'python-ndcube>=2.0') # astropy asdf asdf-astropy required by gwcs
90
optdepends=('python-specutils-doc: Documentation for Specutils')
91
cd ${srcdir}/${_pyname}-${pkgver}
92
93
install -D -m644 -t "${pkgdir}/usr/share/licenses/${pkgname}" licenses/*
94
install -D -m644 README.rst -t "${pkgdir}/usr/share/doc/${pkgname}"
95
python -m installer --destdir="${pkgdir}" dist/*.whl
96
}
97
98
package_python-specutils-doc() {
99
pkgdesc="Documentation for Python Specutils module"
100
cd ${srcdir}/${_pyname}-${pkgver}/docs/_build
101
102
install -D -m644 -t "${pkgdir}/usr/share/licenses/${pkgname}" ../../licenses/*
103
install -d -m755 "${pkgdir}/usr/share/doc/${pkgbase}"
104
cp -a html "${pkgdir}/usr/share/doc/${pkgbase}"
105
}
106
Scan history
| Scanned at (UTC) | Severity | Rules |
|---|---|---|
| 2026-08-03 00:08:14 | LOW | 2 |
| 2026-08-02 00:16:08 | LOW | 2 |
| 2026-08-01 00:11:18 | LOW | 2 |
| 2026-07-31 00:14:10 | LOW | 2 |
| 2026-07-30 00:17:23 | LOW | 2 |
| 2026-07-29 00:25:53 | LOW | 2 |
| 2026-07-28 00:07:28 | LOW | 2 |
| 2026-07-27 00:24:32 | LOW | 2 |
| 2026-07-26 00:07:32 | LOW | 2 |
| 2026-07-25 00:13:44 | LOW | 2 |
| 2026-07-24 00:02:28 | LOW | 2 |
| 2026-07-23 00:14:47 | LOW | 2 |
| 2026-07-22 00:29:32 | LOW | 2 |
| 2026-07-21 00:24:15 | LOW | 2 |
| 2026-07-20 00:19:49 | LOW | 2 |
| 2026-07-19 00:17:08 | LOW | 2 |
| 2026-07-18 00:14:48 | LOW | 2 |
| 2026-07-17 00:06:16 | LOW | 2 |
| 2026-07-16 00:05:41 | LOW | 2 |
| 2026-07-15 00:09:25 | LOW | 2 |