Changelog History
Page 5
-
v0.5.1 Changes
(April 10, 2015)
๐ A lot of bugfixes and Python 2.6 and PyPy compatibility changes thanks to community contributions and encouragement.
- Corrected cases where OMD was not exactly a dropin for OrderedDict
- conditional availability of [gcutils.get_all][gcutils.get_all] based on pypy or cpython, also [gcutils.is_tracked][gcutils.is_tracked] was added in 2.7, so making [gcutils.get_all][gcutils.get_all] work with 2.6
- Made namedutils backwards compatibility for python 2.6 best effort
- Fix invalid part_path usage in [fileutils.AtomicSaver][fileutils.AtomicSaver]
-
v0.5.0 Changes
(April 9, 2015)
๐ First publicly released version. The major focus of this release was ๐ docs, docstrings, and Read The Docs.
- Cleared out init module for maximum independence
- making [statsutils.median][statsutils.median] use _get_quantile and add [statsutils.trimean][statsutils.trimean]
- Switching the [statsutils.Stats][statsutils.Stats] type to be more sorted-data oriented, since it's only for offline analysis of unordered data
- Made consistent multi-line string formats, as well as usage of the term 'builtin' vs 'built-in' (noun vs adjective)
- Instrumented LRI with stats tracking
- Made [timeutils.decimal_relative_time][timeutils.decimal_relative_time] cardinalization optional
- Removed timeutils dependency on strutils
- Made [tbutils.TracebackInfo][tbutils.TracebackInfo] classmethods work with no arguments.
- Renamed ParsedTB to [tbutils.ParsedException][tbutils.ParsedException]
- Made [dictutils.OMD][dictutils.OMD] .get()/.getlist() semantics more consistent.
- finalizing .todict() and adding .sorted() to the [dictutils.OMD][dictutils.OMD]
- Removed osutils and adding a note about utils in general
- Made cacheutils more consistent between LRU and LRI, adding some cacheutils docs
- Deprecate osutils, moving its contents into fileutils
- Adding in-process statsutils2, with new DataAnalyzer and get_pearson_type (not merged yet)
-
v0.4.2 Changes
(March 8, 2015)
โก๏ธ Mostly a dictutils API update (addlist), but also gcutils.
- [dictutils.OMD][dictutils.OMD]: split out addlist() from add(), removing the multi kwarg
- adding gcutils with [gcutils.GCToggler][gcutils.GCToggler] and gc.get_all
-
v0.4.1 Changes
(February 26, 2015)
โ adding mboxutils
- adding mboxutils for handy dandy /var/mail integrations like cronfed
-
v0.4.0 Changes
(February 23, 2015)
โก๏ธ updated tbutils, JSONL support, initial cacheutils, atomic writer, hashtags
- tbutils: Changed the way exceptions are parsed out of tracebacks
- tbutils: Guard against potential linecache issues
- Defined/implemented [iterutils.windowed_iter][iterutils.windowed_iter] corner case behavior
- Added from_path to [fileutils.FilePerms][fileutils.FilePerms]
- Adding [strutils.find_hashtags][strutils.find_hashtags]
- Add ignore patterns to [fileutils.iter_find_files][fileutils.iter_find_files]
-
v0.3.0 Changes
(October 19, 2014)
๐ First alpha release. Practically, everything not mentioned above was โ added in this release.
- tbutils: add ContextualTracebackInfo and ContextualExceptionInfo
- cacheutils: a few minor changes to the BasicCache
- update tbutils with some critical bits. still need to add convenience method for ExceptionInfo -> default exception print, also need to add more docstrings.
- adding initial jsonutils with JSONL support
- added [cacheutils.LRU][cacheutils.LRU]
- added [timeutils.parse_timedelta][timeutils.parse_timedelta]
- fixing iteritems with multi=False in the [dictutils.OrderedMultiDict][dictutils.OrderedMultiDict] (should return first key, but last value not first)
- debugutils: add pdb excepthook and debugutils.pdb_on_signal
- add [fileutils.mkdir_p][fileutils.mkdir_p]
- tableutils: add maxlen to table text stuff
- fix date citation for gob's
- adding pure-Python implementation of Gob's algorithm
- fix object header guessing
- namedutils: add namedtuple support
- fix a headers bug in tableutils
- tableutils: add a couple more do-not-recurse types, add UnsupportedData exception for better recursion, insert recursive entries in-line, improve 'Object' strategy heuristic
- wrap up html tag customization and fix a related bug
- make html configurable via class attributes
- strengthen the max_depth check
- InputType classes are just shorter and clearer, imo
- new from_dict, from_list, from_object, removing old ones. almost used a MetaClass for this
- starting new table
- only update the integer for the field being updated
- fixing a verbalization/pronunciation issue
- no regex for better error messages
- being opinionated about some FilePerms things
- adding initial version of fileutils/FilePerms
- update formatutils
- fix a slightly nasty namedlist bug
- make OrderedMultiDict.get()'s default allow singulars
- sync over ExceptionInfo
- add from_current() classmethod with depth option to [Callpoint][tbutils.Callpoint] class for easier instantiation
- it's called a numeronym
- add a repr to ParsedTB. A bit verbose, but better than nothing.
- add ParsedTB, which provides the ability to parse tracebacks dumped out to logs, the command line, etc.
- improve test output and make assertion that new except hook is the same as the builtin.
- update tbutils to use the more-powerful [Callpoint][tbutils.Callpoint] type.
- copy_function
- partially clean up partial stuff
- first version of the namedlist
- fixing up namedtuple, groundwork for namedlist. humorously named module.
- embed value in cell for incremental iteration boost on OMD
- reorganize code, add 'default' argument to poplast()
- make key argument optional to OMD.poplast
- rectifying inconsistent names and adjusting respective tests accordingly. using smashcase because that's what builtin dict() uses.
- fix reverse; missing yield from!
- add initial table biz
- add get_counts
- add [dictutils.OrderedMultiDict.get_inverted]dictutils.OrderedMultiDict.get_inverted for those handy reverse lookups
- break out skip list to FastIter OMD + bench
- add [strutils.a10n]strutils.a10n
- fix a bug in [dictutils.OrderedMultiDict][dictutils.OrderedMultiDict]'s .add()
- adding initial reimplementation of OMD
- adding some tests to dictutils
- update boltons formatutils to match what's going on in lithoxyl
- remove infer_pos_args() from strutils (already in formatutils)
- add formatutils to boltons
- fix a potential infinite recursion in LocalTZ
- use more explicit names for Local/Constant tzinfo types
- add a basic but handy file finder
- add infer_positional_args() to strutils (from lithoxyl)
- split BasicCache out of dictutils into cacheutils
- update median calculation slightly
- add appropriate stacklevel to deprutils warning
- add an initial version of deprutils (basic utils for facilitating deprecation)
- add bytes2human
- first version of some basic timezone utils which came in handy for a train scheduling application I wrote (etavta)
- reorder imports for pep8
- redo plain-english relative_time() to have a decimal rounding factor and handle future dates
- swap the order of cardinalize()'s arguments after intuiting the wrong order a couple times. gotta be consistent, this isn't PHP.
- a weird little relative time approach
- add total_seconds() implementation for Python <2.7, rename relative_datetime to relative_time
- add a relative datetime function in a new module: timeutils
- a little more transparency with orderedmultidict's maphistory
- add a test for BasicCache
- add the super simple BasicCache, a size-limited defaultdict-like thing
- add a cheesy little splay list construct that can be used for splay- like manual reordering for eventual optimization
- traceback utils, first draft
- add [strutils.strip_ansi][strutils.strip_ansi] (need to make a cliutils or something)
- add ansi strip task
- mess with list tuning
- add ordinalize()
- add all to statsutils
- add more stats docs and doctests
- add some stats functions
- add unit_len()
- add pluralize/singularize/cardinalize to strutils
- add alls all around, clean up imports a bit
- adding license
- add sorted queue type, make it the default
- fix little bug in insert
- inheriting from list necessitates overriding the deprecated __get-, __set-, and __del- slice methods
- hacky refactor to have a BasePriorityQueue to make room for SortedPriorityQueue with peek_n, etc.
- add a little docstring and update sort method in BarrelList
- add HeapPriorityQueue
- tidy up listutils comments and imports
- move treeutils out of boltons since I don't really think a pure python version actually adds much. i'll make an academic one-off repo for less practical data structure experiments like that.
- inherit from list
- add reverse() to blist
- add index() to blist
- cheesy setitem() for blist
- add delitem() to BarrelList
- change the way the in-place sort works with just one list
- tune the list size a bit
- add slicing to BarrelList
- add initial version of BarrelList, a pure-python b-list-y thing to approximate O(log(n)) behavior by multiplexing the fast O(n) list operations
- switch to new dead index interval approach; the IndexedSet is about half the speed of a list in the ultra-pathological case of random popping on the low end of the IndexedSet
- made BisectTree's get() defaulting work a bit more like a dict's
- added get_adjacent and miscellaneous to BisectTree
- added a default name and always-falsy nonzero to Sentinel
- add pop() for BisectTree and export the generic Tree
- make a bisect tree, because O(n) is still pretttttty fast up to about 100k items
- add a little hack to chunked/chunked_iter to make it work nicely with strings
- tidy up ki_vs_vi_lrh usage just a titch
- revamp indices behavior (key_size and value_size)
- switch to new multi-key mode
- pretty much done porting insert, delete, balance (the basic operations)
- switch to negative refs, arbitrary length nodes
- add sentinel utility thing
- add .index() for list compat, updated exception messages, and added a silly test to show off slicing and indexing
- add slicing support and .clear()
- remove ifilter dependency (using generator expression)
- add .reverse and .sort() to IndexedSet, fix bisection related bug exposing MISSING (insort requested index, not real_index)
- pretty much all fundy IndexedSet bugs hit and fixed, looks like
- IndexedSet getting much closer
- initial rough draft of IndexedSet with a short docstring and a bunch of fixes already (still not workin tho)
- add dictutils (OrderedMultiDict)
- it was a long time coming, but I'm finally halfway happy with this wrapped exception
- add uniqueification capabilities
- go back to using new and positional arguments
- exception wrapping green path mostly working
- working on a wrapping exception mixin thing for less lossy nonraising.
- add asciify and update slugify with ascii flag
- add basic docs and doctests to strutils
- scratch that, regexes still faster
- add under2camel, camel2under, and slugify (and split_punct_ws, which is much faster than re-based punctuation splitting)
- python3-compatible doctest for bucketize_bool
- bucketize and bucketize_bool, with docs
- add examples to chunked and chunked_iter
- update split() docs with more examples.
- [iterutils.chunked_iter][iterutils.chunked_iter] and [iterutils.chunked][iterutils.chunked]
- [iterutils.split][iterutils.split] and [iterutils.split_iter][iterutils.split_iter] work
๐ [os.replace]: https://docs.python.org/3/library/os.html#os.replace ๐ [functools.total_ordering]: https://docs.python.org/2/library/functools.html#functools.total_ordering ๐ [StringIO]: https://docs.python.org/2/library/stringio.html
โ [cacheutils]: http://boltons.readthedocs.org/en/latest/cacheutils.html โ [cacheutils.LRI]: http://boltons.readthedocs.org/en/latest/cacheutils.html#boltons.cacheutils.LRI โ [cacheutils.LRU]: http://boltons.readthedocs.org/en/latest/cacheutils.html#boltons.cacheutils.LRU โ [cacheutils.ThresholdCounter]: http://boltons.readthedocs.org/en/latest/cacheutils.html#boltons.cacheutils.ThresholdCounter โ [cacheutils.cached]: http://boltons.readthedocs.org/en/latest/cacheutils.html#boltons.cacheutils.cached โ [cacheutils.cachedmethod]: http://boltons.readthedocs.org/en/latest/cacheutils.html#boltons.cacheutils.cachedmethod โ [cacheutils.cachedproperty]: http://boltons.readthedocs.org/en/latest/cacheutils.html#boltons.cacheutils.cachedproperty
โ [dictutils]: http://boltons.readthedocs.org/en/latest/dictutils.html โ [dictutils.OMD]: http://boltons.readthedocs.org/en/latest/dictutils.html#boltons.dictutils.OMD โ [dictutils.OMD.pop]: http://boltons.readthedocs.org/en/latest/dictutils.html#boltons.dictutils.OrderedMultiDict.pop โ [dictutils.OMD.popall]: http://boltons.readthedocs.org/en/latest/dictutils.html#boltons.dictutils.OrderedMultiDict.popall โ [dictutils.OMD.setdefault]: http://boltons.readthedocs.org/en/latest/dictutils.html#boltons.dictutils.OrderedMultiDict.setdefault โ [dictutils.OrderedMultiDict]: http://boltons.readthedocs.org/en/latest/dictutils.html#boltons.dictutils.OrderedMultiDict โ [dictutils.OrderedMultiDict.get_inverted]: http://boltons.readthedocs.org/en/latest/dictutils.html#boltons.dictutils.OrderedMultiDict.get_inverted โ [dictutils.OneToOne]: http://boltons.readthedocs.org/en/latest/dictutils.html#boltons.dictutils.OneToOne โ [dictutils.ManyToMany]: http://boltons.readthedocs.org/en/latest/dictutils.html#boltons.dictutils.ManyToMany โ [dictutils.FrozenDict]: http://boltons.readthedocs.org/en/latest/dictutils.html#boltons.dictutils.FrozenDict โ [dictutils.subdict]: http://boltons.readthedocs.org/en/latest/dictutils.html#boltons.dictutils.subdict โ [ecoutils]: http://boltons.readthedocs.org/en/latest/ecoutils.html โ [excutils.ParsedException]: http://boltons.readthedocs.org/en/latest/excutils.html#boltons.excutils.ParsedException โ [fileutils]: http://boltons.readthedocs.org/en/latest/fileutils.html โ [fileutils.replace]: http://boltons.readthedocs.org/en/latest/fileutils.html#boltons.fileutils.replace โ [fileutils.atomic_rename]: http://boltons.readthedocs.org/en/latest/fileutils.html#boltons.fileutils.atomic_rename ๐พ [fileutils.atomic_save]: http://boltons.readthedocs.org/en/latest/fileutils.html#boltons.fileutils.atomic_save โ [fileutils.AtomicSaver]: http://boltons.readthedocs.org/en/latest/fileutils.html#boltons.fileutils.AtomicSaver โ [fileutils.FilePerms]: http://boltons.readthedocs.org/en/latest/fileutils.html#boltons.fileutils.FilePerms
โ [fileutils.mkdir_p]: http://boltons.readthedocs.org/en/latest/fileutils.html#boltons.fileutils.mkdir_p โ [fileutils.DummyFile]: http://boltons.readthedocs.org/en/latest/fileutils.html#boltons.fileutils.DummyFile โ [formatutils]: http://boltons.readthedocs.org/en/latest/formatutils.html โ [formatutils.DeferredValue]: http://boltons.readthedocs.org/en/latest/formatutils.html#boltons.fileutils.DeferredValue โ [funcutils.FunctionBuilder]: http://boltons.readthedocs.org/en/latest/funcutils.html#boltons.funcutils.FunctionBuilder ๐ [funcutils.FunctionBuilder.remove_arg]: https://boltons.readthedocs.io/en/latest/funcutils.html#boltons.funcutils.FunctionBuilder.remove_arg โ [funcutils.FunctionBuilder.add_arg]: https://boltons.readthedocs.io/en/latest/funcutils.html#boltons.funcutils.FunctionBuilder.add_arg โ [funcutils.partial_ordering]: http://boltons.readthedocs.org/en/latest/funcutils.html#boltons.funcutils.partial_ordering โ [funcutils.total_ordering]: http://boltons.readthedocs.org/en/latest/funcutils.html#boltons.funcutils.total_ordering โก๏ธ [funcutils.update_wrapper]: http://boltons.readthedocs.org/en/latest/funcutils.html#boltons.funcutils.update_wrapper โ [funcutils.wraps]: http://boltons.readthedocs.org/en/latest/funcutils.html#boltons.funcutils.wraps โ [gcutils.GCToggler]: http://boltons.readthedocs.org/en/latest/gcutils.html#boltons.gcutils.GCToggler โ [gcutils.get_all]: http://boltons.readthedocs.org/en/latest/gcutils.html#boltons.gcutils.get_all โ [gcutils.is_tracked]: http://boltons.readthedocs.org/en/latest/gcutils.html#boltons.gcutils.is_tracked
โ [ioutils]: http://boltons.readthedocs.org/en/latest/ioutils.html โ [ioutils.MultiFileReader]: http://boltons.readthedocs.org/en/latest/ioutils.html#boltons.ioutils.MultiFileReader โ [ioutils.SpooledBytesIO]: http://boltons.readthedocs.org/en/latest/ioutils.html#boltons.ioutils.SpooledBytesIO โ [ioutils.SpooledStringIO]: http://boltons.readthedocs.org/en/latest/ioutils.html#boltons.ioutils.SpooledStringIO โ [iterutils]: http://boltons.readthedocs.org/en/latest/iterutils.html โ [iterutils.backoff]: http://boltons.readthedocs.org/en/latest/iterutils.html#boltons.iterutils.backoff โ [iterutils.backoff_iter]: http://boltons.readthedocs.org/en/latest/iterutils.html#boltons.iterutils.backoff_iter โ [iterutils.chunked]: http://boltons.readthedocs.org/en/latest/iterutils.html#boltons.iterutils.chunked โ [iterutils.chunked_iter]: http://boltons.readthedocs.org/en/latest/iterutils.html#boltons.iterutils.chunked_iter โ [iterutils.first]: http://boltons.readthedocs.org/en/latest/iterutils.html#boltons.iterutils.first โ [iterutils.flatten]: http://boltons.readthedocs.org/en/latest/iterutils.html#boltons.iterutils.flatten โ [iterutils.flatten_iter]: http://boltons.readthedocs.org/en/latest/iterutils.html#boltons.iterutils.flatten_iter โ [iterutils.backoff]: http://boltons.readthedocs.org/en/latest/iterutils.html#boltons.iterutils.backoff โ [iterutils.frange]: http://boltons.readthedocs.org/en/latest/iterutils.html#boltons.iterutils.frange โ [iterutils.GUIDerator]: http://boltons.readthedocs.org/en/latest/iterutils.html#boltons.iterutils.GUIDerator โ [iterutils.SequentialGUIDerator]: http://boltons.readthedocs.org/en/latest/iterutils.html#boltons.iterutils.SequentialGUIDerator โ [iterutils.is_container]: http://boltons.readthedocs.org/en/latest/iterutils.html#boltons.iterutils.is_container โ [iterutils.bucketize]: http://boltons.readthedocs.org/en/latest/iterutils.html#boltons.iterutils.bucketize โ [iterutils.one]: http://boltons.readthedocs.org/en/latest/iterutils.html#boltons.iterutils.one โ [iterutils.pairwise]: http://boltons.readthedocs.org/en/latest/iterutils.html#boltons.iterutils.pairwise โ [iterutils.same]: http://boltons.readthedocs.org/en/latest/iterutils.html#boltons.iterutils.same โ [iterutils.remap]: http://boltons.readthedocs.org/en/latest/iterutils.html#boltons.iterutils.remap โ [iterutils.research]: http://boltons.readthedocs.org/en/latest/iterutils.html#boltons.iterutils.research โ [iterutils.soft_sorted]: http://boltons.readthedocs.org/en/latest/iterutils.html#boltons.iterutils.soft_sorted โ [iterutils.untyped_sorted]: http://boltons.readthedocs.org/en/latest/iterutils.html#boltons.iterutils.untyped_sorted โ [iterutils.split]: http://boltons.readthedocs.org/en/latest/iterutils.html#boltons.iterutils.split โ [iterutils.split_iter]: http://boltons.readthedocs.org/en/latest/iterutils.html#boltons.iterutils.split_iter โ [iterutils.strip]: http://boltons.readthedocs.org/en/latest/iterutils.html#boltons.iterutils.strip โ [iterutils.rstrip]: http://boltons.readthedocs.org/en/latest/iterutils.html#boltons.iterutils.rstrip โ [iterutils.lstrip]: http://boltons.readthedocs.org/en/latest/iterutils.html#boltons.iterutils.lstrip โ [iterutils.unique]: http://boltons.readthedocs.org/en/latest/iterutils.html#boltons.iterutils.unique โ [iterutils.windowed_iter]: http://boltons.readthedocs.org/en/latest/iterutils.html#boltons.iterutils.windowed_iter โ [iterutils.xfrange]: http://boltons.readthedocs.org/en/latest/iterutils.html#boltons.iterutils.xfrange โ [jsonutils.JSONLIterator]: http://boltons.readthedocs.org/en/latest/jsonutils.html#boltons.jsonutils.JSONLIterator โ [mathutils.Bits]: http://boltons.readthedocs.org/en/latest/mathutils.html#boltons.mathutils.Bits โ [mathutils.ceil]: http://boltons.readthedocs.org/en/latest/mathutils.html#boltons.mathutils.ceil โ [mathutils.floor]: http://boltons.readthedocs.org/en/latest/mathutils.html#boltons.mathutils.floor โ [mathutils.clamp]: http://boltons.readthedocs.org/en/latest/mathutils.html#boltons.mathutils.clamp โ [queueutils]: http://boltons.readthedocs.org/en/latest/queueutils.html โ [setutils.complement]: http://boltons.readthedocs.org/en/latest/setutils.html#boltons.setutils.complement โ [IndexedSet]: http://boltons.readthedocs.org/en/latest/setutils.html#boltons.setutils.IndexedSet โ [socketutils]: http://boltons.readthedocs.org/en/latest/socketutils.html โ [socketutils.BufferedSocket]: http://boltons.readthedocs.org/en/latest/socketutils.html#boltons.socketutils.BufferedSocket โ [socketutils.BufferedSocket.recv]: http://boltons.readthedocs.org/en/latest/socketutils.html#boltons.socketutils.BufferedSocket.recv โ [socketutils.BufferedSocket.recv_until]: http://boltons.readthedocs.org/en/latest/socketutils.html#boltons.socketutils.BufferedSocket.recv_until โ [socketutils.BufferedSocket.recv_close]: http://boltons.readthedocs.org/en/latest/socketutils.html#boltons.socketutils.BufferedSocket.recv_close โ [socketutils.NetstringSocket]: http://boltons.readthedocs.org/en/latest/socketutils.html#boltons.socketutils.NetstringSocket โ [statsutils]: http://boltons.readthedocs.org/en/latest/statsutils.html โ [statsutils.Stats]: http://boltons.readthedocs.org/en/latest/statsutils.html#boltons.statsutils.Stats โ [statsutils.Stats.clear_cache]: http://boltons.readthedocs.org/en/latest/statsutils.html#boltons.statsutils.Stats.clear_cache โ [statsutils.Stats.describe]: http://boltons.readthedocs.org/en/latest/statsutils.html#boltons.statsutils.Stats.describe โ [statsutils.Stats.format_histogram]: http://boltons.readthedocs.org/en/latest/statsutils.html#boltons.statsutils.Stats.format_histogram โ [statsutils.Stats.get_zscore]: http://boltons.readthedocs.org/en/latest/statsutils.html#boltons.statsutils.Stats.get_zscore โ [statsutils.median]: http://boltons.readthedocs.org/en/latest/statsutils.html#boltons.statsutils.median โ [statsutils.trimean]: http://boltons.readthedocs.org/en/latest/statsutils.html#boltons.statsutils.trimean โ [strutils]: http://boltons.readthedocs.org/en/latest/strutils.html โ [strutils.HTMLTextExtractor]: http://boltons.readthedocs.org/en/latest/strutils.html#boltons.strutils.HTMLTextExtractor โ [strutils.a10n]: http://boltons.readthedocs.org/en/latest/strutils.html#boltons.strutils.a10n โ [strutils.args2cmd]: http://boltons.readthedocs.org/en/latest/strutils.html#boltons.strutils.args2cmd โ [strutils.args2sh]: http://boltons.readthedocs.org/en/latest/strutils.html#boltons.strutils.args2sh
โ [strutils.find_hashtags]: http://boltons.readthedocs.org/en/latest/strutils.html#boltons.strutils.find_hashtags โ [strutils.gzip_bytes]: http://boltons.readthedocs.org/en/latest/strutils.html#boltons.strutils.gzip_bytes โ [strutils.gunzip_bytes]: http://boltons.readthedocs.org/en/latest/strutils.html#boltons.strutils.gunzip_bytes โ [strutils.html2text]: http://boltons.readthedocs.org/en/latest/strutils.html#boltons.strutils.html2text โ [strutils.indent]: http://boltons.readthedocs.org/en/latest/strutils.html#boltons.strutils.indent โ [strutils.iter_splitlines]: http://boltons.readthedocs.org/en/latest/strutils.html#boltons.strutils.iter_splitlines โ [strutils.ordinalize]: http://boltons.readthedocs.org/en/latest/strutils.html#boltons.strutils.ordinalize โ [strutils.pluralize]: http://boltons.readthedocs.org/en/latest/strutils.html#boltons.strutils.pluralize โ [strutils.is_ascii]: http://boltons.readthedocs.org/en/latest/strutils.html#boltons.strutils.is_ascii โ [strutils.is_uuid]: http://boltons.readthedocs.org/en/latest/strutils.html#boltons.strutils.is_uuid
โ [strutils.slugify]: http://boltons.readthedocs.org/en/latest/strutils.html#boltons.strutils.slugify โ [strutils.strip_ansi]: http://boltons.readthedocs.org/en/latest/strutils.html#boltons.strutils.strip_ansi โ [tableutils]: http://boltons.readthedocs.org/en/latest/tableutils.html โ [tableutils.Table]: http://boltons.readthedocs.org/en/latest/tableutils.html#boltons.tableutils.Table โ [tbutils]: http://boltons.readthedocs.org/en/latest/tbutils.html โ [tbutils.Callpoint]: http://boltons.readthedocs.org/en/latest/tbutils.html#boltons.tbutils.Callpoint โ [tbutils.ExceptionInfo]: http://boltons.readthedocs.org/en/latest/tbutils.html#boltons.tbutils.ExceptionInfo โ [tbutils.ParsedException]: http://boltons.readthedocs.org/en/latest/tbutils.html#boltons.tbutils.ParsedException โ [tbutils.ParsedException.to_string]: http://boltons.readthedocs.org/en/latest/tbutils.html#boltons.tbutils.ParsedException.to_string โ [tbutils.TracebackInfo]: http://boltons.readthedocs.org/en/latest/tbutils.html#boltons.tbutils.TracebackInfo โ [timeutils.daterange]: http://boltons.readthedocs.org/en/latest/timeutils.html#boltons.timeutils.daterange
โ [timeutils.isoparse]: http://boltons.readthedocs.org/en/latest/timeutils.html#boltons.timeutils.isoparse โ [timeutils.parse_timedelta]: http://boltons.readthedocs.org/en/latest/timeutils.html#boltons.timeutils.parse_timedelta โ [timeutils.strpdate]: http://boltons.readthedocs.org/en/latest/timeutils.html#boltons.timeutils.strpdate
โ [typeutils.make_sentinel]: http://boltons.readthedocs.org/en/latest/typeutils.html#boltons.typeutils.make_sentinel โ [urlutils]: http://boltons.readthedocs.org/en/latest/urlutils.html