Snakeoil

Latest version: v0.10.8

Safety actively analyzes 629639 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 12 of 12

0.3.2

---------------------------

- handle a race condition in ensure_dirs where the directory is created
underfoot (thus a non issue).

- massive memory reduction for snakeoil.tar monkey patching;
via punting the unused .buf storage (512 byes per TarInfo). Grand total,
this is a 70% reduction of the memory used compared to vanilla TarInfo
(50% less then snakeoil 0.3).

- tweak snakeoil.tar monkey patching to re-enable memory savings on python2.6

- correct python2.6 compatibility issues; __(sizeof|format|subclasshook)__
awareness, and handle getattr throwing AttributeError in the infinite
recursion getattr tests.

- for test_demandload_usage, output the exception that caused the demandload
'touch' to fail.

0.3.1

---------------------------

- pkgcore ticket 215; fixup corner case errors in normpath cpy.

0.3

-------------------------

- refactor dependant_methods to stop creating strong cycles that the python
vm seems unable to break. Shift the func storage away from .raw_func to
.sd_raw_func in addition. Add in __(un|)wrap_stage_dependencies__ so that
invocation of unwrap then wrap will make changes to stage_depends take
affect.

- intern gname and uname for TarInfo objects via property trickery- again,
purpose being less memory usage.

- AtomicFile now marks itself as initially finalized until it has a fd; this
removes spurios complaints from __del__

- LimitedChangeSet got an additional kwarg; key_validator. A function can
be passed in via this to do validation of the desired key- either it throws
an exception, or returns the key to use.

0.2

-------------------------

- snakeoil.fileutils.iter_read_bash and friends grew an allow_inline_comment
param to control stripping of inlined comments; defaults to True.

- bash parsing bug where "x=y" w/out a trailing newline wasn't returning the
'y' value.

- x=-* (specifically unquoted) is a valid assignment, fixed.

- added SNAKEOIL_DEMANDLOAD_PROTECTION environment variable- if set to
something other then 'yes', disables the placeholder checks.
Main intention for this functionality is for when code is introspecting
demandload consuming code (epydoc for example), and inadvertantly triggers
the access multiple times.

0.1

-------------------------

- Add a cpython version of snakeoil.formatters.

0.1rc2

-----------------------------

- Pulled in any/all cpy extensions if not available in current python version.

- Added several pylint checks for naughty things like bool(len(seq)), itering
over dict.keys() and shadowing builtins.

- Misc doc improvements.

- Rewrite demandload with a new multiple arg style, and update the appropriate
pylint checker.

- Fix title updating by flushing the formatter's stream.

- overhaul demandload test case for consuming code.

- Add snakeoil.containers.SetMixin to provide set methods for various
objects.

- Remove snakeoil.const - unused.

- Improve test coverage in general.

- Add folding dicts.

- Move snakeoil.file to snakeoil.fileutils.

- Initial release, split out from pkgcore.util.*.


Release process
---------------

. Add new entry in NEWS.rst along with changelog updates for the release.

. Make sure dependency versions are correct in requirements/install.txt. Also,
if requirements/pyproject.toml exists make sure dependency versions match
those in requirements/install.txt for matching dependencies.

. Run a test release build by force pushing to a temporary "deploy" branch.
This triggers the release workflow to run on Github, but doesn't actually
upload any of the generated files to PyPI or Github.

. Verify the test build looks correct and passes tests then tag the new
release and push the tag. If everything works as expected, both PyPI and
Github should automatically get the release files pushed to them once the
action completes.

. At this point, it's good to remove the temporary deploy branch from the
upstream repo.

. Make a commit bumping the package version via __version__ in the base module
and push the commit.

Page 12 of 12

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.