Debian Patches

Status for pyranges/0.1.5+ds-1

Patch Description Author Forwarded Bugs Origin Last update
Fall-back-to-a-placeholder-version-when-package-meta.patch Fall back to a placeholder version when package metadata is missing
Debian runs the test suite from the pybuild build directory, where no
*.dist-info directory exists yet. pyranges/__init__.py obtains its
version via importlib.metadata.version("pyranges"), which raises
PackageNotFoundError in that situation, so every test module that
imports pyranges fails at collection time.

Fall back to a placeholder version instead, which also makes importing
pyranges work from an unpacked source tree.
Karsten Schöke <karsten.schoeke@geobasis-bb.de> not-needed 2026-11-01
fix-expected-cluster-result.patch fix expected cluster result Somehow, the statement in its original form ceased to reflect the change of dtype to
numpy's int32 for the expected result,
causing a test failure because the reference data now has wrongly int64
numpy dtype. Slightly changing the way the assignation of the smaller dtype
is done fixes the problem.
Karsten Schöke <karsten.schoeke@geobasis-bb.de> not-needed debian 2026-11-01
fix-deprecated-HealthCheck.all.patch fix deprecated HealthCheck.all() decorator parameter. The HealthCheck.all() method has been deprecated in favor of specifying in a
list which checks to ignore in a subsequent test function. The error
message suggests use of HealthCheck.return_value. Other options are
documented on Python hypothesis module documentation[1]. It is worth noting
the attribute return_value itself is marked as deprecated,
so we might as well just buy us some time until a possibly more appropriate
fix. . [1]:
https://hypothesis.readthedocs.io/en/latest/settings.html#health-checks
Étienne Mollier <emollier@debian.org> invalid debian 2026-11-01
Decide-strandedness-from-strand-values.patch Decide strandedness from the strand values, not from the category list

check_strandedness() classified a categorical Strand column by comparing the
whole category list against {'+', '-'}, while object columns were compared by
value. set_dtypes() normalises every Strand column to
CategoricalDtype([".", "-", "+"], ordered=True), so any frame that had already
been through it carried an unused "." category and was classified as unstranded
even when all values were "+" or "-".

Consequences:

- pr.PyRanges(gr.df) silently lost the strand of a stranded gr
(stranded True -> False, keys [('chr1','+'), ('chr1','-')] -> ['chr1']).
This also affects any roundtrip through to_bed/read_bed, to_csv/read_csv
and iteration over the per-chromosome frames;
- gr.Strand = gr.Strand.replace({"+": "-", "-": "+"}) lost the strand, because
attr._setattr() re-keys the object through pr.PyRanges(df);
- PyRanges.set_union(..., strandedness="opposite") - and the same code in
set_intersect/subtract/overlap - therefore raised
"Cannot do stranded concat, not all pyranges contain strand info"
(pyranges/methods/concat.py:21);
- with strandedness=None the auto-detection then silently ignored the strand,
which can produce incorrect join/merge results.

Compare the observed values instead; "." and missing values still disqualify.

Found by tests/property_based/test_do_not_error.py::test_three_in_a_row.
Karsten Schöke <karsten.schoeke@geobasis-bb.de> no 2026-11-01
The-example-data-used-by-the-pyranges.data-helpers.patch The example data used by the pyranges.data helpers Karsten Schöke <karsten.schoeke@geobasis-bb.de> not-needed 2026-11-02
Replace-np.float_-with-np.float64-in-the-test-suite.patch Replace np.float_ with np.float64 in the test suite NumPy 2.0 removed the np.float_ alias,
so tests/property_based/test_binary.py failed with "AttributeError:
`np.float_` was removed in the NumPy 2.0 release. Use `np.float64` instead."
before any comparison ran. . np.float64 is available in NumPy 1.x as well,
so the change does not raise the minimum NumPy version.
Karsten Schöke <karsten.schoeke@geobasis-bb.de> not-needed 2026-11-02
register-bedtools-marker-in-pyproject.toml.patch register bedtools marker in pyproject.toml Karsten Schöke <karsten.schoeke@geobasis-bb.de> not-needed 2026-11-02
Cast-overlap-counts-back-to-int32-before-assignment.patch Cast overlap counts back to int32 before assignment _count_overlaps() builds an int32 column and assigns Series.value_counts()
values into it. value_counts() always returns int64,
so pandas 2.x warns: . FutureWarning: Setting an item of incompatible
dtype ... Value '[1 2]' has dtype incompatible with int32,
please explicitly cast to a compatible dtype first.
(pyranges/methods/intersection.py:95) . pandas turns this into an error in
a future version,
which would break count_overlaps()/coverage(). Cast the counts to the
column dtype;
the values are overlap counts and cannot exceed the number of input
intervals.
Karsten Schöke <karsten.schoeke@geobasis-bb.de> not-needed 2026-11-02
Do-not-let-an-empty-strand-frame-influence-the-conca.patch Do not let an empty strand frame influence the concat result dtypes PyRanges.to_string() concatenates the per-strand frames of a chromosome,
using an empty DataFrame as filler when one strand is absent. pandas 2.x
warns: . FutureWarning: The behavior of DataFrame concatenation with empty
or all-NA entries is deprecated. In a future version,
this will no longer exclude empty or all-NA columns when determining the
result dtypes. (pyranges/tostring2.py:35) . With pandas 3 the numeric
columns of the printed table would become object dtype. Drop empty operands
before concatenating, as recommended by pandas.
Karsten Schöke <karsten.schoeke@geobasis-bb.de> not-needed 2026-11-02
Pass-observed-False-explicitly-in-the-property-test-.patch Pass observed=False explicitly in the property test helper pandas 2.x deprecates the default observed=False of DataFrame.groupby() and will
switch it to True: . tests/property_based/test_unary.py:179:
FutureWarning: The default of observed=False is deprecated ... . The
helper iterates over all chromosome/strand groups,
including combinations that only exist as categories. Pin the current
behaviour explicitly,
otherwise the test would silently compare fewer groups once the default
flips.
Karsten Schöke <karsten.schoeke@geobasis-bb.de> not-needed 2026-11-02
Pass-lists-instead-of-itertools.product-to-parametri.patch Pass lists instead of itertools.product to parametrize pytest 9 emits PytestRemovedIn10Warning for non-collection iterables passed to
pytest.mark.parametrize:
.
Passing a non-Collection iterable to parametrize is deprecated.
Test: tests/property_based/test_binary.py::test_nearest, argvalues type: product
Test: tests/property_based/test_do_not_error.py::test_three_in_a_row,
argvalues type: product
.
pytest 10 turns this into an error, which would break the test run. Wrap the
itertools.product() results in list(); this is valid with older pytest versions
as well.
.
method_chain is wrapped too: as an iterator it is consumed by the single
parametrize call, so the wrapper makes the reuse explicit and keeps the test
from silently shrinking if the variable is used a second time.
Karsten Schöke <karsten.schoeke@geobasis-bb.de> not-needed 2026-11-02
Resolve-the-example-BED-file.patch Resolve the example BED file via get_example_path() in test_read_bed tests/unit/test_io.py opened "pyranges/example_data/chipseq.bed", a path that is
relative to the current working directory:
.
FileNotFoundError: [Errno 2] No such file or directory:
'pyranges/example_data/chipseq.bed'
.
That only works while pytest runs from the pybuild directory, which contains a
pyranges/ subdirectory. When the suite is executed from an arbitrary directory
against the installed package - for instance under autopkgtest - the file is
not found, although it is shipped in the package.
.
Use pyranges.get_example_path(), which resolves the bundled data relative to the
module. The read_bed() docstring already uses that helper.
Karsten Schöke <karsten.schoeke@geobasis-bb.de> not-needed 2026-11-02

All known versions for source package 'pyranges'

Links