boltons/TODO.rst

73 lines
1.5 KiB
ReStructuredText

TODO
====
iterutils
---------
- range() for floats
- [x]range() with exponential increase (for easy backoffs)
dictutils
---------
- autoindexing list for dictionaries. As records get added, uses a
basic proportion-based heuristic to create subdictionaries as
indexes over the same data. Maybe automatically does a full-scan
option too.
- non-overwriting version of dict.update()
- OMD.sortvalues(key=lambda x: x): sorts lists of values by user-provided key.
fileutils
---------
* AtomicSaver: ditch mkstemp and use O_EXCL on the part file so that
multiple processes writing to the same part file will not get
interleaved writes
jsonutils
---------
* jsonl ignore blank lines
* jsonl add line number to error message
strutils
--------
* itersplitlines (re.finditer with (?>\r\n|\n|\x0b|\f|\r|\x85|\x2028|\x2029) )
* ungzip string
misc?
-----
- Tracking proxy. An object that always succeeds for all operations, saving the call history.
- Top/Bottom singletons (greater than and less than everything)
cliutils
--------
- progress bar
- confirmation prompt (e.g., "Question? (Y/n)")
tbutils
-------
- fold repeated frames (recursive calls)
statsutils
----------
- percentiles
- geometric mean (2 ** sum(log(a, b, ...))
funcutils
---------
#class FunctionDef(object):
# """
# general blocker: accept a bunch of fine-grained arguments, or just
# accept a whole ArgSpec? or a whole signature?
# """
# def __init__(self, name, code, doc=None):
# pass