[Python-ideas] Introduce `start=1` argument to `math.factorial`
Andrew Barnert
abarnert at yahoo.com
Thu Sep 18 19:01:01 CEST 2014
On Sep 17, 2014, at 23:15, Nick Coghlan <ncoghlan at gmail.com> wrote:
> However, now that CPython ships with pip by default, we may want to
> consider providing more explicit pointers to such "If you want more
> advanced functionality than the standard library provides" libraries.
>> libraries.
I love this idea, but there's one big potential problem, and one smaller one.
Many of the most popular and useful packages require C extensions. In itself, that doesn't have to be a problem; if you provide wheels for the official 3.4+ Win32, Win64, and Mac64 CPython builds, it can still be as simple as `pip install spam` for most users, including the ones with the least ability to figure it out for themselves.
But what about packages that require third-party C libraries? Does lxml have to have wheels that statically link libxml2, or that download the DLLs at install time for Windows users, or some other such solution before it can be recommended? Many of the most popular packages fall into similar situations, but lxml may be the most obvious because many of its users don't think of it as a wrapper around libxml2, they just think of it as a better ElementTree (or even a thing that magically makes BeautifulSoup work better).
Also, is it acceptable to recommend packages whose C extension modules don't work, or don't work well, with PyPy?
> Yes, that may be contentious in the near term as folks argue over
> which "stdlib++" modules to recommend, but in some cases there are
> clear "next step beyond the standard library" category winners that
> are worth introducing to newcomers, rather than making them do their
> own research.
There are plenty of clear winners that are worth introducing to newcomers, but aren't the next step beyond a particular module. In fact, I think that's the case for _most_ of them. pytz, dateutil, requests, urllib3, pycurl, and maybe more-itertools or blist and a couple of math libs, the main things people are going to want to find (not counting frameworks like Django or Scrapy or PySide) are things like NumPy, Pandas, Pillow, PyYAML, lxml, BeautifulSoup, PyWin32, PyObjC, pyparsing, paramiko, … and where do any of those go?
Does this mean we have to add pages in the docs for things the stdlib doesn't do, just to provide external references? Or turn the chapter-header blurbs into real pages? Or reorganize the docs more dramatically? Or just leave out some of the most prominent and useful libraries on PyPI just because they don't fit anywhere, while mentioning others?
More information about the Python-ideas
mailing list