Stefan Behnel added the comment:
FWIW, I second Raymond's opposition against a new option. It's really not
something that users should care about. Instead of us providing a new "sort or
not" option, and people adding it (conditionally!) to their code to "fix"
p
Stefan Behnel added the comment:
Ned, would it solve your problem to write a helper function that walks the tree
and sorts the attrib dicts? That would also work in all existing CPython
versions (because they already sort attributes anyway), for both ElementTree
and lxml, and you wouldn
Stefan Behnel added the comment:
Something like this:
def sort_attributes(root):
for el in root.iter():
attrib = el.attrib
if len(attrib) > 1:
attribs = sorted(attrib.items())
attrib.clear()
attrib.update(attr
Stefan Behnel added the comment:
:) The coolest thing about it is: it's not a hack at all. It's simply making
use of the new feature in a suitable way.
--
___
Python tracker
<https://bugs.python.o
Stefan Behnel added the comment:
Victor, as much as I appreciate backwards compatibility, I really don't think
it's a big deal in this case. In fact, it might not even apply.
My (somewhat educated) gut feeling is that most users simply won't care or
won't even notic
Change by Stefan Behnel :
--
nosy: +scoder
___
Python tracker
<https://bugs.python.org/issue36346>
___
___
Python-bugs-list mailing list
Unsubscribe:
Stefan Behnel added the comment:
Thanks for implementing this, Serhiy.
Since these C macros are public, should they be named PY_* ?
--
___
Python tracker
<https://bugs.python.org/issue36
Stefan Behnel added the comment:
I think this is a good preparation that makes it clear what code will
eventually be removed, and allows testing without it.
No idea how happy Windows users will be about all of this, but I consider it
quite an overall improvement for the Unicode
Stefan Behnel added the comment:
I had also looked through the unrelated changes, and while, yes, they are
unrelated, they seemed to be correct and reasonable modernisations of the code
base while touching it. They could be moved to a separate PR, but there is a
relatively high risk of
Stefan Behnel added the comment:
I concur with Serhiy that the bug is in OpenCV (or its parser project), and
that it is best solved there. Otherwise, we would create a dependency on a
future/recent Python version for exporting XML to it
Stefan Behnel added the comment:
As a work-around, you can provide your own XML declaration (or not) and pass
"xml_declaration=False" into ElementTree.write() to prevent it from adding one.
UTF-8 encoded XML is ok without such a d
Stefan Behnel added the comment:
Yes, this case is incorrect. Pretty printing should not change character
content inside of a simple tag.
The PR looks good to me.
--
versions: +Python 3.8
___
Python tracker
<https://bugs.python.org/issue36
Stefan Behnel added the comment:
I don't think this should be backported. Pretty-printing is not a production
relevant feature, more of a "debugging, diffing and help users see what they
get" kind of feature. It's good to have it fixed for the future, but we
shouldn
Stefan Behnel added the comment:
It's currently implemented as a positional argument, not a keyword argument.
Thus the "/" at the end of the signature in the help text. That also suggests
that it was a conscious decision, not an oversight. Personally, I'd also prefer
it
Stefan Behnel added the comment:
Yes, duplicate of issue34637.
--
___
Python tracker
<https://bugs.python.org/issue36491>
___
___
Python-bugs-list mailin
Stefan Behnel added the comment:
Thanks to the discussion that rhettinger triggered on python-dev, it seems that
there is a majority accordance for considering the previous ordering "undefined
but deterministic" rather than "sorted", and for making the change from
&qu
New submission from Stefan Behnel :
I recently read a paper¹ about the difficulty of calculating the most exact
midpoint between two floating point values, facing overflow, underflow and
rounding errors. The intention is to assure that the midpoint(a,b) is
- actually within the interval [a,b
Stefan Behnel added the comment:
I buy the YAGNI argument and won't fight for this. Thanks for your input.
--
resolution: -> rejected
stage: -> resolved
status: open -> closed
___
Python tracker
<https://bugs.pyth
Stefan Behnel added the comment:
Seems like a reasonable request to me, even if it hasn't been touched or
re-requested for years.
Funny enough, DocumentFragment is currently documented as "not implemented" (as
for Entity, Notation, CDATASection, CharacterData, DO
Change by Stefan Behnel :
--
keywords: +patch
pull_requests: +12604
stage: -> patch review
___
Python tracker
<https://bugs.python.org/issue9883>
___
___
Py
Change by Stefan Behnel :
--
nosy: +scoder
___
Python tracker
<https://bugs.python.org/issue34396>
___
___
Python-bugs-list mailing list
Unsubscribe:
Stefan Behnel added the comment:
This is done now. Thanks everyone who helped in discussing and implementing
this change.
I will leave Serhiy's last PR (adding the "sort_attrs" flag option) open for a
while until I'm sure we have a better solution for comparing XML in 3.
Stefan Behnel added the comment:
New changeset ffca16e25a70fd44a87b13b379b5ec0c7a11e926 by Stefan Behnel (Bernt
Røskar Brenna) in branch 'master':
bpo-36227: ElementTree.tostring() default_namespace and xml_declaration
arguments (GH-12225)
https://github.com/python/cpyt
Stefan Behnel added the comment:
New changeset e9927e1820caea01e576141d9a623ea394d43dad by Stefan Behnel in
branch 'master':
bpo-30485: support a default prefix mapping in ElementPath by passing None as
prefix (#1823)
https://github.com/python/cpyt
Stefan Behnel added the comment:
I've merged the PR. It matches the implementation that has been released in
lxml almost two years ago.
--
resolution: -> fixed
stage: -> resolved
status: open -> closed
versions: +Python 3
Stefan Behnel added the comment:
Thank you for you contribution.
--
components: +XML
resolution: -> fixed
stage: patch review -> resolved
status: open -> closed
___
Python tracker
<https://bugs.python.or
Stefan Behnel added the comment:
PR looks good to me. Doesn't look critical enough for a backport, though.
--
nosy: +scoder
versions: -Python 3.6, Python 3.7
___
Python tracker
<https://bugs.python.org/is
Stefan Behnel added the comment:
New changeset 929b70473829f04dedb8e802abcbd506926886e1 by Stefan Behnel
(Mickaël Schoentgen) in branch 'master':
bpo-31658: Make xml.sax.parse accepting Path objects (GH-8564)
https://github.com/python/cpython/commit/929b70473829f04dedb8e802abcbd5
Change by Stefan Behnel :
--
resolution: -> fixed
stage: patch review -> resolved
status: open -> closed
___
Python tracker
<https://bugs.python.or
Stefan Behnel added the comment:
Thanks for your contribution.
--
___
Python tracker
<https://bugs.python.org/issue31658>
___
___
Python-bugs-list mailin
Stefan Behnel added the comment:
The intended interface seems to be to change .name rather than .localName, so
yes, that should be documented somewhere.
The implementation seems a bit funny in that a "self._localName", if set, takes
precedence, but there doesn't seem to be
Change by Stefan Behnel :
--
pull_requests: +12755
___
Python tracker
<https://bugs.python.org/issue30485>
___
___
Python-bugs-list mailing list
Unsubscribe:
Stefan Behnel added the comment:
Interesting. Thanks for investigating this. It looks like the script
"appxmanifest.py" uses an empty string as prefix for a lookup:
File "D:\a\1\s\PC\layout\support\appxmanifest.py", line 407, in
get_appxmanifest
node = xml.find(
Stefan Behnel added the comment:
The script seems to generally assume that "" is a good representation for "no
prefix", i.e. the default namespace, although that is IMHO more correctly
represented as None. It's not very likely that this is the only script out
there t
Stefan Behnel added the comment:
New changeset 3c5a858ec6a4e5851903762770fe526a46d3c351 by Stefan Behnel in
branch 'master':
bpo-30485: Re-allow empty strings in ElementPath namespace mappings since they
might actually be harmless and unused (and thus went undetected previously)
Stefan Behnel added the comment:
lxml has a couple of nice features here:
- all tags in a namespace: "{namespace}*"
- a local name 'tag' in any (or no) namespace: "{*}tag"
- a tag without namespace: "{}tag"
- all tags without namespace: "{}*
Stefan Behnel added the comment:
I rejected the (now conflicting) PR that adds a sorting option.
I also sent Victor a tentative (and trivial) patch for the pungi package.
--
___
Python tracker
<https://bugs.python.org/issue34
Change by Stefan Behnel :
--
pull_requests: +12784
stage: needs patch -> patch review
___
Python tracker
<https://bugs.python.org/issue30485>
___
___
Python-
Stefan Behnel added the comment:
I submitted a PR that changes the API back to an empty string. While lxml uses
None here, an all-strings mapping is simply more convenient. I will start
supporting both in lxml from the next release.
Comments welcome
Stefan Behnel added the comment:
New changeset e8113f51a8bdf33188ee30a1c038a298329e7bfa by Stefan Behnel in
branch 'master':
bpo-30485: Change the prefix for defining the default namespace in ElementPath
from None to '' since there is existing code that uses that and i
New submission from Stefan Behnel :
The TreeBuilder in xml.etree.ElementTree ignores comments and processing
instructions. It should at least have a way to pass them through, even if there
is not currently a way to append comments and PIs to the tree when they appear
*outside* of the root
Stefan Behnel added the comment:
This is related to issue9521 but not a strict duplicate, because fixing that
would require actually adding comments and PIs to the tree when they are not
within the root element. When they are, it's in line with the current tree
model and this change wi
Change by Stefan Behnel :
--
keywords: +patch
pull_requests: +12808
stage: needs patch -> patch review
___
Python tracker
<https://bugs.python.org/issu
Change by Stefan Behnel :
--
nosy: +eli.bendersky, serhiy.storchaka
___
Python tracker
<https://bugs.python.org/issue36673>
___
___
Python-bugs-list mailin
New submission from Stefan Behnel :
The XMLPullParser has 'start-ns' and 'end-ns' events, but the parser targets
don't see them. They should have "start_ns()" and "end_ns()" callback methods
to allow namespace prefix aware parsing.
--
as
Change by Stefan Behnel :
--
title: Make TreeBuilder aware of namespace prefixes -> Make ET.XMLParser target
aware of namespace prefixes
___
Python tracker
<https://bugs.python.org/issu
Change by Stefan Behnel :
--
pull_requests: +12811
___
Python tracker
<https://bugs.python.org/issue36673>
___
___
Python-bugs-list mailing list
Unsubscribe:
Change by Stefan Behnel :
--
keywords: +patch
pull_requests: +12810
stage: -> patch review
___
Python tracker
<https://bugs.python.org/issue36676>
___
___
Py
Change by Stefan Behnel :
--
nosy: +eli.bendersky, serhiy.storchaka
stage: patch review ->
___
Python tracker
<https://bugs.python.org/issue36676>
___
___
Py
Stefan Behnel added the comment:
Instead of always copying the dict in create_new_element(), we should make sure
that all code that calls that function (directly or indirectly) does so with a
safely owned dict. If that means that we need to add dict copying in some other
place, then that
Stefan Behnel added the comment:
Given that this has probably been like this forever, and thus provably doesn't
hurt very much, I would argue that it's not worth fixing this in Py3.7. Not
sure about Py2.7, but I think the answer there should be a no, too.
--
stage: ->
Stefan Behnel added the comment:
We should not add anything to the implementation that we consider legacy
elsewhere. Py3 has "always" used the C accelerator module instead of the Python
implementation, which suggests that its interface is probably the righter one.
So: make sur
Stefan Behnel added the comment:
Turns out, it was not that easy. :-/
ElementTree lacks prefixes in its tree model, so they would have to be either
registered globally (via register_namespace()) or come from the parser. I tried
the latter since that is the most generic way when the input is
Change by Stefan Behnel :
--
keywords: +patch
pull_requests: +12893
stage: needs patch -> patch review
___
Python tracker
<https://bugs.python.org/issu
Stefan Behnel added the comment:
I implemented (most of) C14N 2.0 in issue 13611. Please give it a try if you
are interested in the canonical serialisation feature. I would like to include
it in Py3.8.
--
___
Python tracker
<ht
Stefan Behnel added the comment:
Comment/PI parsing in general is implemented in issue 36673. Note that there is
currently no way to represent comments and PIs in the tree when they appear
outside of the root element, which I think is what this ticket is about. After
issue 36673 is resolved
Stefan Behnel added the comment:
It took me a couple of minutes longer to submit it, but it's there now. :)
I'm aware that there is a lot of new code involved, covering really three new
features, which makes reviewing it a non-trivial task. I personally think it's
ready to g
Change by Stefan Behnel :
--
nosy: -scoder
___
Python tracker
<https://bugs.python.org/issue36735>
___
___
Python-bugs-list mailing list
Unsubscribe:
Stefan Behnel added the comment:
Since "new_child" is inserted at least into a new place, it needs to be removed
from its old place as well, so that part seems correct. The problem description
does not make it clear whether or not "old_child" is handled correctly, but
Stefan Behnel added the comment:
Make sure you use CFLAGS that limit the amount of debug data in the binaries.
"-g1" in gcc should be enough to get stack traces on crashes, while reducing
the binaries quite considerably compared to the default. "-g0" will give
another v
Stefan Behnel added the comment:
Ticket 24287 is a duplicate of this one and has some additional discussion.
--
___
Python tracker
<https://bugs.python.org/issue9
Change by Stefan Behnel :
--
resolution: -> duplicate
stage: -> resolved
status: open -> closed
___
Python tracker
<https://bugs.python.org/issue28460>
___
___
Change by Stefan Behnel :
--
superseder: -> xml.etree.ElementTree skips processing instructions when parsing
___
Python tracker
<https://bugs.python.org/issu
Stefan Behnel added the comment:
I was referring to issue 28238 and issue 30485.
--
___
Python tracker
<https://bugs.python.org/issue18304>
___
___
Python-bug
Stefan Behnel added the comment:
This is a tricky decision. lxml, for example, validates user input, but that's
because it has to process it anyway and does it along the way directly on input
(and very efficiently in C code). ET, on the other hand, is rather lenient
about what it a
Stefan Behnel added the comment:
This is a duplicate of 9521, but it's difficult to say which ticket is better.
--
___
Python tracker
<https://bugs.python.org/is
Stefan Behnel added the comment:
Coming back to this issue after a while, I think it's still a relevant problem
in some use cases. However, it's not currently clear what an improved solution
would look like. The fully qualified tag names in Clark notation are long,
sure, but also
Change by Stefan Behnel :
--
resolution: -> fixed
stage: patch review -> resolved
status: open -> closed
versions: -Python 3.6
___
Python tracker
<https://bugs.python.or
Stefan Behnel added the comment:
Issue 24287 is a duplicate of this one and has some additional discussion.
--
___
Python tracker
<https://bugs.python.org/issue9
Stefan Behnel added the comment:
Closing as outdated / third-party.
--
nosy: +scoder
stage: -> resolved
status: open -> closed
___
Python tracker
<https://bugs.python.org/i
Change by Stefan Behnel :
--
Removed message: https://bugs.python.org/msg340994
___
Python tracker
<https://bugs.python.org/issue9521>
___
___
Python-bugs-list m
Stefan Behnel added the comment:
I'll close this as a duplicate of issue 34160.
I'm aware that you also proposed to reduce the text escaping, but it's still
needed for attribute values. Not sure if it's really worth having two different
escape functions. Feel free to pro
Stefan Behnel added the comment:
This ticket looks like it's done for 3.7/8. Can it be closed?
I guess 3.6 isn't relevant anymore, right?
--
___
Python tracker
<https://bugs.python.o
Stefan Behnel added the comment:
I don't think there is a need for a close() method. Instead, the iterator
should close the file first thing when it's done with it, but only if it owns
it. Therefore, the fix in issue 25688 seems correct.
Closing can also be done explicitly in a fi
Stefan Behnel added the comment:
Closing as a duplicate of the more general issue 18304.
--
resolution: -> duplicate
stage: -> resolved
status: open -> closed
superseder: -> ElementTree -- provide a way to ignore namespace in tags a
Stefan Behnel added the comment:
Yes, comment text should be escaped internally like all other text, not by the
user. The same applies to processing instructions.
This suggests that it's probably also untested currently. Could you provide a
PR for that changes both and adds
Stefan Behnel added the comment:
Let's not change this in Py2 anymore.
--
resolution: -> wont fix
stage: -> resolved
status: open -> closed
___
Python tracker
<https://bugs.pyth
Stefan Behnel added the comment:
New changeset 50fed0b64faa305338ef5607b570fe209de6 by Stefan Behnel (Gordon
P. Hemsley) in branch 'master':
bpo-32424: Improve test coverage for xml.etree.ElementTree (GH-12891)
https://github.com/python/cpyt
Change by Stefan Behnel :
--
keywords: +patch
pull_requests: +12919
stage: needs patch -> patch review
___
Python tracker
<https://bugs.python.org/issu
Stefan Behnel added the comment:
PR submitted, feedback welcome.
--
assignee: -> scoder
type: behavior -> enhancement
___
Python tracker
<https://bugs.python.org/i
Stefan Behnel added the comment:
BTW, I found that lxml and ET differ in their behaviour when searching for '*'.
ET takes it as meaning "any tree node", whereas lxml interprets it as "any
Element". Since ET's parser does not create comments and processing
Stefan Behnel added the comment:
Playing around with it a bit more, I ended up changing the interface of the
canonicalize() function to return its output as a string by default. It's
really nice to be able to say
c14n_xml = canonicalize(plain_xml)
To write to a file, you now do
Stefan Behnel added the comment:
> I personally think it's ready to go into the last alpha release
Since I didn't get any negative comments or requests for deferral, I'll merge
this today to get the feature into the last (still unreleased) alpha. We still
have the bet
Stefan Behnel added the comment:
Thanks for testing, Zackery. I resolved the reference leaks. They were already
in the PR for issue 36676. Both PRs updated.
--
___
Python tracker
<https://bugs.python.org/issue13
Stefan Behnel added the comment:
New changeset 43851a202cabce1e6be699e7177735c778b6697e by Stefan Behnel in
branch 'master':
bpo-36673: Implement comment/PI parsing support for the TreeBuilder in
ElementTree. (#12883)
https://github.com/python/cpyt
Change by Stefan Behnel :
--
resolution: -> fixed
stage: patch review -> resolved
status: open -> closed
___
Python tracker
<https://bugs.python.or
Stefan Behnel added the comment:
New changeset dde3eebdaa8d2c51971ca704d53af7cbcda8bb34 by Stefan Behnel in
branch 'master':
bpo-36676: Namespace prefix aware parsing support for the ET.XMLParser target
(GH-12885)
https://github.com/python/cpyt
Stefan Behnel added the comment:
New changeset e1d5dd645d5f59867cb0ad63179110f310cbca89 by Stefan Behnel in
branch 'master':
bpo-13611: C14N 2.0 implementation for ElementTree (GH-12966)
https://github.com/python/cpython/commit/e1d5dd645d5f59867cb0ad63179110
Change by Stefan Behnel :
--
resolution: -> fixed
stage: -> resolved
status: open -> closed
___
Python tracker
<https://bugs.python.org/issue36676>
___
___
Change by Stefan Behnel :
--
resolution: -> fixed
stage: patch review -> resolved
status: open -> closed
___
Python tracker
<https://bugs.python.or
Change by Stefan Behnel :
--
pull_requests: -12811
___
Python tracker
<https://bugs.python.org/issue36673>
___
___
Python-bugs-list mailing list
Unsubscribe:
Change by Stefan Behnel :
--
pull_requests: +12971
___
Python tracker
<https://bugs.python.org/issue13611>
___
___
Python-bugs-list mailing list
Unsubscribe:
Stefan Behnel added the comment:
Ok, I think it's reasonable to make the resource management explicit for the
specific case of letting iterparse() open the file. That suggests that there
should also be context manager support, given that safe usages would often
involve a try-finally.
Stefan Behnel added the comment:
New changeset 0d5864fa07ab4f03188c690a5eb07bdd1fd1cb9c by Stefan Behnel in
branch 'master':
bpo-13611: Include C14N 2.0 test data in installation (GH-13053)
https://github.com/python/cpython/commit/0d5864fa07ab4f03188c690a5eb07b
Stefan Behnel added the comment:
A buildbot failure made me notice that the test files were not part of the
CPython installation yet, so I added them. I also took the opportunity to add a
README file that describes where they come from and under which conditions they
were originally
Stefan Behnel added the comment:
I'm generally ok with such APIs. It seems needless to require
@lru_cache()
def f(): ...
when a simple decorator would suffice. I think I might decide otherwise in
cases where almost all usages require arguments, but if the no-arguments case
is c
Change by Stefan Behnel :
--
pull_requests: +12972
___
Python tracker
<https://bugs.python.org/issue13611>
___
___
Python-bugs-list mailing list
Unsubscribe:
Stefan Behnel added the comment:
> Maybe complete Doc/license.rst?
Thanks, done.
--
___
Python tracker
<https://bugs.python.org/issue13611>
___
___
Python-
Change by Stefan Behnel :
--
resolution: -> fixed
stage: patch review -> resolved
status: open -> closed
___
Python tracker
<https://bugs.python.or
Stefan Behnel added the comment:
New changeset 47541689ccea79dfcb055c6be5800b13fcb6bdd2 by Stefan Behnel in
branch 'master':
bpo-28238: Implement "{*}tag" and "{ns}*" wildcard tag selection support for
ElementPath, and extend the surrounding tests and docs.
501 - 600 of 1287 matches
Mail list logo