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
3pkgbase=python-specutils
4_pyname=${pkgbase#python-}
5pkgname=("python-${_pyname}" "python-${_pyname}-doc")
6pkgver=2.4.0
7pkgrel=1
8pkgdesc="Astropy Affiliated package for 1D spectral operations"
9arch=('any')
10url="http://specutils.readthedocs.io"
11license=('BSD-3-Clause')
12makedepends=('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
21checkdepends=('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
28source=("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
33md5sums=('c7812d5f5d9407476231bbe26eaaa2e3'
34 '6de4c8ee5659e87a302e3de595074ba5'
35 '3586c5d0810108a182ba9146908dc180'
36 '1bda649a83a3d021e75dc09a0da395b3')
37
38prepare() {
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
47build() {
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
55check() {
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
88package_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
98package_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)SeverityRules
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

Report a package

Reports go to the AURWatch maintainer (one person) and are read by hand. No login required.

0 / 4000
Your suggestion