Chris Barker | 25 May 06:53 2015
Picon

PEP 485: math.isclose()

I don't think I have permissions to comment on the issue,so I'm posting here. If there is a way for me to post to the issue, someone let me know...

In the issue (http://bugs.python.org/issue24270) Tal wrote

"""
I have a question regarding complex values. The code (from Chris Barker) doesn't support complex values (only things that can be converted into doubles). However, the PEP states the following under "Non-float types":

"complex : for complex, the absolute value of the complex values will be used for scaling and comparison. If a complex tolerance is passed in, the absolute value will be used as the tolerance."
"""

right -- that was written before it was decided that isclose() needed to be written in C -- the python version supported that.

"""
Should math.isclose() support complex values?
"""
nope -- the math module is all about floats.

"""
Should an equivalent function be added to cmath?
"""

I think so -- lets see if we can do that in time for 3.5 -- but first get the float one done.

"""
 Should we just leave things as they are and remove mention of complex values from the PEP (it isn't mentioned in the docs)?
"""
I'll update the PEP.

-Chris



--

Christopher Barker, Ph.D.
Oceanographer

Emergency Response Division
NOAA/NOS/OR&R            (206) 526-6959   voice
7600 Sand Point Way NE   (206) 526-6329   fax
Seattle, WA  98115       (206) 526-6317   main reception

Chris.Barker <at> noaa.gov
<div><div dir="ltr">
<div>I don't think I have permissions to comment on the issue,so I'm posting here. If there is a way for me to post to the issue, someone let me know...<br><br>
</div>In the issue (<a href="http://bugs.python.org/issue24270">http://bugs.python.org/issue24270</a>) Tal wrote<br><div>
<br>"""<br>I have a question regarding complex values. The code (from Chris Barker) doesn't support complex values (only things that can be converted into doubles). However, the PEP states the following under "Non-float types":<br><br>"complex : for complex, the absolute value of the complex values will be used for scaling and comparison. If a complex tolerance is passed in, the absolute value will be used as the tolerance."<br>"""<br><br>
</div>
<div>right -- that was written before it was decided that isclose() needed to be written in C -- the python version supported that.<br><br>
</div>
<div>"""<br>Should math.isclose() support complex values? <br>"""<br>nope -- the math module is all about floats.<br><br>"""<br>Should an equivalent function be added to cmath?<br>"""<br><br>
</div>
<div>I think so -- lets see if we can do that in time for 3.5 -- but first get the float one done.<br>
</div>
<div>
<br>"""<br>&nbsp;Should we just leave things as they are and remove mention of complex values from the PEP (it isn't mentioned in the docs)?<br clear="all">"""<br>
</div>
<div>I'll update the PEP.<br><br>
</div>
<div>-Chris<br><br>
</div>
<div>
<br><br>-- <br><div class="gmail_signature">
<br>Christopher Barker, Ph.D.<br>Oceanographer<br><br>Emergency Response Division<br>NOAA/NOS/OR&amp;R &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;(206) 526-6959&nbsp;&nbsp; voice<br>7600 Sand Point Way NE &nbsp;&nbsp;(206) 526-6329&nbsp;&nbsp; fax<br>Seattle, WA &nbsp;98115 &nbsp; &nbsp; &nbsp;&nbsp;(206) 526-6317&nbsp;&nbsp; main reception<br><br><a href="mailto:Chris.Barker <at> noaa.gov" target="_blank">Chris.Barker <at> noaa.gov</a>
</div>
</div>
</div></div>
Eric Snow | 24 May 22:36 2015
Picon

Re: Preserving the definition order of class namespaces.


On May 24, 2015 3:35 AM, "Nick Coghlan" <ncoghlan <at> gmail.com> wrote:
> Is it specifically necessary to save the order by default? Metaclasses
> would be able to access the ordered namespace in their __new__ method
> regardless, and for 3.6, I still like the __init_subclass__ hook idea
> proposed in PEP 487, which includes passing the original namespace to
> the new hook.
>
> So while I'm sold on the value of making class execution namespaces
> ordered by default, I'm not yet sold on the idea of *remembering* that
> order without opting in to doing so in the metaclass.
>
> If we leave __definition_order__ out for the time being then, for the
> vast majority of code, the fact that the ephemeral namespace used to
> evaluate the class body switched from being a basic dictionary to an
> ordered one would be a hidden implementation detail, rather than
> making all type objects a little bigger.

It's too late for 3.5 to negotiate much so I'll try to make my case here for __definition_order__ one last time.   If that's not sufficient then I'll defer further discussion to 3.6.

My premise for storing the definition order on the class is that Guido was okay with using OrderedDict for cls.__dict__, which is a bigger change.  Regardless, there are two reasons why it makes sense:

* If it makes sense to use OrderedDict by default for class definition then it makes sense to preserve the extra information OrderedDict provides.
* As I noted at the beginning of the thread, you could still preserve that info manually, but that makes it less convenient for library authors.

If you still think that's not enough justification then we can table __definition_order__ for now.

-eric

<div>
<p dir="ltr"><br>
On May 24, 2015 3:35 AM, "Nick Coghlan" &lt;<a href="mailto:ncoghlan <at> gmail.com">ncoghlan <at> gmail.com</a>&gt; wrote:<br>
&gt; Is it specifically necessary to save the order by default? Metaclasses<br>
&gt; would be able to access the ordered namespace in their __new__ method<br>
&gt; regardless, and for 3.6, I still like the __init_subclass__ hook idea<br>
&gt; proposed in PEP 487, which includes passing the original namespace to<br>
&gt; the new hook.<br>
&gt;<br>
&gt; So while I'm sold on the value of making class execution namespaces<br>
&gt; ordered by default, I'm not yet sold on the idea of *remembering* that<br>
&gt; order without opting in to doing so in the metaclass.<br>
&gt;<br>
&gt; If we leave __definition_order__ out for the time being then, for the<br>
&gt; vast majority of code, the fact that the ephemeral namespace used to<br>
&gt; evaluate the class body switched from being a basic dictionary to an<br>
&gt; ordered one would be a hidden implementation detail, rather than<br>
&gt; making all type objects a little bigger.</p>
<p dir="ltr">It's too late for 3.5 to negotiate much so I'll try to make my case here for __definition_order__ one last time.&nbsp;&nbsp; If that's not sufficient then I'll defer further discussion to 3.6.</p>
<p dir="ltr">My premise for storing the definition order on the class is that Guido was okay with using OrderedDict for cls.__dict__, which is a bigger change.&nbsp; Regardless, there are two reasons why it makes sense:</p>
<p dir="ltr">* If it makes sense to use OrderedDict by default for class definition then it makes sense to preserve the extra information OrderedDict provides.<br>
* As I noted at the beginning of the thread, you could still preserve that info manually, but that makes it less convenient for library authors.</p>
<p dir="ltr">If you still think that's not enough justification then we can table __definition_order__ for now.</p>
<p dir="ltr">-eric</p>
</div>
Chris Barker | 24 May 21:57 2015
Picon

Re: [python-committers] Reminder: Python 3.5 beta 1 will be tagged tomorrow

On Sun, May 24, 2015 at 10:00 AM, Tal Einat <taleinat <at> gmail.com> wrote:
On Sun, May 24, 2015 at 6:40 PM, Chris Barker <chris.barker <at> noaa.gov> wrote:
> What do folks think about adding one to cmath as well, while we are at it?
> It should be pretty straightforward -- I could focus what time I have to do
> that.

I prefer focusing on getting math.isclose() in before tackling
cmath.isclose(), though it would indeed be very straightforward given
the work already done. Larry has stated he's willing to make an
exception to the "no new features" rule for this, so I think we should
have time to get the cmath version in for 3.5 even if we wait a few
days with it. So if you have time, I'd prefer that you thoroughly
review the patch.

makes sense. stay tuned.

-CHB
 

--

Christopher Barker, Ph.D.
Oceanographer

Emergency Response Division
NOAA/NOS/OR&R            (206) 526-6959   voice
7600 Sand Point Way NE   (206) 526-6329   fax
Seattle, WA  98115       (206) 526-6317   main reception

Chris.Barker <at> noaa.gov
<div><div dir="ltr"><div class="gmail_extra">
<div class="gmail_quote">On Sun, May 24, 2015 at 10:00 AM, Tal Einat <span dir="ltr">&lt;<a href="mailto:taleinat <at> gmail.com" target="_blank">taleinat <at> gmail.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote">
<span class="">On Sun, May 24, 2015 at 6:40 PM, Chris Barker &lt;<a href="mailto:chris.barker <at> noaa.gov">chris.barker <at> noaa.gov</a>&gt; wrote:<br>&gt; What do folks think about adding one to cmath as well, while we are at it?<br>
&gt; It should be pretty straightforward -- I could focus what time I have to do<br>
&gt; that.<br><br></span>I prefer focusing on getting math.isclose() in before tackling<br>
cmath.isclose(), though it would indeed be very straightforward given<br>
the work already done. Larry has stated he's willing to make an<br>
exception to the "no new features" rule for this, so I think we should<br>
have time to get the cmath version in for 3.5 even if we wait a few<br>
days with it. So if you have time, I'd prefer that you thoroughly<br>
review the patch.<br>
</blockquote>
<div><br></div>
<div>makes sense. stay tuned.</div>
<div><br></div>
<div>-CHB</div>
<div>&nbsp;</div>
</div>
<div><br></div>-- <br><div class="gmail_signature">
<br>Christopher Barker, Ph.D.<br>Oceanographer<br><br>Emergency Response Division<br>NOAA/NOS/OR&amp;R &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;(206) 526-6959&nbsp;&nbsp; voice<br>7600 Sand Point Way NE &nbsp;&nbsp;(206) 526-6329&nbsp;&nbsp; fax<br>Seattle, WA &nbsp;98115 &nbsp; &nbsp; &nbsp;&nbsp;(206) 526-6317&nbsp;&nbsp; main reception<br><br><a href="mailto:Chris.Barker <at> noaa.gov" target="_blank">Chris.Barker <at> noaa.gov</a>
</div>
</div></div></div>
Ludovic Gasc | 24 May 19:22 2015
Picon

An yocto change proposal in logging module to simplify structured logs support

Hi,

1. The problem

For now, when you want to write a log message, you concatenate the data from your context to generate a string: In fact, you convert your structured data to a string.
When a sysadmin needs to debug your logs when something is wrong, he must write regular expressions to extract interesting data.

Often, he must find the beginning of the interesting log and follow the path. Sometimes, you can have several requests in the same time in the log, it's harder to find interesting log.
In fact, with regular expressions, the sysadmin tries to convert the log lines strings to structured data.

2. A possible solution

You should provide a set of regular expressions to your sysadmins to help them to find the right logs, however, another approach is possible: structured logs.
Instead of to break your data structure to push in the log message, the idea is to keep the data structure, to attach that as metadata of the log message.
For now, I know at least Logstash and Journald that can handle structured logs and provide a query tool to extract easily logs.

3. A concrete example with structured logs

As most Web developers, we build HTTP daemons used by several different human clients in the same time.
In the Python source code, to support structured logs, you don't have a big change, you can use "extra" parameter for that, example:

    [handle HTTP request]
    LOG.debug('Receive a create_or_update request', extra={'request_id': request.request_id,
                                                                                                 'account_id': account_id,
                                                                                                 'aiohttp_request': request,
                                                                                                 'payload': str(payload)})
   [create data in database]
    LOG.debug('Callflow created', extra={'account_id': account_id,
                                             'request_id': request.request_id,
                                             'aiopg_cursor': cur,
                                             'results': row})

Now, if you want, you can enhance the structured log with a custom logging Handler, because the standard journald handler doesn't know how to handle aiohttp_request or aiopg_cursor.
My example is based on journald, but you can write an equivalent version with python-logstash:
####
from systemdream.journal.handler import JournalHandler

class Handler(JournalHandler):
    # Tip: on a system without journald, use socat to test:
    # socat UNIX-RECV:/run/systemd/journal/socket STDIN
    def emit(self, record):
        if record.extra:
            # import ipdb; ipdb.set_trace()
            if 'aiohttp_request' in record.extra:
                record.extra['http_method'] = record.extra['aiohttp_request'].method
                record.extra['http_path'] = record.extra['aiohttp_request'].path
                record.extra['http_headers'] = str(record.extra['aiohttp_request'].headers)
                del(record.extra['aiohttp_request'])
            if 'aiopg_cursor' in record.extra:
                record.extra['pg_query'] = record.extra['aiopg_cursor'].query.decode('utf-8')
                record.extra['pg_status_message'] = record.extra['aiopg_cursor'].statusmessage
                record.extra['pg_rows_count'] = record.extra['aiopg_cursor'].rowcount
                del(record.extra['aiopg_cursor'])
        super().emit(record)
####

And you can enable this custom handler in your logging config file like this:
[handler_journald]
class=XXXXXXXXXX.utils.logs.Handler
args=()
formatter=detailed

And now, with journalctl, you can easily extract logs, some examples:
Logs messages from 'lg' account:
    journalctl ACCOUNT_ID=lg
All HTTP requests that modify the 'lg' account (PUT, POST and DELETE):
    journalctl ACCOUNT_ID=lg HTTP_METHOD=PUT HTTP_METHOD=POST HTTP_METHOD=DELETE
Retrieve all logs from one specific HTTP request:
    journalctl REQUEST_ID=130b8fa0-6576-43b6-a624-4a4265a2fbdd
All HTTP requests with a specific path:
    journalctl HTTP_PATH=/v1/accounts/lg/callflows
All logs of "create" function in the file "example.py"
   journalctl CODE_FUNC=create CODE_FILE=/path/example.py

If you already do a troubleshooting on a production system, you should understand the interest of this:
In fact, it's like to have SQL queries capabilities, but it's logging oriented.
We use that since a small time on one of our critical daemon that handles a lot of requests across several servers, it's already adopted from our support team.

4. The yocto issue with the Python logging module

I don't explain here a small part of my professional life for my pleasure, but to help you to understand the context and the usages, because my patch for logging is very small.
If you're an expert of Python logging, you already know that my Handler class example I provided above can't run on a classical Python logging, because LogRecord doesn't have an extra attribute.

extra parameter exists in the Logger, but, in the LogRecord, it's merged as attributes of LogRecord:

It means, that when the LogRecord is sent to the Handler, you can't retrieve the dict from the extra parameter of logger.
The only way to do that without to patch Python logging, is to rebuild by yourself the dict with a list of official attributes of LogRecord, as is done in python-logstash:
At least to me, it's a little bit dirty.

My quick'n'dirty patch I use for now on our CPython on production:

diff --git a/Lib/logging/__init__.py b/Lib/logging/__init__.py
index 104b0be..30fa6ef 100644
--- a/Lib/logging/__init__.py
+++ b/Lib/logging/__init__.py
<at> <at> -1382,6 +1382,7 <at> <at> class Logger(Filterer):
         """
         rv = _logRecordFactory(name, level, fn, lno, msg, args, exc_info, func,
                              sinfo)
+        rv.extra = extra
         if extra is not None:
             for key in extra:
                 if (key in ["message", "asctime"]) or (key in rv.__dict__):

At least to me, it should be cleaner to add "extra" as parameter of _logRecordFactory, but I've no idea of side effects, I understand that logging module is critical, because it's used everywhere.
However, except with python-logstash, to my knowledge, extra parameter isn't massively used.
The only backward incompatibility I see with a new extra attribute of LogRecord, is that if you have a log like this:
    LOG.debug('message', extra={'extra': 'example'})
It will raise a KeyError("Attempt to overwrite 'extra' in LogRecord") exception, but, at least to me, the probability of this use case is near to 0.

Instead of to "maintain" this yocto patch, even it's very small, I should prefer to have a clean solution in Python directly.

Thanks for your remarks.

Regards.
--
Ludovic Gasc (GMLudo)
<div><div dir="ltr">Hi,<div><br></div>
<div>1. The problem</div>
<div><br></div>
<div>For now, when you want to write a log message, you concatenate the data from your context to generate a string: In fact, you convert your structured data to a string.</div>
<div>When a sysadmin needs to debug your logs when something is wrong, he must write regular expressions to extract interesting data.</div>
<div><br></div>
<div>Often, he must find the beginning of the interesting log and follow the path. Sometimes, you can have several requests in the same time in the log, it's harder to find interesting log.</div>
<div>In fact, with regular expressions, the sysadmin tries to convert the log lines strings to structured data.</div>
<div><br></div>
<div>2. A possible solution</div>
<div><br></div>
<div>You should provide a set of regular expressions to your sysadmins to help them to find the right logs, however, another approach is possible: structured logs.</div>
<div>Instead of to break your data structure to push in the log message, the idea is to keep the data structure, to attach that as metadata of the log message.</div>
<div>For now, I know at least Logstash and Journald that can handle structured logs and provide a query tool to extract easily logs.</div>
<div><br></div>
<div>3. A concrete example with structured logs</div>
<div><br></div>
<div>As most Web developers, we build HTTP daemons used by several different human clients in the same time.</div>
<div>In the Python source code, to support structured logs, you don't have a big change, you can use "extra" parameter for that, example:</div>
<div><br></div>
<div>&nbsp; &nbsp; [handle HTTP request]</div>
<div>
<div>&nbsp; &nbsp; LOG.debug('Receive a create_or_update request', extra={'request_id': request.request_id,</div>
<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;'account_id': account_id,</div>
<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;'aiohttp_request': request,</div>
<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;'payload': str(payload)})</div>
</div>
<div>&nbsp; &nbsp;[create data in database]</div>
<div>
<div>&nbsp; &nbsp; LOG.debug('Callflow created', extra={'account_id': account_id,</div>
<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;'request_id': request.request_id,</div>
<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;'aiopg_cursor': cur,</div>
<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;'results': row})</div>
</div>
<div><br></div>
<div>Now, if you want, you can enhance the structured log with a custom logging Handler, because the standard journald handler doesn't know how to handle aiohttp_request or aiopg_cursor.</div>
<div>My example is based on journald, but you can write an equivalent version with python-logstash:</div>
<div>####</div>
<div>
<div>from systemdream.journal.handler import JournalHandler</div>
<div><br></div>
<div>class Handler(JournalHandler):</div>
<div>&nbsp; &nbsp; # Tip: on a system without journald, use socat to test:</div>
<div>&nbsp; &nbsp; # socat UNIX-RECV:/run/systemd/journal/socket STDIN</div>
<div>&nbsp; &nbsp; def emit(self, record):</div>
<div>&nbsp; &nbsp; &nbsp; &nbsp; if record.extra:</div>
<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; # import ipdb; ipdb.set_trace()</div>
<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if 'aiohttp_request' in record.extra:</div>
<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; record.extra['http_method'] = record.extra['aiohttp_request'].method</div>
<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; record.extra['http_path'] = record.extra['aiohttp_request'].path</div>
<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; record.extra['http_headers'] = str(record.extra['aiohttp_request'].headers)</div>
<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; del(record.extra['aiohttp_request'])</div>
<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if 'aiopg_cursor' in record.extra:</div>
<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; record.extra['pg_query'] = record.extra['aiopg_cursor'].query.decode('utf-8')</div>
<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; record.extra['pg_status_message'] = record.extra['aiopg_cursor'].statusmessage</div>
<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; record.extra['pg_rows_count'] = record.extra['aiopg_cursor'].rowcount</div>
<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; del(record.extra['aiopg_cursor'])</div>
<div>&nbsp; &nbsp; &nbsp; &nbsp; super().emit(record)</div>
</div>
<div>####</div>
<div><br></div>
<div>And you can enable this custom handler in your logging config file like this:</div>
<div>
<div>[handler_journald]</div>
<div>class=XXXXXXXXXX.utils.logs.Handler<br>
</div>
<div>args=()</div>
<div>formatter=detailed</div>
<div><br></div>
</div>
<div>And now, with journalctl, you can easily extract logs, some examples:</div>
<div>Logs messages from 'lg' account:</div>
<div>&nbsp; &nbsp; journalctl ACCOUNT_ID=lg</div>
<div>All HTTP requests that modify the 'lg' account (PUT, POST and DELETE):</div>
<div>&nbsp; &nbsp;&nbsp;journalctl ACCOUNT_ID=lg HTTP_METHOD=PUT HTTP_METHOD=POST&nbsp;HTTP_METHOD=DELETE</div>
<div>Retrieve all logs from one specific HTTP request:</div>
<div>&nbsp; &nbsp;&nbsp;journalctl REQUEST_ID=130b8fa0-6576-43b6-a624-4a4265a2fbdd</div>
<div>All HTTP requests with a specific path:</div>
<div>&nbsp; &nbsp;&nbsp;journalctl&nbsp;HTTP_PATH=/v1/accounts/lg/callflows</div>
<div>All logs of "create" function in the file "example.py"</div>
<div>&nbsp; &nbsp;journalctl CODE_FUNC=create CODE_FILE=/path/example.py</div>
<div><br></div>
<div>If you already do a troubleshooting on a production system, you should understand the interest of this:</div>
<div>In fact, it's like to have SQL queries capabilities, but it's logging oriented.</div>
<div>We use that since a small time on one of our critical daemon that handles a lot of requests across several servers, it's already adopted from our support team.</div>
<div><br></div>
<div>4. The yocto issue with the Python logging module</div>
<div><br></div>
<div>I don't explain here a small part of my professional life for my pleasure, but to help you to understand the context and the usages, because my patch for logging is very small.</div>
<div>If you're an expert of Python logging, you already know that my Handler class example I provided above can't run on a classical Python logging, because LogRecord doesn't have an extra attribute.<br>
</div>
<div><br></div>
<div>extra parameter exists in the Logger, but, in the&nbsp;LogRecord, it's merged as attributes of&nbsp;LogRecord:</div>
<div>
<a href="https://github.com/python/cpython/blob/master/Lib/logging/__init__.py#L1386">https://github.com/python/cpython/blob/master/Lib/logging/__init__.py#L1386</a><br>
</div>
<div><br></div>
<div>It means, that when the LogRecord is sent to the Handler, you can't retrieve the dict from the extra parameter of logger.</div>
<div>The only way to do that without to patch Python logging, is to rebuild by yourself the dict with a list of official attributes of LogRecord, as is done in python-logstash:</div>
<div>
<a href="https://github.com/vklochan/python-logstash/blob/master/logstash/formatter.py#L23">https://github.com/vklochan/python-logstash/blob/master/logstash/formatter.py#L23</a><br>
</div>
<div>At least to me, it's a little bit dirty.</div>
<div><br></div>
<div>My quick'n'dirty patch I use for now on our CPython on production:</div>
<div><br></div>
<div>
<div>diff --git a/Lib/logging/__init__.py b/Lib/logging/__init__.py</div>
<div>index 104b0be..30fa6ef 100644</div>
<div>--- a/Lib/logging/__init__.py</div>
<div>+++ b/Lib/logging/__init__.py</div>
<div> <at>  <at>  -1382,6 +1382,7  <at>  <at>  class Logger(Filterer):</div>
<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;"""</div>
<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;rv = _logRecordFactory(name, level, fn, lno, msg, args, exc_info, func,</div>
<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; sinfo)</div>
<div>+ &nbsp; &nbsp; &nbsp; &nbsp;rv.extra = extra</div>
<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if extra is not None:</div>
<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;for key in extra:</div>
<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if (key in ["message", "asctime"]) or (key in rv.__dict__):</div>
</div>
<div><br></div>
<div>At least to me, it should be cleaner to add "extra" as parameter of&nbsp;_logRecordFactory, but I've no idea of side effects, I understand that logging module is critical, because it's used everywhere.</div>
<div>However, except with python-logstash, to my knowledge, extra parameter isn't massively used.</div>
<div>The only backward incompatibility I see with a new extra attribute of LogRecord, is that if you have a log like this:</div>
<div><div>&nbsp; &nbsp; LOG.debug('message', extra={'extra': 'example'})</div></div>
<div>It will raise a&nbsp;KeyError("Attempt to overwrite 'extra' in LogRecord") exception, but, at least to me, the probability of this use case is near to 0.</div>
<div><br></div>
<div>Instead of to "maintain" this yocto patch, even it's very small, I should prefer to have a clean solution in Python directly.</div>
<div><br></div>
<div>Thanks for your remarks.</div>
<div><br></div>
<div>Regards.</div>
<div>
<div><div class="gmail_signature"><div dir="ltr"><div>--<br><div><div>Ludovic Gasc (GMLudo)</div></div>
<div><a href="http://www.gmludo.eu/" target="_blank">http://www.gmludo.eu/</a></div>
</div></div></div></div>
</div>
</div></div>
Mark Shannon | 24 May 11:44 2015

Re: Preserving the definition order of class namespaces.


On 24/05/15 10:35, Nick Coghlan wrote:
> On 24 May 2015 at 15:53, Eric Snow <ericsnowcurrently <at> gmail.com> wrote:
>>
>> On May 23, 2015 10:47 PM, "Guido van Rossum" <guido <at> python.org> wrote:
>>>
>>> How will __definition_order__ be set in the case where __prepare__ doesn't
>>> return an OrderedDict? Or where a custom metaclass's __new__ calls its
>>> superclass's __new__ with a plain dict? (I just wrote some code that does
>>> that. :-)
>>
>> I was planning on setting it to None if the order is not available.  At the
>> moment that's just a check for OrderedDict.
>
> Is it specifically necessary to save the order by default? Metaclasses
> would be able to access the ordered namespace in their __new__ method
> regardless, and for 3.6, I still like the __init_subclass__ hook idea
> proposed in PEP 487, which includes passing the original namespace to
> the new hook.
>
> So while I'm sold on the value of making class execution namespaces
> ordered by default, I'm not yet sold on the idea of *remembering* that
> order without opting in to doing so in the metaclass.
>
> If we leave __definition_order__ out for the time being then, for the
> vast majority of code, the fact that the ephemeral namespace used to
> evaluate the class body switched from being a basic dictionary to an
> ordered one would be a hidden implementation detail, rather than
> making all type objects a little bigger.
and a little slower.

Cheers,
Mark.
Eric Snow | 24 May 03:15 2015
Picon

Preserving the definition order of class namespaces.

tl;dr Are there any objections to making making the default
cls.__prepare__ return OrderedDict instead of dict (and preserve that
order in a list on the class)?

A couple years ago [1][2] I proposed making class definition
namespaces use OrderedDict by default.  Said Guido [3]:

    I'm fine with doing this by default for a class namespace; the type of
    cls.__dict__ is already a non-dict (it's a proxy) and it's unlikely to
    have 100,000 entries.

It turns out making cls.__dict__ an OrderedDict isn't reasonably
tractable (due to the concrete API v. subclasses), but really that
isn't what I was looking for anyway.

Regardless, since it's been a while I just want to run the proposal by
the group again.  I'm hopeful about landing my C implementation of
OrderedDict [4] in the next few days.  Also, I have a patch up [5]
that implements using OrderedDict for class definitions.  So mostly I
just want to double check that I'm still good to go.

Just to be clear on what I'm proposing specifically, I've summed it up below.

-eric

---------------------

Currently if you want to preserve the order of a class definition you
have to use a metaclass with a __prepare__ method (see PEP 3115).
However, as that PEP points out [6], the common case for __prepare__
is to use OrderedDict.  I'm proposing that we return OrderedDict() by
default from __prepare__.  Considering the common case, we should also
expose that definition order on the class afterward since otherwise
the extra information from the class definition namespace is discarded
(type.__new__ copies it into a dict which is then used for
cls.__dict__).

So the key changes are:

* use OrderedDict by default for class definition namespace (e.g. from
type.__prepare__)
* expose that definition order as cls.__definition_order__ (a list)

(Note that I will not be changing the actual type of cls.__dict__
(i.e. tp_dict) which will remain a dict.)

The effect of the change would be that the following are basically
equivalent (relative to the the definition namespace):

    class Meta(type):
         <at> classmethod.
        def __prepare__(meta, *args, **kwargs):
            return OrderedDict()

    class SpamOld(metaclass=Meta):
        a = 1
        b = 2
        c = 3
        __definition_order__ = list(locals())

    class SpamNew:
        a = 1
        b = 2
        c = 3

    assert SpamOld.__definition__order == SpamNew.__definition_order__

The key differences are:

* for SpamNew you don't need to use a metaclass [7][8]
* for SpamNew you don't need to rely on the behavior of locals()
* for SpamNew the class definition isn't cluttered with extra
boilerplate for __definition_order__
* class decorators that care about definition order [9] don't have to
require that classes like SpamNew manually preserve that order somehow

The patch for the change is pretty minimal. [5]

Also, Nick Coghlan recently expressed that he favored using
OrderedDict by default over the alternative presented by PEP 422/487.
[10]

[1] https://mail.python.org/pipermail/python-ideas/2013-February/019690.html
[2] https://mail.python.org/pipermail/python-dev/2013-June/127103.html
[3] Guido: https://mail.python.org/pipermail/python-ideas/2013-February/019704.html
[4] http://bugs.python.org/issue16991
[5] http://bugs.python.org/issue24254
[6] see the "Alternate Proposals" section of
https://www.python.org/dev/peps/pep-3115/
[7] PEPs 422 and 487 relatedly focus on the benefits of reducing the
need to use metaclasses
[8] https://mail.python.org/pipermail/python-ideas/2013-February/019706.html
[9] see "Key points" on
https://mail.python.org/pipermail/python-dev/2013-February/124439.html
[10] Nick: https://mail.python.org/pipermail/python-ideas/2015-March/032254.html
Terry Reedy | 23 May 22:24 2015
Picon

3.5 doc warnings

35\Doc\whatsnew\3.5.rst:686: ERROR: Unknown interpreted text role "module".

35\Doc\library\typing.rst:: WARNING: document isn't included in any toctree

from building html docs just now

--

-- 
Terry Jan Reedy

Eric Snow | 22 May 23:44 2015
Picon

Accepting PEP 489 (Multi-phase extension module initialization)

Hi all,

After extended discussion over the last several months on import-sig,
the resulting proposal for multi-phase (PEP 451) extension module
initialization has finalized.  The resulting PEP provides a clean,
straight-forward, and backward-compatible way to import extension
modules using ModuleSpecs.

With that in mind and given the improvement it provides, PEP 489 is
now accepted.  I want to thank Petr, Nick, and Stefan for the time,
thought, and effort they put into the proposal (and implementation).
It was a disappointment to me when, at the time, we couldn't find a
good way to apply PEP 451 to builtins and extension modules.  So
thanks for easing my anxiety!

-eric
Chris Barker | 22 May 23:29 2015
Picon

Re: Reminder: Python 3.5 beta 1 will be tagged tomorrow

Is it too late to get the isclose() code (PEP 485) into 3.5?

I posted the code here, and got a tiny bit of review, but have not yet merged it into the source tree -- and don't know the process for getting it committed to the official source.

So -- too late, or should I try to get that merge done soon -- if so, how?

-Chris



On Fri, May 22, 2015 at 12:53 PM, Larry Hastings <larry <at> hastings.org> wrote:


Howdy howdy.  It's-a me, Larry, your friendly neighborhood Python 3.5 Release Manager.

Somewhere around 2 or 3pm tomorrow I expect to tag Python 3.5 beta 1.  We'll actually release beta 1 on Sunday, once the binary installers are all built.

Beta 1 is also feature-freeze, meaning no new features may be added to 3.5 without my permission.  Since it seems useful to have a specific cutoff time, please stop adding features at ** 8pm Saturday UTC **.  (That's 1pm Pacific Daylight Time.  It's also almost exactly 24 hours from... now.)

I remind you that this time we're trying something new: we're going to create the 3.5 branch when we release beta 1, allowing feature development (for 3.6) to continue in trunk.  At the point that I check in and push beta 1, I'll also merge all checkins from trunk back into the 3.5 branch.  After that it'll be responsibility of the person checking in to check their bug fixes in to the appropriate place.  So please keep in mind: once the 3.5 branch becomes generally available on Sunday, the usual rules for a release branch will apply: bug fixes for 3.5 should be checked in to the 3.5 branch and get merged forward into trunk.

If you have new features you want to ship with Python 3.5, please check them in as soon as possible!


Thank you for helping to make Python better,


/arry

_______________________________________________
Python-Dev mailing list
Python-Dev <at> python.org
https://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: https://mail.python.org/mailman/options/python-dev/chris.barker%40noaa.gov




--

Christopher Barker, Ph.D.
Oceanographer

Emergency Response Division
NOAA/NOS/OR&R            (206) 526-6959   voice
7600 Sand Point Way NE   (206) 526-6329   fax
Seattle, WA  98115       (206) 526-6317   main reception

Chris.Barker <at> noaa.gov
<div><div dir="ltr">Is it too late to get the isclose() code (PEP 485) into 3.5?<div class="gmail_extra"><br></div>
<div class="gmail_extra">I posted the code here, and got a tiny bit of review, but have not yet merged it into the source tree -- and don't know the process for getting it committed to the official source.</div>
<div class="gmail_extra"><br></div>
<div class="gmail_extra">So -- too late, or should I try to get that merge done soon -- if so, how?</div>
<div class="gmail_extra"><br></div>
<div class="gmail_extra">-Chris</div>
<div class="gmail_extra"><br></div>
<div class="gmail_extra"><br></div>
<div class="gmail_extra">
<br><div class="gmail_quote">On Fri, May 22, 2015 at 12:53 PM, Larry Hastings <span dir="ltr">&lt;<a href="mailto:larry <at> hastings.org" target="_blank">larry <at> hastings.org</a>&gt;</span> wrote:<br><blockquote class="gmail_quote">

    

  <div bgcolor="#FFFFFF" text="#000000">
    <br><br>
    Howdy howdy.&nbsp; It's-a me, Larry, your friendly neighborhood Python
    3.5 Release Manager.<br><br>
    Somewhere around 2 or 3pm tomorrow I expect to tag Python 3.5 beta
    1.&nbsp; We'll actually release beta 1 on Sunday, once the binary
    installers are all built.<br><br>
    Beta 1 is also feature-freeze, meaning no new features may be added
    to 3.5 without my permission.&nbsp; Since it seems useful to have a
    specific cutoff time, please stop adding features at ** 8pm Saturday
    UTC **.&nbsp; (That's 1pm Pacific Daylight Time.&nbsp; It's also almost
    exactly 24 hours from... now.)<br><br>
    I remind you that this time we're trying something new: we're going
    to create the 3.5 branch when we release beta 1, allowing feature
    development (for 3.6) to continue in trunk.&nbsp; At the point that I
    check in and push beta 1, I'll also merge all checkins from trunk
    back into the 3.5 branch.&nbsp; After that it'll be responsibility of the
    person checking in to check their bug fixes in to the appropriate
    place.&nbsp; So please keep in mind: once the 3.5 branch becomes
    generally available on Sunday, the usual rules for a release branch
    will apply: bug fixes for 3.5 should be checked in to the 3.5 branch
    and get merged forward into trunk.<br><br>
    If you have new features you want to ship with Python 3.5, please
    check them in as soon as possible!<br><br><br>
    Thank you for helping to make Python better,<br><br><br>/arry<br>
</div>

<br>_______________________________________________<br>
Python-Dev mailing list<br><a href="mailto:Python-Dev <at> python.org">Python-Dev <at> python.org</a><br><a href="https://mail.python.org/mailman/listinfo/python-dev" target="_blank">https://mail.python.org/mailman/listinfo/python-dev</a><br>
Unsubscribe: <a href="https://mail.python.org/mailman/options/python-dev/chris.barker%40noaa.gov" target="_blank">https://mail.python.org/mailman/options/python-dev/chris.barker%40noaa.gov</a><br><br>
</blockquote>
</div>
<br><br clear="all"><div><br></div>-- <br><div class="gmail_signature">
<br>Christopher Barker, Ph.D.<br>Oceanographer<br><br>Emergency Response Division<br>NOAA/NOS/OR&amp;R &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;(206) 526-6959&nbsp;&nbsp; voice<br>7600 Sand Point Way NE &nbsp;&nbsp;(206) 526-6329&nbsp;&nbsp; fax<br>Seattle, WA &nbsp;98115 &nbsp; &nbsp; &nbsp;&nbsp;(206) 526-6317&nbsp;&nbsp; main reception<br><br><a href="mailto:Chris.Barker <at> noaa.gov" target="_blank">Chris.Barker <at> noaa.gov</a>
</div>
</div>
</div></div>
Mark Shannon | 22 May 22:51 2015

PEP 484 (Type Hints) announcement

Hello all,

I am pleased to announce that I am accepting PEP 484 (Type Hints).

Given the proximity of the beta release I thought I would get this 
announcement out now, even though there are some (very) minor details to 
iron out.
(If you want to know the details, it's all at 
https://github.com/ambv/typehinting)

I hope that PEP 484 will be a benefit to all users of Python.
I think the proposed annotation semantics and accompanying module are 
technically sound and I hope that they are socially acceptable to the 
Python community.

I have long been aware that as well as a powerful, sophisticated and 
"production quality" language, Python is also used by many casual 
programmers, and as a language to introduce children to programming.
I also realise that this PEP does not look like it will be any help to 
the part-time programmer or beginner. However, I am convinced that it 
will enable significant improvements to IDEs (hopefully including IDLE), 
static checkers and other tools.
These tools will then help us all, beginners included.

This PEP has been a huge amount of work, involving a lot of people.
So thank you to everyone involved. If I were to list names I would 
inevitably miss someone out. You know who you are.

Finally, if you are worried that this will make Python ugly and turn it 
into some sort of inferior Java, then I share you concerns, but I would 
like to remind you of another potential ugliness; operator overloading.

C++, Perl and Haskell have operator overloading and it gets abused 
something rotten to produce "concise" (a.k.a. line noise) code.
Python also has operator overloading and it is used sensibly, as it 
should be. Why?
It's a cultural issue; readability matters.

Python is your language, please use type-hints responsibly :)

Cheers,
Mark.
Python tracker | 22 May 18:08 2015

Summary of Python tracker Issues


ACTIVITY SUMMARY (2015-05-15 - 2015-05-22)
Python tracker at http://bugs.python.org/

To view or respond to any of the issues listed below, click on the issue.
Do NOT respond to this message.

Issues counts and deltas:
  open    4833 ( -7)
  closed 31194 (+71)
  total  36027 (+64)

Open issues with patches: 2219 

Issues opened (40)
==================

#24147: Dialect class defaults are not documented.
http://bugs.python.org/issue24147  reopened by r.david.murray

#24203: Depreciate threading.Thread.isDaemon etc
http://bugs.python.org/issue24203  opened by anon

#24204: string.strip() documentation is misleading
http://bugs.python.org/issue24204  opened by PhoenixofMT

#24206: Issues with equality of inspect objects
http://bugs.python.org/issue24206  opened by serhiy.storchaka

#24207: Argument Clinic doesn't mangle conflicting names
http://bugs.python.org/issue24207  opened by serhiy.storchaka

#24209: Allow IPv6 bind in http.server
http://bugs.python.org/issue24209  opened by Link Mauve

#24212: Idle, 2.7, backport idlelib.__main__, enable py -m idlelib
http://bugs.python.org/issue24212  opened by terry.reedy

#24214: Exception with utf-8, surrogatepass and incremental decoding
http://bugs.python.org/issue24214  opened by RalfM

#24215: test_trace uses test_pprint
http://bugs.python.org/issue24215  opened by serhiy.storchaka

#24217: O_RDWR undefined in mmapmodule.c
http://bugs.python.org/issue24217  opened by Jeffrey.Armstrong

#24219: Repeated integer in Lexical analysis/Integer literals section
http://bugs.python.org/issue24219  opened by vlth

#24224: test_msilib is inadequate
http://bugs.python.org/issue24224  opened by zach.ware

#24225: Idlelib: changing file names
http://bugs.python.org/issue24225  opened by Al.Sweigart

#24228: Interpreter triggers  segmentation fault  at the starting
http://bugs.python.org/issue24228  opened by mdootb

#24229: pathlib.Path should have a copy() method
http://bugs.python.org/issue24229  opened by jshholland

#24230: tempfile.mkdtemp() doesn't work with bytes paths
http://bugs.python.org/issue24230  opened by durin42

#24231: os.makedirs('/', exist_ok=True) fails on Darwin
http://bugs.python.org/issue24231  opened by mew

#24234: Should we define complex.__complex__ and bytes.__bytes__?
http://bugs.python.org/issue24234  opened by gvanrossum

#24235: ABCs don't fail metaclass instantiation
http://bugs.python.org/issue24235  opened by Devin Jeanpierre

#24238: Avoid entity expansion attacks in Element Tree
http://bugs.python.org/issue24238  opened by vadmium

#24239: Allow to  configure which gpg to use in distutils upload
http://bugs.python.org/issue24239  opened by ced

#24241: webbrowser default browser detection and/or public API for _tr
http://bugs.python.org/issue24241  opened by daves

#24243: behavior for finding an empty string is inconsistent with docu
http://bugs.python.org/issue24243  opened by swanson

#24244: Python exception on strftime with %f on Python 3 and Python 2 
http://bugs.python.org/issue24244  opened by MajeedArni

#24247: "unittest discover" does modify sys.path
http://bugs.python.org/issue24247  opened by redixin

#24249: unittest API for detecting test failure in cleanup/teardown
http://bugs.python.org/issue24249  opened by r.david.murray

#24251: Different behavior for argparse between 2.7.8 and 2.7.9 when a
http://bugs.python.org/issue24251  opened by hhuang

#24252: IDLE removes elements from tracebacks.
http://bugs.python.org/issue24252  opened by ppperry

#24253: pydoc for namespace packages indicates FILE as built-in
http://bugs.python.org/issue24253  opened by Antony.Lee

#24254: Make class definition namespace ordered by default
http://bugs.python.org/issue24254  opened by eric.snow

#24255: Replace debuglevel-related logic with logging
http://bugs.python.org/issue24255  opened by demian.brecht

#24256: threading.Timer is not a class
http://bugs.python.org/issue24256  opened by jrunyon

#24258: BZ2File objects do not have name attribute
http://bugs.python.org/issue24258  opened by jojko.sivek

#24259: tar.extractall() does not recognize unexpected EOF
http://bugs.python.org/issue24259  opened by Thomas Güttler

#24260: TabError behavior doesn't match documentation
http://bugs.python.org/issue24260  opened by abacabadabacaba

#24261: Add a command line flag to suppress default signal handlers
http://bugs.python.org/issue24261  opened by abacabadabacaba

#24263: Why VALID_MODULE_NAME in unittest/loader.py is r'[_a-z]\w*\.py
http://bugs.python.org/issue24263  opened by sih4sing5hong5

#24264: imageop Unsafe Arithmetic
http://bugs.python.org/issue24264  opened by JohnLeitch

#24265: IDLE produces error message when run with both -s and -c.
http://bugs.python.org/issue24265  opened by ppperry

#24266: raw_input function (with readline): Ctrl+C (during search mode
http://bugs.python.org/issue24266  opened by sping

Most recent 15 issues with no replies (15)
==========================================

#24266: raw_input function (with readline): Ctrl+C (during search mode
http://bugs.python.org/issue24266

#24265: IDLE produces error message when run with both -s and -c.
http://bugs.python.org/issue24265

#24264: imageop Unsafe Arithmetic
http://bugs.python.org/issue24264

#24263: Why VALID_MODULE_NAME in unittest/loader.py is r'[_a-z]\w*\.py
http://bugs.python.org/issue24263

#24260: TabError behavior doesn't match documentation
http://bugs.python.org/issue24260

#24259: tar.extractall() does not recognize unexpected EOF
http://bugs.python.org/issue24259

#24258: BZ2File objects do not have name attribute
http://bugs.python.org/issue24258

#24253: pydoc for namespace packages indicates FILE as built-in
http://bugs.python.org/issue24253

#24247: "unittest discover" does modify sys.path
http://bugs.python.org/issue24247

#24239: Allow to  configure which gpg to use in distutils upload
http://bugs.python.org/issue24239

#24238: Avoid entity expansion attacks in Element Tree
http://bugs.python.org/issue24238

#24235: ABCs don't fail metaclass instantiation
http://bugs.python.org/issue24235

#24234: Should we define complex.__complex__ and bytes.__bytes__?
http://bugs.python.org/issue24234

#24224: test_msilib is inadequate
http://bugs.python.org/issue24224

#24214: Exception with utf-8, surrogatepass and incremental decoding
http://bugs.python.org/issue24214

Most recent 15 issues waiting for review (15)
=============================================

#24254: Make class definition namespace ordered by default
http://bugs.python.org/issue24254

#24244: Python exception on strftime with %f on Python 3 and Python 2 
http://bugs.python.org/issue24244

#24238: Avoid entity expansion attacks in Element Tree
http://bugs.python.org/issue24238

#24230: tempfile.mkdtemp() doesn't work with bytes paths
http://bugs.python.org/issue24230

#24225: Idlelib: changing file names
http://bugs.python.org/issue24225

#24219: Repeated integer in Lexical analysis/Integer literals section
http://bugs.python.org/issue24219

#24217: O_RDWR undefined in mmapmodule.c
http://bugs.python.org/issue24217

#24215: test_trace uses test_pprint
http://bugs.python.org/issue24215

#24209: Allow IPv6 bind in http.server
http://bugs.python.org/issue24209

#24206: Issues with equality of inspect objects
http://bugs.python.org/issue24206

#24204: string.strip() documentation is misleading
http://bugs.python.org/issue24204

#24198: please align the platform tag for windows
http://bugs.python.org/issue24198

#24195: Add `Executor.filter` to concurrent.futures
http://bugs.python.org/issue24195

#24165: Free list for single-digits ints
http://bugs.python.org/issue24165

#24164: Support pickling objects with __new__ with keyword arguments w
http://bugs.python.org/issue24164

Top 10 most discussed issues (10)
=================================

#16991: Add OrderedDict written in C
http://bugs.python.org/issue16991  22 msgs

#4709: Mingw-w64 and python on windows x64
http://bugs.python.org/issue4709  18 msgs

#24230: tempfile.mkdtemp() doesn't work with bytes paths
http://bugs.python.org/issue24230  16 msgs

#24244: Python exception on strftime with %f on Python 3 and Python 2 
http://bugs.python.org/issue24244  12 msgs

#24195: Add `Executor.filter` to concurrent.futures
http://bugs.python.org/issue24195  10 msgs

#12319: [http.client] HTTPConnection.request not support "chunked" Tra
http://bugs.python.org/issue12319   9 msgs

#24225: Idlelib: changing file names
http://bugs.python.org/issue24225   9 msgs

#23699: Add a macro to ease writing rich comparisons
http://bugs.python.org/issue23699   8 msgs

#24215: test_trace uses test_pprint
http://bugs.python.org/issue24215   8 msgs

#6598: calling email.utils.make_msgid frequently has a non-trivial pr
http://bugs.python.org/issue6598   7 msgs

Issues closed (61)
==================

#4254: _cursesmodule.c callable update_lines_cols()
http://bugs.python.org/issue4254  closed by r.david.murray

#9858: Python and C implementations of io are out of sync
http://bugs.python.org/issue9858  closed by pitrou

#10170: Relationship between turtle speed setting and actual speed is 
http://bugs.python.org/issue10170  closed by terry.reedy

#15267: tempfile.TemporaryFile and httplib incompatibility
http://bugs.python.org/issue15267  closed by serhiy.storchaka

#15836: unittest assertRaises should verify excClass is actually a Bas
http://bugs.python.org/issue15836  closed by serhiy.storchaka

#16261: Fix bare excepts in various places in std lib
http://bugs.python.org/issue16261  closed by serhiy.storchaka

#18682: [PATCH] remove bogus codepath from pprint._safe_repr
http://bugs.python.org/issue18682  closed by serhiy.storchaka

#18986: Add a case-insensitive case-preserving dict
http://bugs.python.org/issue18986  closed by serhiy.storchaka

#20098: email policy needs a mangle_from setting
http://bugs.python.org/issue20098  closed by r.david.murray

#20438: inspect: Deprecate getfullargspec?
http://bugs.python.org/issue20438  closed by yselivanov

#20596: Support for alternate wcstok syntax for Windows compilers
http://bugs.python.org/issue20596  closed by Jeffrey.Armstrong

#20691: inspect.signature: Consider exposing 'follow_wrapper_chains' o
http://bugs.python.org/issue20691  closed by yselivanov

#21083: Add get_content_disposition() to email.message.Message
http://bugs.python.org/issue21083  closed by r.david.murray

#21800: Implement RFC 6855 (IMAP Support for UTF-8) in imaplib.
http://bugs.python.org/issue21800  closed by r.david.murray

#21804: Implement thr UTF8 command (RFC 6856) in poplib.
http://bugs.python.org/issue21804  closed by r.david.murray

#21931: Nonsense errors reported by msilib.FCICreate for bad argument
http://bugs.python.org/issue21931  closed by python-dev

#22027: RFC 6531 (SMTPUTF8) support in smtplib
http://bugs.python.org/issue22027  closed by r.david.murray

#22107: tempfile module misinterprets access denied error on Windows
http://bugs.python.org/issue22107  closed by serhiy.storchaka

#22155: Out of date code example for tkinter's createfilehandler
http://bugs.python.org/issue22155  closed by terry.reedy

#22804: Can't run Idle in Windows 8 or windows 64
http://bugs.python.org/issue22804  closed by terry.reedy

#23184: Unused imports, variables, file in IDLE
http://bugs.python.org/issue23184  closed by terry.reedy

#23780: Surprising behaviour when passing list to os.path.join.
http://bugs.python.org/issue23780  closed by serhiy.storchaka

#23889: Speedup inspect.Signature.bind
http://bugs.python.org/issue23889  closed by yselivanov

#23898: inspect() changes in Python3.4 are not compatible with objects
http://bugs.python.org/issue23898  closed by yselivanov

#23964: Update README documentation for IDLE tests.
http://bugs.python.org/issue23964  closed by terry.reedy

#23985: Crash when deleting slices from duplicated bytearray
http://bugs.python.org/issue23985  closed by pitrou

#24004: avoid explicit generator type check in asyncio
http://bugs.python.org/issue24004  closed by yselivanov

#24091: Use after free in Element.extend (1)
http://bugs.python.org/issue24091  closed by serhiy.storchaka

#24102: Multiple type confusions in unicode error handlers
http://bugs.python.org/issue24102  closed by serhiy.storchaka

#24127: Fatal error in launcher: Job information querying failed
http://bugs.python.org/issue24127  closed by paul.moore

#24162: [2.7 regression] test_asynchat test failure on i586-linux-gnu
http://bugs.python.org/issue24162  closed by python-dev

#24176: Incorrect parsing of unpacked expressions in call
http://bugs.python.org/issue24176  closed by python-dev

#24180: PEP 492: Documentation
http://bugs.python.org/issue24180  closed by yselivanov

#24190: BoundArguments facility to inject defaults
http://bugs.python.org/issue24190  closed by yselivanov

#24192: unexpected system error with pep420 style namespace packages
http://bugs.python.org/issue24192  closed by eric.snow

#24200: Redundant id in informative reprs
http://bugs.python.org/issue24200  closed by yselivanov

#24205: signature.bind error messages are sub-optimal
http://bugs.python.org/issue24205  closed by yselivanov

#24208: test_inspect leaks temporary directory
http://bugs.python.org/issue24208  closed by serhiy.storchaka

#24210: Tests failed with -Werror
http://bugs.python.org/issue24210  closed by berker.peksag

#24211: Add RFC 6532 support to the email library
http://bugs.python.org/issue24211  closed by r.david.murray

#24213: ProcessPoolExecutor().map() fails following an identical map()
http://bugs.python.org/issue24213  closed by ned.deily

#24216: Typo in bytes.join/bytearray.join documentation
http://bugs.python.org/issue24216  closed by r.david.murray

#24218: Also support SMTPUTF8 in smtplib's send_message method.
http://bugs.python.org/issue24218  closed by r.david.murray

#24220: ast.Call signature changed
http://bugs.python.org/issue24220  closed by willingc

#24221: Clean-up and optimization for heapq siftup() and siftdown()
http://bugs.python.org/issue24221  closed by rhettinger

#24222: Idle 2.7 -c, -r compile with print as function.
http://bugs.python.org/issue24222  closed by terry.reedy

#24223: argparse parsing (mingling --option and optional positional ar
http://bugs.python.org/issue24223  closed by vadmium

#24226: [3.5 Regression] unable to byte-compile the attached IN.py
http://bugs.python.org/issue24226  closed by yselivanov

#24227: IndentationError caused by async / await changes in parser
http://bugs.python.org/issue24227  closed by zach.ware

#24232: Speling fixes
http://bugs.python.org/issue24232  closed by berker.peksag

#24233: Link to getfqdn rather than "see above"
http://bugs.python.org/issue24233  closed by berker.peksag

#24236: TestNG results to Junit results conversion
http://bugs.python.org/issue24236  closed by tusharm

#24237: PEP 479: missing DeprecationWarning when generator_stop is not
http://bugs.python.org/issue24237  closed by yselivanov

#24240: PEP 448: Update the language reference
http://bugs.python.org/issue24240  closed by benjamin.peterson

#24242: property performance regression
http://bugs.python.org/issue24242  closed by rhettinger

#24245: Eliminate do-nothing exception handlers
http://bugs.python.org/issue24245  closed by serhiy.storchaka

#24246: mimetypes.guess_extension returns different values when init()
http://bugs.python.org/issue24246  closed by r.david.murray

#24248: Deprecate inspect.Signature.from_function and from_builtin
http://bugs.python.org/issue24248  closed by yselivanov

#24250: Optimization for strcpy(..., "") in file 'install.c'
http://bugs.python.org/issue24250  closed by benjamin.peterson

#24257: Incorrect use of PyObject_IsInstance
http://bugs.python.org/issue24257  closed by serhiy.storchaka

#24262: logging.FileHandler.close() is not thread-safe
http://bugs.python.org/issue24262  closed by dubglan

ACTIVITY SUMMARY (2015-05-15 - 2015-05-22)
Python tracker at http://bugs.python.org/

To view or respond to any of the issues listed below, click on the issue.
Do NOT respond to this message.

Issues counts and deltas:
  open    4833 ( -7)
  closed 31194 (+71)
  total  36027 (+64)

Open issues with patches: 2219 

Issues opened (40)
==================

#24147: Dialect class defaults are not documented.
http://bugs.python.org/issue24147  reopened by r.david.murray

#24203: Depreciate threading.Thread.isDaemon etc
http://bugs.python.org/issue24203  opened by anon

#24204: string.strip() documentation is misleading
http://bugs.python.org/issue24204  opened by PhoenixofMT

#24206: Issues with equality of inspect objects
http://bugs.python.org/issue24206  opened by serhiy.storchaka

#24207: Argument Clinic doesn't mangle conflicting names
http://bugs.python.org/issue24207  opened by serhiy.storchaka

#24209: Allow IPv6 bind in http.server
http://bugs.python.org/issue24209  opened by Link Mauve

#24212: Idle, 2.7, backport idlelib.__main__, enable py -m idlelib
http://bugs.python.org/issue24212  opened by terry.reedy

#24214: Exception with utf-8, surrogatepass and incremental decoding
http://bugs.python.org/issue24214  opened by RalfM

#24215: test_trace uses test_pprint
http://bugs.python.org/issue24215  opened by serhiy.storchaka

#24217: O_RDWR undefined in mmapmodule.c
http://bugs.python.org/issue24217  opened by Jeffrey.Armstrong

#24219: Repeated integer in Lexical analysis/Integer literals section
http://bugs.python.org/issue24219  opened by vlth

#24224: test_msilib is inadequate
http://bugs.python.org/issue24224  opened by zach.ware

#24225: Idlelib: changing file names
http://bugs.python.org/issue24225  opened by Al.Sweigart

#24228: Interpreter triggers  segmentation fault  at the starting
http://bugs.python.org/issue24228  opened by mdootb

#24229: pathlib.Path should have a copy() method
http://bugs.python.org/issue24229  opened by jshholland

#24230: tempfile.mkdtemp() doesn't work with bytes paths
http://bugs.python.org/issue24230  opened by durin42

#24231: os.makedirs('/', exist_ok=True) fails on Darwin
http://bugs.python.org/issue24231  opened by mew

#24234: Should we define complex.__complex__ and bytes.__bytes__?
http://bugs.python.org/issue24234  opened by gvanrossum

#24235: ABCs don't fail metaclass instantiation
http://bugs.python.org/issue24235  opened by Devin Jeanpierre

#24238: Avoid entity expansion attacks in Element Tree
http://bugs.python.org/issue24238  opened by vadmium

#24239: Allow to  configure which gpg to use in distutils upload
http://bugs.python.org/issue24239  opened by ced

#24241: webbrowser default browser detection and/or public API for _tr
http://bugs.python.org/issue24241  opened by daves

#24243: behavior for finding an empty string is inconsistent with docu
http://bugs.python.org/issue24243  opened by swanson

#24244: Python exception on strftime with %f on Python 3 and Python 2 
http://bugs.python.org/issue24244  opened by MajeedArni

#24247: "unittest discover" does modify sys.path
http://bugs.python.org/issue24247  opened by redixin

#24249: unittest API for detecting test failure in cleanup/teardown
http://bugs.python.org/issue24249  opened by r.david.murray

#24251: Different behavior for argparse between 2.7.8 and 2.7.9 when a
http://bugs.python.org/issue24251  opened by hhuang

#24252: IDLE removes elements from tracebacks.
http://bugs.python.org/issue24252  opened by ppperry

#24253: pydoc for namespace packages indicates FILE as built-in
http://bugs.python.org/issue24253  opened by Antony.Lee

#24254: Make class definition namespace ordered by default
http://bugs.python.org/issue24254  opened by eric.snow

#24255: Replace debuglevel-related logic with logging
http://bugs.python.org/issue24255  opened by demian.brecht

#24256: threading.Timer is not a class
http://bugs.python.org/issue24256  opened by jrunyon

#24258: BZ2File objects do not have name attribute
http://bugs.python.org/issue24258  opened by jojko.sivek

#24259: tar.extractall() does not recognize unexpected EOF
http://bugs.python.org/issue24259  opened by Thomas Güttler

#24260: TabError behavior doesn't match documentation
http://bugs.python.org/issue24260  opened by abacabadabacaba

#24261: Add a command line flag to suppress default signal handlers
http://bugs.python.org/issue24261  opened by abacabadabacaba

#24263: Why VALID_MODULE_NAME in unittest/loader.py is r'[_a-z]\w*\.py
http://bugs.python.org/issue24263  opened by sih4sing5hong5

#24264: imageop Unsafe Arithmetic
http://bugs.python.org/issue24264  opened by JohnLeitch

#24265: IDLE produces error message when run with both -s and -c.
http://bugs.python.org/issue24265  opened by ppperry

#24266: raw_input function (with readline): Ctrl+C (during search mode
http://bugs.python.org/issue24266  opened by sping

Most recent 15 issues with no replies (15)
==========================================

#24266: raw_input function (with readline): Ctrl+C (during search mode
http://bugs.python.org/issue24266

#24265: IDLE produces error message when run with both -s and -c.
http://bugs.python.org/issue24265

#24264: imageop Unsafe Arithmetic
http://bugs.python.org/issue24264

#24263: Why VALID_MODULE_NAME in unittest/loader.py is r'[_a-z]\w*\.py
http://bugs.python.org/issue24263

#24260: TabError behavior doesn't match documentation
http://bugs.python.org/issue24260

#24259: tar.extractall() does not recognize unexpected EOF
http://bugs.python.org/issue24259

#24258: BZ2File objects do not have name attribute
http://bugs.python.org/issue24258

#24253: pydoc for namespace packages indicates FILE as built-in
http://bugs.python.org/issue24253

#24247: "unittest discover" does modify sys.path
http://bugs.python.org/issue24247

#24239: Allow to  configure which gpg to use in distutils upload
http://bugs.python.org/issue24239

#24238: Avoid entity expansion attacks in Element Tree
http://bugs.python.org/issue24238

#24235: ABCs don't fail metaclass instantiation
http://bugs.python.org/issue24235

#24234: Should we define complex.__complex__ and bytes.__bytes__?
http://bugs.python.org/issue24234

#24224: test_msilib is inadequate
http://bugs.python.org/issue24224

#24214: Exception with utf-8, surrogatepass and incremental decoding
http://bugs.python.org/issue24214

Most recent 15 issues waiting for review (15)
=============================================

#24254: Make class definition namespace ordered by default
http://bugs.python.org/issue24254

#24244: Python exception on strftime with %f on Python 3 and Python 2 
http://bugs.python.org/issue24244

#24238: Avoid entity expansion attacks in Element Tree
http://bugs.python.org/issue24238

#24230: tempfile.mkdtemp() doesn't work with bytes paths
http://bugs.python.org/issue24230

#24225: Idlelib: changing file names
http://bugs.python.org/issue24225

#24219: Repeated integer in Lexical analysis/Integer literals section
http://bugs.python.org/issue24219

#24217: O_RDWR undefined in mmapmodule.c
http://bugs.python.org/issue24217

#24215: test_trace uses test_pprint
http://bugs.python.org/issue24215

#24209: Allow IPv6 bind in http.server
http://bugs.python.org/issue24209

#24206: Issues with equality of inspect objects
http://bugs.python.org/issue24206

#24204: string.strip() documentation is misleading
http://bugs.python.org/issue24204

#24198: please align the platform tag for windows
http://bugs.python.org/issue24198

#24195: Add `Executor.filter` to concurrent.futures
http://bugs.python.org/issue24195

#24165: Free list for single-digits ints
http://bugs.python.org/issue24165

#24164: Support pickling objects with __new__ with keyword arguments w
http://bugs.python.org/issue24164

Top 10 most discussed issues (10)
=================================

#16991: Add OrderedDict written in C
http://bugs.python.org/issue16991  22 msgs

#4709: Mingw-w64 and python on windows x64
http://bugs.python.org/issue4709  18 msgs

#24230: tempfile.mkdtemp() doesn't work with bytes paths
http://bugs.python.org/issue24230  16 msgs

#24244: Python exception on strftime with %f on Python 3 and Python 2 
http://bugs.python.org/issue24244  12 msgs

#24195: Add `Executor.filter` to concurrent.futures
http://bugs.python.org/issue24195  10 msgs

#12319: [http.client] HTTPConnection.request not support "chunked" Tra
http://bugs.python.org/issue12319   9 msgs

#24225: Idlelib: changing file names
http://bugs.python.org/issue24225   9 msgs

#23699: Add a macro to ease writing rich comparisons
http://bugs.python.org/issue23699   8 msgs

#24215: test_trace uses test_pprint
http://bugs.python.org/issue24215   8 msgs

#6598: calling email.utils.make_msgid frequently has a non-trivial pr
http://bugs.python.org/issue6598   7 msgs

Issues closed (61)
==================

#4254: _cursesmodule.c callable update_lines_cols()
http://bugs.python.org/issue4254  closed by r.david.murray

#9858: Python and C implementations of io are out of sync
http://bugs.python.org/issue9858  closed by pitrou

#10170: Relationship between turtle speed setting and actual speed is 
http://bugs.python.org/issue10170  closed by terry.reedy

#15267: tempfile.TemporaryFile and httplib incompatibility
http://bugs.python.org/issue15267  closed by serhiy.storchaka

#15836: unittest assertRaises should verify excClass is actually a Bas
http://bugs.python.org/issue15836  closed by serhiy.storchaka

#16261: Fix bare excepts in various places in std lib
http://bugs.python.org/issue16261  closed by serhiy.storchaka

#18682: [PATCH] remove bogus codepath from pprint._safe_repr
http://bugs.python.org/issue18682  closed by serhiy.storchaka

#18986: Add a case-insensitive case-preserving dict
http://bugs.python.org/issue18986  closed by serhiy.storchaka

#20098: email policy needs a mangle_from setting
http://bugs.python.org/issue20098  closed by r.david.murray

#20438: inspect: Deprecate getfullargspec?
http://bugs.python.org/issue20438  closed by yselivanov

#20596: Support for alternate wcstok syntax for Windows compilers
http://bugs.python.org/issue20596  closed by Jeffrey.Armstrong

#20691: inspect.signature: Consider exposing 'follow_wrapper_chains' o
http://bugs.python.org/issue20691  closed by yselivanov

#21083: Add get_content_disposition() to email.message.Message
http://bugs.python.org/issue21083  closed by r.david.murray

#21800: Implement RFC 6855 (IMAP Support for UTF-8) in imaplib.
http://bugs.python.org/issue21800  closed by r.david.murray

#21804: Implement thr UTF8 command (RFC 6856) in poplib.
http://bugs.python.org/issue21804  closed by r.david.murray

#21931: Nonsense errors reported by msilib.FCICreate for bad argument
http://bugs.python.org/issue21931  closed by python-dev

#22027: RFC 6531 (SMTPUTF8) support in smtplib
http://bugs.python.org/issue22027  closed by r.david.murray

#22107: tempfile module misinterprets access denied error on Windows
http://bugs.python.org/issue22107  closed by serhiy.storchaka

#22155: Out of date code example for tkinter's createfilehandler
http://bugs.python.org/issue22155  closed by terry.reedy

#22804: Can't run Idle in Windows 8 or windows 64
http://bugs.python.org/issue22804  closed by terry.reedy

#23184: Unused imports, variables, file in IDLE
http://bugs.python.org/issue23184  closed by terry.reedy

#23780: Surprising behaviour when passing list to os.path.join.
http://bugs.python.org/issue23780  closed by serhiy.storchaka

#23889: Speedup inspect.Signature.bind
http://bugs.python.org/issue23889  closed by yselivanov

#23898: inspect() changes in Python3.4 are not compatible with objects
http://bugs.python.org/issue23898  closed by yselivanov

#23964: Update README documentation for IDLE tests.
http://bugs.python.org/issue23964  closed by terry.reedy

#23985: Crash when deleting slices from duplicated bytearray
http://bugs.python.org/issue23985  closed by pitrou

#24004: avoid explicit generator type check in asyncio
http://bugs.python.org/issue24004  closed by yselivanov

#24091: Use after free in Element.extend (1)
http://bugs.python.org/issue24091  closed by serhiy.storchaka

#24102: Multiple type confusions in unicode error handlers
http://bugs.python.org/issue24102  closed by serhiy.storchaka

#24127: Fatal error in launcher: Job information querying failed
http://bugs.python.org/issue24127  closed by paul.moore

#24162: [2.7 regression] test_asynchat test failure on i586-linux-gnu
http://bugs.python.org/issue24162  closed by python-dev

#24176: Incorrect parsing of unpacked expressions in call
http://bugs.python.org/issue24176  closed by python-dev

#24180: PEP 492: Documentation
http://bugs.python.org/issue24180  closed by yselivanov

#24190: BoundArguments facility to inject defaults
http://bugs.python.org/issue24190  closed by yselivanov

#24192: unexpected system error with pep420 style namespace packages
http://bugs.python.org/issue24192  closed by eric.snow

#24200: Redundant id in informative reprs
http://bugs.python.org/issue24200  closed by yselivanov

#24205: signature.bind error messages are sub-optimal
http://bugs.python.org/issue24205  closed by yselivanov

#24208: test_inspect leaks temporary directory
http://bugs.python.org/issue24208  closed by serhiy.storchaka

#24210: Tests failed with -Werror
http://bugs.python.org/issue24210  closed by berker.peksag

#24211: Add RFC 6532 support to the email library
http://bugs.python.org/issue24211  closed by r.david.murray

#24213: ProcessPoolExecutor().map() fails following an identical map()
http://bugs.python.org/issue24213  closed by ned.deily

#24216: Typo in bytes.join/bytearray.join documentation
http://bugs.python.org/issue24216  closed by r.david.murray

#24218: Also support SMTPUTF8 in smtplib's send_message method.
http://bugs.python.org/issue24218  closed by r.david.murray

#24220: ast.Call signature changed
http://bugs.python.org/issue24220  closed by willingc

#24221: Clean-up and optimization for heapq siftup() and siftdown()
http://bugs.python.org/issue24221  closed by rhettinger

#24222: Idle 2.7 -c, -r compile with print as function.
http://bugs.python.org/issue24222  closed by terry.reedy

#24223: argparse parsing (mingling --option and optional positional ar
http://bugs.python.org/issue24223  closed by vadmium

#24226: [3.5 Regression] unable to byte-compile the attached IN.py
http://bugs.python.org/issue24226  closed by yselivanov

#24227: IndentationError caused by async / await changes in parser
http://bugs.python.org/issue24227  closed by zach.ware

#24232: Speling fixes
http://bugs.python.org/issue24232  closed by berker.peksag

#24233: Link to getfqdn rather than "see above"
http://bugs.python.org/issue24233  closed by berker.peksag

#24236: TestNG results to Junit results conversion
http://bugs.python.org/issue24236  closed by tusharm

#24237: PEP 479: missing DeprecationWarning when generator_stop is not
http://bugs.python.org/issue24237  closed by yselivanov

#24240: PEP 448: Update the language reference
http://bugs.python.org/issue24240  closed by benjamin.peterson

#24242: property performance regression
http://bugs.python.org/issue24242  closed by rhettinger

#24245: Eliminate do-nothing exception handlers
http://bugs.python.org/issue24245  closed by serhiy.storchaka

#24246: mimetypes.guess_extension returns different values when init()
http://bugs.python.org/issue24246  closed by r.david.murray

#24248: Deprecate inspect.Signature.from_function and from_builtin
http://bugs.python.org/issue24248  closed by yselivanov

#24250: Optimization for strcpy(..., "") in file 'install.c'
http://bugs.python.org/issue24250  closed by benjamin.peterson

#24257: Incorrect use of PyObject_IsInstance
http://bugs.python.org/issue24257  closed by serhiy.storchaka

#24262: logging.FileHandler.close() is not thread-safe
http://bugs.python.org/issue24262  closed by dubglan

Gmane