[issue45272] 'os.path' should not be a frozen module

2021-11-19 Thread Guido van Rossum


Change by Guido van Rossum :


--
pull_requests: +27884, 27885
pull_request: https://github.com/python/cpython/pull/29648

___
Python tracker 

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



[issue45272] 'os.path' should not be a frozen module

2021-11-19 Thread Guido van Rossum


Change by Guido van Rossum :


--
pull_requests: +27884, 27885, 27886
pull_request: https://github.com/python/cpython/pull/29648

___
Python tracker 

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



[issue45272] 'os.path' should not be a frozen module

2021-11-19 Thread Guido van Rossum


Change by Guido van Rossum :


--
pull_requests: +27884
pull_request: https://github.com/python/cpython/pull/29648

___
Python tracker 

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



[issue45272] 'os.path' should not be a frozen module

2021-11-19 Thread Guido van Rossum


Change by Guido van Rossum :


--
pull_requests:  -27882

___
Python tracker 

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



[issue45272] 'os.path' should not be a frozen module

2021-11-19 Thread Guido van Rossum


Change by Guido van Rossum :


--
pull_requests: +27882
pull_request: https://github.com/python/cpython/pull/29648

___
Python tracker 

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



[issue45272] 'os.path' should not be a frozen module

2021-10-30 Thread Filipe Laíns

Change by Filipe Laíns :


--
keywords: +patch
pull_requests: +27598
stage: needs patch -> patch review
pull_request: https://github.com/python/cpython/pull/29329

___
Python tracker 

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



[issue45272] 'os.path' should not be a frozen module

2021-10-23 Thread Filipe Laíns

Change by Filipe Laíns :


--
nosy: +FFY00

___
Python tracker 

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



[issue45272] 'os.path' should not be a frozen module

2021-10-06 Thread Guido van Rossum


Guido van Rossum  added the comment:

It was a comment about my general lack of understanding of how the importlib 
bootstrap process works. I should probably start reading the docstrings before 
complaining more. :-)

--

___
Python tracker 

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



[issue45272] 'os.path' should not be a frozen module

2021-10-06 Thread Eric Snow


Eric Snow  added the comment:

On Wed, Oct 6, 2021 at 11:38 AM Guido van Rossum  wrote:
> I'm trying to understand the proposed solution, "have _imp.is_frozen() check 
> the module in sys.modules." Does that mean it would do a dict lookup first?

Correct.  We'd look up the module in sys.modules and, if there, check its 
loader.

> Maybe you should do that in the caller instead? importlib/_bootstrap.py calls 
> it a few times, but I'm not convinced that all call sites can be called with 
> "os.path" -- do you know which path was taken when this failed?

Good point.  The only place where it matters is the FrozenImporter methods that 
are wrapped with _requires_frozen().  So the fix can go there instead of 
_imp.is_frozen().

> I worry about the complexity of the importlib bootstrapping mechanism. 
> Grepping through the source for _bootstrap and _bootstrap_external has not 
> given me any understanding of how this works. Do you know if there are docs 
> for this? Or do we just need to ask Brett?

Are you talking about the use of _imp.is_frozen() or do you mean the code in 
_bootstrap.py (and _bootstrap_external.py) as a whole?  I don't believe there's 
any official documentation about the implementation in _bootstrap.py.  At best 
there have been some PyCon talks about how the import system works (but 
probably not at the level of the implementation) and Brett may have a blog post 
or two.  Keep in mind that I'm quite familiar with the importlib code, though 
Brett is definitely the mastermind behind the overall implementation.

--

___
Python tracker 

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



[issue45272] 'os.path' should not be a frozen module

2021-10-06 Thread Guido van Rossum


Guido van Rossum  added the comment:

I'm trying to understand the proposed solution, "have _imp.is_frozen() check 
the module in sys.modules." Does that mean it would do a dict lookup first? 
Maybe you should do that in the caller instead? importlib/_bootstrap.py calls 
it a few times, but I'm not convinced that all call sites can be called with 
"os.path" -- do you know which path was taken when this failed?

I worry about the complexity of the importlib bootstrapping mechanism. Grepping 
through the source for _bootstrap and _bootstrap_external has not given me any 
understanding of how this works. Do you know if there are docs for this? Or do 
we just need to ask Brett?

--
nosy: +gvanrossum

___
Python tracker 

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



[issue45272] 'os.path' should not be a frozen module

2021-09-24 Thread Dong-hee Na


Change by Dong-hee Na :


--
nosy: +corona10

___
Python tracker 

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



[issue45272] 'os.path' should not be a frozen module

2021-09-23 Thread Eric Snow


Eric Snow  added the comment:

The matter here boils down to the design of _imp.is_frozen() [1].  It only 
checks to see if the given module name shows up in the list of frozen modules 
in Python/frozen.c.  This broke things when I froze os and posixpath/ntpath.

The simplest solution was to include os.path in the list of modules in 
frozen.c.  The better solution would be to have _imp.is_frozen() check the 
module in sys.modules.


[1] see find_frozen() in Python/import.c

--
nosy: +barry, brett.cannon, jaraco, ncoghlan

___
Python tracker 

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



[issue45272] 'os.path' should not be a frozen module

2021-09-23 Thread Steve Dower


New submission from Steve Dower :

I noticed that Python/frozen.c includes posixpath as 'os.path'.

This is not correct, and shouldn't be necessary anyway, because os.path is just 
an attribute in "os" and not a concrete module (see Lib/os.py#L95 for the bit 
that makes it importable, and Lib/os.py#L61 and Lib/os.py#L81 for the imports).

--
assignee: eric.snow
messages: 402506
nosy: eric.snow, steve.dower
priority: normal
severity: normal
stage: needs patch
status: open
title: 'os.path' should not be a frozen module
type: behavior
versions: Python 3.11

___
Python tracker 

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