python-frictionless
LOW
maintainer Smoolak
0 votes
scanned 2026-11-01 20:01:18.389276
Why flagged
Uploaded within the last 14 days with 2 or fewer community votes — little peer review so far.
Triggered rules
Low
Few votes, recently uploaded
zero_votes_recent
Uploaded within the last 14 days with 2 or fewer community votes — little peer review so far.
PKGBUILD
1
# Maintainer: Smoolak <smoolak@gmail.com>
2
3
pkgname=python-frictionless
4
pkgver=5.21.0
5
pkgrel=1
6
pkgdesc='Describe, extract, validate and transform tabular data'
7
arch=(any)
8
url=https://github.com/frictionlessdata/frictionless-py
9
license=(MIT)
10
depends=('python' 'python-petl' 'python-marko' 'python-attrs' 'python-jinja' 'python-yaml' 'python-isodate' 'python-rfc3986' 'python-chardet' 'python-pydantic' 'python-requests' 'python-humanize' 'python-tabulate' 'python-jsonschema' 'python-referencing' 'python-simpleeval' 'python-typer' 'python-validators' 'python-slugify' 'python-dateutil' 'python-typing_extensions' 'python-rich')
11
makedepends=('python-build' 'python-installer' 'python-hatchling')
12
checkdepends=('python-pytest' 'python-pytest-lazy-fixtures' 'python-pytest-mock' 'python-pytest-vcr' 'python-sqlalchemy' 'python-requests-mock' 'python-ijson' 'python-jsonlines' 'python-yattag' 'python-tatsu')
13
_commit=c08fa29cb0708427ae65bb689ded8e2691078a82
14
source=("$pkgname-$pkgver.tar.gz::$url/archive/$_commit.tar.gz"
15
tatsu-config-import.patch)
16
sha256sums=('be7d9faf038028485b4375564e3b6198b96544ca5fd4abe9378330955155c782'
17
'db48b121d8ffc56954286792cfb2f84e6ceaee3130e4041343cf37ca8f895325')
18
optdepends=('python-tatsu: WKT geometry validation' 'python-ijson: streamed JSON resources' 'python-jsonlines: JSON Lines resources' 'python-pandas: data frame resources' 'python-pyarrow: Parquet and pandas resources' 'python-openpyxl: Excel resources' 'python-xlrd: legacy Excel input' 'python-xlwt: legacy Excel output' 'python-sqlalchemy: SQL resources' 'python-boto3: AWS storage' 'python-pygithub: GitHub resources' 'python-pyquery: HTML resources')
19
prepare() {
20
cd "frictionless-py-$_commit"
21
# Use TatSu's supported compatibility module for generated parser configuration.
22
patch -Np1 -i "$srcdir/tatsu-config-import.patch"
23
}
24
25
build() {
26
cd "frictionless-py-$_commit"
27
python -m build --wheel --no-isolation
28
}
29
30
check() {
31
cd "frictionless-py-$_commit"
32
python -m venv --system-site-packages --without-pip "$srcdir/check-env"
33
"$srcdir/check-env/bin/python" -m installer dist/*.whl
34
# Exercise the complete core schema, validation and transformation suites,
35
# plus CSV/JSON formats, without requiring external database or cloud services.
36
"$srcdir/check-env/bin/python" -I -m pytest --import-mode=importlib -v \
37
frictionless/{schema,fields,checks,validator,checklist,metadata,detector,dialect,error,errors,report,table,pipeline,transformer,steps} \
38
frictionless/formats/{csv,json} --junitxml="$srcdir/pytest-results.xml"
39
}
40
41
package() {
42
cd "frictionless-py-$_commit"
43
python -m installer --destdir="$pkgdir" dist/*.whl
44
# Keep test fixtures in check(), with coherent installed wheel metadata.
45
python - "$pkgdir" <<'PYTHON'
46
import csv
47
import pathlib
48
import shutil
49
import sys
50
site = next(pathlib.Path(sys.argv[1]).glob("usr/lib/python*/site-packages"))
51
for directory in (site / "frictionless").rglob("__spec__"):
52
shutil.rmtree(directory)
53
for path in (site / "frictionless").rglob("conftest.py"):
54
path.unlink()
55
for path in (site / "frictionless").rglob("conftest.*.pyc"):
56
path.unlink()
57
record = next(site.glob("frictionless-*.dist-info/RECORD"))
58
with record.open(newline="") as source:
59
rows = [row for row in csv.reader(source)
60
if "/__spec__/" not in row[0]
61
and not row[0].endswith("/conftest.py")
62
and "/__pycache__/conftest." not in row[0]]
63
with record.open("w", newline="") as target:
64
csv.writer(target).writerows(rows)
65
PYTHON
66
install -Dm644 LICENSE.md "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
67
}
68
Scan history
| Scanned at (UTC) | Severity | Rules |
|---|---|---|
| 2026-11-01 20:01:18 | Low | 1 |