Package: pendulum / 3.1.0-1

Metadata

Package Version Patches format
pendulum 3.1.0-1 3.0 (quilt)

Patch series

view the series file
Patch File delta Description
0001 relax rust crate dependency versions.patch | (download)

rust/Cargo.toml | 2 1 + 1 - 0 !
1 file changed, 1 insertion(+), 1 deletion(-)

 relax rust crate dependency versions
0004 remove pytz dependency.patch | (download)

docs/docs/duration.md | 6 3 + 3 - 0 !
pyproject.toml | 2 0 + 2 - 0 !
tests/datetime/test_comparison.py | 18 9 + 9 - 0 !
tests/test_helpers.py | 13 6 + 7 - 0 !
tests/test_main.py | 8 4 + 4 - 0 !
tests/time/test_sub.py | 4 2 + 2 - 0 !
6 files changed, 24 insertions(+), 27 deletions(-)

 remove pytz dependency
pure python empty durations error.patch | (download)

src/pendulum/parsing/iso8601.py | 2 1 + 1 - 0 !
tests/parsing/test_parse_iso8601.py | 10 8 + 2 - 0 !
2 files changed, 9 insertions(+), 3 deletions(-)

 make empty durations an error in pure-python parser

Some of Debian's test runners noticed that the pydantic-extra-types
tests are failing on 32-bit architectures:

  ______________________ test_invalid_zero_duration_string _______________________

      def test_invalid_zero_duration_string():
          """'P' is not a valid ISO 8601 duration and should raise a validation error."""
  >       with pytest.raises(ValidationError):
  E       Failed: DID NOT RAISE <class 'pydantic_core._pydantic_core.ValidationError'>

  tests/test_pendulum_dt.py:447: Failed

Debian currently has pendulum 3.0.0, which disabled the Rust extensions
if `struct.calcsize("P") == 4`, and the Rust and Python parsers disagree
about how to handle an empty duration: the Rust parser reports an error,
while the Python parser returns `Duration()`.  3.1.0 removes that
particular limitation on using Rust extensions on 32-bit architectures,
but the parser discrepancy still seems to be present.

I don't have access to the full text of the standard, but Wikipedia's
summary says 'However, at least one element must be present, thus "P" is
not a valid representation for a duration of 0 seconds', so I think the
Rust parser is correct.  Adjust the Python parser to match.

pyo3 0.25 compatibility.patch | (download)

rust/Cargo.toml | 2 1 + 1 - 0 !
rust/src/python/parsing.rs | 19 9 + 10 - 0 !
2 files changed, 10 insertions(+), 11 deletions(-)

 pyo3 0.25 compatibility patch