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)

Reply via email to