[Python-Dev] heapq method names

Guido van Rossum guido@python.org
Sat, 24 Aug 2002 20:03:59 -0400


> In the `heapq' module, I'm a little bothered by the fact modules names have
> `heap' as a prefix in their name.  If the methods have been installed as
> standard list methods, it would be quite understandable, but it has been
> decided otherwise.
> 
> The most usual way of using a module is:
> 
>     import MODULE
>      ...
>     MODULE.METHOD(ARGUMENTS)
> 
> rather than:
> 
>     from MODULE import METHOD
>      ...
>     METHOD(ARGUMENTS)
> 
> and we should name METHODs accordingly, not repeating the MODULE as prefix.
> This is a rather common usage, almost everywhere in the Python library.
> 
> So my suggestion of changing now, before `heapq' gets released for real:
> 
>     heappush -> push
>     heappop -> pop
>     heapreplace -> replace
> 
> I guess that `heapify' is OK as it stands.
> 
> The example should be changed accordingly, that is, using `import heapq'
> instead of `from heapq import such-and-such', using `heapq.push' instead of
> `heappush' and `heapq.pop' instead of `heappop'.

-1.  The nmes 'push', 'pop' and 'replace' are too generic.  The module
seems to "invite" the ``from heapq import heappush, heappop'' syntax,
and I'd like to honor that.

--Guido van Rossum (home page: http://www.python.org/~guido/)