R. David Murray added the comment:
Thanks for being willing to work on this, but smtpd is deprecated in favor of
aiosmtpd (which is not part of the stdlib). smtpd should really only be used
for internal stdlib testing, but it is retained for backward compatibility
reasons.
All of these
R. David Murray added the comment:
It is documented as deprecated, but only in the 'seealso' note at the top. I
think it would be reasonable to open an issue to add an actual 'deprecated'
ReST tag to the docs.
For your 1 and 2, the stdlib smtpd forwarding is also
R. David Murray added the comment:
The mailman proxy has been abandoned for a long time now, so no fixes there. I
have some sympathy to fixing PureProxy, but since the stdlib itself doesn't use
it, not a lot :)
At some point we will start cleaning up old code (probably a while after 2
R. David Murray added the comment:
Actually, thinking about it some more, you are right. If PureProxy doesn't at
least function according to the current docs it should either be fixed or we
should deprecate-and-remove it in 3.8 or 3.9 (depending on how strongly people
feel abou
R. David Murray added the comment:
Yes, the correct solution would be to write an actual parser for headers
containing message ids. All the pieces needed to do this already exist in
_header_value_parser, it "just" needs a function that glues them together in
the right order, and
R. David Murray added the comment:
There has been considerable rewriting of the header handling code since I filed
this. I would not be surprised if the issue is no longer valid. If you want
to double check, look for the places that the headers attribute is created in
the various handlers
R. David Murray added the comment:
I'm neutral on fixing versus removing philosophically. Since fixing is actually
the least effort in this case, I think practically I favor fixing.
--
___
Python tracker
<https://bugs.python.org/is
R. David Murray added the comment:
I'm closing this in favor of #35799 because someone has to first make a
remove-or-fix decision, which is mentioned there.
--
resolution: -> duplicate
stage: patch review -> resolved
status: open -> closed
superseder: -&
Change by R. David Murray :
--
nosy: -r.david.murray
___
Python tracker
<https://bugs.python.org/issue20767>
___
___
Python-bugs-list mailing list
Unsubscribe:
R. David Murray added the comment:
That is correct folding. The word is too long to fit within the 78 character
default if put on the same line as the label, but does fit on a line by itself.
If Outlook can't understand such a header it is even more broken than I thought
it was :( Yo
R. David Murray added the comment:
Also note that you might want to switch to the new API, the folder it uses is
smarter, although in this case I think it will produce the same result because
it is the "best" rendering of the header under the cir
R. David Murray added the comment:
The rules are: lines should be less than 78 characters; and that lines may be
broken only at FWS (folding whitespace), not in the middle of words. Putting
these rules together, you get the result that the email library produces.
"Conservative in wha
R. David Murray added the comment:
Well, "display" in the context of email includes looking at the raw email
serialized as a text file. This is something one can do in most mailers. I use
nmh as my mailer, which only shows raw headers, so I myself would be personally
affected
R. David Murray added the comment:
Since Address itself renders it correctly (str(address)), the problem is going
to take a bit of digging to find. I'm guessing the quoted_string atom is
getting transformed incorrectly into something else at some point during the
fo
R. David Murray added the comment:
I'm afraid I don't have time to parse through the file you uploaded. Can you
produce a pull request or a diff showing your fix? And ideally some added
tests :) But whatever you can do is great, if you don't have time maybe
someone else
Change by R. David Murray :
--
versions: -Python 3.6
___
Python tracker
<https://bugs.python.org/issue34464>
___
___
Python-bugs-list mailing list
Unsubscribe:
R. David Murray added the comment:
Correct. Tests are good, it's the fix I was rejecting.
--
___
Python tracker
<http://bugs.python.org/issue16355>
___
___
R. David Murray added the comment:
It works fine for me. If I write the data to a file (using print) and look at
it with vi, I see your expected string with <81> on the end. It also works
fine in my console (which otherwise produces mostly unknown character glyphs;
I'm using a
R. David Murray added the comment:
Have you tried '-' plus any other character? argparse treats '-' and '--'
specially, and this is a known issue.
--
nosy: +r.david.murray
___
Python tracker
<
R. David Murray added the comment:
I disagree, I think a __json__ protocol is sensible. But this is why it needs
to be discussed on python-dev or python-ideas first :) In the meantime adding
deque support like we added enum support is reasonable, but IMO we shouldn't go
to crazy a
R. David Murray added the comment:
If Raymond is on the side of skipping the deprecation than I'm good with it.
Like I said, this is a marginal case.
--
___
Python tracker
<http://bugs.python.org/is
R. David Murray added the comment:
Thanks for the report and PR, but your fix is not obviously correct. In
general exceptions are the way in Python that errors are reported, and asking
for extra_info on a closed stream is an error. The exception raised is not
clear, so perhaps the asyncio
R. David Murray added the comment:
This has already been discussed and rejected (issue 14403). In practice the
distinction between a failure and an error is not useful, and a comment in the
test is IMO clearer than a no-op context manager: you can use a positive
sentence instead of the
R. David Murray added the comment:
See msg253287. Someone should check the RFC. It is not obvious that just
encoding using utf8 is correct; fundamentally passwords are binary data. But
the auth methods don't currently accept binary data. UTF8 is a reasonable
default these days, I
R. David Murray added the comment:
If you use smtplib.send_message in python3, it will do what you want (including
stripping BCC headers before sending the message).
If someone wants to create a PR to add an example of what Eric is talking about
(specifying additional senders in
R. David Murray added the comment:
Thanks for the PR. However, rereading this: since compat32 is providing
backward compatibility with the behavior of the python 3.2 email package, we
need to check what it would do in this situation before changing the behavior.
What we may need instead is
R. David Murray added the comment:
So what happens when you do that same operation in 3.5/6 with your change in
place? Does the behavior change? (I haven't looked back at the code to see if
I think it will :)
--
___
Python tracker
R. David Murray added the comment:
OK. This looks good to me. I haven't figured out the new commit process,
though (like how to do misc news and backports), so I'm not going to be the one
to merge it, I'm afraid. At least not until I do fin
R. David Murray added the comment:
I don't see how adding a constant increases the complexity of the API.
--
___
Python tracker
<http://bugs.python.org/is
New submission from R. David Murray:
http://bugs.python.org/issue24622 made reminded me that a while back we added
tests for the keyword module that includes a test that if you run it, you get
the result that is checked in. The same thing could be done for the token.py
module. And then we
R. David Murray added the comment:
The cross check test itself doesn't depend on a regeneration, but it does
depend on the information in token.h. Meanwhile the validity of *that* is
checked by regeneration in your test_token tests. This is exactly what I had
in mind :).
So, I haven
R. David Murray added the comment:
Easier, but if we do it in the tool, then it is done for everyone and they
don't *each* have to spend that "less time" writing their own script. And
--indent and --compact are both useful for debugging/hand testing, since it
allows you to gen
R. David Murray added the comment:
A warning is not appropriate (we reserve those for things that are security
related, pretty much). A sentence might be, though. For example, we could
change the initial discussion of the run function to say:
This does not capture stdout or stderr by
R. David Murray added the comment:
Decorators are called with the decorated *function* objection when the class is
compiled. There can be no instance involved by their very nature, since the
instance doesn't exist yet. So no, you can't have a decorator that affects
instance att
R. David Murray added the comment:
It is interesting that in all the years smtplib has been in use, this is the
first time (as far as I know) this has been reported as a problem. I don't see
any reason to object to changing it to send the commands in upper case, but the
server yo
R. David Murray added the comment:
On the other hand, the current mixed case sending found a bug in your code, so
it has some value. I'm neither in favor nor in objection to the change, at
this point.
--
___
Python tracker
<http://bugs.py
R. David Murray added the comment:
Agreed with Terry. The general policy in Python is that we let errors bubble
up unless there is a good reason to do something else with them. And errors
that bubble up are not, in general, documented. (In short, Python is not Java
:)
--
nosy
R. David Murray added the comment:
Yes, that looks wrong to me. IMO it should be returning a new function object,
not updating the __code__ of the existing object. I couldn't figure when that
is actually triggered, though.
There are also some other oddnesses, given the definiti
R. David Murray added the comment:
Oops, I didn't meant to close this.
--
resolution: not a bug ->
stage: resolved ->
status: closed -> open
___
Python tracker
<http://bugs.pyth
R. David Murray added the comment:
Let's retitle this, then.
--
nosy: +r.david.murray
title: string.Template: Add PHP-style variable expansion example ->
string.Template: Rewrite docs to emphasize i18n use case
___
Python tracke
R. David Murray added the comment:
Looking over the PR, and especially in the context of Serhiy's point about this
being about 'deep copy' and not 'deepcopy', I think this would be clearer if it
were shortened even further, to just:
"Because deep copy copies eve
R. David Murray added the comment:
See also issue 29922.
--
nosy: +Tadhg McDonald-Jensen, yselivanov
___
Python tracker
<http://bugs.python.org/issue25
R. David Murray added the comment:
This is a specific example of the general problem reported in issue 25538.
--
nosy: +r.david.murray
resolution: -> duplicate
stage: -> resolved
status: open -> closed
superseder: -> Traceback from __exit__ method i
R. David Murray added the comment:
He's still going to get an error using your code, Christian. But if he knows
that the file being gone is OK, he can catch and ignore the error. Having exit
do the unlink wouldn't help him; in that case he'd have to wrap the whole
'w
R. David Murray added the comment:
His problem is that the file has already been deleted by the time the
subprocess returns, so the unlink is going to raise an exception.
--
___
Python tracker
<http://bugs.python.org/issue29
R. David Murray added the comment:
"raw" and "byte" are one syllable names, and thus as easy and more meaningful
to say than "r-string" or "b-string". "unicode string" is more descriptive and
not much longer, but "u-string" does occa
R. David Murray added the comment:
New changeset 0ae7c8bd614d3aa1fcaf2d71a10ff1148c80d9b5 by R. David Murray (Amit
Kumar) in branch 'master':
bpo-16011 clarify that 'in' always returns a boolean value
https://github.com/python/cpython/commit/0ae7c8bd614d3aa1fcaf
Changes by R. David Murray :
--
stage: needs patch -> backport needed
___
Python tracker
<http://bugs.python.org/issue10379>
___
___
Python-bugs-list mai
Changes by R. David Murray :
--
stage: backport needed -> needs patch
___
Python tracker
<http://bugs.python.org/issue10379>
___
___
Python-bugs-list mai
R. David Murray added the comment:
Thanks,
--
stage: patch review -> backport needed
___
Python tracker
<http://bugs.python.org/issue16011>
___
___
Python-
R. David Murray added the comment:
New changeset 1cf93a76c2cf307f2e1e514a8944864f746337ea by R. David Murray
(Garvit Khatri) in branch 'master':
bpo-10379: add 'monetary' to format_string, deprecate format
https://github.com/python/cpython/commit/1cf93a76c2cf307f2e1e
R. David Murray added the comment:
Oops. I merged the patch without coming back here first :(. Still getting
used to the new workflow.
It turns out that format has a parameter, monetary, that isn't supported by
format_string. So what we did was add that parameter to format_strin
R. David Murray added the comment:
Agreed with Brett. What I was trying to say was that we aren't going to get
people to change to a different term, nor are the other 'x-string'
abbreviations interesting, so we should document just f-string. But I wasn't
exactly clear th
R. David Murray added the comment:
If you want to be completely unambiguous, you could say "keyword argument
names". "keyword argument" appears to mean different things in different
contexts; sometimes it means the name and the value together, sometimes one or
the other
R. David Murray added the comment:
I think I'm missing something here. What prevents one from passing a factory
function as the RequestHandlerClass argument? In Python, a class name *is* a
factory function for class instances.
--
nosy: +r.david.m
R. David Murray added the comment:
Well, we could document it as a factory argument, and explain that the argument
name is an historical artifact.
--
___
Python tracker
<http://bugs.python.org/issue29
R. David Murray added the comment:
Given how old socket server is, and that it doesn't actually require that API,
we should probably just reword the documentation so that it is clear that
RequestHandlerClass is the default Handler implementation (and that you can
work with setup/handle/f
R. David Murray added the comment:
Yes, the difficulty in renaming the parameter was why I suggested a doc change
only. I'm not sure it it is worth it to go through a deprecation cycle for
socketserver to change the name, though it certainly would be nice. Martin and
I could make
R. David Murray added the comment:
Yes, that's exactly right. 'time' is a low-level os-function wrapper, and
inherits many of the deficiencies of the platform. datetime attempts to be a
more comprehensive, portable solution. (But even it has its quirks...timez
R. David Murray added the comment:
I think you meant "the language reference" rather than "the devguide". The
sentence about the comment is redundant with the preceding line that says that
the thing that results in a join is a physical line that ends with a backslash
(
R. David Murray added the comment:
I also have no idea what your comment about stripping white space is in
reference to ;)
--
___
Python tracker
<http://bugs.python.org/issue29
R. David Murray added the comment:
I don't see any omission, myself. Keep in mind that the language reference is
as much or more of a specification as it is a reference, so we tend to try to
use the minimum language that precisely describes the expected behavior. Which
is why I sugg
New submission from R. David Murray:
create_connection will try multiple times to connect if there are multiple
addresses returned by getaddrinfo. If all connections file it inspects the
exceptions, and raises the first one if they are all equal. But since the
addresses are often different
R. David Murray added the comment:
If all connections fail (not file :)
--
___
Python tracker
<http://bugs.python.org/issue29980>
___
___
Python-bugs-list mailin
R. David Murray added the comment:
Agreed. Time to close this.
--
resolution: -> not a bug
stage: needs patch -> resolved
status: open -> closed
___
Python tracker
<http://bugs.python.o
R. David Murray added the comment:
The documentation is technically correct, as far as I can see. Issue 8743 is
not about disallowing certain comparison operations, but rather incorrectly
implementing the earlier sentence in that same doc section: "If the comparison
is undefined, it
R. David Murray added the comment:
I'm not surprised that trying to render a message parsed with 'headersonly'
fails. headersonly treats the entire message body as a single string payload.
I'm not sure what the correct behavior should be for the email package, but the
fa
R. David Murray added the comment:
I consciously decided not to backport this to 2.7 at the time, though I'm not
sure I said that out loud. I think it is too much of a behavior change for 2.7.
--
resolution: -> rejected
stage: -> resolved
status: ope
R. David Murray added the comment:
Actually, looking at the issue related to the patch, we conferred at the time,
Barry, and decided on no backports. It was applied only to default. Sijian:
the reason we put the issue number in the commit message is because the issue
often contains relevant
R. David Murray added the comment:
I don't think this is really a bug, I think it's a consequence of the different
byte/string models of python2 and python3 coupled with the different
binary/text models of posix and windows.
--
nosy: +r.da
R. David Murray added the comment:
I suspect you just need to add pickle support to your class. When I subclassed
str in the email package, I found I needed to do that. I'd have to go through
the docs again to remember how the code works, but you can take a look at the
BaseHeader cla
R. David Murray added the comment:
This is a clever idea, but I vote -1 for this proposal. I think it makes
attrgetter more complex for little purpose. The fact that only some attribute
names work and the others get mangled makes the API very ugly and not, IMO,
desirable.
Finally, if you
R. David Murray added the comment:
I'm not sure about using argparse. Currently the demo uses no imports. I'm
not strongly against, though.
Did you mean __init__ instead of __new__? Also, its value could be made True
and False instead of 0 and 1. (Which tells you how old th
R. David Murray added the comment:
Yes, this sub-optimal, but it's the way it works in the legacy API, and we
aren't going to change the legacy (compat32) API at this point. The new
policies and the new API in python3 handle this sensibly.
--
resolution: -> out
R. David Murray added the comment:
Yeah, I was wondering if part of the demo was to show something that can be
done with no library support...but that probably isn't the case.
--
___
Python tracker
<http://bugs.python.org/is
R. David Murray added the comment:
This appears to be a problem in the new API as well. I don't think we can
change the legacy API because its been that way forever and applications might
be depending on it (that is, the library preserves exactly what it is handed,
and an application
R. David Murray added the comment:
Actually, I think the fix would go in the generator, not in the contentmanager,
but it's been long enough since I've worked on the code that I'm not sure.
--
___
Python tracker
<http://bugs.pyt
R. David Murray added the comment:
That is true for text/ types, yes. The policy is named after the target
wire protocol, and if you are transmitting an email message over SMTP, that
implies MIME. What to do if you are not sending it over SMTP, though, is a
tougher question. One could
Changes by R. David Murray :
--
versions: -Python 2.7
___
Python tracker
<http://bugs.python.org/issue30032>
___
___
Python-bugs-list mailing list
Unsubscribe:
Changes by R. David Murray :
--
components: +email
___
Python tracker
<http://bugs.python.org/issue30032>
___
___
Python-bugs-list mailing list
Unsubscribe:
R. David Murray added the comment:
The API exists in python3.5 and python3.4 as well, it was just provisional.
Very few things changed between the provisional version and the final version
in 3.6.
--
___
Python tracker
<http://bugs.python.
R. David Murray added the comment:
Huh. I ran something like that test and thought I saw the reverse. I guess I
misread my terminal. Looking at the code, set_content does take care to fix
the line ending according to the policy before doing the encoding.
--
resolution: -> out
R. David Murray added the comment:
There is, however, an issue that if you pass a message with the default policy
to the generator and specify SMTP as the policy, it doesn't *recode* the line
endings. I thought there was an open issue for that, but I can't find it.
One solution w
R. David Murray added the comment:
In my experience CSV files with fields with embedded newlines are pretty
common. I don't really think we want to support invalid CSV files.
--
nosy: +r.david.murray
___
Python tracker
<http://bugs.py
R. David Murray added the comment:
Well, ETL is semi-standardized. Try dealing with csv files exported from excel
spreadsheets written by non-programmers :)
"e"X is not a quoting the csv module will produce, but I don't think it is a
csv error. insofar as csv has a standard,
R. David Murray added the comment:
I've worked on an application (proprietary, unfortunately) that created a lot
of empty dictionaries that only sometimes got populated. It involved
sqlalchemy, but I don't remember if the dicts came from sqlalchemy itself or
from the code that used
R. David Murray added the comment:
Sorry, but I no longer have access to that application (I'm a consultant, and
the owner is no longer a client).
--
___
Python tracker
<http://bugs.python.org/is
R. David Murray added the comment:
Numpy is not part of the python standard library. You should report this issue
to the numpy bug tracker, which appears to be here:
https://github.com/numpy/numpy/issues. Or perhaps first ask the numpy
community if this is really a bug: the new version
R. David Murray added the comment:
If a warning is causing iPython to hang, there is something seriously wrong
with iPython. A warning is just a message written to stderr, it doesn't affect
the execution of the program.
The json module does not natively support datetime, so whatev
R. David Murray added the comment:
In case it wasn't clear: I seriously doubt that iPython is hanging due to the
warning, I think something else must be happening and the warning is a red
herring.
--
___
Python tracker
<http://bugs.py
R. David Murray added the comment:
The python standard library makes extensive use of duck typing. Duck typing is
a pretty fundamental part of the design of Python, IMO. Even the ABC module
does a bunch of duck typing, rather than requiring strict subclassing or
registration.
I think the
R. David Murray added the comment:
I don't believe that warning message is generated by the python standard
library. I can't find it in the codebase, and I can't think of any context in
which we'd have a reason to g
R. David Murray added the comment:
As for the filterwarnings, If you can come up with a demonstration of a problem
that does not involve third party code, please open a new issue with the
reproducer.
--
___
Python tracker
<http://bugs.python.
R. David Murray added the comment:
Yes, but the way deprecation warnings work is that there is a stacklevel
specified, and the line reported in the error is that number of steps back up
the call stack from where the warning was actually issued. The json module
doesn't natively h
R. David Murray added the comment:
I thought something like that might be the problem with your attempt to
suppress the warnings. A library really should not call a global state
function such as filterwarnings, that should be done only by the application.
You might want to file a bug report
R. David Murray added the comment:
Agreed that it looks like another example line should be added to the help for
this case.
--
nosy: +r.david.murray
stage: -> needs patch
versions: +Python 3.7 -Python 3.3, Python 3.4, Python 3.5
___
Python trac
R. David Murray added the comment:
Because passing a sequence to shell=True won't work on unix. It only works
more-or-less by accident on windows, even though the current docs kind of
encourage it. Yes, I think it would be good if these sentences were clarified.
See also issue
R. David Murray added the comment:
Honestly, given the open questions my inclination would be to reject this.
--
___
Python tracker
<http://bugs.python.org/issue22
R. David Murray added the comment:
Note the subtlety here on unix:
rdmurray@pydev:~/python/p36[3.6]>cat temp.sh
#!/bin/bash
echo $0
echo $1
>>> subprocess.call(['./temp.sh', 'spam', 'eggs'], shell=True)
./temp.sh
0
>>> subprocess.c
R. David Murray added the comment:
Woops, cut and paste error, there should have been an "echo $2" line in that
script as well.
--
___
Python tracker
<http://bugs.python.o
3001 - 3100 of 10554 matches
Mail list logo