You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
snakeoil.osutils.ensure_dirs: no longer changes the process umask, so threads creating directories at once can't leave it at 0 and make later files world-writable (@arthurzam)
snakeoil.compatibility.sorted_cmp, sort_cmp and sorted_key_from_cmp: deprecated, removal in 0.12.0. Use functools.cmp_to_key (@arthurzam)
snakeoil.process.find_binary: deprecated, removal in 0.12.0. Use shutil.which, which also doesn't search the current directory when PATH is empty or unset (@arthurzam)
snakeoil.osutils.force_symlink, stat_mtime_long, lstat_mtime_long, fstat_mtime_long and snakeoil.data_source.transfer_between_files: deprecated, removal in 0.12.0. Use os.symlink, os.stat(path)[stat.ST_MTIME] and shutil.copyfileobj (@arthurzam)
snakeoil.cli.arghparse.FileType: deprecated, removal in 0.12.0. Take a path and open it after parsing, as argparse.FileType is deprecated since python 3.14 (@arthurzam)
snakeoil.fileutils.mmap_or_open_for_read: fix closing the file descriptor twice when mapping fails, which could close an unrelated file opened by another thread in between (@arthurzam)
snakeoil.cli.arghparse.ManHelpAction: --help falls back to the plain help output when man isn't installed, instead of crashing (@arthurzam)
snakeoil.osutils.listdir_dirs and listdir_files: deprecated, removal in 0.12.0. Use os.scandir with DirEntry.is_dir or is_file (@arthurzam)
snakeoil.bash.read_dict: an empty quoted value such as masters = "" is now read as empty, not as two quote characters (@arthurzam)
snakeoil.fileutils.AtomicWriteFile: write to a uniquely named temporary file created exclusively, so a symlink planted at the old fixed name is no longer followed and concurrent writers to one target no longer clobber each other (@arthurzam)
snakeoil.klass.cached_property and cached_property_named: deprecated, removal in 0.12.0. Use functools.cached_property (@arthurzam)
snakeoil.process.namespaces.unshare and setns: deprecated, removal in 0.12.0. Use os.unshare and os.setns. The namespace helpers no longer run ldconfig to locate libc on every call (@arthurzam)
snakeoil.osutils.unlink_if_exists: deprecated, removal in 0.12.0. Use pathlib.Path(path).unlink(missing_ok=True) (@arthurzam)
snakeoil.process.get_exit_status and ProcessNotFound: deprecated, removal in 0.12.0. Use os.waitstatus_to_exitcode and ProcessLookupError (@arthurzam)
snakeoil.cli.arghparse.OptionalsParser.parse_known_optionals: a flag given a value (--quiet=yes, -q=) or an ambiguous abbreviation is now a usage error instead of a traceback; this is what pkgcheck and pkgdev use to load config files (@arthurzam)
snakeoil.bash.read_bash: a # starts an inline comment only at the start of a line or after whitespace, as in Portage, so values such as PKCS#11 in use.local.desc are no longer cut short. With line continuations, a comment ending in \ no longer joins the next line (@arthurzam)