[issue46126] Unittest output drives developers to avoid docstrings

2022-04-03 Thread Jason R. Coombs


Change by Jason R. Coombs :


--
pull_requests: +30349
pull_request: https://github.com/python/cpython/pull/32288

___
Python tracker 
<https://bugs.python.org/issue46126>
___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue47142] Document importlib.resources.abc.Traversable

2022-04-03 Thread Jason R. Coombs


Jason R. Coombs  added the comment:

Correction. In msg416618, link should have been:

[docs for 
zipfile](https://docs.python.org/3/library/zipfile.html#zipinfo-objects)

--

___
Python tracker 
<https://bugs.python.org/issue47142>
___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue47142] Document importlib.resources.abc.Traversable

2022-04-03 Thread Jason R. Coombs

Jason R. Coombs  added the comment:

> Are the methods expected to raise specific exception types (e.g. if a 
> resource is missing, or you call iterdir on a “file”)?

The short answer is no. The protocol does not stipulate specific exceptions. 
Perhaps it should be documented that any exceptions that occur when accessing 
the backing resource will propagate. Although, I do believe that statement is 
true for all Python code unless stated otherwise.

I agree it would be nice if the protocol could stipulate which exceptions might 
be raised by a given implementation, but I'm not confident that's possible, at 
least not without wrapping/adapting the pathlib.Path and zipfile.Path objects.

Does that answer the question? Are you working on another provider that 
implements this protocol? I'd be happy to consult on that effort.

--

___
Python tracker 
<https://bugs.python.org/issue47142>
___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue47142] Document importlib.resources.abc.Traversable

2022-04-03 Thread Jason R. Coombs


Jason R. Coombs  added the comment:

> Can the argument to `joinpath` contain path separators?

Good question. Currently, I'm aware of three concrete implementations of 
Traversable.joinpath:

- pathlib.Path.joinpath
- zipfile.Path.joinpath
- importlib.resources.simple.ResourceContainer.joinpath

``Traversable.joinpath`` was modeled after ``pathlib.Path.joinpath``, which 
itself is itself not rigorous in what path separators are allowed. The 
[docstring](https://github.com/python/cpython/blob/3faa9f78d4b9a8c0fd4657b434bdb08ae1f28800/Lib/pathlib.py#L754-L758)
 does indicate that each of the parameters will be combined with the existing 
path and acknowledges that absolute paths are possible. The [curated 
docs](https://docs.python.org/3/library/pathlib.html#pathlib.PurePath.joinpath) 
only give examples, and curiously, those examples only use posixpath.sep, 
suggesting that it's recommended when passing compound paths to use posixpath 
separators as they're more widely supported.

For zipfile.Path, I observe that [joinpath does accept path 
separators](https://github.com/python/cpython/blob/3faa9f78d4b9a8c0fd4657b434bdb08ae1f28800/Lib/zipfile.py#L2438-L2440)
 but looking at the [docs for 
zipfile](https://gist.github.com/jaraco/5b266870c62680d6d6b3a876be321fa4), it's 
not even obvious to me what path separators are used in zipfiles, but I do 
observe there is [coercion to 
posixpath.sep](https://gist.github.com/jaraco/5b266870c62680d6d6b3a876be321fa4).

``ResourceContainer``, on the other hand, [will not accept path 
separators](https://github.com/python/cpython/blob/3faa9f78d4b9a8c0fd4657b434bdb08ae1f28800/Lib/importlib/resources/simple.py#L102-L105).
 This class, however, may not be used anywhere and probably could be extended 
to support path separators as well.

Here's what I propose:

- First, document that the interface is under-specified and that for maximum 
compatibility, a consumer should pass only relative paths using posixpath.sep 
or no separator at all. Additionally, explicitly declare that behavior with 
absolute paths is undefined and unsupported.
- Second, expand the interface on ``Traversable.joinpath`` to stipulate that 
the interface should accept multiple relative paths.
- Third, ``simple.ResourceContainer`` should be updated to meet that spec.

--

___
Python tracker 
<https://bugs.python.org/issue47142>
___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue47142] Document importlib.resources.abc.Traversable

2022-03-28 Thread Jason R. Coombs


Change by Jason R. Coombs :


--
assignee: docs@python -> jaraco

___
Python tracker 
<https://bugs.python.org/issue47142>
___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue46126] Unittest output drives developers to avoid docstrings

2022-03-26 Thread Jason R. Coombs


Jason R. Coombs  added the comment:

My goal with this issue is to simply unblock the use of docstrings in Python 
tests. I believe with the work above and the proposed published post, I've 
accomplished that goal. I've already spent more time than I'd hoped on this 
issue and would like to resolve it at its original scope.

I do see how this issue reveals some deficiencies with the current UI/UX, and 
I'd welcome a separate feature request to address those deficiencies. I'll even 
help draft the bug report on request.

--

___
Python tracker 
<https://bugs.python.org/issue46126>
___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue46126] Unittest output drives developers to avoid docstrings

2022-03-26 Thread Jason R. Coombs


Change by Jason R. Coombs :


--
pull_requests: +30208
pull_request: https://github.com/python/cpython/pull/32128

___
Python tracker 
<https://bugs.python.org/issue46126>
___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue46126] Unittest output drives developers to avoid docstrings

2022-03-26 Thread Jason R. Coombs


Change by Jason R. Coombs :


--
resolution:  -> works for me

___
Python tracker 
<https://bugs.python.org/issue46126>
___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue46126] Unittest output drives developers to avoid docstrings

2022-03-26 Thread Jason R. Coombs


Jason R. Coombs  added the comment:

I've confirmed that prior to the patch in PR 30194, the location of the failure 
was indeed reported. It was just not reported on the same line:

```
cpython main $ git log -1
commit 3e93af0b06cada874c4a16868b6f863b599919f2 (HEAD -> main)
Author: Jason R. Coombs 
Date:   Sat Mar 26 10:45:58 2022 -0400

Revert "bpo-46126: Disable 'descriptions' when running tests internally. 
(GH-30194)"

This reverts commit a941e5927f7f2540946813606c61c6aea38db426.
cpython main $ git diff
diff --git a/Lib/test/test_importlib/test_metadata_api.py 
b/Lib/test/test_importlib/test_metadata_api.py
index b3627cbb75..7e3bb09cf2 100644
--- a/Lib/test/test_importlib/test_metadata_api.py
+++ b/Lib/test/test_importlib/test_metadata_api.py
@@ -90,8 +90,11 @@ def test_entry_points_distribution(self):
 self.assertEqual(ep.dist.version, "1.0.0")
 
 def test_entry_points_unique_packages(self):
-# Entry points should only be exposed for the first package
-# on sys.path with a given name.
+"""
+Entry points should only be exposed for the first package
+on sys.path with a given name.
+"""
+raise ValueError("Failing on purpose")
 alt_site_dir = self.fixtures.enter_context(fixtures.tempdir())
 self.fixtures.enter_context(self.add_sys_path(alt_site_dir))
 alt_pkg = {
cpython main $ ./python.exe -E -We -m test -v test_importlib | grep 
entry_points_unique_packages
test_entry_points_unique_packages 
(test.test_importlib.test_metadata_api.APITests)
ERROR: test_entry_points_unique_packages 
(test.test_importlib.test_metadata_api.APITests)
  File 
"/Users/jaraco/code/public/cpython/Lib/test/test_importlib/test_metadata_api.py",
 line 97, in test_entry_points_unique_packages
test test_importlib failed
```

The description is given _in addition_ to the location of the test.

That means the concern reported in #302 was actually invalid.

I also was under the false impression that the description was masking the test 
location, but instead, it's just enhancing it (while also injecting a newline).

Given this renewed understanding, I believe it's appropriate to back out the PR.

> I think the situation and the discussion should be summarized on python-dev!

Great suggestion. Will do.

--

___
Python tracker 
<https://bugs.python.org/issue46126>
___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue46975] clang: error: linker command failed with exit code 1 (use -v to see invocation) on m1 mac

2022-03-23 Thread Jason R. Coombs


Jason R. Coombs  added the comment:

It's possible my bad experience may have been avoided through issue35905.

--

___
Python tracker 
<https://bugs.python.org/issue46975>
___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue46975] clang: error: linker command failed with exit code 1 (use -v to see invocation) on m1 mac

2022-03-23 Thread Jason R. Coombs


Jason R. Coombs  added the comment:

Aha. If I configure/make without LDFLAGS or CPPFLAGS set, compilation works. 
Then I noticed for `LDFLAGS`, some users were using `-L`. I thought it was 
slightly odd that my recipe was using `-I` for both flags. How is it that [this 
mistake](https://github.com/jaraco/jaraco.develop/commit/6469c7a61e7349b93f191df38eed6cd020dd79be)
 hasn't caused me any grief until M1 build?  No matter - correcting for that 
mistake and passing the correct LDFLAGS flag (-L) corrects for the issue.

--
status: open -> closed

___
Python tracker 
<https://bugs.python.org/issue46975>
___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue46975] clang: error: linker command failed with exit code 1 (use -v to see invocation) on m1 mac

2022-03-23 Thread Jason R. Coombs


Jason R. Coombs  added the comment:

As suggested, I uninstalled and reinstalled everything in homebrew:

$ brew list | xargs brew remove
$ brew install python@3.10 python-launcher python@3.9 python@3.8 gh git

Even after following those steps and setting LDFLAGS and CPPFLAGS to point to 
`brew --prefix`, the errors continue when running `./configure; make` in a 
clean checkout.

--

___
Python tracker 
<https://bugs.python.org/issue46975>
___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue46975] clang: error: linker command failed with exit code 1 (use -v to see invocation) on m1 mac

2022-03-23 Thread Jason R. Coombs


Jason R. Coombs  added the comment:

I did [this 
search](https://www.google.com/search?q=gittext+homebrew+"ld%3A+symbol(s)+not+found+for+architecture+arm64"),
 which surfaced a few related results.

[This 
article](https://lifesaver.codes/answer/pyenv-arm64-builds-confused-by-x86-64-libintl-in-usr-local-1877)
 seemed promising, but the symptoms there are different than mine. I don't have 
any gettext libs showing up in /usr/local (only in /opt/homebrew as expected).

I noticed [this 
comment](https://github.com/pyenv/pyenv/issues/1877#issuecomment-976583556) 
reports the same issue I have, but no solution is present.

I saw a suggestion to [set 
FLAGS](https://github.com/pyenv/pyenv/issues/1877#issuecomment-836115970), but 
I do that [as a matter of 
course](https://github.com/jaraco/jaraco.develop/blob/d3e524362ba15f87790f4c6279b1f92c06901387/jaraco/develop/macos-build-python.py#L38-L42).

I don't have an x86 install of homebrew. This machine is less than a month old 
and has had ARM-based homebrew installed from the beginning.

I'll keep investigating.

--

___
Python tracker 
<https://bugs.python.org/issue46975>
___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue46975] clang: error: linker command failed with exit code 1 (use -v to see invocation) on m1 mac

2022-03-22 Thread Jason R. Coombs


Jason R. Coombs  added the comment:

SG. Thanks for the advice. I'll dive in and experiment and report back when I 
have progress.

--
status: closed -> open

___
Python tracker 
<https://bugs.python.org/issue46975>
___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue46975] clang: error: linker command failed with exit code 1 (use -v to see invocation) on m1 mac

2022-03-22 Thread Jason R. Coombs


Jason R. Coombs  added the comment:

Well, I'm using a mac with gettext installed as part of `brew install git` with 
homebrew installed using the standard procedure.

Only after running `brew remove --ignore-dependencies gettext` and re-running 
configure/make did the command build, but doing so also broke features of git 
(I noticed that the branch name disappeared from my shell). I was able to 
reinstall git and gettext, but then configure/make failed.

Do you have any advice on how to "properly install" gettext using homebrew on 
an M1 mac?

--

___
Python tracker 
<https://bugs.python.org/issue46975>
___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue46126] Unittest output drives developers to avoid docstrings

2022-03-22 Thread Jason R. Coombs


Jason R. Coombs  added the comment:

And indeed, after removing the `grep ERROR` part of the repro, even the repro 
seems to be invalid:

```
cpython main $ ./python.exe -m test.test_importlib -v -k 
test_entry_points_unique
test_entry_points_unique_packages 
(test.test_importlib.test_metadata_api.APITests)
Entry points should only be exposed for the first package ... ERROR
test.test_importlib.test_windows (unittest.loader.ModuleSkipped) ... skipped 
"No module named 'winreg'"

==
ERROR: test_entry_points_unique_packages 
(test.test_importlib.test_metadata_api.APITests)
Entry points should only be exposed for the first package
--
Traceback (most recent call last):
  File 
"/Users/jaraco/code/public/cpython/Lib/test/test_importlib/test_metadata_api.py",
 line 97, in test_entry_points_unique_packages
raise ValueError("Failing on purpose")
^^
ValueError: Failing on purpose

--
Ran 2 tests in 0.006s

FAILED (errors=1, skipped=1)
```

I'm effectively unable to replicate the behavior reported by Brett in the other 
issue (unless `| grep ERROR` is consider an important use-case to support).

At this point, I propose one of two options:

1. Back out PR 30194 and restore the prior behavior with descriptions.
2. Leave PR 30194 to suppress descriptions for the default runner.

And then simply declare that docstrings are acceptable for CPython tests.

Given that descriptions are on by default, I'm slightly inclined toward (1).

Thoughts?

--

___
Python tracker 
<https://bugs.python.org/issue46126>
___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue46975] clang: error: linker command failed with exit code 1 (use -v to see invocation) on m1 mac

2022-03-22 Thread Jason R. Coombs


Jason R. Coombs  added the comment:

I ran into this same issue. I notice that gettext is a dependency of git, so a 
common dependency when developing. Is there perhaps a way that CPython could be 
made to ignore gettext on macos Silicon or to detect an incompatible platform 
and thus ignore it?

--
nosy: +jaraco
status: closed -> open

___
Python tracker 
<https://bugs.python.org/issue46975>
___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue46126] Unittest output drives developers to avoid docstrings

2022-03-22 Thread Jason R. Coombs


Jason R. Coombs  added the comment:

Inada, you're right. Good catch. I think I missed that behavior from before 
because I used `grep ERROR` and when I ran it this time, I just assumed the 
output would be the same, but it's clear that even _with descriptions enabled_, 
the location of the test is clearly reported in the case of launching with `-m 
unittest`.

I'm now suspicious that my report in 
https://bugs.python.org/issue46126#msg408882 was also flawed as it uses `grep 
ERROR`, which could easily mask lines that adjacent to the error.

I now believe that there are no concerns relating to Terry's concern, and 
likely not Brett's concern despite my best efforts to replicate. I'll bring 
back the original example and see if it in fact has the reported defect.

--
assignee: terry.reedy -> jaraco

___
Python tracker 
<https://bugs.python.org/issue46126>
___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue46126] Unittest output drives developers to avoid docstrings

2022-03-20 Thread Jason R. Coombs


Jason R. Coombs  added the comment:

In an attempt to replicate Terry's usage, I added the following patch:

```
diff --git a/Lib/idlelib/idle_test/test_text.py 
b/Lib/idlelib/idle_test/test_text.py
index 0f31179e04..be977bbfff 100644
--- a/Lib/idlelib/idle_test/test_text.py
+++ b/Lib/idlelib/idle_test/test_text.py
@@ -20,6 +20,10 @@ def test_init(self):
 self.assertEqual(self.text.get('end'), '')
 
 def test_index_empty(self):
+"""
+Failing test with bad description.
+"""
+raise ValueError()
 index = self.text.index
 
 for dex in (-1.0, 0.3, '1.-1', '1.0', '1.0 lineend', '1.end', '1.33',
```

When I did, I then ran the tests using the `-m` launcher:

```
$ ./python.exe -m test.test_idle -v -k test_index_empty
idlelib.idle_test.test_configdialog (unittest.loader.ModuleSkipped) ... skipped 
'cannot run without OS X gui process'
idlelib.idle_test.test_debugger (unittest.loader.ModuleSkipped) ... skipped 
'cannot run without OS X gui process'
idlelib.idle_test.test_editmenu (unittest.loader.ModuleSkipped) ... skipped 
'cannot run without OS X gui process'
idlelib.idle_test.test_help (unittest.loader.ModuleSkipped) ... skipped 'cannot 
run without OS X gui process'
idlelib.idle_test.test_parenmatch (unittest.loader.ModuleSkipped) ... skipped 
'cannot run without OS X gui process'
idlelib.idle_test.test_percolator (unittest.loader.ModuleSkipped) ... skipped 
'cannot run without OS X gui process'
idlelib.idle_test.test_replace (unittest.loader.ModuleSkipped) ... skipped 
'cannot run without OS X gui process'
idlelib.idle_test.test_scrolledlist (unittest.loader.ModuleSkipped) ... skipped 
'cannot run without OS X gui process'
idlelib.idle_test.test_search (unittest.loader.ModuleSkipped) ... skipped 
'cannot run without OS X gui process'
test_index_empty (idlelib.idle_test.test_text.MockTextTest)
Failing test with bad description. ... ERROR
setUpClass (idlelib.idle_test.test_text.TkTextTest) ... skipped 'cannot run 
without OS X gui process'
idlelib.idle_test.test_textview (unittest.loader.ModuleSkipped) ... skipped 
'cannot run without OS X gui process'
idlelib.idle_test.test_tooltip (unittest.loader.ModuleSkipped) ... skipped 
'cannot run without OS X gui process'
idlelib.idle_test.test_tree (unittest.loader.ModuleSkipped) ... skipped 'cannot 
run without OS X gui process'
idlelib.idle_test.test_undo (unittest.loader.ModuleSkipped) ... skipped 'cannot 
run without OS X gui process'

==
ERROR: test_index_empty (idlelib.idle_test.test_text.MockTextTest)
Failing test with bad description.
--
Traceback (most recent call last):
  File "/Users/jaraco/code/public/cpython/Lib/idlelib/idle_test/test_text.py", 
line 26, in test_index_empty
raise ValueError()
^^
ValueError

--
Ran 14 tests in 0.001s

FAILED (errors=1, skipped=14)
```

As you can see, the location of the failing test in the log is masked, and 
instead the description is present.

I've pushed 
https://github.com/python/cpython/tree/bpo-46126/disable-descriptions-unittest-m,
 which when applied disables the descriptions.

This approach works as a surgical intervention, wrapping `unittest.main` in 
such a way that it could be replaced across the test suite to disable 
descriptions. By subclassing the TextTestRunner, it continues to honor other 
parameters from the command-line (such as verbosity).

Terry, would you review the concept? Does it meet your needs? If so, I can 
apply it more broadly and prepare a PR.

--
assignee: jaraco -> terry.reedy

___
Python tracker 
<https://bugs.python.org/issue46126>
___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue46125] Test the preferred API instead of relying on legacy for coverage

2022-03-20 Thread Jason R. Coombs


Change by Jason R. Coombs :


--
resolution:  -> fixed
stage: patch review -> resolved
status: open -> closed

___
Python tracker 
<https://bugs.python.org/issue46125>
___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue35967] Better platform.processor support

2022-03-20 Thread Jason R. Coombs


Jason R. Coombs  added the comment:

I'm going to close this issue again, as the implementation is now present in at 
least a couple of releases. May I suggest that if there are ongoing concerns or 
issues to open up a new issue and reference this one and loop me into the 
conversation? I'm also happy to re-open this one as well.

--
resolution:  -> fixed
status: open -> closed

___
Python tracker 
<https://bugs.python.org/issue35967>
___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue46774] Importlib.metadata.version picks first distribution not latest

2022-03-20 Thread Jason R. Coombs


Jason R. Coombs  added the comment:

Closing without prejudice. Happy to revisit if there's more information on how 
importlib could/should behave differently.

--
stage:  -> resolved
status: open -> closed

___
Python tracker 
<https://bugs.python.org/issue46774>
___
___
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

2022-03-20 Thread Jason R. Coombs


Change by Jason R. Coombs :


--
assignee:  -> jaraco

___
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



[issue47060] importlib.metadata.version can return None

2022-03-18 Thread Jason R. Coombs


Jason R. Coombs  added the comment:

Thanks for the report.

Yes, the issues are related, where .version and .name returning None are 
specific manifestations of the metadata not having that key and the behavior 
being ill-defined.

I haven't yet decided if metadata items being undefined should result in None 
or raise an Exception (maybe KeyError).

For the specific case of a missing Name or Version, however, the packaging spec 
says that these fields are required 
(https://packaging.python.org/en/latest/specifications/core-metadata/#core-metadata-specifications),
 so it may be reasonable for the behavior when the specification is not met 
that the resulting behavior would be undefined (i.e. importlib.metadata should 
be able to assume the specification). It's outside the scope of 
importlib.metadata to detect, report, and repair invalid metadata. I would 
welcome and even encourage a third-party package to take on the responsibility 
of validating all distributions in an environment and reporting on 
non-compliant aspects.

In that sense, the type declaration is correct. `.name` and `.version` should 
always return `str` or raise an exception.

This additional example leads me stronger toward the position that 
`.metadata[missing]` should raise a KeyError, which would also fix this issue.

I'd also argue that if the metadata file is missing altogether, that should 
perhaps be a different error. That is, missing metadata is different from null 
metadata. Right now, the two are indistinguishable from the interface.

> I'd expect there to be a PackageNotFoundError raised in this situation

That doesn't sound quite right to me. If there's a `.dist-info` directory, that 
implies a package is present. e.g.:

```
~ $ mkdir foo.dist-info
~ $ py -c "import importlib.metadata as md; print(md.distribution('foo'))"

```

I'm going to ponder this one some more and probably address the `.metadata` 
issue(s) first before making any pronouncements on the best approach here.

--

___
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



[issue47025] bytes do not work on sys.path

2022-03-15 Thread Jason R. Coombs


Jason R. Coombs  added the comment:

I'd advocate for not supporting bytes paths and instead updating the 
documentation to require strings.

--
nosy: +jaraco

___
Python tracker 
<https://bugs.python.org/issue47025>
___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue47013] test_bdb and test_distutils fail on installed Python 3.9, 3.10 and 3.11 (setuptools 60.9.3, pip 22.0.4)

2022-03-15 Thread Jason R. Coombs

Jason R. Coombs  added the comment:

See https://github.com/pypa/setuptools/issues/3007#issuecomment-1068621865 
where I did a brief analysis and probable explanation.

What it boils down to: Setuptools needs to supply its own copy of distutils 
aggressively. It provides an opt out for this behavior and is able to offer 
built in opt out based on whatever signal is available. The default opt out is 
the SETUPTOOLS_USE_DISTUTILS=stdlib env var. for CPython, it also disables the 
behavior when ./pybuilddir.txt is present, but installed Pythons probably don’t 
have this config.

Can those test runners be updated to set this environment variable?

--

___
Python tracker 
<https://bugs.python.org/issue47013>
___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue46246] importlib.metadata.DeprecatedList appears to be missing __slots__

2022-03-14 Thread Jason R. Coombs


Change by Jason R. Coombs :


--
resolution:  -> fixed
stage: patch review -> resolved
status: open -> closed

___
Python tracker 
<https://bugs.python.org/issue46246>
___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue47004] Apply bugfixes from importlib_metadata 4.11.3.

2022-03-13 Thread Jason R. Coombs


Change by Jason R. Coombs :


--
resolution:  -> fixed
stage: patch review -> resolved
status: open -> closed

___
Python tracker 
<https://bugs.python.org/issue47004>
___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue47004] Apply bugfixes from importlib_metadata 4.11.3.

2022-03-13 Thread Jason R. Coombs


Jason R. Coombs  added the comment:


New changeset 177be52517da9a876a3f9e670f88c4731b906986 by Jason R. Coombs in 
branch '3.9':
[3.9] bpo-47004: Sync with importlib_metadata 4.11.3. (GH-31854). (GH-31859)
https://github.com/python/cpython/commit/177be52517da9a876a3f9e670f88c4731b906986


--

___
Python tracker 
<https://bugs.python.org/issue47004>
___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue47004] Apply bugfixes from importlib_metadata 4.11.3.

2022-03-13 Thread Jason R. Coombs


Jason R. Coombs  added the comment:


New changeset d929aa70e2a324ea48fed221c3257f929be05115 by Jason R. Coombs in 
branch '3.10':
[3.10] bpo-47004: Sync with importlib_metadata 4.11.3. (GH-31854). (GH-31857)
https://github.com/python/cpython/commit/d929aa70e2a324ea48fed221c3257f929be05115


--

___
Python tracker 
<https://bugs.python.org/issue47004>
___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue47004] Apply bugfixes from importlib_metadata 4.11.3.

2022-03-13 Thread Jason R. Coombs


Change by Jason R. Coombs :


--
pull_requests: +29957
pull_request: https://github.com/python/cpython/pull/31859

___
Python tracker 
<https://bugs.python.org/issue47004>
___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue47004] Apply bugfixes from importlib_metadata 4.11.3.

2022-03-13 Thread Jason R. Coombs


Change by Jason R. Coombs :


--
pull_requests: +29955
pull_request: https://github.com/python/cpython/pull/31857

___
Python tracker 
<https://bugs.python.org/issue47004>
___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue47004] Apply bugfixes from importlib_metadata 4.11.3.

2022-03-13 Thread Jason R. Coombs


Jason R. Coombs  added the comment:


New changeset b1e286860742e7ba6fadc75e3ddb6c2899a56919 by Jason R. Coombs in 
branch 'main':
bpo-47004: Sync with importlib_metadata 4.11.3. (#31854)
https://github.com/python/cpython/commit/b1e286860742e7ba6fadc75e3ddb6c2899a56919


--

___
Python tracker 
<https://bugs.python.org/issue47004>
___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue47004] Apply bugfixes from importlib_metadata 4.11.3.

2022-03-13 Thread Jason R. Coombs


Change by Jason R. Coombs :


--
keywords: +patch
pull_requests: +29952
stage:  -> patch review
pull_request: https://github.com/python/cpython/pull/31854

___
Python tracker 
<https://bugs.python.org/issue47004>
___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue47004] Apply bugfixes from importlib_metadata 4.11.3.

2022-03-13 Thread Jason R. Coombs


New submission from Jason R. Coombs :

Importlib_metadata 4.11.1-3 introduced a few bug fixes. Importantly, 4.11.2 
fixed a [serious 
defect](https://github.com/python/importlib_metadata/issues/369). Let's 
incorporate those fixes into CPython.

--
messages: 415075
nosy: jaraco
priority: normal
severity: normal
status: open
title: Apply bugfixes from importlib_metadata 4.11.3.
versions: Python 3.10, Python 3.11, Python 3.9

___
Python tracker 
<https://bugs.python.org/issue47004>
___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue47004] Apply bugfixes from importlib_metadata 4.11.3.

2022-03-13 Thread Jason R. Coombs


Change by Jason R. Coombs :


--
assignee:  -> jaraco

___
Python tracker 
<https://bugs.python.org/issue47004>
___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue46774] Importlib.metadata.version picks first distribution not latest

2022-03-13 Thread Jason R. Coombs


Jason R. Coombs  added the comment:

Aha. I learned how to run commands in the poetry environment... and how to 
locate files in that environment. With that, I figured out where the 
environment is and where the package metadata is coming from:

```
$ docker run -it @$(docker build -q .) bash -c 'ls $(poetry env info 
-p)/lib/python3.10/site-packages/poetry*'
/root/.cache/pypoetry/virtualenvs/poetry-remove-untracked-Qran5nGc-py3.10/lib/python3.10/site-packages/poetry_remove_untracked.pth

/root/.cache/pypoetry/virtualenvs/poetry-remove-untracked-Qran5nGc-py3.10/lib/python3.10/site-packages/poetry_remove_untracked-0.1.0.dist-info:
INSTALLER  METADATA  RECORD

/root/.cache/pypoetry/virtualenvs/poetry-remove-untracked-Qran5nGc-py3.10/lib/python3.10/site-packages/poetry_remove_untracked-0.2.0.dist-info:
INSTALLER  METADATA  RECORD
```

In this case, it's clear there is metadata for the `poetry-remove-untracked` 
package in duplicate, and importlib.metadata loads that metadata in whatever 
order the operating system provides it (lexicographic alphabetic sort usually). 
`importlib.metadata` doesn't have any means to determine which of those 
metadata are appropriate and doesn't support multiple versions of the same 
distribution being installed into the same path.

Since poetry has acknowledged this issue is a bug, I suspect there's nothing 
more for importlib.metadata to do here, but do please report back if you have 
different expectations.

--

___
Python tracker 
<https://bugs.python.org/issue46774>
___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue46774] Importlib.metadata.version picks first distribution not latest

2022-03-13 Thread Jason R. Coombs


Jason R. Coombs  added the comment:

The behavior you describe is intentional _and_ deterministic. The library 
discovers distributions in the order found based on the search path provided, 
with the search path defaulting to sys.path.

The expectation is therefore that the metadata should be discovered in its 
order of precedence.

Thanks for the repro. I attempted to follow it, but was unsuccessful:

```
FROM jaraco/multipy-tox
RUN git clone https://github.com/kkirsche/poetry-remove-untracked
RUN pip install poetry
WORKDIR poetry-remove-untracked
RUN git checkout before
RUN poetry install --remove-untracked
RUN git checkout after
RUN poetry install --remove-untracked
CMD python -c "import importlib.metadata as md; 
print(md.version('poetry-remove-untracked'))"
```

Running that Dockerfile reports that the package isn't installed.

```
draft $ docker run -it @$(docker build -q .)
Traceback (most recent call last):
  File "", line 1, in 
  File "/usr/lib/python3.10/importlib/metadata/__init__.py", line 955, in 
version
return distribution(distribution_name).version
  File "/usr/lib/python3.10/importlib/metadata/__init__.py", line 928, in 
distribution
return Distribution.from_name(distribution_name)
  File "/usr/lib/python3.10/importlib/metadata/__init__.py", line 518, in 
from_name
raise PackageNotFoundError(name)
importlib.metadata.PackageNotFoundError: No package metadata was found for 
poetry-remove-untracked
```

I think you'll have to teach me a bit about how poetry works in order to 
understand how to properly reproduce the issue so I can examine the relevant 
environment.

--

___
Python tracker 
<https://bugs.python.org/issue46774>
___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue32642] add support for path-like objects in sys.path

2022-03-12 Thread Jason R. Coombs


Jason R. Coombs  added the comment:

I'm in support of adding Path support for sys.path, but I also agree with Eric, 
there are innumerable consumers of sys.path beyond importlib. and since 
pathlib.Path isn't a str, it would likely introduce incompatibility. On the 
other hand, users introducing Path objects to sys.path could be warned that 
although importlib supports Path objects, other consumers may not, and that 
support for it in importlib isn't endorsement of the use of those types and the 
consequences aren't necessarily supported.

As an aside, it's too bad a Path object couldn't have been a str subclass (as 
it is for [path](https://pypi.org/project/path), which would have made problems 
like this one much safer to solve.

--
nosy: +jaraco

___
Python tracker 
<https://bugs.python.org/issue32642>
___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue46246] importlib.metadata.DeprecatedList appears to be missing __slots__

2022-02-10 Thread Jason R. Coombs


Jason R. Coombs  added the comment:

I'm pretty sure both EntryPoints and DeprecatedList were introduced in Python 
3.10, so 3.9 and 3.8 aren't relevant.

--
versions:  -Python 3.8, Python 3.9

___
Python tracker 
<https://bugs.python.org/issue46246>
___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue13305] datetime.strftime("%Y") not consistent for years < 1000

2022-02-10 Thread Jason R. Coombs


Jason R. Coombs  added the comment:

The tempora library implements a [portable 
strftime](https://tempora.readthedocs.io/en/latest/index.html#tempora.strftime).

--

___
Python tracker 
<https://bugs.python.org/issue13305>
___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue46619] lazy module property not recognized by doctests

2022-02-02 Thread Jason R. Coombs


New submission from Jason R. Coombs :

Attempting to define a lazy-loaded property for a module, I found [this 
guidance](https://stackoverflow.com/a/52018676/70170) referencing [module 
attribute 
access](https://docs.python.org/3/reference/datamodel.html#customizing-module-attribute-access)
 in the Python docs as a means of customizing attribute access.

I followed that guidance, but found that doctests don't have access to those 
attributes in its execution. Consider this reproducer:

```
"""
>>> print(static_property)
static value
>>> print(lazy_property)
lazy value
"""
# text.py
import types
import sys


static_property = 'static value'


class _Properties(types.ModuleType):
@property
def lazy_property(self):
return 'lazy value'


sys.modules[__name__].__class__ = _Properties
```

Run that with `python -m doctest text.py` and it fails thus:

```
**
File "/Users/jaraco/draft/text.py", line 4, in text
Failed example:
print(lazy_property)
Exception raised:
Traceback (most recent call last):
  File 
"/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/doctest.py", 
line 1346, in __run
exec(compile(example.source, filename, "single",
  File "", line 1, in 
print(lazy_property)
NameError: name 'lazy_property' is not defined
**
1 items had failures:
   1 of   2 in text
***Test Failed*** 1 failures.
```

Same error using the `__getattr__` technique:

```
"""
>>> print(static_property)
static value
>>> print(lazy_property)
lazy value
"""

static_property = 'static value'


def __getattr__(name):
if name != 'lazy_property':
raise AttributeError(name)
return 'lazy value'
```

I suspect the issue is that doctests runs with locals from the module's 
globals(), which won't include these lazy properties.

It would be nice if doctests could honor locals that would represent the 
properties available on the module.

--
components: Library (Lib)
messages: 412409
nosy: jaraco
priority: normal
severity: normal
status: open
title: lazy module property not recognized by doctests
versions: Python 3.11

___
Python tracker 
<https://bugs.python.org/issue46619>
___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue46546] `importlib.metadata.DeprecatedList` leaks `method_name` variable

2022-01-27 Thread Jason R. Coombs


Jason R. Coombs  added the comment:

Thanks Nikita for the report. I agree, it's inelegant that this property leaks. 
Because this code is synced with importlib_metadata, I'm not sure it's worth 
the effort of changing it here. Your change here implies a cherry-pick to the 
backport and updating its changelog there too.

I'd be more inclined to accept a change like this on importlib_metadata, which 
has a faster iteration and whose changes get naturally incorporated into 
CPython periodically.

What's the harm in leaving this attribute on a class that is itself standing in 
for deprecated behavior and slated for removal?

--

___
Python tracker 
<https://bugs.python.org/issue46546>
___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue46474] Inefficient regular expression complexity in EntryPoint.pattern

2022-01-23 Thread Jason R. Coombs


Change by Jason R. Coombs :


--
resolution:  -> fixed
stage: patch review -> resolved
status: open -> closed

___
Python tracker 
<https://bugs.python.org/issue46474>
___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue46474] Inefficient regular expression complexity in EntryPoint.pattern

2022-01-23 Thread Jason R. Coombs


Jason R. Coombs  added the comment:


New changeset 1514d1252f96e6a83eb65c439522a6b5443f6a1a by Jason R. Coombs in 
branch '3.9':
[3.9] bpo-46474: Avoid REDoS in EntryPoint.pattern (sync with 
importlib_metadata 4.10.1) (GH-30803). (GH-30828)
https://github.com/python/cpython/commit/1514d1252f96e6a83eb65c439522a6b5443f6a1a


--

___
Python tracker 
<https://bugs.python.org/issue46474>
___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue46474] Inefficient regular expression complexity in EntryPoint.pattern

2022-01-23 Thread Jason R. Coombs


Jason R. Coombs  added the comment:


New changeset a7a4ca4f06c8c31d7f403113702ad2e80bfc326b by Jason R. Coombs in 
branch '3.10':
[3.10] bpo-46474: Avoid REDoS in EntryPoint.pattern (sync with 
importlib_metadata 4.10.1) (GH-30803) (GH-30827)
https://github.com/python/cpython/commit/a7a4ca4f06c8c31d7f403113702ad2e80bfc326b


--

___
Python tracker 
<https://bugs.python.org/issue46474>
___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue46474] Inefficient regular expression complexity in EntryPoint.pattern

2022-01-23 Thread Jason R. Coombs


Change by Jason R. Coombs :


--
pull_requests: +29016
pull_request: https://github.com/python/cpython/pull/30829

___
Python tracker 
<https://bugs.python.org/issue46474>
___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue46474] Inefficient regular expression complexity in EntryPoint.pattern

2022-01-23 Thread Jason R. Coombs


Change by Jason R. Coombs :


--
pull_requests: +29015
pull_request: https://github.com/python/cpython/pull/30828

___
Python tracker 
<https://bugs.python.org/issue46474>
___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue46474] Inefficient regular expression complexity in EntryPoint.pattern

2022-01-23 Thread Jason R. Coombs


Change by Jason R. Coombs :


--
pull_requests: +29014
pull_request: https://github.com/python/cpython/pull/30827

___
Python tracker 
<https://bugs.python.org/issue46474>
___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue46474] Inefficient regular expression complexity in EntryPoint.pattern

2022-01-22 Thread Jason R. Coombs


Jason R. Coombs  added the comment:


New changeset 51c3e28c8a163e58dc753765e3cc51d5a717e70d by Jason R. Coombs in 
branch 'main':
bpo-46474: Avoid REDoS in EntryPoint.pattern (sync with importlib_metadata 
4.10.1) (GH-30803)
https://github.com/python/cpython/commit/51c3e28c8a163e58dc753765e3cc51d5a717e70d


--

___
Python tracker 
<https://bugs.python.org/issue46474>
___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue46474] Inefficient regular expression complexity in EntryPoint.pattern

2022-01-22 Thread Jason R. Coombs


Jason R. Coombs  added the comment:


New changeset 443dec6c9a104386ee90165d32fb28d0c5d29043 by Jason R. Coombs in 
branch 'main':
bpo-46474: Apply changes from importlib_metadata 4.10.0 (GH-30802)
https://github.com/python/cpython/commit/443dec6c9a104386ee90165d32fb28d0c5d29043


--

___
Python tracker 
<https://bugs.python.org/issue46474>
___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue46425] Multiple test modules fail to run if invoked directly

2022-01-22 Thread Jason R. Coombs


Jason R. Coombs  added the comment:


New changeset d888ff5381594641126065e78dc9210dae4436a4 by Jason R. Coombs in 
branch 'main':
bpo-46425: Partially revert "bpo-46425: fix direct invocation of 
`test_importlib` (GH-30682)" (GH-30799)
https://github.com/python/cpython/commit/d888ff5381594641126065e78dc9210dae4436a4


--

___
Python tracker 
<https://bugs.python.org/issue46425>
___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue41682] [Windows] test_asyncio: Proactor test_sendfile_close_peer_in_the_middle_of_receiving failure

2022-01-22 Thread Jason R. Coombs


Change by Jason R. Coombs :


--
stage: patch review -> needs patch

___
Python tracker 
<https://bugs.python.org/issue41682>
___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue46474] Inefficient regular expression complexity in EntryPoint.pattern

2022-01-22 Thread Jason R. Coombs


Change by Jason R. Coombs :


--
pull_requests: +28989
pull_request: https://github.com/python/cpython/pull/30803

___
Python tracker 
<https://bugs.python.org/issue46474>
___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue46425] Multiple test modules fail to run if invoked directly

2022-01-22 Thread Jason R. Coombs


Change by Jason R. Coombs :


--
pull_requests: +28990
pull_request: https://github.com/python/cpython/pull/30803

___
Python tracker 
<https://bugs.python.org/issue46425>
___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue46425] Multiple test modules fail to run if invoked directly

2022-01-22 Thread Jason R. Coombs


Change by Jason R. Coombs :


--
pull_requests: +28988
pull_request: https://github.com/python/cpython/pull/30802

___
Python tracker 
<https://bugs.python.org/issue46425>
___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue46474] Inefficient regular expression complexity in EntryPoint.pattern

2022-01-22 Thread Jason R. Coombs


Change by Jason R. Coombs :


--
keywords: +patch
pull_requests: +28987
stage:  -> patch review
pull_request: https://github.com/python/cpython/pull/30802

___
Python tracker 
<https://bugs.python.org/issue46474>
___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue46474] Inefficient regular expression complexity in EntryPoint.pattern

2022-01-22 Thread Jason R. Coombs


Jason R. Coombs  added the comment:

Because I want this security issue to be back-portable to older Pythons, I'll 
first apply importlib_metadata 4.10.0 and then apply the change from 4.10.1 
separately.

--

___
Python tracker 
<https://bugs.python.org/issue46474>
___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue46474] Inefficient regular expression complexity in EntryPoint.pattern

2022-01-22 Thread Jason R. Coombs


New submission from Jason R. Coombs :

Originally reported to the Python Security Response Team, the 
EntryPoint.pattern demonstrates a potential 
[ReDoS](https://owasp.org/www-community/attacks/Regular_expression_Denial_of_Service_).

The issue has been patched and fix released with importlib_metadata 4.10.1. 
Let's get that fix incorporated into Python as well.

--
assignee: jaraco
components: Library (Lib)
messages: 411282
nosy: jaraco
priority: normal
severity: normal
status: open
title: Inefficient regular expression complexity in EntryPoint.pattern
type: security
versions: Python 3.10, Python 3.11, Python 3.8, Python 3.9

___
Python tracker 
<https://bugs.python.org/issue46474>
___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue46425] Multiple test modules fail to run if invoked directly

2022-01-22 Thread Jason R. Coombs


Change by Jason R. Coombs :


--
pull_requests: +28984
pull_request: https://github.com/python/cpython/pull/30799

___
Python tracker 
<https://bugs.python.org/issue46425>
___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue46126] Unittest output drives developers to avoid docstrings

2022-01-22 Thread Jason R. Coombs


Change by Jason R. Coombs :


--
assignee:  -> jaraco

___
Python tracker 
<https://bugs.python.org/issue46126>
___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue46126] Unittest output drives developers to avoid docstrings

2022-01-22 Thread Jason R. Coombs


Jason R. Coombs  added the comment:

I've merged the fix for regrtest and I'll explore Terry's concerns and see what 
I can devise for those concerns as well.

--

___
Python tracker 
<https://bugs.python.org/issue46126>
___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue46425] Multiple test modules fail to run if invoked directly

2022-01-22 Thread Jason R. Coombs


Change by Jason R. Coombs :


--
nosy: +jaraco

___
Python tracker 
<https://bugs.python.org/issue46425>
___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue46124] Deprecation warning in zoneinfo module

2022-01-21 Thread Jason R. Coombs


Jason R. Coombs  added the comment:

Closing, presumed fixed. Please re-open if not.

--
resolution:  -> fixed
stage: patch review -> resolved
status: open -> closed

___
Python tracker 
<https://bugs.python.org/issue46124>
___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue46304] Unable to iterate over lines in a file without a block of code

2022-01-08 Thread Jason R. Coombs


Jason R. Coombs  added the comment:

Nice reference. Indeed, the 
[rationale](https://www.python.org/dev/peps/pep-0533/#id15) of that pep gives a 
similar example and the 
[background](https://www.python.org/dev/peps/pep-0533/#id3) describes the 
problem with the solution I've drafted above (it still depends on garbage 
collection to close the file).

I guess that means that in general, it's not possible to accomplish what I'd 
like.

As author of the PEP, I'm looping in njs.

--
nosy: +njs

___
Python tracker 
<https://bugs.python.org/issue46304>
___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue46304] Unable to iterate over lines in a file without a block of code

2022-01-08 Thread Jason R. Coombs


Jason R. Coombs  added the comment:

Hi Eric. I did mention that option in my report, but that option requires 
loading the whole file into memory. I'd like something equivalent to the 
iterator that `open()` provides, which yields lines lazily.

Serihy, thanks for the feedback. I do indeed not want to rely on the implicit 
closing of the file handle. I'd instead like a helper function/method that will 
close the file after the iterator is consumed.

Something like:

def read_lines(path):
with path.open() as strm:
yield from strm

What I'm seeking is for that block to be placed somewhere in the stdlib so that 
I don't have to copy it into every project that needs/wants this behavior.

--
type:  -> enhancement

___
Python tracker 
<https://bugs.python.org/issue46304>
___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue46304] Unable to iterate over lines in a file without a block of code

2022-01-07 Thread Jason R. Coombs


New submission from Jason R. Coombs :

I'd like to be able to do something pretty fundamental: lazily load lines from 
a file in a single expression.

Best I can tell, that's not possible in the language without triggering 
warnings.

One can use 'open' but that triggers a ResourceWarning:

```
$ $PYTHONWARNINGS='error' python -c "lines = open('/dev/null'); tuple(lines)"
Exception ignored in: <_io.FileIO name='/dev/null' mode='rb' closefd=True>
ResourceWarning: unclosed file <_io.TextIOWrapper name='/dev/null' mode='r' 
encoding='UTF-8'>
```

One can use a `with` statement, but that requires a block of code and can't be 
written easily in a single expression. One can use 
`pathlib.Path.read_text().splitlines()`, but that loads the whole file into 
memory.

This issue affected the pip-run project, which required 5 new lines in order to 
make such an expression possible 
(https://github.com/jaraco/pip-run/commit/e2f395d8814539e1da467ac09295922d8ccaf14d).

Can the standard library supply a function or method that would provide this 
behavior?

--
components: Library (Lib)
messages: 410075
nosy: jaraco
priority: normal
severity: normal
status: open
title: Unable to iterate over lines in a file without a block of code
versions: Python 3.11

___
Python tracker 
<https://bugs.python.org/issue46304>
___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue43976] Allow Python distributors to add custom site install schemes

2022-01-05 Thread Jason R. Coombs


Jason R. Coombs  added the comment:

I don't have a good answer, but given the title of this issue (which is 
specifically scoped to site install schemes), I'm tempted to say we should deal 
with prefixes in a separate, perhaps broader issue, and there address the 
reported issue (that a user's prefix override isn't honored by the scheme) and 
maybe more broadly the issue that there's not a design/spec for python 
installations (and probably there should be).

--

___
Python tracker 
<https://bugs.python.org/issue43976>
___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue46246] importlib.metadata.DeprecatedList appears to be missing __slots__

2022-01-04 Thread Jason R. Coombs


Jason R. Coombs  added the comment:

Today I learned something. Thanks Arie. Yes, I agree that's a mistake. Perhaps 
the test suite should also have a test to capture the missed expectation (that 
__dict__ should not be present or setting attributes on EntryPoints instances 
should fail).

--

___
Python tracker 
<https://bugs.python.org/issue46246>
___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue46246] importlib.metadata.DeprecatedList appears to be missing __slots__

2022-01-03 Thread Jason R. Coombs


Jason R. Coombs  added the comment:

Perhaps it is a mistake. The `__slots__` were added as a (possible premature) 
optimization in [this 
conversation](https://github.com/python/importlib_metadata/pull/278/files#r565475347).

It's not obvious to me what the danger is in defining __slots__ in a child 
class but not in a parent. Can you point me to resources or examples that help 
me understand the concern or missed expectation? The primary motivation behind 
defining slots is to help ensure immutability.  Does the lack of slots violate 
that expectation?

Convince me of the value of fixing this concern and please feel free to proceed 
with a PR.

--

___
Python tracker 
<https://bugs.python.org/issue46246>
___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue45649] Add tarinfo.Path

2022-01-01 Thread Jason R. Coombs


Jason R. Coombs  added the comment:

I'd recommend not to block on issue24132. It's not obvious to me that 
subclassing would be valuable. It depends on how it's implemented, but in my 
experience, zipfile.Path doesn't and cannot implement the full interface of 
pathlib.Path. Instead zipfile.Path attempts to implement a protocol. At the 
time, the protocol was undefined, but now there exists 
importlib.resources.abc.Traversable 
(https://docs.python.org/3/library/importlib.html#importlib.abc.Traversable), 
the interface needed by importlib.resources. I'd honestly just create a 
standalone class, see if it can implement Traversable, and only then consider 
if it should implement a more complicated interface (such as something with 
symlink support or perhaps even later subclassing from pathlib.Path).

--

___
Python tracker 
<https://bugs.python.org/issue45649>
___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue46126] Unittest output drives developers to avoid docstrings

2022-01-01 Thread Jason R. Coombs


Jason R. Coombs  added the comment:

> > I presume I don't need to explain why docstrings are nice and preferable 
> > over comments.

> Actually, can you?

I searched around and didn't find any good treatise or thorough overview  of 
reasons _why_ docstrings should be preferred, so I performed an internal 
deconstruction of my motivations and published [this 
article](https://blog.jaraco.com/why-docstrings-are-preferable-to-comments/) on 
my blog.

--

___
Python tracker 
<https://bugs.python.org/issue46126>
___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue46118] Migrate importlib.resources into a package

2022-01-01 Thread Jason R. Coombs


Change by Jason R. Coombs :


--
status: open -> closed

___
Python tracker 
<https://bugs.python.org/issue46118>
___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue46109] Separate resources docs from other importlib docs

2021-12-31 Thread Jason R. Coombs


Change by Jason R. Coombs :


--
resolution:  -> fixed
stage: patch review -> resolved
status: open -> closed

___
Python tracker 
<https://bugs.python.org/issue46109>
___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue46118] Migrate importlib.resources into a package

2021-12-30 Thread Jason R. Coombs


Jason R. Coombs  added the comment:


New changeset 35628e4cde71e54afe12aea50c74069afe2c3389 by Jason R. Coombs in 
branch 'main':
bpo-46118: Make sure importlib.resources is included. (GH-30311)
https://github.com/python/cpython/commit/35628e4cde71e54afe12aea50c74069afe2c3389


--

___
Python tracker 
<https://bugs.python.org/issue46118>
___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue37043] Buildbots fail when new files are added

2021-12-30 Thread Jason R. Coombs


Jason R. Coombs  added the comment:

I encountered this issue again today in issue46118.

I started looking into creating the patchcheck, but I realize it may be a 
little tricky to detect the introduction of a new folder, because `git diff` 
doesn't actually report new folders, and my initial research indicates it's 
[far from straightforward](https://stackoverflow.com/a/36293191/70170).

I thought maybe git diff --dirstat might help, but it doesn't. It reports 100% 
different for a new file in a new folder and same for a new file in an existing 
folder.

--

___
Python tracker 
<https://bugs.python.org/issue37043>
___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue46118] Migrate importlib.resources into a package

2021-12-30 Thread Jason R. Coombs


Jason R. Coombs  added the comment:

And the underlying cause is reported in issue37043.

--

___
Python tracker 
<https://bugs.python.org/issue46118>
___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue46118] Migrate importlib.resources into a package

2021-12-30 Thread Jason R. Coombs


Jason R. Coombs  added the comment:

Looks like I encountered the same foot gun when originally introducing the 
importlib.metadata package (issue34632).

--
stage: patch review -> resolved

___
Python tracker 
<https://bugs.python.org/issue46118>
___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue46118] Migrate importlib.resources into a package

2021-12-30 Thread Jason R. Coombs


Change by Jason R. Coombs :


--
pull_requests: +28525
stage: resolved -> patch review
pull_request: https://github.com/python/cpython/pull/30311

___
Python tracker 
<https://bugs.python.org/issue46118>
___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue46118] Migrate importlib.resources into a package

2021-12-30 Thread Jason R. Coombs


Jason R. Coombs  added the comment:

Installed buildbots are failing (like this one: 
https://buildbot.python.org/all/#/builders/350/builds/1164). I'm going to see 
if it's a simple fix like updating the makefile or if a rollback is called for.

--
status: closed -> open

___
Python tracker 
<https://bugs.python.org/issue46118>
___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue46109] Separate resources docs from other importlib docs

2021-12-30 Thread Jason R. Coombs


Jason R. Coombs  added the comment:


New changeset 99945c6b5cf280bd90075cffae942af44941abcc by Jason R. Coombs in 
branch 'main':
bpo-46109: Separate out files relating to importlib.resources (GH-30160)
https://github.com/python/cpython/commit/99945c6b5cf280bd90075cffae942af44941abcc


--

___
Python tracker 
<https://bugs.python.org/issue46109>
___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue46118] Migrate importlib.resources into a package

2021-12-30 Thread Jason R. Coombs


Change by Jason R. Coombs :


--
resolution:  -> fixed
stage: patch review -> resolved
status: open -> closed

___
Python tracker 
<https://bugs.python.org/issue46118>
___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue46118] Migrate importlib.resources into a package

2021-12-30 Thread Jason R. Coombs


Jason R. Coombs  added the comment:


New changeset e712a5b277866a71c195f38c1b5d87d9126dba3e by Jason R. Coombs in 
branch 'main':
bpo-46118: Move importlib.resources to its own package. (#30176)
https://github.com/python/cpython/commit/e712a5b277866a71c195f38c1b5d87d9126dba3e


--

___
Python tracker 
<https://bugs.python.org/issue46118>
___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue46124] Deprecation warning in zoneinfo module

2021-12-28 Thread Jason R. Coombs


Jason R. Coombs  added the comment:

Normalize_path from legacy implementation: 
https://github.com/python/importlib_resources/blob/3beb2fd5831e65f7b45033e1ec276c4a6b4ca973/importlib_resources/_legacy.py#L30-L40

--

___
Python tracker 
<https://bugs.python.org/issue46124>
___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue46124] Deprecation warning in zoneinfo module

2021-12-28 Thread Jason R. Coombs


Jason R. Coombs  added the comment:

> Does `joinpath` have less validation?

Yes. Previously, resources.* would perform some validation on the path to 
ensure that it didn't contain path separators (to avoid users attempting to get 
resources in subdirectories or perhaps manipulating the path in other ways).

So no, they're not equivalent. If `resource_name` or "zones" ever contained 
path separators, the former implementation would raise an error whereas this 
implementation would attempt to join those characters to the path. Since 
"zones" is a static string, it's clearly not affected. And `resource_name` 
can't have posixpath.sep. If `key` had an ntpath.sep, that might behave 
differently, but that seemed like an edge case not worth exploring.

If it is worth exploring, I would recommend not to use normalize_path, but 
instead to implement the validation in zoneinfo._common. That is, wrap key in 
`_validate_key()` that protects against invalid paths. But in practice, it's 
better to do that closer to where the unsanitized data would be encountered (if 
at all).

--

___
Python tracker 
<https://bugs.python.org/issue46124>
___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue46109] Separate resources docs from other importlib docs

2021-12-19 Thread Jason R. Coombs


Jason R. Coombs  added the comment:

I realize, I can limit the scope of this issue to address 'resources' alone, 
leaving ABCs where they are except for resource-related ones, allowing us to 
defer a larger refactoring to a separate issue/effort.

--
title: Separate resources and abc docs from other importlib docs -> Separate 
resources docs from other importlib docs

___
Python tracker 
<https://bugs.python.org/issue46109>
___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue46118] Migrate importlib.resources into a package

2021-12-19 Thread Jason R. Coombs


Jason R. Coombs  added the comment:

I recently noticed that some docs already refer to `importlib.resources.abc` 
even though it doesn't currently exist 
(https://github.com/python/cpython/blame/main/Doc/library/importlib.rst#L948). 
That finding leads me to adjust my expectation that perhaps exposing those 
classes from that module would be preferable (since that was the expectation 
from the start).

--

___
Python tracker 
<https://bugs.python.org/issue46118>
___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue46109] Separate resources and abc docs from other importlib docs

2021-12-19 Thread Jason R. Coombs


Jason R. Coombs  added the comment:

As I'm exploring this issue, I notice that currently, the docs refer to 
:class:`importlib.resources.abc.Traversable` (even though that doesn't 
currently exist) 
(https://github.com/python/cpython/blame/main/Doc/library/importlib.rst#L948).

--

___
Python tracker 
<https://bugs.python.org/issue46109>
___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue46109] Separate resources and abc docs from other importlib docs

2021-12-19 Thread Jason R. Coombs


Jason R. Coombs  added the comment:

> a ToC at the top of the main page which identifies the submodules (and 
> provides a brief summary for each) would be extra helpful. 

I've added this in the latest commit (1adefaf552).

--

___
Python tracker 
<https://bugs.python.org/issue46109>
___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue46109] Separate resources and abc docs from other importlib docs

2021-12-19 Thread Jason R. Coombs


Jason R. Coombs  added the comment:

The reason I wanted to consider issue46118 first was because I wanted to 
explore whether the ABCs from `importlib_resources.abc` should be _documented_ 
as `importlib.resources.abc` or `importlib.abc` (as they are now).

After filing the issue and exploring the concerns (namely, should users be 
directed _away_ from `importlib.abc` for these classes), I'm uncertain whether 
it's worth the effort to make that transition, and certainly not in haste, so 
this effort can proceed to document the status quo (ABCs presented primarily in 
`importlib.abc`).

--

___
Python tracker 
<https://bugs.python.org/issue46109>
___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue46124] Deprecation warning in zoneinfo module

2021-12-18 Thread Jason R. Coombs


Change by Jason R. Coombs :


--
assignee: jaraco -> p-ganssle

___
Python tracker 
<https://bugs.python.org/issue46124>
___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue46126] Unittest output drives developers to avoid docstrings

2021-12-18 Thread Jason R. Coombs


Change by Jason R. Coombs :


--
keywords: +patch
pull_requests: +28415
stage:  -> patch review
pull_request: https://github.com/python/cpython/pull/30194

___
Python tracker 
<https://bugs.python.org/issue46126>
___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue46126] Unittest output drives developers to avoid docstrings

2021-12-18 Thread Jason R. Coombs


Jason R. Coombs  added the comment:

After some investigation (and tracing calls through a dozen or more layers), I 
found that Python's own regression tests can disable this behavior thus:

```
diff --git a/Lib/test/support/testresult.py b/Lib/test/support/testresult.py
index 2cd1366cd8..328ca8760e 100644
--- a/Lib/test/support/testresult.py
+++ b/Lib/test/support/testresult.py
@@ -145,7 +145,8 @@ def get_test_runner_class(verbosity, buffer=False):
 return functools.partial(unittest.TextTestRunner,
  resultclass=RegressionTestResult,
  buffer=buffer,
- verbosity=verbosity)
+ verbosity=verbosity,
+ descriptions=False,)
 return functools.partial(QuietRegressionTestRunner, buffer=buffer)
 
 def get_test_runner(stream, verbosity, capture_output=False):
```

Combined with the above diff (with a docstring), the output is now as desired:

```
$ ./python.exe -m test -v test_importlib | grep '... ERROR'
test_entry_points_unique_packages 
(test.test_importlib.test_metadata_api.APITests) ... ERROR
test test_importlib failed
```

It seems it would be wise to enable this setting by default, given that without 
it, every test module is forced to replace docstrings with comments.

--

___
Python tracker 
<https://bugs.python.org/issue46126>
___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue46126] Unittest output drives developers to avoid docstrings

2021-12-18 Thread Jason R. Coombs


Jason R. Coombs  added the comment:

It looks like that 'descriptions' attribute is passed through from 
TextTestRunner, which sets it to True by default 
(https://github.com/python/cpython/blob/9b52920173735ac609664c6a3a3021d24a95a092/Lib/unittest/runner.py#L163).
 It seems that behavior isn't controllable through any command-line options or 
environment variables.

--

___
Python tracker 
<https://bugs.python.org/issue46126>
___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue46126] Unittest output drives developers to avoid docstrings

2021-12-18 Thread Jason R. Coombs


Jason R. Coombs  added the comment:

Looks like the code, I believe here's where the reporting happens: 
https://github.com/python/cpython/blob/9b52920173735ac609664c6a3a3021d24a95a092/Lib/unittest/runner.py#L48-L51

I see a "description" property there that may already provide the feature.

--

___
Python tracker 
<https://bugs.python.org/issue46126>
___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue46126] Unittest output drives developers to avoid docstrings

2021-12-18 Thread Jason R. Coombs


Jason R. Coombs  added the comment:

My guess is the tests were run with something like this:

```
./python.exe -E -We -m test -v test_importlib | grep '... ERROR'
Entry points should only be exposed for the first package ... ERROR
test test_importlib failed
```

In that case, the location of the test is replaced with the first line of the 
docstring. If there's no docstring, however, the location of the failure is 
easier to detect:

```
$ ./python.exe -E -We -m test -v test_importlib | grep '... ERROR'
test_entry_points_unique_packages 
(test.test_importlib.test_metadata_api.APITests) ... ERROR
test test_importlib failed
```

--

___
Python tracker 
<https://bugs.python.org/issue46126>
___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue46126] Unittest output drives developers to avoid docstrings

2021-12-18 Thread Jason R. Coombs


Jason R. Coombs  added the comment:

I created this diff:

```diff
diff --git a/Lib/test/test_importlib/test_metadata_api.py 
b/Lib/test/test_importlib/test_metadata_api.py
index e16773a7e8..92aacd5ad5 100644
--- a/Lib/test/test_importlib/test_metadata_api.py
+++ b/Lib/test/test_importlib/test_metadata_api.py
@@ -90,8 +90,11 @@ def test_entry_points_distribution(self):
 self.assertEqual(ep.dist.version, "1.0.0")
 
 def test_entry_points_unique_packages(self):
-# Entry points should only be exposed for the first package
-# on sys.path with a given name.
+"""
+Entry points should only be exposed for the first package
+on sys.path with a given name.
+"""
+raise ValueError("Failing on purpose")
 alt_site_dir = self.fixtures.enter_context(fixtures.tempdir())
 self.fixtures.enter_context(self.add_sys_path(alt_site_dir))
 alt_pkg = {
```

And then ran the tests, but the output is easy to totally scrutable:

```
cpython bpo-46126/bad-error-message $ ./python.exe -m test.test_importlib
sE.x..
 
sTrying
 20 threads ... 44.7 ms OK.
Trying 50 threads ... 36.8 ms OK.
Trying 20 threads ... 27.7 ms OK.
Trying 50 threads ... 28.0 ms OK.
Trying 20 threads ... 27.9 ms OK.
Trying 50 threads ... 31.1 ms OK.
.Trying 20 threads ... 7.1 ms OK.
Trying 50 threads ... 7.6 ms OK.
Trying 20 threads ... 3.2 ms OK.
Trying 50 threads ... 8.5 ms OK.
Trying 20 threads ... 3.4 ms OK.
Trying 50 threads ... 8.7 ms OK.
.Trying 20 threads ... 40.3 ms OK.
Trying 50 threads ... 8.7 ms OK.
Trying 20 threads ... 3.5 ms OK.
Trying 50 threads ... 6.5 ms OK.
Trying 20 threads ... 3.2 ms OK.
Trying 50 threads ... 6.5 ms OK.
..ssss...
==
ERROR: test_entry_points_unique_packages 
(test.test_importlib.test_metadata_api.APITests)
Entry points should only be exposed for the first package
--
Traceback (most recent call last):
  File 
"/Users/jaraco/code/public/cpython/Lib/test/test_importlib/test_metadata_api.py",
 line 97, in test_entry_points_unique_packages
raise ValueError("Failing on purpose")
^^
ValueError: Failing on purpose

--
Ran 1426 tests in 2.377s

FAILED (errors=1, skipped=6, expected failures=1)
```

So there must be some other test invocation that doesn't provide the clarity of 
which test is failing.

--

___
Python tracker 
<https://bugs.python.org/issue46126>
___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue46126] Unittest output drives developers to avoid docstrings

2021-12-18 Thread Jason R. Coombs


Jason R. Coombs  added the comment:

Absolutely. I was thinking to do just that.

--

___
Python tracker 
<https://bugs.python.org/issue46126>
___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue46125] Test the preferred API instead of relying on legacy for coverage

2021-12-18 Thread Jason R. Coombs


Jason R. Coombs  added the comment:


New changeset 9b52920173735ac609664c6a3a3021d24a95a092 by Jason R. Coombs in 
branch 'main':
bpo-46125: Refactor tests to test traversable API directly. Includes changes 
from importlib_resources 5.4.0. (GH-30189)
https://github.com/python/cpython/commit/9b52920173735ac609664c6a3a3021d24a95a092


--

___
Python tracker 
<https://bugs.python.org/issue46125>
___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue46124] Deprecation warning in zoneinfo module

2021-12-18 Thread Jason R. Coombs


Change by Jason R. Coombs :


--
keywords: +patch
pull_requests: +28410
stage:  -> patch review
pull_request: https://github.com/python/cpython/pull/30190

___
Python tracker 
<https://bugs.python.org/issue46124>
___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



  1   2   3   4   5   6   7   8   9   10   >