Skip to content
Merged
Show file tree
Hide file tree
Changes from 55 commits
Commits
Show all changes
59 commits
Select commit Hold shift + click to select a range
7a69d72
Name the field a record array's child failed on without a declared type
nelson2005 Sep 25, 2026
c3388fa
Read input_columns once, when the function is made
nelson2005 Sep 25, 2026
f69aa70
Point the catalogue's record-array entry at the helper that names the…
nelson2005 Sep 25, 2026
25c954b
Fold a time unit's multiplier in, and take a coarse unit to seconds o…
nelson2005 Sep 25, 2026
c1950ed
Refuse a str, bytes or 0-d array output rather than spread it one cha…
nelson2005 Sep 25, 2026
3e4e5d3
Refuse a Nullable inside a Nullable by name
nelson2005 Sep 25, 2026
8dc54a1
Look inside every row shape the key check let past: tuples by positio…
nelson2005 Sep 25, 2026
58d3be8
Refuse a pandas Series or DataFrame row by name, name the column on a…
nelson2005 Sep 25, 2026
eb2b642
Pair the field guard's kinds through their layouts: extension storage…
nelson2005 Sep 25, 2026
0677dc4
Refuse a batch whose inferred schema differs from the partition's fir…
nelson2005 Sep 25, 2026
313338d
Mask a Nullable extension column through its storage
nelson2005 Sep 25, 2026
a50ca85
Refuse a union child before a struct is flattened
nelson2005 Sep 25, 2026
f816f67
Give a zero-copy view a base that cannot be released from under it
nelson2005 Sep 26, 2026
c0f7411
Leave a multi-dimensional array of another dtype to pa.array's own re…
nelson2005 Sep 26, 2026
42a909a
Hold nothing of a batch across the yield
nelson2005 Sep 26, 2026
7eab1b3
Give structured dtypes of one itemsize viewers of their own
nelson2005 Sep 26, 2026
2ab5c3c
Keep a zero-length temporal column's bitmap presence
nelson2005 Sep 26, 2026
1cdb5fc
Cut the unexpected-keys listing with a count
nelson2005 Sep 26, 2026
6985cce
Describe a scalar as one at the dispatcher, and leak no column called…
nelson2005 Sep 26, 2026
3321050
Refuse an output_schema that names a column or field twice
nelson2005 Sep 26, 2026
180be7e
Name the shape the function takes when it is handed a batch or a table
nelson2005 Sep 26, 2026
06ab92e
Say which rule NUMBARROW_JIT_OPTIONS broke, and show the value
nelson2005 Sep 26, 2026
0f41f13
Refuse a unit that is not the array's own in the 64-bit date view, an…
nelson2005 Sep 26, 2026
104e34a
Hand a fixed-width bytes column to pa.array directly under a fixed-si…
nelson2005 Sep 26, 2026
0e6b38f
Name the path to the field a nested key refusal is about
nelson2005 Sep 26, 2026
fc6bfa2
Compile without a cache, with a warning naming the remedy, where numb…
nelson2005 Sep 26, 2026
8ce83b5
Say that Spark reads a struct column's fields by position too, and ho…
nelson2005 Sep 26, 2026
6fe9ba4
Complete the list of silent lossy conversions, and name OverflowError…
nelson2005 Sep 26, 2026
21f91be
Bound the negative-index sentence, escape the underscored parameter n…
nelson2005 Sep 26, 2026
159ffcf
Say what the Spark struct-null test checks, since Spark nulls the chi…
nelson2005 Sep 26, 2026
58dc99b
Raise the pyspark floor to 3.5 on Python 3.13, and say what the extra…
nelson2005 Sep 26, 2026
52e5369
Run the Windows install and lint steps under bash, parse the requires…
nelson2005 Sep 26, 2026
aeae42e
Pin the terms the suite could not see: timestamp units, the key check…
nelson2005 Sep 26, 2026
42aa41a
Keep the new guards in helpers of their own
nelson2005 Sep 26, 2026
0b25dff
Build the batch-shape test's batch the way pyarrow 14 accepts
nelson2005 Sep 26, 2026
cffb02d
Point the catalogue's eight entries at the lines this branch moved
nelson2005 Sep 26, 2026
e1a2bc1
Name the cells the pwsh steps went green on without counting the fork…
nelson2005 Sep 26, 2026
f06df83
Hand the batch-shape test a pandas frame only where pandas is installed
nelson2005 Sep 26, 2026
70e0c9e
Read a compatible-release clause as the floor in the extras gate too
nelson2005 Sep 26, 2026
c48b843
Say that both cache variables are read when numbarrow is first imported
nelson2005 Sep 26, 2026
8aa1aa8
Refuse an empty input_columns, which handed main_func no columns
nelson2005 Sep 26, 2026
bced5c7
Refuse a namedtuple or Row naming a field the declared struct does no…
nelson2005 Sep 26, 2026
86df08d
Refuse a pandas Series row inside an object array as well as inside a…
nelson2005 Sep 26, 2026
d0fcb22
Name row.to_dict() as the way over for a pandas Series row under a st…
nelson2005 Sep 26, 2026
21944a9
Refuse a coarse time unit under a declared integer or string type rat…
nelson2005 Sep 26, 2026
27d3593
Refuse a time64 or duration array in the 64-bit date view by type fam…
nelson2005 Sep 26, 2026
c3c1c0b
Key a structured viewer's name by the dtype's repr, which numpy defin…
nelson2005 Sep 26, 2026
9fee82b
Pin the cache fallback's narrowing to numba's no-locator error with a…
nelson2005 Sep 26, 2026
5e9c4fd
Pin the repeated-name check's map and extension paths with tests
nelson2005 Sep 26, 2026
028ba58
Pin the union check's extension unwrap with a test
nelson2005 Sep 26, 2026
d5c2768
Pin the key check's extension unwrap with a test
nelson2005 Sep 26, 2026
afbd0e9
Say that NUMBA_CACHE_DIR is read when numba is imported, not when num…
nelson2005 Sep 26, 2026
b8752a3
Say that a float under a declared decimal type is refused, not rounded
nelson2005 Sep 26, 2026
d3638ee
Pin the extras gate's floor parsing with a test
nelson2005 Sep 27, 2026
313ebe8
Skip the extras gate's test where the script cannot load
nelson2005 Sep 27, 2026
83713bb
Give jit_with_options the one signature every caller passes; a second…
nelson2005 Sep 28, 2026
93eb2c9
Lead the one-shot input_columns test's comment with what it checks
nelson2005 Sep 28, 2026
105b9ce
Name a remedy that works in the cache warning for an archive; NUMBA_C…
nelson2005 Sep 29, 2026
f45b510
Compile uncached when the cache numba picked for a .zip cannot be wri…
nelson2005 Sep 29, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
21 changes: 19 additions & 2 deletions .github/scripts/extras_sufficiency_check.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@
"""
import argparse
import os
import re
import shutil
import subprocess
import sys
Expand Down Expand Up @@ -82,6 +83,20 @@ def check(repo: Path, extra: str, probe: str, python: str) -> str | None:
return None


def floor_interpreter(requires_python):
"""The interpreter name for the floor of a requires-python specifier set, such as python3.12.

The floor is the ``>=`` clause, or the ``~=`` compatible-release clause,
which names its floor the same way; a set with neither names no
interpreter to test on, and the gate says so and stops, as it does for an
extra with no probe.
"""
floor = re.search(r"(?:>=|~=)\s*(\d+\.\d+)", requires_python)
if floor is None:
raise SystemExit(f"requires-python {requires_python!r} names no >= or ~= floor to test the extras on")
return "python" + floor.group(1)


def main(argv=None):
ap = argparse.ArgumentParser()
ap.add_argument("--repo", default=str(Path(__file__).resolve().parents[2]))
Expand All @@ -97,8 +112,10 @@ def main(argv=None):
declared = set(meta.get("optional-dependencies", {}))
# The floor is what matters: distutils is present below 3.12 and absent at
# and above it, so testing a newer interpreter would hide the failure and
# testing the floor exposes it.
python = args.python or "python" + meta["requires-python"].lstrip(">=~^ ")
# testing the floor exposes it. requires-python is a specifier set, so the
# floor is the >= clause, wherever it sits: stripping leading characters
# turned ">=3.12,<3.14" into the executable name "python3.12,<3.14".
python = args.python or floor_interpreter(meta["requires-python"])

unprobed = declared - set(PROBES) - SKIP
if unprobed:
Expand Down
Loading
Loading