v0.11.1
Features
snakeoil.klass.memoizecontains a modern rewrite ofsnakeoil.caching.WeakInstMeta.
To migrate, just switch from setting the metaclass to the old, and inherit
memoize.WeaklyCached. If this is ABC, inheritWeaklyCachedABC. This version now
supports inheritance of toleration of uncachable arguments, defaulting to cache enabled or
disabled based on the parent, and passing directives via the now standard class inherit
approach ofclass foon(blah, x=1, y=2).
API deprecations
snakeoil.caching. Please migrate tosnakeoil.klass.memoize.WeaklyCachedinstead.
Removal in0.12.0.snakeoil.sequences.predicate_split.snakeoil.iterables.partitionis
the iterable equivalent. Use that instead. Removal in0.12.0.snakeoil.contexts.patch. Useunittest.mock.patchinstead. Removal in0.12.0.snakeoil.contexts.syspath. Usesnakeoil.modules.import_module_from_pathfor
runtime usage, orsnakeoil.test.python_namespace.protect_importsin tests.
Removal in0.12.0.
API removals
snakeoil.contexts.SplitExec: Removed due to deep coupling with CPython internals
that proved fragile across environments. No maintained replacement is provided;
use a subprocess if isolated execution is needed.snakeoil.contexts.Namespace: Removed alongsideSplitExecwhich it depended on.
Changes
snakeoil.tools.find_unused_exportshas been renamed tosnakeoil.tools.imports
and now uses subcommands. The previousfind_unused_exportsbehavior is available
assnakeoil-imports find-unused-exports.
Packaging
pytest >= 9.0is now a dependency for testspytest-subtestsis no longer a dependency.