Skip to content

v0.11.4

Choose a tag to compare

@github-actions github-actions released this 08 Aug 18:26
· 31 commits to master since this release
v0.11.4
e9c946e
  • snakeoil.cli.arghparse.ArgumentParser: options now accept space-separated values that start with a single dash (e.g. --checks -VisibilityCheck), matching the previously required --checks=-VisibilityCheck form. Unknown -- options keep reporting as unrecognized arguments (@arthurzam, #97)
  • snakeoil.dist.generate_man_rsts: fix man page generation failing under Python 3.14 with TypeError: 'str' object cannot be interpreted as an integer, caused by functools.partial becoming a method descriptor (@arthurzam, https://bugs.gentoo.org/957993)
  • snakeoil.dist.generate_man_rsts: emit arguments as .. option:: directives scoped by .. program:: instead of wrapping them in the :option: reference role, which made sphinx warn unknown option for every single argument. Options are now properly rendered, indexed and cross-referenceable (@arthurzam)
  • snakeoil.dist.generate_man_rsts: the synopsis is no longer emitted as one long line, and its continuation lines are no longer misaligned by the width of the stripped usage: prefix. It is now wrapped to fit an 80 column man page and kept as a literal block (@arthurzam)
  • snakeoil.klass.immutable.Simple/Strict: slotted subclasses are now picklable and copyable directly; a __setstate__ restoring state past the mutation protections is injected for them. Classes without slotting are left alone, keeping python's C level state restoration (@arthurzam, #117)
  • snakeoil.klass.immutable.Simple/Strict: fix state of name mangled private slots being silently dropped when pickling (@arthurzam)
  • snakeoil.klass.SlotsPicklingMixin: deprecated, removal in 0.12.0. Python pickles __slots__ natively; the mixin only added an uncached MRO walk per serialization. Dropping it makes serializing slotted objects ~4x faster (@arthurzam, #117)
  • snakeoil.klass.immutable.Simple: methods auto wrapped in a mutation block no longer build and drive a @contextmanager generator per call. Creating small immutable instances is up to 1.5x faster (@arthurzam)