[issue18624] Add alias for iso-8859-8-i which is the same as iso-8859-8
Change by David Goncalves : -- nosy: +dpg nosy_count: 8.0 -> 9.0 pull_requests: +30340 pull_request: https://github.com/python/cpython/pull/32279 ___ Python tracker <https://bugs.python.org/issue18624> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue12387] IDLE save keyboard shortcut problem
Change by David Goncalves : -- nosy: +dpg nosy_count: 9.0 -> 10.0 pull_requests: +30316 pull_request: https://github.com/python/cpython/pull/32245 ___ Python tracker <https://bugs.python.org/issue12387> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue14911] generator.throw() documentation inaccurate
Change by David Goncalves : -- nosy: +dpg nosy_count: 6.0 -> 7.0 pull_requests: +30282 pull_request: https://github.com/python/cpython/pull/32207 ___ Python tracker <https://bugs.python.org/issue14911> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue47087] Implement PEP 655 (Required/NotRequired)
Change by David Foster : -- nosy: +David Foster ___ Python tracker <https://bugs.python.org/issue47087> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue47060] importlib.metadata.version can return None
New submission from David Robertson : Originally written up at the typeshed repo: https://github.com/python/typeshed/issues/7513. The conclusion was that this is a bug in the implementation rather than an incorrect annotation. To my surprise, I discovered in https://github.com/matrix-org/synapse/issues/12223 that it is possible for `importlib.metadata.version(...)` to return `None`. To reproduce this: 1. Create a new virtual environment. I'm using CPython 3.10.2 as my interpreter. 2. Within the venv, `pip install bottle`. (Any package will do; I choose `bottle` because it's small and doesn't have any dependencies). 3. Check importlib reports the `version` of `bottle`: ```python >>> import importlib.metadata as m >>> m.version('bottle') '0.12.19' ``` 4. Here's the dirty bit: remove the metadata files for that package but keep the metadata directory. - Use `pip show bottle` to find the `site-packages` location - From there, remove all files in the `bottle-VERSION-.dist-info` directory: `rm /path/to/site-packages/bottle-VERSION.dist-info/*'. 5. The `version` of `bottle` is now judged to be `None`: ```python >>> import importlib.metadata as m >>> m.version("bottle") is None True ``` `pip show bottle` now determines that `bottle` isn't installed: ```shell $ pip show bottle WARNING: Package(s) not found: bottle ``` As well as importlib.metadata.version, importlib.metadata.Distribution.version and importlib.metadata.Distribution.name return None in this situation. I couldn't see any suggestion in the stdlib docs (https://docs.python.org/3.10/library/importlib.metadata.html#distribution-versions) that this was possible. (Aside: it'd be great if the docs mention that PackageNotFoundError is raised if a package is not installed.) No-one in their right mind should do step 4 willingly, but I have seen it happen in the wild (https://github.com/matrix-org/synapse/issues/12223). We suspected a botched backup or similar was to blame. I'm not familiar with all the machinery of Python package management, but I think I'd expect there to be a PackageNotFoundError raised in this situation? (I can imagine a package that doesn't declare its version, where `version()` returning `None` might make sense; but that feels odd.) Is the behaviour as intended? It looks like this might be related to https://github.com/python/importlib_metadata/issues/371? -- components: Library (Lib) messages: 415516 nosy: David Robertson priority: normal severity: normal status: open title: importlib.metadata.version can return None type: behavior versions: Python 3.10 ___ Python tracker <https://bugs.python.org/issue47060> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue46954] Awaiting multiple times on same task increases memory usage unboundedly
New submission from David M. : Awaiting multiple times on a single task that failed with an exception results in an unbounded increase in memory usage. Enough repeated "await"s of the task can result in an OOM. The same pattern on a task that didn't raise an exception behaves as expected. The attached short script ends up using more than 1GB of memory in less than a minute. -- components: asyncio files: multi_await_exception.py messages: 414739 nosy: asvetlov, davidmanzanares, yselivanov priority: normal severity: normal status: open title: Awaiting multiple times on same task increases memory usage unboundedly versions: Python 3.10, Python 3.11, Python 3.7, Python 3.8, Python 3.9 Added file: https://bugs.python.org/file50664/multi_await_exception.py ___ Python tracker <https://bugs.python.org/issue46954> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue17505] [doc] email.header.Header.__unicode__ does not decode header
R. David Murray added the comment: The policy is named 'default' because it was intended to become the default two feature releases after the new email code became non-provisional (first: deprecate not specifying an explicit policy, next release make default the default policy and make the deprecation only cover compat32). However, for various reasons that switchover did not happen (one big factor being my reduced time spent doing python development). It can happen any time someone steps forward to guide it through the release process. -- ___ Python tracker <https://bugs.python.org/issue17505> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue46731] posix._fcopyfile flags addition
New submission from David CARLIER : Exposing more flags for direct calls, shutil fastcopy still only using COPYFILE_DATA one. -- components: Library (Lib) messages: 413137 nosy: devnexen priority: normal pull_requests: 29459 severity: normal status: open title: posix._fcopyfile flags addition versions: Python 3.11 ___ Python tracker <https://bugs.python.org/issue46731> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue46719] Call not visited in ast.NodeTransformer
New submission from David Castells-Rufas : If I create a class derived from ast.NodeTransformer and implement the visit_Call. When run on the below code, the visit_Call function is only called once (for the print function, and not for ord). It looks like calls in function arguments are ignored. def main(): print(ord('A')) On the other hand, on the following code it correctly visits both functions (print and ord). def main(): c = org('A') print(c) -- components: Library (Lib) messages: 413069 nosy: davidcastells priority: normal severity: normal status: open title: Call not visited in ast.NodeTransformer type: behavior versions: Python 3.10, Python 3.7, Python 3.8, Python 3.9 ___ Python tracker <https://bugs.python.org/issue46719> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue46696] socketmodule add Linux SO_INCOMING_CPU constant
New submission from David CARLIER : Adding Linux's SO_INCOMING_CPU constant for setsockopt. -- components: +Library (Lib) keywords: +patch message_count: None -> 1.0 pull_requests: +29407 stage: -> patch review title: socketmodule add Linux SO_INCOMING_CPU constasn -> socketmodule add Linux SO_INCOMING_CPU constant type: -> enhancement pull_request: https://github.com/python/cpython/pull/31237 ___ Python tracker <https://bugs.python.org/issue46696> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue46696] socketmodule add Linux SO_INCOMING_CPU constasn
Change by David CARLIER : -- nosy: devnexen priority: normal severity: normal status: open title: socketmodule add Linux SO_INCOMING_CPU constasn ___ Python tracker <https://bugs.python.org/issue46696> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue46658] shutil Lib enables sendfile on solaris for regular files
New submission from David CARLIER : - sendfile on solaris supports copy between regular file descriptors as well. -- components: Library (Lib) messages: 412643 nosy: devnexen priority: normal pull_requests: 29338 severity: normal status: open title: shutil Lib enables sendfile on solaris for regular files versions: Python 3.11 ___ Python tracker <https://bugs.python.org/issue46658> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue46475] typing.Never and typing.assert_never
Change by David Foster : -- nosy: +David Foster ___ Python tracker <https://bugs.python.org/issue46475> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue46497] IDLE macOS shortcut ctrl+S doesn’t work for show completions
David Contreras added the comment: I disabled the default ^space in macOS settings>Keyboard>Shortcuts>Input Sources>Select the Previous input source (^space) After doing that ^space works on IDLE, nonetheless the menu shows ^S which is not ^space. -- Added file: https://bugs.python.org/file50596/IDLE edit menu.jpg ___ Python tracker <https://bugs.python.org/issue46497> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue46497] IDLE macOS shortcut ctrl+S doesn’t work for show completions
Change by David Contreras : -- assignee: -> terry.reedy components: +IDLE nosy: +terry.reedy type: -> behavior versions: +Python 3.10, Python 3.9 ___ Python tracker <https://bugs.python.org/issue46497> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue43333] utf8 in BytesGenerator
R. David Murray added the comment: Yeah, I think we need a complete example here. Note that in the general case there is no such thing as an RFC-valid email in unicode (which is what python strings are), though with utf8=True and an email involving only text you might get away with it. I assume you've tried policy=policy.default.clone(utf=True) when creating the email? It will probably help to encode the 'text' to utf8 and use message_from_bytes to read it, but that may not be your only problem. It depends on exactly what is in the message and how the message gets recorded in your XML whether this is even going to work in the general case. The xml conversion may have already lost information, but hopefully not. -- ___ Python tracker <https://bugs.python.org/issue4> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue46497] IDLE macOS shortcut ctrl+S doesn’t work for show completions
New submission from David Contreras : I noticed that selecting Edit>Show Completions works as expected on Python 3.10.2 and macOS 12.1 after issue 40128 was resolved. But trying the default keyboard shortcut ctrl+S only highlights the edit menu but doesn't work. I understand that it's supposed to be ctrl+space because that's how it works on windows and it also works in macOS after disabling the default behavior for ctrl+space but this doesn't highlight the edit menu. On the original issue this behavior was also described but now the issue is closed and the behavior is the same. So ctrl+S highlights the edit menu but doesn’t show completions and ctrl+space shows completions but has a conflict with the default macOS keyboard shortcuts and is not the shortcut specified on the edit menu and it doesn’t highlight it. -- messages: 411441 nosy: dvd101x priority: normal severity: normal status: open title: IDLE macOS shortcut ctrl+S doesn’t work for show completions ___ Python tracker <https://bugs.python.org/issue46497> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue46071] Graphlib documentation (edge direction)
Change by David Mc Dougall : -- stage: patch review -> resolved status: open -> closed ___ Python tracker <https://bugs.python.org/issue46071> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue46466] help function reads comments
Change by David Mc Dougall : -- nosy: -dam1784 ___ Python tracker <https://bugs.python.org/issue46466> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue46466] help function reads comments
New submission from David Mc Dougall : My inline comment ('#') got picked up by the help command. Write the following code to a file (I named it "reproducer.py"): """ class Foo: # Hello docstring, I'm a '#' comment! def bar(self): pass assert Foo.bar.__doc__ is None help(Foo.bar) """ The bug only happens when the file is executed. $ python3 reproducer.py Help on function bar in module __main__: bar(self) # Hello docstring, I'm a '#' comment! Evaluating it at the interactive prompt does not reproduce the bug. $ cat reproducer.py | python3 Help on function bar in module __main__: bar(self) -- messages: 411218 nosy: dam1784 priority: normal severity: normal status: open title: help function reads comments type: behavior versions: Python 3.8 ___ Python tracker <https://bugs.python.org/issue46466> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue46204] Graphlib documentation (general cleanup)
Change by David Mc Dougall : -- resolution: -> wont fix stage: patch review -> resolved status: open -> closed ___ Python tracker <https://bugs.python.org/issue46204> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue46071] Graphlib documentation (edge direction)
Change by David Mc Dougall : -- nosy: -dam1784 ___ Python tracker <https://bugs.python.org/issue46071> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue46071] Graphlib documentation (edge direction)
David Mc Dougall added the comment: > It seems David places more value on the idea of the concrete mapping > "pointing forwards" with respect to the abstract directed graph, while it > seems Tim places more value on the idea of the abstract mapping direction > corresponding to the final static order. These two goals are in conflict, > assuming we don't want to change the behavior. Yes, that's right. But the good news is that if you're willing to rewrite all of the documentation you probably can explain this in a clear and simple way, and without breaking compatibility. I say *you* because I'm not going to argue with you all about this anymore, especially with Tim being... --- Tim: you're conflating the words "predecessors" and "dependency". In some contexts they can be synonymous, but they are not the same thing. * Predecessor refers to one of the sides of a directed edge. * Dependency refers to a semantic relationship between two of the users' things. > The only possible topsort [...] For which see absolutely any text defining > the terms. >From wiki: "Precisely, a topological sort is a graph traversal in which each >node v is visited only after all its dependencies are visited." This definition doesn't say anything about the "predecessors" or how the graph is stored, or anything about "edge direction". I like this definition. > that's not a matter of preference, it's just plain wrong I know that there are many different ways to represent a graph, but your graph format *is just plain wrong.* Goodbye -- ___ Python tracker <https://bugs.python.org/issue46071> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue46071] Graphlib documentation (edge direction)
David Mc Dougall added the comment: No, the code works fine. I just wish the docs weren't so muddled. I wish the docs started by saying: > The graph is a dict of {'start_node': ['end_nodes',]} > The topological sorter puts the end_nodes before their start_nodes. [note: this is what the code currently does] Then the docs could introduce and use different terminology: "tasks" and their "dependencies". Everyone understands what those are. And nowhere does it need to say the word "predecessors". But honestly, I think I'm going to throw in the towel and give up on this endeavor. -- ___ Python tracker <https://bugs.python.org/issue46071> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue46071] Graphlib documentation (edge direction)
David Mc Dougall added the comment: I can post literally hundreds of examples of directed graphs that are traversable in the forward direction. This might be the only one which is *only* traversable backwards. > As to the meaning of "point to" Here is one: If I have a pointer in memory, I might represent that with an arrow, Like: ADDRESS -> VALUE Or if I have a dictionary I might write: KEY -> VALUE But in the graph the edges are directed the opposite way: KEY <- VALUE The edges in the graph point in the opposite direction as the underlying memory pointers. This is unexpected and confusing. -- ___ Python tracker <https://bugs.python.org/issue46071> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue46071] Graphlib documentation (edge direction)
David Mc Dougall added the comment: > you're not actually confused. I was when I first read it! > the meanings of "predecessor" and "successor" are universally agreed upon I disagree. The universally agreed upon terms are "directed edge u -> v". It's not obvious if the "predecessor" should be the start or the end point of the edge, and this is why the docs explicitly state the edge direction: > If the optional graph argument is provided it must be a dictionary > representing a directed acyclic graph where the keys are nodes and the values > are iterables of all [...] the nodes that have edges that point to the value > in the key. -- ___ Python tracker <https://bugs.python.org/issue46071> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue46071] Graphlib documentation (edge direction)
David Mc Dougall added the comment: > The argument passed is the predecessor form of the graph B -> A where graph = {'A' : ['B']} This is part that I'm objecting to. The form of the graph should be A -> B, not B -> A. The issue with the current form is that you can not traverse the graph, at least not forwards. When I say traverse forwards I mean that you follow the edges in the direction of the arrows. If you look up 'A' in the current graph you get all of the nodes that point *to* A, but that doesn't help you get *from* A to anywhere else. There are two conventions: 1) Graphs should be traverse-able, by following the arrows. 2) Topological sorting makes the arrows point to the right. Convention #1 was broken to satisfy convention #2. What is important about the topo-sort is that it makes all of the edges point in the *same* direction. It doesn't actually matter which direction that is. And credit where due, the library picked the more-useful direction. It was a pragmatic choice, driven by the real use case of dependency resolution. But having the graph with arrows pointing in the wrong direction is going to cause endless confusion. For an example of the confusion this causes, look at the API itself. The "add" method explicitly calls out the fact that you can add nodes with no predecessors. This is obviously also possible with the graph argument as it currently is. > It is possible to add a node with no dependencies (predecessors is not > provided) https://docs.python.org/3/library/graphlib.html#graphlib.TopologicalSorter.add -- ___ Python tracker <https://bugs.python.org/issue46071> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue46071] Graphlib documentation (edge direction)
David Mc Dougall added the comment: > If the way the user collects their data stores only successor links (which, > as above, seems odd in applications that actually use topsorts), then they > need something like this instead: Actually they only need to do this: ts = TopologicalSorter(my_forward_graph).static_order() ts = reversed(ts) I think part of the issue here is that the document uses two terms to describe the same thing: "predecessor" and "edge-direction". Everywhere it discusses predecessors it gets it right, but the edge direction is hopelessly confused because they tried to use the "normal" definition of topo-sort and the only way to make that work is to also reverse the direction of the graph's edges to compensate (and the two reversals cancel each other out). The edge direction is only mentioned twice in the whole document, once to define topo-sort and again to define the graph format. If the users problem fits into the task dependency paradigm, then this library makes a lot of sense. But for users who just have a directed graph, the documentation is really really confusing. I think it would be much better if the document explained that this was a "reversed" topological sort with a slightly different definition, and used a "bog standard" graph format like for example in this tutorial: https://www.python.org/doc/essays/graphs/ -- ___ Python tracker <https://bugs.python.org/issue46071> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue46071] Graphlib documentation (edge direction)
David Mc Dougall added the comment: The "reverse-toposort" is actually quite a good idea. The end-user is usually going to want to iterate over the sorted output in the "reverse" order anyways, especially if they're doing task ordering / dependency resolution. Also, the underlying algorithm produces the "reverse" ordering by default. In my experience from writing and using my own topological sorting programs using the "correct" definition: the toposorter reverses the list, and then the users iterates over it in reverse order. -- ___ Python tracker <https://bugs.python.org/issue46071> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue46392] MessageIDHeader is too strict for message-id
R. David Murray added the comment: The general idea is that the string version of the header should contain all of the original information, but the parsed elements (the things returned by special header attributes) will contain the valid data, if any. So if the string version of the header is being truncated or transformed (other than whitespace changes during re-folding), that is a bug. Your examples involve comment fields, and I'm afraid that my development of the parser stopped before I did very much with comments. Therefore I am not surprised that comments are handled incorrectly :( :( They aren't very common in the wild, as far as I was able to tell. which is why they were my last priority. -- ___ Python tracker <https://bugs.python.org/issue46392> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue46392] MessageIDHeader is too strict for message-id
R. David Murray added the comment: Note that the parser does attempt to accept obsolete syntax (registering defects for it), so if there is a bug in the implementation of the obsolete syntax handling it should be fixed. And yes, there have been other bugs with whitespace handling in the parser, unfortunately. Examples would be most helpful, even if you don't write unit tests. Most of the tests, by the way, are in test__header_value_parser (search for message_id). There aren't very many, so more would be good. -- ___ Python tracker <https://bugs.python.org/issue46392> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue24711] Document getpass.getpass behavior on ^C
David Lord added the comment: Meant to say that "done" shows up on the same line, not the shell prompt. An earlier version of my example was in the REPL, where its prompt *does* show up on the same line. -- ___ Python tracker <https://bugs.python.org/issue24711> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue24711] Document getpass.getpass behavior on ^C
David Lord added the comment: I can reproduce this on Python 3.10. Actually, `input` and `getpass` both seem to have this behavior now. Please reopen it. ```python import getpass try: getpass.getpass("in: ") except: pass print("done") ``` ``` $ python example.py getpass: ^D done $ ``` Run this and press `Ctrl+D` or `Ctrl+C`. The shell prompt appears on the same line rather than the next line. -- nosy: +davidism ___ Python tracker <https://bugs.python.org/issue24711> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue46398] posixshmem module shm_rename freebsd support.
New submission from David CARLIER : - Adding shm_rename (from FreeBSD 13) to be able to move a shared memory block from one location to another. -- ___ Python tracker <https://bugs.python.org/issue46398> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue46398] posixshmem module shm_rename freebsd support.
Change by David CARLIER : -- components: FreeBSD nosy: devnexen, koobs, vstinner priority: normal pull_requests: 28825 severity: normal status: open title: posixshmem module shm_rename freebsd support. type: enhancement ___ Python tracker <https://bugs.python.org/issue46398> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue33178] Add support for BigEndianUnion and LittleEndianUnion in ctypes
David Goncalves added the comment: Any core developers available to review this PR? -- ___ Python tracker <https://bugs.python.org/issue33178> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue46357] socket module fix warning build on FreeBSD
Change by David CARLIER : -- stage: -> resolved status: open -> closed ___ Python tracker <https://bugs.python.org/issue46357> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue46357] socket module fix warning build on FreeBSD
David CARLIER added the comment: I get what you mean now I thought memset was enough. -- ___ Python tracker <https://bugs.python.org/issue46357> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue46357] socket module fix warning build on FreeBSD
David CARLIER added the comment: I took as initialized to avoid undefined behavior rather than anything. -- ___ Python tracker <https://bugs.python.org/issue46357> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue46357] socket module fix warning build on FreeBSD
New submission from David CARLIER : - Solves the "Make sure new member of socket address initialized." warning for the bluetooth sockaddr_l2cap usage. -- components: FreeBSD messages: 410419 nosy: devnexen, koobs priority: normal pull_requests: 28761 severity: normal status: open title: socket module fix warning build on FreeBSD type: compile error versions: Python 3.11 ___ Python tracker <https://bugs.python.org/issue46357> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue46341] duplicate paragraphs - asyncio Coroutines and Tasks file
Change by David : -- assignee: docs@python components: Documentation nosy: davem, docs@python priority: normal pull_requests: 28731 severity: normal status: open title: duplicate paragraphs - asyncio Coroutines and Tasks file versions: Python 3.10 ___ Python tracker <https://bugs.python.org/issue46341> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue12756] datetime.datetime.utcnow should return a UTC timestamp
R. David Murray added the comment: Note also that datetime.now() gives you a naive datetime. From an API consistency standpoint I think it makes sense that datetime.utcnow() gives a naive datetime. It would actually be confusing (IMO) for it to return an aware datetime. I can see why you might disagree, but backward compatibility wins in this case regardless. -- ___ Python tracker <https://bugs.python.org/issue12756> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue46222] posixmodule sendfile FreeBSD's constants update
New submission from David CARLIER : Adding SF_NOCACHE and little note for SF_MNOWAIT. -- components: FreeBSD messages: 409465 nosy: devnexen, koobs priority: normal pull_requests: 28542 severity: normal status: open title: posixmodule sendfile FreeBSD's constants update versions: Python 3.11 ___ Python tracker <https://bugs.python.org/issue46222> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue46207] Log emit performance degradation in RotatingFileHandlers due to filesystem checks
New submission from David Fritz : I believe this also impacts 3.10 and 3.11 based on the original bpo-45401 which led to this change. Prior to commit ac421c348b in the 3.9 branch there were no additional os.path checks in the shouldRollover() methods of RotatingFileHandler and TimedRotatingFileHandler, which led to maximum performance regardless of where log files existed. With the new "os.path.exists(self.baseFilename) and not os.path.isfile(self.baseFilename)" checks added to these functions, a varying performance degradation is seen if the log lives on a filesystem that is not a local disk. It is hard for me to strictly call this a "regression", since I understand the reason of the original change (only rollover regular files), but I feel this is something developers should be aware of, or possibly have a way to disable (without making their own subclass) since this cost was not incurred before. For example, let's say we have user home folders as mounts via S3FS, and each user has a log stored in their home folders. Since there are now os.path checks on every single emit call, performance of logging is now directly impacted by networking latency if using one of these native logging handlers. This came as quite a surprise when upgrading to 3.9.8+, when operations that were previously taking ~2 seconds were now taking ~2 1/2 minutes. This is reproducible (once you have a similar external filesystem mounted) using the following script (also attached): # vi logtest.py import logging import logging.handlers logging.basicConfig(filename="test.log", level=logging.INFO) logger = logging.getLogger("test_logger") log_handler = logging.handlers.TimedRotatingFileHandler("test.log", when='D', backupCount=2) logger.addHandler(log_handler) for i in range(0, 1): logger.info("iteration: %d", i) As seen between the commits, cost spikes due to the new calls (double the amount of log emit calls): $ time /build_397/bin/python3 -m cProfile logtest.py |awk '$5>0.00' ...[truncated output to highest percall items]... ncalls tottime percall cumtime percall filename:lineno(function) 12/10.0000.0000.5490.549 {built-in method builtins.exec} # 3.9.7_d57d33c234 (no posix.stat calls) 12/10.0000.000 70.125 70.125 {built-in method builtins.exec} # 3.9.7_ac421c348b 20100 68.9720.003 68.9720.003 {built-in method posix.stat}# 3.9.7_ac421c348b This performance degradation is further compounded if for example you have logging being performed inside threads, where locks have to be obtained. This is actually how I noticed it originally, because I was attempting to use the cProfile module to find what was taking so long. I ended up testing several python versions to make sure I was not crazy, before identifying the exact commit where the change in performance occurred. ncalls tottime percall cumtime percall filename:lineno(function) 670.6610.0100.6610.010 {method 'acquire' of '_thread.lock' objects} # 3.7.8 671.2370.0181.2370.018 {method 'acquire' of '_thread.lock' objects} # 3.9.0 671.2930.0191.2930.019 {method 'acquire' of '_thread.lock' objects} # 3.9.4 670.7560.0110.7560.011 {method 'acquire' of '_thread.lock' objects} # 3.9.6 671.2180.0181.2180.018 {method 'acquire' of '_thread.lock' objects} # 3.9.7 67 152.4112.275 152.4112.275 {method 'acquire' of '_thread.lock' objects} # 3.9.8 67 152.3822.274 152.3822.274 {method 'acquire' of '_thread.lock' objects} # 3.9.9 Ultimately I do not have a recommendation for a native fix that keeps both the improvement from the commit, and the performance from before the commit. Perhaps caching the results of the checks until there is a rollover? Only perform the check on initial handler creation? Otherwise it appears the only solution is to subclass and override the shouldRollover() to not include the os.path checks and match <=3.9.7 behavior. This is the solution I am implementing in the codebase/environment where this was discovered while this report is discussed further. This feels less than ideal, but if that is the consensus then hopefully this report can help the next person to come across it. Thank you for your time and all the hard work put into Python! -- files: logtest.py messages: 409381 nosy: dfritz priority: normal severity: normal status: open title: Log emit performance degradation in RotatingFileHandlers due to filesystem checks type: performance versions: Python 3.10, Python 3.11, Python 3.9 Added file: https://bugs.python.org/file50529/logtest.py ___ Python tracker <https://bugs.python.org/issue46207> ___ ___ Python-bugs-list mailing list Unsubs
[issue46204] Graphlib documentation (general cleanup)
Change by David Mc Dougall : -- keywords: +patch pull_requests: +28515 stage: -> patch review pull_request: https://github.com/python/cpython/pull/30269 ___ Python tracker <https://bugs.python.org/issue46204> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue46204] Graphlib documentation (general cleanup)
New submission from David Mc Dougall : The graphlib documentation has some grammar & phrasing issues. -- components: Library (Lib) messages: 409370 nosy: dam1784 priority: normal severity: normal status: open title: Graphlib documentation (general cleanup) type: enhancement versions: Python 3.11 ___ Python tracker <https://bugs.python.org/issue46204> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue46071] Graphlib documentation (edge direction)
Change by David Mc Dougall : -- title: Graphlib documentation -> Graphlib documentation (edge direction) ___ Python tracker <https://bugs.python.org/issue46071> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue46176] mmap module add MAP_STACK constant mostly for OpenBSD
Change by David CARLIER : -- components: Library (Lib) nosy: devnexen priority: normal pull_requests: 28473 severity: normal status: open title: mmap module add MAP_STACK constant mostly for OpenBSD versions: Python 3.11 ___ Python tracker <https://bugs.python.org/issue46176> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue46168] Incorrect format specified for the "style" key in the configuration file format formatter example
New submission from David Bereza : Documentation link: https://docs.python.org/3/library/logging.config.html#configuration-file-format It seems that the example for the "formatter_form01" formatter section specifies following for the style(please note the single-quotes around the value). style='%' This seems to raise a ValueError with the message "Style must be one of..." when parsing the configuration file. Removing the single quotes seems to fix the issue: style=% -- assignee: docs@python components: Documentation messages: 409108 nosy: bokunogf, docs@python priority: normal severity: normal status: open title: Incorrect format specified for the "style" key in the configuration file format formatter example versions: Python 3.8 ___ Python tracker <https://bugs.python.org/issue46168> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue46071] Graphlib documentation
Change by David Mc Dougall : -- pull_requests: +28446 pull_request: https://github.com/python/cpython/pull/30223 ___ Python tracker <https://bugs.python.org/issue46071> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue46143] [docs] IO > Text Encoding info outdated
New submission from David Gilbertson : On this page: https://docs.python.org/3/library/io.html#text-encoding it says "there is no concrete plan as of yet, Python may change the default text file encoding to UTF-8 in the future". On this page https://docs.python.org/3/library/os.html#utf8-mode is says that from 3.7 onwards UTF-8 will be selected by default. Does that mean that the text in the first section is now outdated, as it was addressed by PEP 540? I'm a newbie, so apologies if I'm missing something obvious or filing this in the wrong spot. -- assignee: docs@python components: Documentation messages: 408983 nosy: docs@python, gilbertson.david priority: normal severity: normal status: open title: [docs] IO > Text Encoding info outdated type: behavior versions: Python 3.10 ___ Python tracker <https://bugs.python.org/issue46143> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue46140] Some API methods could take const Py_buffer* instead of Py_buffer *
Change by David Hewitt : -- keywords: +patch pull_requests: +28438 stage: -> patch review pull_request: https://github.com/python/cpython/pull/30217 ___ Python tracker <https://bugs.python.org/issue46140> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue46140] Some API methods could take const Py_buffer* instead of Py_buffer *
New submission from David Hewitt : The limited api methods `PyBuffer_GetPointer`, `PyBuffer_FromContiguous`, `PyBuffer_ToContiguous` and `PyMemoryView_FromBuffer` take buffer arguments as `Py_buffer *`. They do not mutate the buffer info, so could simply take `const Py_buffer *`. There is already precedent to take `const Py_buffer *` argument in `PyBuffer_IsContiguous`. I'm going to submit a PR to fix. -- messages: 408976 nosy: davidhewitt priority: normal severity: normal status: open title: Some API methods could take const Py_buffer* instead of Py_buffer * versions: Python 3.11 ___ Python tracker <https://bugs.python.org/issue46140> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue46071] Graphlib documentation
New submission from David Mc Dougall : The documentation for graphlib encourages users to represent their graphs in a awkward format. Graphs are currently represented using dictionaries of nodes, for example: graph["end_node"] = ["start_node"] And this is unintuitive because you can't use the graph traverse edges in their forward direction. If you look up a node in the graph, you get all of the nodes that point to the key, as opposed to all of the nodes that the key points to. The solution is to rewrite the documentation such that all of the edge directions are reversed. The final topologically sorted list will be in the "opposite" direction as a consequence. This will cause no functional changes. -- assignee: docs@python components: Documentation messages: 408535 nosy: dam1784, docs@python priority: normal severity: normal status: open title: Graphlib documentation type: enhancement versions: Python 3.10, Python 3.11, Python 3.9 ___ Python tracker <https://bugs.python.org/issue46071> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue46069] Super Smash Flash 2
New submission from haven david : Opportunity for you to transform into interesting characters like Mario, Sonic... Online game with exciting battles https://super-smashflash2.com -- components: Build messages: 408519 nosy: havenhaven priority: normal severity: normal status: open title: Super Smash Flash 2 versions: Python 3.11 ___ Python tracker <https://bugs.python.org/issue46069> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue45959] Teach pprint about dict views
Change by David Peled : -- nosy: +david-peled ___ Python tracker <https://bugs.python.org/issue45959> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue46030] socket module add couple of FreeBSD constants
Change by David CARLIER : -- nosy: +devnexen -dcarlier ___ Python tracker <https://bugs.python.org/issue46030> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue46030] socket module add couple of FreeBSD constants
New submission from David Carlier : - adding LOCAL_CREDS then LOCAL_CREDS_PERSISTENT and SCM_CREDS2 which would be used as msg type for the latter. -- components: FreeBSD messages: 408175 nosy: dcarlier, koobs priority: normal pull_requests: 28242 severity: normal status: open title: socket module add couple of FreeBSD constants versions: Python 3.11 ___ Python tracker <https://bugs.python.org/issue46030> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue46011] Python 3.10 email returns invalid Date: header unchanged.
R. David Murray added the comment: Yeah, I think there may be a general issue with getting header defects reflected somehow in message.defects, but that's a separate issue :) -- ___ Python tracker <https://bugs.python.org/issue46011> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue46021] fcntl module update supports FreeBSD F_KINFO flag
David CARLIER added the comment: - A kinfo_file data holds file information from the kernel's perspective (like the path or the current offset), more info here https://github.com/freebsd/freebsd-src/blob/main/sys/sys/user.h#L342 -- ___ Python tracker <https://bugs.python.org/issue46021> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue46021] fcntl module update supports FreeBSD F_KINFO flag
David CARLIER added the comment: Ah right then no point then if there is no support for upcoming feature, indeed it s only FreeBSD 14 scheduled next year :-) -- ___ Python tracker <https://bugs.python.org/issue46021> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue46021] fcntl module update supports FreeBSD F_KINFO flag
David CARLIER added the comment: - Got clues mostly from source code and header https://github.com/freebsd/freebsd-src/blob/794d3e8e63f4a6ebc8926030b6c937109ddc5485/sys/sys/fcntl.h#L273 -- ___ Python tracker <https://bugs.python.org/issue46021> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue46021] fcntl module update supports FreeBSD F_KINFO flag
David CARLIER added the comment: - The F_KINFO flag returns the related kinfo_file from the file descriptor. - While F_KINFO is, at the moment, FreeBSD's specific however other BSD has kinfo_file data as well thus the possibility they support a similar feature (F_KINFO appears only around the 5th of December). - Does not appear yet on the man page most likely due to its very recent appareance. -- ___ Python tracker <https://bugs.python.org/issue46021> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue46021] fcntl module update supports FreeBSD F_KINFO flag
New submission from David CARLIER : - Enabling new F_KINFO flag. - Returning a subset of practical data from it. -- components: FreeBSD messages: 408088 nosy: devnexen, koobs priority: normal pull_requests: 28224 severity: normal status: open title: fcntl module update supports FreeBSD F_KINFO flag ___ Python tracker <https://bugs.python.org/issue46021> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue46016] fcntl module add F_DUP2FD_CLOEXEC
New submission from David CARLIER : Exposing these specific freebsd constants to the module. -- ___ Python tracker <https://bugs.python.org/issue46016> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue46016] fcntl module add F_DUP2FD_CLOEXEC
Change by David CARLIER : -- components: FreeBSD nosy: devnexen, koobs priority: normal pull_requests: 28216 severity: normal status: open title: fcntl module add F_DUP2FD_CLOEXEC type: enhancement versions: Python 3.11 ___ Python tracker <https://bugs.python.org/issue46016> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue46012] unittest AsyncConnection not described
New submission from David Shiko : AsyncConnection mentioned only one at this docs but not imported or presented somehow else. https://docs.python.org/3/library/unittest.html. -- components: Tests messages: 408000 nosy: dsb321mp priority: normal severity: normal status: open title: unittest AsyncConnection not described versions: Python 3.10 ___ Python tracker <https://bugs.python.org/issue46012> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue31184] Fix data descriptor detection in inspect.getattr_static
David Halter added the comment: This is not a duplicate. It is related to https://bugs.python.org/issue26103, because __get__ is not required anymore for an object to be a data descriptor. The current code on master (of inspect.getattr_static) still thinks a descriptor has both __get__ and __set__ set. Since issue #26103 has been fixed, it's now clear that my patch is slightly wrong, but I'm happy to fix that if someone is actually going to review it. -- resolution: duplicate -> status: closed -> open versions: +Python 3.10, Python 3.11, Python 3.8, Python 3.9 ___ Python tracker <https://bugs.python.org/issue31184> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue31148] Can we get an MSI installer for something past 3.4.4?
David Jack added the comment: Thank you for the information. That will definitely be helpful. https://pcoptimizerpro.com/ -- ___ Python tracker <https://bugs.python.org/issue31148> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue31148] Can we get an MSI installer for something past 3.4.4?
David Jack added the comment: Thank you for the information. That will definitely be helpful. Also, thank you for being so detailed with your explanation. Thank you so much. my name is david. i am provide mac optimizer pro software your mac has been speed slow and malware attack and junk files & more issues solve any time. feel free to reach out at @ +1-866-252-2104 for instant and assured support for any queries regarding the mac optimizer pro Download best mac optimizer pc goto this link and download https://macoptimizerpro.com/ -- nosy: +macoptimizer ___ Python tracker <https://bugs.python.org/issue31148> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue44637] Quoting issue on header Reply-To and other address headers
Change by R. David Murray : -- nosy: +thehesiod title: Quoting issue on header Reply-To -> Quoting issue on header Reply-To and other address headers ___ Python tracker <https://bugs.python.org/issue44637> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue45932] EmailMessage incorrectly splits name and address header
R. David Murray added the comment: This is a duplicate of #44637. -- resolution: -> duplicate stage: -> resolved status: open -> closed ___ Python tracker <https://bugs.python.org/issue45932> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue45931] Directory.Build.props/targets leaks from folders above the repo
Change by David Federman : -- keywords: +patch pull_requests: +28082 stage: -> patch review pull_request: https://github.com/python/cpython/pull/29854 ___ Python tracker <https://bugs.python.org/issue45931> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue45931] Directory.Build.props/targets leaks from folders above the repo
New submission from David Federman : When building with Visual Studio 2017+, any Directory.Build.props/targets above the repo in the file structure (eg. in the parent repo when the python repo is a submodule) will be imported automatically. -- components: Build messages: 407320 nosy: dfederm priority: normal severity: normal status: open title: Directory.Build.props/targets leaks from folders above the repo type: compile error versions: Python 3.11 ___ Python tracker <https://bugs.python.org/issue45931> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue45299] SMTP.send_message() does from mangling when it should not
R. David Murray added the comment: Your backward compatibility argument is persuasive. As you say, that means the BytesGenerate docs would need to be updated to note that that parameter is the exception to the rule for backward compatibility reasons. (If it is the only exception I have to wonder if I had a backward compatibility reason for doing it that way in the first place and just forgot to document it. It is too long ago to remember. It is even possible that effectively changing the default broke mbox and that's why it is an exception :) As for the send_message change, if mangle_from_ is the only exception then I think just passing it does make sense, maybe with a comment referencing the BytesGenerator docs for mangle_from_ to explain why it is needed. -- ___ Python tracker <https://bugs.python.org/issue45299> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue45299] SMTP.send_message() does from mangling when it should not
R. David Murray added the comment: In this case the docs are correct and the code has a bug. The intent was that if the message passed in to BytesGenerator has a policy, that policy should be followed. If it is not being followed, that's a bug in BytesGenerator. The tricky part of course is backward compatibility. Is there code out there depending on this bug? Anyone want to hazard a guess? Are there things other than mangle_from_ that are being ignored? If we decide it is too risky to fix in BytesGenerator (or maybe only to fix it in a feature release), then I'd pass the whole policy in the else clause, with a comment about what bug it is working around. -- ___ Python tracker <https://bugs.python.org/issue45299> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue45862] Anomaly of eval() of list comprehension
David Pratten added the comment: Hi Mark, Thanks. The anomaly is that the print("eg def2", ...) works. Should it not fail in the same way that print("eg def4", ...) does. David On 22/11/2021 7:36:31 PM, Mark Dickinson wrote: Mark Dickinson added the comment: Thanks for the report. The behaviour is by design: see #5242 (especially msg81898) for an explanation. Closing this issue as a duplicate of #5242. -- nosy: +mark.dickinson resolution: -> duplicate stage: -> resolved status: open -> closed superseder: -> eval() function in List Comprehension doesn't work ___ Python tracker ___ [755e9508-5fde-465a-ac8e-d82585c103f3] -- ___ Python tracker <https://bugs.python.org/issue45862> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue45862] Anomaly of eval() of list comprehension
New submission from David Pratten : Hi Example "eg def2" works but "eg def4" gives an error? David ``` emp = [ { "empno": 7839, "mgr": 0, "ename": "KING" }, { "empno": 7566, "mgr": 7839, "ename": "JONES" }, { "empno": 7698, "mgr": 7839, "ename": "BLAKE" } ] a = [e for e in emp if e["mgr"] == 0] print('eg 1', [b for b in a]) print('eg 2', eval('[b for b in a]')) print('eg 3', [e for e in emp for b in a if e["mgr"] == b["empno"]]) print('eg 4', eval('[e for e in emp for b in a if e["mgr"] == b["empno"]]')) def eval_anomaly(): a_anomaly = [e for e in emp if e["mgr"] == 0] print('eg def1', [b for b in a_anomaly]) print('eg def2', eval('[b for b in a_anomaly]')) print('eg def3', [e for e in emp for b in a_anomaly if e["mgr"] == b["empno"]]) print('eg def4', eval('[e for e in emp for b in a_anomaly if e["mgr"] == b["empno"]]')) eval_anomaly() ``` -- messages: 406743 nosy: david2 priority: normal severity: normal status: open title: Anomaly of eval() of list comprehension type: behavior versions: Python 3.9 ___ Python tracker <https://bugs.python.org/issue45862> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue45806] Cannot Recover From StackOverflow in 3.9 Tests
Change by David Bolen : -- nosy: +db3l ___ Python tracker <https://bugs.python.org/issue45806> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue30570] issubclass segfaults on objects with weird __getattr__
David Bolen added the comment: So I'm guessing something is just borderline under 3.9 on Windows. In some manual testing with a standalone build of 3.9 so far for me: -m test.test_pickle always succeeds (executed directly) -m test test_pickle always fails (executed via test module) -m test -w -j1 test_pickle fails, but succeeds on retry The failures seem to always occur in CPicklerTests.test_bad_getattr. I'm not sure how to run that single test via the test module, but limiting to all CPicklerTests tests or all test_bad_getattr tests succeeds even through the test module. The last scenario above (successful retry) has to use -j or else no retry (-w) takes place. That's the path the buildbots are following. -- ___ Python tracker <https://bugs.python.org/issue30570> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue30570] issubclass segfaults on objects with weird __getattr__
David Bolen added the comment: I don't know if this is a buildbot, test or 3.9-specific issue but this commit appears to have introduced a permanent initial failure (but success on retry) in test_pickle on both Windows 10 3.9 builders. First failure for my builder at https://buildbot.python.org/all/#/builders/425/builds/450 Fatal Python error: _Py_CheckRecursiveCall: Cannot recover from stack overflow. 0:14:47 load avg: 4.57 Re-running failed tests in verbose mode 0:14:47 load avg: 4.57 Re-running test_pickle in verbose mode The 3.x and 3.10 builders seem fine, and the second try on 3.9 always seems to succeed (perhaps because it's just a single test running at that point), so this is only being reported as a buildbot warning. -- nosy: +db3l ___ Python tracker <https://bugs.python.org/issue30570> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue43923] Can't create generic NamedTuple as of py3.9
David Lukeš added the comment: This is unfortunate, especially since it used to work... Going forward, is the intention not to support this use case? Or is it possible that support for generic NamedTuples will be re-added in the future? -- nosy: +dlukes ___ Python tracker <https://bugs.python.org/issue43923> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue45551] EmailMessage utf-8 folding error
R. David Murray added the comment: I'm pretty sure this is a duplicate report and that we worked on a fix, but I don't know if it got committed because I can't find the issue... (To be clear, the problem here is the lack of whitespace at the start of the folded part of the header.) -- ___ Python tracker <https://bugs.python.org/issue45551> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue45427] importlib.readers.MultiplexedPath
David Rajaratnam added the comment: Hi Jason, Thanks for the extra pointers. My initial intention in explaining my use-case was to find out whether treating an externally embedded interpreter's files as `importlib.resources` is the correct use of this library. However, you're right that my explanation turned into a python packaging support question. I'm sorry about that. Thanks for the clarification about the limitations of `as_file()`. I guess that means that at the moment it doesn't fully support my use-case, but hopefully may do so at some point in the future. Regards, Dave -- ___ Python tracker <https://bugs.python.org/issue45427> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue45427] importlib.readers.MultiplexedPath
David Rajaratnam added the comment: I'm closing the bug report. Clearly not a bug. It looks like importlib.resources.as_file() is exactly what I want. It returns a context and can potentially create a temporary file system directory structure with all files I want underneath. Not sure how I missed this before and was struggling to work out what to do with a MultiplexedPath object. If you do have comments on a better way of separating python and non-python code (see my previous use-case explanation) I'm interested to hear it. Regards, Dave -- resolution: -> not a bug stage: -> resolved status: open -> closed ___ Python tracker <https://bugs.python.org/issue45427> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue45427] importlib.readers.MultiplexedPath
David Rajaratnam added the comment: Hi Filipe, Thanks very much for the pointers and for the clarifications. I'll look at using importlib.resources.as_file(). I think this is the API that I stupidly seemed to have missed! However, it is also very possible that I am misunderstanding the correct usage of the importlib.resource library, so here is a summary of my use-case: I am working with a specialised language interpreter that can be embedded in python. The interpreter API requires a file system path to load files and the language itself has its own "include" statements for loading files. So in my case it has to be a file system path and not some other resource (eg. zip file or database). However, I have struggled to understand what is the correct way to treat these files when installed as part of a python package. It seems to me that python's setuptools is too limited to cover the range of options that I would want. AFAIK setuptools allows only two options for installing non-python files; "data_files" and "package_data". "data_files" doesn't seem to be the right place because I couldn't find a full-proof way to programmatically find out where these files are installed. So it seems to be focused more on supplementary data (high-level docs, examples, etc) rather than data files that are necessary for the operations of the application. On the other hand "package_data" forces these non-python files to be embedded within the python package structure. This is a bit ugly since its not really a natural fit; for example the language has its own command-line tools that I use during development. So what I've tried to do is that for development I separate the python code from my other interpreter's code, but then for installation have setup.py map the specialised language files into the python package structure. I'm not overly happy with how I've done it (although it does seem to work),so I would be very happy if someone can point to a better way. Dave -- ___ Python tracker <https://bugs.python.org/issue45427> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue45405] configure fails on macOS with non-Apple clang version 13 which implements --print-multiarch
David Bohman added the comment: Thank you for your help, Ned. -- ___ Python tracker <https://bugs.python.org/issue45405> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue36424] Pickle fails on frozen dataclass that has slots
David Hagen added the comment: Because the implementation in GH-25786 relies on the new `dataclass(slots=True)` feature (i.e. it does not work if the slots are specified with `__slots__`), I don't think this can be trivially backported to versions before 3.10. -- ___ Python tracker <https://bugs.python.org/issue36424> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue45427] importlib.readers.MultiplexedPath
David Rajaratnam added the comment: Thanks for the quick response. I think the attached file shows the issue. In the directory where you download and run this file create a sub-directory 'data'. Then running the file creates the output (note: I've truncated the path name): > Traverse data: MultiplexedPath('<>/data') ( 'importlib.readers.MultiplexedPath'>) I think the idea behind MultiplexedPath() is that it merges together multiple base/root directories so even though in this case it is a single path it wouldn't necessarily be the case in general. So while it makes sense that for some MultiplexedPath object X that str(X) isn't itself a proper directory path, however, there seems to be no method/property to access these root paths. Note: Traverable.iterdir() iterates over the files/sub-directories in the root(s) so doesn't return the root path(s) themselves. A further note. If you add a file `data/__init__.py` then data is now a package and running the code this time returns a PosixPath object (on a posix system): > Traverse data: <>/data () > X: <>/data/__init__.py () > X: <>/data/__pycache__ () -- Added file: https://bugs.python.org/file50342/navigate.py ___ Python tracker <https://bugs.python.org/issue45427> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue45427] importlib.readers.MultiplexedPath
New submission from David Rajaratnam : I'm trying to use `importlib.resources.files()`. However, I cannot work out how to properly use the `importlib.readers.MultiplexedPath()` object that is returned. As I expect and want, the returned object is referring to a directory, but I cannot seem to simply access the value of that path. For a normal `pathlib.Path` object you can get a OS specific path by simply converting to the string representation (eg., 'str(pathlib.Path('/somepath') == '/somepath'). However, for the MutiplexedPath object the __str__() value is the same as the __repr__() (e.g., "MultiplexedPath('/somepath')"). It seems that this is a bug since I would expect MultiplexedPath to behave the same as pathlib.Path in this regard. In the meantime is there a way to actually access this data without stripping the prefix and suffix of this string? -- components: Library (Lib) messages: 403621 nosy: daveraja priority: normal severity: normal status: open title: importlib.readers.MultiplexedPath type: behavior versions: Python 3.10 ___ Python tracker <https://bugs.python.org/issue45427> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue44828] Using tkinter.filedialog crashes on macOS Python 3.9.6
David Melgar added the comment: Same issue. Running Monterey beta. Experiencing crash. Is there any plan for a fix or is the plan to wait for Monterey to release? -- nosy: +enki1711 ___ Python tracker <https://bugs.python.org/issue44828> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue44309] Add support for yescrypt in crypt.
Change by David Mandelberg : -- nosy: +dseomn ___ Python tracker <https://bugs.python.org/issue44309> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue45174] DragonflyBSD fix nis module build
Change by David CARLIER : -- components: Library (Lib) nosy: devnexen priority: normal pull_requests: 26711 severity: normal status: open title: DragonflyBSD fix nis module build type: compile error versions: Python 3.11 ___ Python tracker <https://bugs.python.org/issue45174> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue45172] netbsd CAN protocol flags addition
Change by David CARLIER : -- components: Library (Lib) nosy: devnexen priority: normal pull_requests: 26704 severity: normal status: open title: netbsd CAN protocol flags addition type: enhancement versions: Python 3.11 ___ Python tracker <https://bugs.python.org/issue45172> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue45163] Haiku build fix
Change by David CARLIER : -- components: Library (Lib) nosy: devnexen priority: normal pull_requests: 26689 severity: normal status: open title: Haiku build fix type: compile error versions: Python 3.11 ___ Python tracker <https://bugs.python.org/issue45163> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue45156] mock.seal has infinite recursion with int class attributes
New submission from David Mandelberg : The code below seems to have infinite recursion in the mock.seal call with python 3.9.2. from unittest import mock class Foo: foo = 0 foo = mock.create_autospec(Foo) mock.seal(foo) -- components: Library (Lib) messages: 401525 nosy: dseomn priority: normal severity: normal status: open title: mock.seal has infinite recursion with int class attributes type: crash versions: Python 3.9 ___ Python tracker <https://bugs.python.org/issue45156> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue40563] Support pathlike objects on dbm/shelve
David Mertz added the comment: If anyone wants to look at my not-yet-complete changes (see other comment), it's https://github.com/DavidMertz/cpython/tree/bpo-45133. It has a different bpo because I filed a duplicate before realizing. I can change the branch name before a PR, but making it work is the more important issue. -- ___ Python tracker <https://bugs.python.org/issue40563> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue40563] Support pathlike objects on dbm/shelve
David Mertz added the comment: I've made the few additional changes to those in this PR. When I work out the issues, I'll make a new PR. I took out an attempt with `path_t`. However, here is why I think argument clinic (or something else?!) is actually intercepting the attempted call: With my temporary debugging, I have this function in `Modules/_gdbmmodule.c`: ```c [clinic start generated code]*/ static PyObject * dbmopen_impl(PyObject *module, PyObject *filename, const char *flags, int mode) /*[clinic end generated code: output=9527750f5df90764 input=812b7d74399ceb0e]*/ { PyObject_Print(filename, stdout, 0); printf(" from _gdbmmodule.c (XXX)\n"); /* ... rest of function ...*/ ``` And I have a very simplified test script: ```python import _gdbm import sys from pathlib import Path print(sys.version) path = '/tmp/tmp.db' db = _gdbm.open(path, 'c') print("Opened with string path") db.close() db = _gdbm.open(Path(path), 'c') print("Opened with path-like") db.close() ``` The output of running this is: ``` 3.11.0a0 (heads/[bpo-45133](https://bugs.python.org/issue45133)-dirty:0376feb030, Sep 8 2021, 00:39:39) [GCC 10.3.0] '/tmp/tmp.db' from _gdbmmodule.c (XXX) Opened with string path Traceback (most recent call last): File "/home/dmertz/tmp/pathlike-dbm.py", line 12, in db = _gdbm.open(Path(path), 'c') ^^^ TypeError: open() argument 1 must be str, not PosixPath ``` So before I get to the first line of the _gdbm.open() function, the TypeError is already occurring when passed a PosixPath. -- nosy: +DavidMertz type: -> enhancement versions: +Python 3.11 -Python 3.9 ___ Python tracker <https://bugs.python.org/issue40563> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue45133] Open functions in dbm submodule should support path-like objects
David Mertz added the comment: Oops... I missed prior closely related or identical issue at: https://bugs.python.org/issue40563 -- resolution: -> duplicate ___ Python tracker <https://bugs.python.org/issue45133> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue45133] Open functions in dbm submodule should support path-like objects
New submission from David Mertz : Evan Greenup via Python-ideas Currently, in Python 3.9, `dbm.open()`, `dbm.gnu.open()` and `dbm.ndbm.open()` doesn't support path-like object, class defined in `pathlib`. It would be nice to add support with it. -- components: Library (Lib), Tests messages: 401334 nosy: DavidMertz priority: normal severity: normal status: open title: Open functions in dbm submodule should support path-like objects type: enhancement versions: Python 3.11 ___ Python tracker <https://bugs.python.org/issue45133> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com