All Versions
Latest Version
Avg Release Cycle
102 days
Latest Release

Changelog History
Page 3

  • v16.3.1 Changes

    (May 24, 2016)

    Just a couple of [ecoutils][ecoutils] follow-ons, removing uuid dependency and adding the ability to scrub identifiable data.

  • v16.3.0 Changes

    (May 23, 2016)

    ๐Ÿ›  Big, big update. Lots of additions, a few bugfixes.

    • [ecoutils][ecoutils] - Python runtime/environment profile generator
    • [timeutils.strpdate][timeutils.strpdate] - like datetime.datetime.strpdate but for date
    • [timeutils.daterange][timeutils.daterange] - like range() but for objects
    • [strutils.parse_int_list][strutils.parse_int_list] and [strutils.format_int_list][strutils.format_int_list]
    • [cacheutils][cacheutils]
      • [cachedproperty][cacheutils.cachedproperty]
      • [cacheutils.cachedmethod][cacheutils.cachedmethod]
      • [cacheutils.cached][cacheutils.cached] now accepts a callable, as well.
      • cacheutils.make_cache_key is now public, should others need it
    • โšก๏ธ [statsutils.Stats][statsutils.Stats] update, several new methods, including [Stats.describe][statsutils.Stats.describe]
    • A few [socketutils][socketutils] platform tweaks
    • debugutils.wrap_trace preview
  • v16.2.2 Changes

    (May 3, 2016)

    many small tweaks to socketutils.BufferedSocket, including optional inclusion of the delimiter in recv_until. also undid the enabling of bak ๐Ÿ files with AtomicSaver on windows

    • Small [socketutils.BufferedSocket][socketutils.BufferedSocket] tweaks
      • make recv_until conditionally return the delimiter (by default it does not). also fix a NetstringException inheritance typo
      • [socketutils][socketutils]: rename BufferedSocket.recv_lock to _recv_lock, and same for send_lock.
      • add a bunch of simple passthrough methods to better fill out socket's API
      • add .fileno/.close/.shutdown to [socketutils.BufferedSocket][socketutils.BufferedSocket]
      • added type/family/proto [socketutils.BufferedSocket][socketutils.BufferedSocket] passthrough properties
      • BufferedSocket: also lock on .shutdown()
      • adding an rbuf_unconsumed attribute for post-close debugging, per @doublereedkurt's request
      • getsendbuffer() returns a bytestring and recv_size() uses the proper ._recvsize on the first socket fetch
    • [fileutils.AtomicSaver][fileutils.AtomicSaver]: revert bak file as it was causing confusion, per nvie/pip-tools#351
  • v16.2.1 Changes

    (April 29, 2016)

    ๐Ÿ‘€ This version sees the soft debut of [socketutils][socketutils], which includes wrappers and tools for working with the built-in socket. A lot of [socketutils.BufferedSocket][socketutils.BufferedSocket] changes.

    • [BufferedSocket.recv_until][socketutils.BufferedSocket.recv_until] now supports multibyte delimiters and also includes the delimiter in its returns.
    • Better BufferedSocket timeout discipline throughout.
    • Various BufferedSocket argument name changes, maxbytes became maxsize, n became size, marker became delimiter, etc.
    • [BufferedSocket][socketutils.BufferedSocket] BufferedSocket became threadsafe
    • [BufferedSocket.recv][socketutils.BufferedSocket.recv] now always returns the contents of the internal buffer before doing a socket call.
    • [BufferedSocket.recv_close][socketutils.BufferedSocket.recv_close] now exists to receive until the sending end closes the connection.
    • Can now pass recvsize to [BufferedSocket][socketutils.BufferedSocket] constructor to tune the size passed to the lower-level recv call.
    • [socketutils][socketutils] got documented and tested.
  • v16.2.0 Changes

    (April 18, 2016)

    adding shell args escaper-joiners to strutils (escape_shell_args, args2cmd, args2sh) as well as a rare breaking fix to [iterutils.pairwise][iterutils.pairwise].

    • Argument joiners, functions to join command line arguments in context-appropriate ways:
      • [strutils.escape_shell_args][strutils.escape_shell_args]
      • [strutils.args2cmd][strutils.args2cmd]
      • [strutils.args2sh][strutils.args2sh]
    • BREAKING: finally fixing [iterutils.pairwise][iterutils.pairwise]. pairwise used to call to chunked, now it calls to windowed. pairwise([1, 2, 3, 4]) no longer returns [(1, 2), (3, 4)]. Instead, it returns [(1, 2), (2, 3), (3, 4)], which is what I always mean when I say pairwise, but not what the original contributor implemented.
    • Adding a universal wheel distribution option!
  • v16.1.1 Changes

    (March 6, 2016)

    โž• Added [iterutils.same][iterutils.same], improvement of Windows [fileutils.AtomicSaver][fileutils.AtomicSaver] behavior for old filesystems, bugfix on [strutils.is_uuid][strutils.is_uuid], expansion of [strutils.pluralize][strutils.pluralize], new trove classifiers and ๐Ÿ“„ docs improvements!

    • [fileutils.replace][fileutils.replace]: use bak file option for win32 ReplaceFile for slightly better corner case coverage on less featureful filesystems
    • [strutils.pluralize][strutils.pluralize]: Add more irregular plurals
    • [strutils.is_uuid][strutils.is_uuid]: Catch un-parsable UUIDs.
    • [iterutils.same][iterutils.same]: Return True when all values in iterable are the same.
  • v16.1.0 Changes

    (February 24, 2016)

    ๐Ÿš€ The centerpiece of this release is highly improved Windows support for ๐Ÿ’พ [fileutils.atomic_save][fileutils.atomic_save] via ๐Ÿ ReplaceFile system call. This functionality is also made available directly via [fileutils.replace][fileutils.replace], which is akin to Python 3.3+'s [os.replace][os.replace], except that os.replace's approach has ๐Ÿ”Š arguably poorer behavior and atomicity compared to fileutils.replace.

    Also, a couple new strutils, and [iterutils.backoff][iterutils.backoff] grew a jitter argument.

    • [iterutils.backoff][iterutils.backoff] now supports start=0
    • More comprehensive [iterutils.backoff][iterutils.backoff] argument checking/validation
    • [fileutils.replace][fileutils.replace] and [fileutils.atomic_rename][fileutils.atomic_rename] are now public functions in [fileutils][fileutils] with cross-platform implementations (discussion here)
    • [tableutils.Table][tableutils.Table]s have a metadata argument and attribute for miscellaneous metadata.
    • [strutils.is_ascii][strutils.is_ascii] and [strutils.is_uuid][strutils.is_uuid]: About as straightforward as they are handy.
    • Tox testing improvements
  • v16.0.1 Changes

    (January 24, 2016)

    ๐Ÿ“‡ DummyFile, Table.metadata, better exception handling, and in-progress iterutils.get_path

    • Small format fix in [][] for None
    • Initial implementation of [fileutils.DummyFile][fileutils.DummyFile], which allows for easy no-op file handling without restructuring code. Sort of like a dummy RLock for systems without threading, if you've seen those.
    • avoid catching BaseException in all boltons
    • better error handling in iterutils.get_path
  • v16.0.0 Changes

    One important fix and one small but handy string function.

    • ๐Ÿ›  Fixed an [LRU][cacheutils.LRU] bug related to the 15.1.1 refactor. Also enhanced LRU testing with doubly-linked list invariant enforcement.
    • โž• Added [strutils.indent][strutils.indent], the counterpart to textwrap.dedent.
  • v15.1.1 Changes

    (November 18, 2015)

    ๐Ÿ›  A lot of bugfixes and docfixes in 15.1.1.

    โšก๏ธ updated AtomicSaver for better permissions handling, update BufferedSocket message sending, beta version of iterutils.get_path, ๐Ÿ›  several docs fixes, Stats zscore and cache bugfix, and an LRU refactor with significantly improved behavior and code factoring.

    • Updated [fileutils.AtomicSaver][fileutils.AtomicSaver] handling of filesystem permissions to be simpler and more secure. This also merges dest_perms and part_perms arguments to AtomicSaver and atomic_save.
    • Fix large message sending with [socketutils.BufferedSocket][socketutils.BufferedSocket]
    • [strutils.iter_splitlines][strutils.iter_splitlines] is now in the docs.
    • [cacheutils][cacheutils]: now imports RLock from the right place for python 2
    • [statsutils][statsutils]: Only delattr when hasattr in [Stats.clear_cache][statsutils.Stats.clear_cache]
    • [statsutils.Stats][statsutils.Stats]: Add [Stats.get_zscore][statsutils.Stats.get_zscore] to support calculating the [z-score][zscore] (see also: t-statistic)
    • [cacheutils.LRU][cacheutils.LRU]: Massive refactor of the backing linked list for better handling of duplicate data in the cache. More aggressive locking and better __eq__