blob: 3c2c596125c5bbf8e6c104718498f7c296f30d8f (
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: Carlos Aznarán <caznaranl@uni.pe>
# Contributor: Caleb Maclennana <caleb@alerque.com>
# Contributor: Eli Schwartz <eschwartz@archlinux.org>
_pyname=dephell
pkgname=python-dephell
pkgver=0.8.3
pkgrel=8
pkgdesc="universal Python project management: convert between formats, build, manage venvs"
arch=(any)
url="https://github.com/dephell/$_pyname"
license=(ISC)
_dhdeps=(archive
argparse
changelogs
discover
licenses
links markers
pythons
setuptools
shells
specifier
venvs
versioning)
_pydeps=(aiohttp
appdirs
attrs
bowler
cerberus
colorama
"${_dhdeps[@]/#/dephell-}"
html5lib
jinja
m2r2
packaging
pip
pygments
requests
ruamel-yaml
tabulate
tomlkit
yaspin)
depends=("${_pydeps[@]/#/python-}")
checkdepends=(git python-pytest python-aioresponses python-requests-mock
python-moreorless python-graphviz)
optdepends=('python-aiofiles: speed up file writes for files downloaded from warehouse'
'python-docker: for the docker subcommand'
'python-dockerpty: for the docker subcommand'
'python-gnupg: for the package verify subcommand'
'python-graphviz: print deps tree as a graph'
'autopep8: make setup.py converter produce formatted pep8 output'
'yapf: make setup.py converter produce google yapf-formatted output')
_archive="$_pyname-$pkgver"
source=("https://files.pythonhosted.org/packages/source/${_pyname:0:1}/${_pyname}/$_archive.tar.gz"
'new-pip-parser-api.patch'
'0001-Do-not-override-the-system-SSL-certificates-with-the.patch')
sha256sums=('a9fcc528a0c6f9f5d721292bdf846e5338e4dca7cd6fef1551fbe71564dfe61e'
'85ac9db84375d9063fae8cbc91ad7cbcec5b0da8cfe800ed400bcc92f0412934'
'acbe38854daef23a6cb752bfa98323ae5c7f85cca8562cb070d59e11e05991b0')
b2sums=('7ab8e2022134ff11a39476e121388e627b434b5568bd39879f60a9f14cb27cfee153d27df880fd755c5ab0b0c44fa960a9330df4d2bb15c55b03ffaaa600cbf2'
'f6f32fbddb21fb263541f6025b9bd111354f39ad2624fa1830d962f40915948bf2bfcc678b9cc2332b3eae7da7d94555a693e5295507004ba2674831854c60a2'
'b69a0f264700c93144adddf86ee133ca15a5e373dc077bc9d24010cce6238a779435e48cab41bf47b72482c357e790ac9bafeafb89b85a36c29769601300a2cf')
prepare() {
cd "$_archive"
# https://github.com/dephell/dephell/pull/473
patch -Np1 -i ../new-pip-parser-api.patch
# bad certifi
patch -p1 -i ../0001-Do-not-override-the-system-SSL-certificates-with-the.patch
# don't lock pip version to below pip 20:
# https://github.com/dephell/dephell/pull/363#issuecomment-606150965
# because https://github.com/pypa/pip/issues/7629 seems insufficient
# to hold up non-PyPY platforms :/
sed -i 's/pip<=19.3.1,>=18.0/pip/' setup.py
# Use m2r2 instead m2r
sed -i 's/m2r/m2r2/' dephell/controllers/_readme.py
sed -i 's/m2r/m2r2/' setup.py
sed -i 's/m2r/m2r2/' tests/test_repositories/test_warehouse_api.py
sed -i 's/0.2.1/0.3.3.post2/' tests/test_repositories/test_warehouse_api.py
}
build(){
cd "$_archive"
python setup.py build
}
check() {
cd "$_archive"
# skip git tests, which rely on being run from dephell's own git repo
# skip doc test, which tests whether html docs not in the tarball, cover all commands
python -m pytest \
-k 'not test_git_git and not test_docs' \
--no-network \
--deselect tests/test_actions/test_entrypoints.py::test_smoke_get_entrypoints \
--deselect tests/test_commands/test_vendor_import.py::test_patch_imports \
--deselect tests/test_repositories/test_local.py::test_deps_file \
--deselect tests/test_resolving/test_apply_envs.py::test_not_deep \
--deselect tests/test_commands/test_inspect_project.py::test_inspect_project_command \
--deselect tests/test_commands/test_inspect_venv.py::test_inspect_venv_command \
--deselect tests/test_commands/test_venv_create.py::test_venv_create_command \
--deselect tests/test_commands/test_venv_destroy.py::test_venv_destroy_command \
--ignore=tests/test_resolving/test_python_compat.py \
--ignore=tests/test_converters/test_pip.py \
--ignore=tests/test_models/test_marker_tracker.py \
--ignore=tests/test_converters/test_poetrylock.py \
--ignore=tests/test_models/test_requirement.py \
--ignore=tests/test_commands/test_build.py \
--ignore=tests/test_commands/test_deps_convert.py \
--ignore=tests/test_converters/test_egginfo.py \
--ignore=tests/test_converters/test_poetry.py
}
package() {
cd "$_archive"
python setup.py install --root="$pkgdir" --optimize=1 --skip-build
install -Dm0644 -t "$pkgdir/usr/share/licenses/$pkgname/" LICENSE
# make shell completions
python -c 'from dephell.actions._autocomplete import make_bash_autocomplete as comp; print(comp())' |
install -Dm0644 /dev/stdin "$pkgdir/usr/share/bash-completion/completions/$_pyname"
# rewrite zsh completion to support autoloading
{ printf '#compdef dephell\n'
python -c 'from dephell.actions._autocomplete import make_zsh_autocomplete as comp; print(comp())' |
sed 's/^compdef _dephell dephell$/_dephell/'
} | install -Dm0644 /dev/stdin "$pkgdir/usr/share/zsh/site-functions/_$_pyname"
}
|