[Python-ideas] Add pop_callback to deque signature

Nick Coghlan ncoghlan at gmail.com
Wed Oct 4 00:58:57 EDT 2017

On 4 October 2017 at 04:24, Chris Barker <chris.barker at noaa.gov> wrote:
> [Antoine]
>> The problem as
>> I understand it is that you need a Windows machine (or VM) together with
>> the required set of compilers, and have to take the time to run the
>> builds.
> Yup — still the case. Also with Mac and OS-X. Distributing a package with a
> compiled component is still a lot more work.

The broad availability & popularity of AppVeyor's free tier is another
relevant change compared to a few years ago, and
https://github.com/joerick/cibuildwheel is designed to work with that
to help projects automate their artifact builds without need to
maintain their own cross-platform build infrastructure.

So yeah, we're definitely to a point where adding new data structures
to the standard library, or new features to existing data structures,
is mainly going to be driven by standard library use cases that
benefit from them, rather than "binary dependencies are still too hard
to publish & manage". (For example, __missing__ made defaultdict easy
to implement).

For deque specifically, I like Steven D'Aprano's suggestion of a
"__dropped__" or "__discard__" subclassing API that makes it
straightforward to change the way that queue overruns are handled
(especially if raising an exception from the new subclass method can
prevent the collection modification entirely - that way you could
readily change the deque semantics in a subclass such that if the
queue fills up, submitters start getting errors instead of silently
discarding older messages, allowing backpressure to be more easily
propagated through a system of queues).


Nick Coghlan   |   ncoghlan at gmail.com   |   Brisbane, Australia

More information about the Python-ideas mailing list