python-frictionless

LOW
maintainer Smoolak 0 votes scanned 2026-11-01 20:01:18.389276
View on AUR
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
3pkgname=python-frictionless
4pkgver=5.21.0
5pkgrel=1
6pkgdesc='Describe, extract, validate and transform tabular data'
7arch=(any)
8url=https://github.com/frictionlessdata/frictionless-py
9license=(MIT)
10depends=('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')
11makedepends=('python-build' 'python-installer' 'python-hatchling')
12checkdepends=('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
14source=("$pkgname-$pkgver.tar.gz::$url/archive/$_commit.tar.gz"
15 tatsu-config-import.patch)
16sha256sums=('be7d9faf038028485b4375564e3b6198b96544ca5fd4abe9378330955155c782'
17 'db48b121d8ffc56954286792cfb2f84e6ceaee3130e4041343cf37ca8f895325')
18optdepends=('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')
19prepare() {
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
25build() {
26 cd "frictionless-py-$_commit"
27 python -m build --wheel --no-isolation
28}
29
30check() {
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
41package() {
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'
46import csv
47import pathlib
48import shutil
49import sys
50site = next(pathlib.Path(sys.argv[1]).glob("usr/lib/python*/site-packages"))
51for directory in (site / "frictionless").rglob("__spec__"):
52 shutil.rmtree(directory)
53for path in (site / "frictionless").rglob("conftest.py"):
54 path.unlink()
55for path in (site / "frictionless").rglob("conftest.*.pyc"):
56 path.unlink()
57record = next(site.glob("frictionless-*.dist-info/RECORD"))
58with 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]]
63with record.open("w", newline="") as target:
64 csv.writer(target).writerows(rows)
65PYTHON
66 install -Dm644 LICENSE.md "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
67}
68

Scan history

Scanned at (UTC)SeverityRules
2026-11-01 20:01:18 Low 1

Report a package

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

0 / 4000
Your suggestion