On Sat, Jan 25, 2014 at 6:46 AM, Victor Stinner <[email protected]> wrote: > I wanted to fix remaining issues before Python 3.4 beta 3 (should be > released tomorrow), so I modified Tulip to export more symbols: > > - BaseEventLoop, BaseProactorEventLoop, BaseSelectorEventLoop
What is the purpose of exporting these? (I don't really mind, but I don't want to encourage people from subclassing these.) > - all queues symbols: Queue, Queue sublasses, Empty, Full I think that Empty and Full are too generic as names. Maybe we should rename them to QueueEmpty and QueueFull? It didn't bother me when you had to explicitly import the queue submodule. But now they are exported by the package, I worry that someone doing "from asyncio import *" (like many of the examples do) will find these names a bit mysterious. > I still don't know if the following attributes should be exported or not: > >> - constants: ACCEPT_RETRY_DELAY, LOG_THRESHOLD_FOR_CONNLOST_WRITES These are internal tuning constants, they should not be exported. >> - log: logger I consider this internal. If an app wants to log they should create their own logger. If they want to configure asyncio's logger they can write import asyncio.log and modify asyncio.log.logger. >> - windows_events: PipeServer Looks internal to me; the way to use it is to call start_serving_pipe(). (BTW, that method looks like it ought to have been changed its return type when we changed create_server() from returning a list of sockets to a Server object. But I think it's too late for the beta. >> - unix_events: BaseChildWatcher Another implementation detail. I don't want to encourage people to start implementing their own watchers. -- --Guido van Rossum (python.org/~guido)
