mirror of https://github.com/mahmoud/boltons.git
more readable linkification for the CHANGELOG
This commit is contained in:
parent
18e2663270
commit
4981e96633
118
CHANGELOG.md
118
CHANGELOG.md
|
@ -13,15 +13,15 @@ from the first wave addressed and closed. tzutils merged into
|
|||
timeutils. AtomicSaver approach and API much improved. Several other
|
||||
features added:
|
||||
|
||||
* [iterutils.backoff](http://boltons.readthedocs.org/en/latest/iterutils.html#boltons.iterutils.backoff) and [iterutils.backoff_iter](http://boltons.readthedocs.org/en/latest/iterutils.html#boltons.iterutils.backoff_iter) for exponential backoff
|
||||
* [iterutils.frange](http://boltons.readthedocs.org/en/latest/iterutils.html#boltons.iterutils.frange) and [iterutils.xfrange](http://boltons.readthedocs.org/en/latest/iterutils.html#boltons.iterutils.xfrange) for floating point range generation
|
||||
* Slightly more permissive [jsonutils.JSONLIterator](http://boltons.readthedocs.org/en/latest/jsonutils.html#boltons.jsonutils.JSONLIterator) blank line ignoring
|
||||
* [strutils.iter_splitlines](http://boltons.readthedocs.org/en/latest/strutils.html#boltons.strutils.iter_splitlines) for lazily getting lines from a larger string
|
||||
* [timeutils.dt_to_timestamp](http://boltons.readthedocs.org/en/latest/timeutils.html#boltons.timeutils.dt_to_timestamp), per the long-lived PR [#13](https://github.com/mahmoud/boltons/issues/13).
|
||||
* iterutils.backoff and iterutils.backoff_iter for exponential backoff
|
||||
* iterutils.frange and iterutils.xfrange for floating point range generation
|
||||
* Slightly more permissive jsonutils.JSONLIterator blank line ignoring
|
||||
* strutils.iter_splitlines for lazily getting lines from a larger string
|
||||
* timeutils.dt_to_timestamp, per the long-lived PR #13.
|
||||
* Merged tzutils into timeutils
|
||||
* [fileutils.AtomicSaver](http://boltons.readthedocs.org/en/latest/fileutils.html#boltons.fileutils.AtomicSaver) rewrite and redoc
|
||||
* -teens support for [strutils.ordinalize](http://boltons.readthedocs.org/en/latest/strutils.html#boltons.strutils.ordinalize)
|
||||
* made [iterutils.one](http://boltons.readthedocs.org/en/latest/iterutils.html#boltons.iterutils.one) consistent with [iterutils.first](http://boltons.readthedocs.org/en/latest/iterutils.html#boltons.iterutils.first)
|
||||
* fileutils.AtomicSaver rewrite and redoc
|
||||
* -teens support for strutils.ordinalize
|
||||
* made iterutils.one consistent with iterutils.first
|
||||
|
||||
|
||||
0.6.6
|
||||
|
@ -31,7 +31,7 @@ features added:
|
|||
Fix atomic saving open-file issue for Windows.
|
||||
|
||||
* Patch for AtomicSaver on Windows. Full rewrite comes in 15.0.0.
|
||||
* [strutils.gunzip_bytes](http://boltons.readthedocs.org/en/latest/strutils.html#boltons.strutils.gunzip_bytes) for decompressing a gzip bytestring
|
||||
* strutils.gunzip_bytes for decompressing a gzip bytestring
|
||||
|
||||
|
||||
0.6.5
|
||||
|
@ -39,20 +39,20 @@ Fix atomic saving open-file issue for Windows.
|
|||
*(July 30, 2015)*
|
||||
|
||||
BufferedSocket work, html2text, pairwise shortcut, is_container, plural
|
||||
typo fix, [timeutils.isoparse](http://boltons.readthedocs.org/en/latest/timeutils.html#boltons.timeutils.isoparse), [cacheutils.ThresholdCounter](http://boltons.readthedocs.org/en/latest/cacheutils.html#boltons.cacheutils.ThresholdCounter), and lots of
|
||||
typo fix, timeutils.isoparse, cacheutils.ThresholdCounter, and lots of
|
||||
testing
|
||||
|
||||
* Add [iterutils.first](http://boltons.readthedocs.org/en/latest/iterutils.html#boltons.iterutils.first) function
|
||||
* Add [cacheutils.ThresholdCounter](http://boltons.readthedocs.org/en/latest/cacheutils.html#boltons.cacheutils.ThresholdCounter)
|
||||
* Add iterutils.first function
|
||||
* Add cacheutils.ThresholdCounter
|
||||
* Add JSONL verification to jsonutils
|
||||
* Add [timeutils.isoparse](http://boltons.readthedocs.org/en/latest/timeutils.html#boltons.timeutils.isoparse)
|
||||
* Add [strutils.html2text](http://boltons.readthedocs.org/en/latest/strutils.html#boltons.strutils.html2text) and [strutils.HTMLTextExtractor](http://boltons.readthedocs.org/en/latest/strutils.html#boltons.strutils.HTMLTextExtractor)
|
||||
* Fix [strutils.pluralize](http://boltons.readthedocs.org/en/latest/strutils.html#boltons.strutils.pluralize) (indeces -> indices, per [#41](https://github.com/mahmoud/boltons/issues/41))
|
||||
* Add [iterutils.is_container](http://boltons.readthedocs.org/en/latest/iterutils.html#boltons.iterutils.is_container) function
|
||||
* Fixed a small formatting bug in [tbutils.ExceptionInfo](http://boltons.readthedocs.org/en/latest/tbutils.html#boltons.tbutils.ExceptionInfo) that added
|
||||
* Add timeutils.isoparse
|
||||
* Add strutils.html2text and strutils.HTMLTextExtractor
|
||||
* Fix strutils.pluralize (indeces -> indices, per #41)
|
||||
* Add iterutils.is_container function
|
||||
* Fixed a small formatting bug in tbutils.ExceptionInfo that added
|
||||
an extra 'builtins.' for builtin exceptions under python 3
|
||||
* Added tests for many modules
|
||||
* Create [iterutils.pairwise](http://boltons.readthedocs.org/en/latest/iterutils.html#boltons.iterutils.pairwise) shortcuts for pairwise chunks since
|
||||
* Create iterutils.pairwise shortcuts for pairwise chunks since
|
||||
pairs (key/val) are common
|
||||
* Additional 2.6 compatibility and tests
|
||||
* Fixed CachedInstancePartial to be Python 3 friendly without breaking
|
||||
|
@ -69,16 +69,16 @@ Fixed multiline exception message handling in ParsedException. added
|
|||
mathutils. adding a tentative version of socketutils. fix LRU.popitem. fix
|
||||
OMD.__eq__.
|
||||
|
||||
* Fix a bug where [dictutils.OrderedMultiDict](http://boltons.readthedocs.org/en/latest/dictutils.html#boltons.dictutils.OrderedMultiDict)'s __eq__ would fail
|
||||
* Fix a bug where dictutils.OrderedMultiDict's __eq__ would fail
|
||||
with non-iterable objects of comparison
|
||||
* Fixed `LRU.popitem` to return a key value pair
|
||||
* Added mathutils with [mathutils.ceil](http://boltons.readthedocs.org/en/latest/mathutils.html#boltons.mathutils.ceil) and [mathutils.floor](http://boltons.readthedocs.org/en/latest/mathutils.html#boltons.mathutils.floor)
|
||||
* Added mathutils with mathutils.ceil and mathutils.floor
|
||||
implementations that can search a fixed set of choices using the
|
||||
bisect module.
|
||||
* Fix [excutils.ParsedException](http://boltons.readthedocs.org/en/latest/excutils.html#boltons.excutils.ParsedException) so exception message would not start
|
||||
* Fix excutils.ParsedException so exception message would not start
|
||||
with whitespace
|
||||
* Fix multiline exception messages
|
||||
* Adding [socketutils.BufferedSocket](http://boltons.readthedocs.org/en/latest/socketutils.html#boltons.socketutils.BufferedSocket) and [socketutils.NetstringSocket](http://boltons.readthedocs.org/en/latest/socketutils.html#boltons.socketutils.NetstringSocket)
|
||||
* Adding socketutils.BufferedSocket and socketutils.NetstringSocket
|
||||
|
||||
|
||||
0.6.3
|
||||
|
@ -88,12 +88,12 @@ OMD.__eq__.
|
|||
Add typeutils, remove compat.py, make ParsedException work with eval()ed
|
||||
code
|
||||
|
||||
* Properly parse tracebacks with missing source. Resolves [#30](https://github.com/mahmoud/boltons/issues/30)
|
||||
* Tweak the docs for [typeutils.get_all_subclasses](http://boltons.readthedocs.org/en/latest/typeutils.html#boltons.typeutils.get_all_subclasses)
|
||||
* Moved [typeutils.make_sentinel](http://boltons.readthedocs.org/en/latest/typeutils.html#boltons.typeutils.make_sentinel) into typeutils and removed the
|
||||
* Properly parse tracebacks with missing source. Resolves #30
|
||||
* Tweak the docs for typeutils.get_all_subclasses
|
||||
* Moved typeutils.make_sentinel into typeutils and removed the
|
||||
confusing compat module
|
||||
* Add in typeutils with modifications per the caveats of [#15](https://github.com/mahmoud/boltons/issues/15)
|
||||
* Added function [iterutils.one](http://boltons.readthedocs.org/en/latest/iterutils.html#boltons.iterutils.one)
|
||||
* Add in typeutils with modifications per the caveats of #15
|
||||
* Added function iterutils.one
|
||||
|
||||
0.6.2
|
||||
-----
|
||||
|
@ -101,10 +101,10 @@ code
|
|||
|
||||
Add partial_ordering, fix LRU repr and addition behavior
|
||||
|
||||
* Add [funcutils.partial_ordering](http://boltons.readthedocs.org/en/latest/funcutils.html#boltons.funcutils.partial_ordering)(), decorator similar to
|
||||
* Add funcutils.partial_ordering(), decorator similar to
|
||||
functools.total_ordering()
|
||||
* Fixed [cacheutils.LRU](http://boltons.readthedocs.org/en/latest/cacheutils.html#boltons.cacheutils.LRU)'s behavior per [#21](https://github.com/mahmoud/boltons/issues/21)
|
||||
* Fix [cacheutils.LRU](http://boltons.readthedocs.org/en/latest/cacheutils.html#boltons.cacheutils.LRU) repr reversal, fixes [#20](https://github.com/mahmoud/boltons/issues/20)
|
||||
* Fixed cacheutils.LRU's behavior per #21
|
||||
* Fix cacheutils.LRU repr reversal, fixes #20
|
||||
|
||||
0.6.0
|
||||
-----
|
||||
|
@ -117,9 +117,9 @@ Python 3 support and several community bugfixes. Docs clarifications, too.
|
|||
2.7, 3.4, and PyPy.
|
||||
* clarify TracebackInfo.from_current() method gap, per user 'dl__'
|
||||
here: http://www.reddit.com/r/Python/comments/321d3o/boltons_over_100_python_utilities/
|
||||
* Fix the [cacheutils.cached](http://boltons.readthedocs.org/en/latest/cacheutils.html#boltons.cacheutils.cached) decorator, adding a sanity test, fixes [#12](https://github.com/mahmoud/boltons/issues/12)
|
||||
* Fix the cacheutils.cached decorator, adding a sanity test, fixes #12
|
||||
* Fix bytes2human when builtin zip returns iterators
|
||||
* Simplified logic of [iterutils.chunked](http://boltons.readthedocs.org/en/latest/iterutils.html#boltons.iterutils.chunked)
|
||||
* Simplified logic of iterutils.chunked
|
||||
|
||||
0.5.1
|
||||
-----
|
||||
|
@ -129,10 +129,10 @@ 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](http://boltons.readthedocs.org/en/latest/gcutils.html#boltons.gcutils.get_all) based on pypy or cpython, also
|
||||
[gcutils.is_tracked](http://boltons.readthedocs.org/en/latest/gcutils.html#boltons.gcutils.is_tracked) was added in 2.7, so making [gcutils.get_all](http://boltons.readthedocs.org/en/latest/gcutils.html#boltons.gcutils.get_all) work with 2.6
|
||||
* conditional availability of gcutils.get_all based on pypy or cpython, also
|
||||
gcutils.is_tracked was added in 2.7, so making gcutils.get_all work with 2.6
|
||||
* Made namedutils backwards compatibilty for python 2.6 best effort
|
||||
* Fix invalid part_path usage in [fileutils.AtomicSaver](http://boltons.readthedocs.org/en/latest/fileutils.html#boltons.fileutils.AtomicSaver)
|
||||
* Fix invalid part_path usage in fileutils.AtomicSaver
|
||||
|
||||
0.5.0
|
||||
-----
|
||||
|
@ -142,18 +142,18 @@ 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](http://boltons.readthedocs.org/en/latest/statsutils.html#boltons.statsutils.median) use _get_quantile and add [statsutils.trimean](http://boltons.readthedocs.org/en/latest/statsutils.html#boltons.statsutils.trimean)
|
||||
* Switching the [statsutils.Stats](http://boltons.readthedocs.org/en/latest/statsutils.html#boltons.statsutils.Stats) type to be more sorted-data oriented, since it's
|
||||
* making statsutils.median use _get_quantile and add statsutils.trimean
|
||||
* Switching the 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](http://boltons.readthedocs.org/en/latest/timeutils.html#boltons.timeutils.decimal_relative_time) cardinalization optional
|
||||
* Made timeutils.decimal_relative_time cardinalization optional
|
||||
* Removed timeutils dependency on strutils
|
||||
* Made [tbutils.TracebackInfo](http://boltons.readthedocs.org/en/latest/tbutils.html#boltons.tbutils.TracebackInfo) classmethods work with no arguments.
|
||||
* Renamed ParsedTB to [tbutils.ParsedException](http://boltons.readthedocs.org/en/latest/tbutils.html#boltons.tbutils.ParsedException)
|
||||
* Made [dictutils.OMD](http://boltons.readthedocs.org/en/latest/dictutils.html#boltons.dictutils.OMD) .get()/.getlist() semantics more consistent.
|
||||
* finalizing .todict() and adding .sorted() to the [dictutils.OMD](http://boltons.readthedocs.org/en/latest/dictutils.html#boltons.dictutils.OMD)
|
||||
* Made tbutils.TracebackInfo classmethods work with no arguments.
|
||||
* Renamed ParsedTB to tbutils.ParsedException
|
||||
* Made dictutils.OMD .get()/.getlist() semantics more consistent.
|
||||
* finalizing .todict() and adding .sorted() to the dictutils.OMD
|
||||
* Removed osutils and adding a note about utils in general
|
||||
* Made cacheutils more consistent between LRU and LRI, adding some
|
||||
cacheutils docs
|
||||
|
@ -168,9 +168,9 @@ docs, docstrings, and Read The Docs.
|
|||
|
||||
Mostly a dictutils API update (addlist), but also gcutils.
|
||||
|
||||
* [dictutils.OMD](http://boltons.readthedocs.org/en/latest/dictutils.html#boltons.dictutils.OMD): split out addlist() from add(), removing the multi
|
||||
* dictutils.OMD: split out addlist() from add(), removing the multi
|
||||
kwarg
|
||||
* adding gcutils with [gcutils.GCToggler](http://boltons.readthedocs.org/en/latest/gcutils.html#boltons.gcutils.GCToggler) and gc.get_all
|
||||
* adding gcutils with gcutils.GCToggler and gc.get_all
|
||||
|
||||
|
||||
0.4.1
|
||||
|
@ -191,10 +191,10 @@ hashtags
|
|||
|
||||
* tbutils: Changed the way exceptions are parsed out of tracebacks
|
||||
* tbutils: Guard against potential linecache issues
|
||||
* Defined/implemented [iterutils.windowed_iter](http://boltons.readthedocs.org/en/latest/iterutils.html#boltons.iterutils.windowed_iter) corner case behavior
|
||||
* Added from_path to [fileutils.FilePerms](http://boltons.readthedocs.org/en/latest/fileutils.html#boltons.fileutils.FilePerms)
|
||||
* Adding [strutils.find_hashtags](http://boltons.readthedocs.org/en/latest/strutils.html#boltons.strutils.find_hashtags)
|
||||
* Add ignore patterns to [fileutils.iter_find_files](http://boltons.readthedocs.org/en/latest/fileutils.html#boltons.fileutils.iter_find_files)
|
||||
* Defined/implemented iterutils.windowed_iter corner case behavior
|
||||
* Added from_path to fileutils.FilePerms
|
||||
* Adding strutils.find_hashtags
|
||||
* Add ignore patterns to fileutils.iter_find_files
|
||||
|
||||
|
||||
0.3.0
|
||||
|
@ -210,13 +210,13 @@ added in this release.
|
|||
convenience method for ExceptionInfo -> default exception print,
|
||||
also need to add more docstrings.
|
||||
* adding initial jsonutils with JSONL support
|
||||
* added [cacheutils.LRU](http://boltons.readthedocs.org/en/latest/cacheutils.html#boltons.cacheutils.LRU)
|
||||
* added [timeutils.parse_timedelta](http://boltons.readthedocs.org/en/latest/timeutils.html#boltons.timeutils.parse_timedelta)
|
||||
* added cacheutils.LRU
|
||||
* added timeutils.parse_timedelta
|
||||
* fixing iteritems with multi=False in the
|
||||
[dictutils.OrderedMultiDict](http://boltons.readthedocs.org/en/latest/dictutils.html#boltons.dictutils.OrderedMultiDict) (should return first key, but last
|
||||
dictutils.OrderedMultiDict (should return first key, but last
|
||||
value not first)
|
||||
* debugutils: add pdb excepthook and [debugutils.pdb_on_signal](http://boltons.readthedocs.org/en/latest/debugutils.html#boltons.debugutils.pdb_on_signal)
|
||||
* add [fileutils.mkdir_p](http://boltons.readthedocs.org/en/latest/fileutils.html#boltons.fileutils.mkdir_p)
|
||||
* debugutils: add pdb excepthook and debugutils.pdb_on_signal
|
||||
* add fileutils.mkdir_p
|
||||
* tableutils: add maxlen to table text stuff
|
||||
* fix date citation for gob's
|
||||
* adding pure-Python implementation of Gob's algorithm
|
||||
|
@ -265,10 +265,10 @@ added in this release.
|
|||
* fix reverse; missing yield from!
|
||||
* add initial table biz
|
||||
* add get_counts
|
||||
* add [dictutils.OrderedMultiDict.get_inverted](http://boltons.readthedocs.org/en/latest/dictutils.html#boltons.dictutils.OrderedMultiDict.get_inverted)() for those handy reverse lookups
|
||||
* add dictutils.OrderedMultiDict.get_inverted() for those handy reverse lookups
|
||||
* break out skip list to FastIter OMD + bench
|
||||
* add [strutils.a10n](http://boltons.readthedocs.org/en/latest/strutils.html#boltons.strutils.a10n)()
|
||||
* fix a bug in [dictutils.OrderedMultiDict](http://boltons.readthedocs.org/en/latest/dictutils.html#boltons.dictutils.OrderedMultiDict)'s .add()
|
||||
* add strutils.a10n()
|
||||
* fix a bug in dictutils.OrderedMultiDict's .add()
|
||||
* adding initial reimplementation of OMD
|
||||
* adding some tests to dictutils
|
||||
* update boltons formatutils to match what's goin on in lithoxyl
|
||||
|
@ -381,7 +381,5 @@ added in this release.
|
|||
* bucketize and bucketize_bool, with docs
|
||||
* add examples to chunked and chunked_iter
|
||||
* update split() docs with more examples.
|
||||
* [iterutils.chunked_iter](http://boltons.readthedocs.org/en/latest/iterutils.html#boltons.iterutils.chunked_iter) and [iterutils.chunked](http://boltons.readthedocs.org/en/latest/iterutils.html#boltons.iterutils.chunked)
|
||||
* [iterutils.split](http://boltons.readthedocs.org/en/latest/iterutils.html#boltons.iterutils.split) and [iterutils.split_iter](http://boltons.readthedocs.org/en/latest/iterutils.html#boltons.iterutils.split_iter) work
|
||||
|
||||
ckof±
|
||||
* iterutils.chunked_iter and iterutils.chunked
|
||||
* iterutils.split and iterutils.split_iter work
|
||||
|
|
|
@ -8,12 +8,14 @@ BASE_ISSUES_URL = 'https://github.com/mahmoud/boltons/issues/'
|
|||
_issues_re = re.compile('#(\d+)')
|
||||
_member_re = re.compile('((\w+utils)\.[a-zA-Z0-9_.]+)')
|
||||
|
||||
URL_MAP = {}
|
||||
|
||||
def sub_member_match(match):
|
||||
full_name = match.group(1)
|
||||
mod_name = match.group(2)
|
||||
url = BASE_RTD_URL + mod_name + '.html#boltons.' + full_name
|
||||
ret = '[%s](%s)' % (full_name, url)
|
||||
ret = '[%s][%s]' % (full_name, full_name)
|
||||
URL_MAP[full_name] = url
|
||||
# print ret
|
||||
return ret
|
||||
|
||||
|
@ -21,8 +23,10 @@ def sub_member_match(match):
|
|||
def sub_issue_match(match):
|
||||
link_text = match.group(0)
|
||||
issue_num = match.group(1)
|
||||
link_target = BASE_ISSUES_URL + issue_num
|
||||
ret = '[%s](%s)' % (link_text, link_target)
|
||||
link_target = 'i%s' % issue_num
|
||||
link_url = BASE_ISSUES_URL + issue_num
|
||||
ret = '[%s][%s]' % (link_text, link_target)
|
||||
URL_MAP[link_target] = link_url
|
||||
# print ret
|
||||
return ret
|
||||
|
||||
|
@ -35,7 +39,16 @@ def main():
|
|||
cl_text = open(cl_filename).read().decode('utf-8')
|
||||
ret = _member_re.sub(sub_member_match, cl_text)
|
||||
ret = _issues_re.sub(sub_issue_match, ret)
|
||||
|
||||
link_map_lines = []
|
||||
for (name, url) in sorted(URL_MAP.items()):
|
||||
link_map_lines.append('[%s]: %s' % (name, url))
|
||||
|
||||
print ret
|
||||
print
|
||||
print
|
||||
print '\n'.join(link_map_lines)
|
||||
print
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
|
|
Loading…
Reference in New Issue