summarylogtreecommitdiffstats
path: root/PKGBUILD
blob: 228669183304107f56ee65b9c5fb09abc7f5f309 (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
# Maintainer: Astro Benzene <universebenzene at sina dot com>

pkgbase=python-optimagic
_pyname=${pkgbase#python-}
pkgname=("python-${_pyname}")
#   "python-${_pyname}-doc")
pkgver=0.5.3
pkgrel=1
pkgdesc="Tools to solve difficult numerical optimization problems"
arch=('any')
url="https://optimagic.readthedocs.io"
license=('MIT')
makedepends=('python-hatchling'
             'python-hatch-vcs'
             'python-build'
             'python-installer')  # wheel required by new setuptools
#             'python-sphinx-copybutton'
#             'python-sphinx-panels'
#             'python-sphinx-furo'
#             'python-sphinx_design'
#             'python-sphinxcontrib-bibtex'
#             'python-sphinxcontrib-mermaid'
#             'python-intersphinx-registry'
#             'python-myst-nb'
#             'python-pandas'
#             'python-plotly'
#             'python-pybaum'
#             'python-annotated-types'
#             'python-scipy'
checkdepends=('python-pytest'
#             'python-pytest-xdist'
              'python-pandas'
              'python-statsmodels'
              'python-annotated-types'
              'python-sqlalchemy'
              'python-cloudpickle'
              'python-pybaum'
              'python-joblib'
              'python-plotly'
              'python-yaml'
              'python-seaborn'
              'python-bokeh'
              'python-iminuit'
              'python-altair') # typing_extensions <- sqlalchemy; jinja <- bokeh
##            'python-bayesian-optimization'
##            'python-colorama'
##)
#source=("https://files.pythonhosted.org/packages/source/${_pyname:0:1}/${_pyname}/${_pyname}-${pkgver}.tar.gz")
source=("https://github.com/optimagic-dev/optimagic/archive/refs/tags/v${pkgver}.tar.gz")
md5sums=('b7e138d22cdadfb7006733ecfa52b8a6')

get_pyver() {
    python -c "import sys; print('$1'.join(map(str, sys.version_info[:2])))"
}

prepare() {
    cd ${srcdir}/${_pyname}-${pkgver}

#   sed -i -e "s/@/\%s@/" -e "/pulls/s/\#/\%s\#/" docs/source/conf.py
    export SETUPTOOLS_SCM_PRETEND_VERSION=${pkgver}
}

build() {
    cd ${srcdir}/${_pyname}-${pkgver}
    python -m build --wheel --no-isolation

#   msg "Building Docs"
#   mkdir -p dist/lib
#   bsdtar -xpf dist/${_pyname/-/_}-${pkgver}-py3-none-any.whl -C dist/lib
#   PYTHONPATH="../dist/lib" make -C docs html
}

check() {
    cd ${srcdir}/${_pyname}-${pkgver}

    PYTHONPATH="src" pytest \
        --ignore=tests/optimagic/optimizers/test_bayesian_optimizer.py || warning "Tests failed" # -vv -l -ra --color=yes -o console_output_style=count -p xdist -n 4 #
#        --deselect=tests/optimagic/visualization/test_backends.py::test_line_plot_all_backends[altair] \
#        --deselect=tests/optimagic/visualization/test_convergence_plot.py::test_convergence_plot_options[True-options13] \
#        --deselect=tests/optimagic/visualization/test_convergence_plot.py::test_convergence_plot_options[False-options13] \
#        --deselect=tests/optimagic/visualization/test_history_plots.py::test_criterion_plot_different_backends[altair] \
#        --deselect=tests/optimagic/visualization/test_history_plots.py::test_params_plot_different_backends[altair] \
#        --deselect=tests/optimagic/visualization/test_slice_plot.py::test_slice_plot[sphere_loglike-kwargs1-altair] \
#        --deselect=tests/optimagic/visualization/test_slice_plot.py::test_slice_plot[sphere_loglike-kwargs2-altair] \
#        --deselect=tests/optimagic/visualization/test_slice_plot.py::test_slice_plot[sphere_loglike-kwargs3-altair] \
#        --deselect=tests/optimagic/visualization/test_slice_plot.py::test_slice_plot[sphere_loglike-kwargs4-altair] \
#        --deselect=tests/optimagic/visualization/test_slice_plot.py::test_slice_plot[sphere_loglike-kwargs6-altair] \
#        --deselect=tests/optimagic/visualization/test_slice_plot.py::test_slice_plot[sphere_loglike-kwargs5-altair] \
#        --deselect=tests/optimagic/visualization/test_slice_plot.py::test_slice_plot[sphere-kwargs8-altair] \
#        --deselect=tests/optimagic/visualization/test_slice_plot.py::test_slice_plot[sphere_loglike-kwargs7-altair] \
#        --deselect=tests/optimagic/visualization/test_slice_plot.py::test_slice_plot[sphere-kwargs9-altair] \
#        --deselect=tests/optimagic/visualization/test_slice_plot.py::test_slice_plot[sphere-kwargs10-altair] \
#        --deselect=tests/optimagic/visualization/test_slice_plot.py::test_slice_plot[sphere-kwargs12-altair] \
#        --deselect=tests/optimagic/visualization/test_slice_plot.py::test_slice_plot[sphere-kwargs11-altair] \
#        --deselect=tests/optimagic/visualization/test_slice_plot.py::test_slice_plot[sphere-kwargs13-altair] \
#        --deselect=tests/optimagic/visualization/test_slice_plot.py::test_slice_plot[sphere-kwargs14-altair] \
#        --deselect=tests/optimagic/visualization/test_slice_plot.py::test_slice_plot[sphere-kwargs15-altair] \
#        --deselect=tests/optimagic/visualization/test_profile_plot.py::test_profile_plot_options[options5] \
#        --deselect=tests/optimagic/visualization/test_slice_plot.py::test_slice_plot[sphere_loglike-kwargs0-altair]

        #|| warning "Tests failed" # -vv -l -ra --color=yes -o console_output_style=count -p xdist -n 4 #
#       --deselect=tests/optimagic/optimization/test_many_algorithms.py::test_nag_dfols_starting_at_optimum \
#       --deselect=parfive/tests/test_downloader.py::test_ftp #|| warning "Tests failed" # -vv -l -ra --color=yes -o console_output_style=count -p xdist -n 4 #
}

package_python-optimagic() {
    depends=('python>=3.10'
             'python-cloudpickle'
             'python-joblib'
             'python-numpy'
             'python-pandas'
             'python-plotly'
             'python-pybaum>=0.1.2'
             'python-scipy>=1.2.1'
             'python-sqlalchemy>=1.3'
             'python-annotated-types'
             'python-typing_extensions')
#   optdepends=('python-optimagic-doc: Documentation for optimagic')
    cd ${srcdir}/${_pyname}-${pkgver}

    install -D -m644 LICENSE -t "${pkgdir}/usr/share/licenses/${pkgname}"
    install -D -m644 README.md -t "${pkgdir}/usr/share/doc/${pkgname}"
    python -m installer --destdir="${pkgdir}" dist/*.whl
}
#package_python-optimagic-doc() {
#    pkgdesc="Documentation for Python optimagic"
#    cd ${srcdir}/${_pyname}-${pkgver}/docs/_build
#
#    install -D -m644 ../../LICENSE -t "${pkgdir}/usr/share/licenses/${pkgname}"
#    install -d -m755 "${pkgdir}/usr/share/doc/${pkgbase}"
#    cp -a html "${pkgdir}/usr/share/doc/${pkgbase}"
#}