[Python-ideas] Proposing additions to the standard library
Jonathan Crall
erotemic at gmail.com
Sat Nov 10 20:36:52 EST 2018
I'm interested in proposing several additions to the Python standard
library, and I would like more information on the procedure for doing so.
Are all additions done via a PEP? If not what is the procedure. If so, I've
read that the first step was to email this board and get feedback.
I have a library called `ubelt` that contains several tools that I think
might be worthy of adding to the standard library.
Here's my bullet point pitch:
- Python is batteries included. Ubelt contains extra batteries.
function are extra batteries.
- Most function in ubelt are fast. All 222 tests takes 7.33 seconds.
- Ubelt has 100% test coverage (sans `# nocover` locations).
- I'm only championing a subset of the functions in ubelt. There are
certainly functions in there that do not belong in the standard library.
- I have a Jupyter notebook that give a demo of some select functions
(not necessarily the same as the ones proposed here):
https://github.com/Erotemic/ubelt/blob/master/docs/notebooks/Ubelt%20Demo.ipynb
- I do have documentation (mostly in docstrings) and in the docs folder,
but I've been having trouble auto-updating read-the-docs. Here is the link
anyway: https://ubelt.readthedocs.io/en/latest/
Here is a tentative list of interesting functions. Hopefully the names are
descriptive (if not, see docstrings: https://github.com/Erotemic/ubelt)
ub.cmd
ub.compressuser
ub.group_items
ub.dict_hist
ub.find_duplicates
ub.AutoDict
ub.import_module_from_path
ub.import_module_from_name
ub.modname_to_modpath,
ub.modpath_to_modname
ub.ProgIter
ub.ensuredir
ub.expandpath
almost everything in util_list:
allsame, argmax, argmin, argsort, argunique,
chunks, flatten, iter_window, take, unique
These functions might be worth modifying into dictionary methods:
ub.dict_subset
ub.dict_take
ub.map_vals
ub.map_keys
ub.Timerit
ub.Timer
Because I built the library, I tend to like all the functions. Its
difficult to decide if they are stdlib worthy, so there might be some false
positives / negatives.
I'm on the fence about:
CacheStamp, Cacher, NoParam, argflag, argval, dzip, delete, hash_data,
hash_file, memoize, memoize_method, NiceRepr, augpath, userhome,
ensure_app_cache_dir, ensure_app_resource_dir, find_exe, find_path,
get_app_cache_dir, get_app_resource_dir, platform_cache_dir,
platform_resource_dir, CaptureStdout, codeblock, ensure_unicode, hzcat,
indent, OrderedSet
Its my hope that some of these are actually useful. Let me know any of the
following: what you think, if there are any questions, if something else
needs to be done, or what the next steps are.
--
-Jon
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-ideas/attachments/20181110/5cc57df4/attachment-0001.html>
More information about the Python-ideas
mailing list