Making code objects filename an absolute path.

I was working on bpo20443 <https://bugs.python.org/issue20443> but then i realized it changes behavior of the compiler and some functions so i want to propose this change to here and then write a pep. I have a draft pr, it introduces a new future flag and as far as i can understand from the future docs, i need a PEP. Before writing to PEP, is there a core developer wants to sponsor my PEP? Reference implementation: https://github.com/python/cpython/pull/13527

The bpo i referenced can explain it better. An example; def foo(): pass assert foo.__code__.co_filename = os.path.abspath(foo.__code__.co_filename)

On Fri, May 24, 2019 at 11:52 AM Batuhan Taskaya <isidentical@gmail.com> wrote:
Do realize there's a reason that issue has been open for well over five years: changing this will probably break code. And so you need to justify *why* you think that's acceptable since Python has existed with these semantics on code objects for decades as this point.

On Fri, 24 May 2019 at 16:49, Batuhan Taskaya <isidentical@gmail.com> wrote:
It is also not reasonable to suppose that "since python 4 is looming in the horizon we can schedule a lot of breaking changes for that". The incompatible changes that took place on 2->3 won't happen again. If the absolute path for __file__ is needed and you can demonstrate it, it is safer to create another property like __abs_file__ (this has happened with __qualname__ for example)

On Fri., May 24, 2019, 12:48 Batuhan Taskaya, <isidentical@gmail.com> wrote:
It's a bit more subtle because obviously some of us disagree that there's an issue and there wasn't any discussion to see if there was consensus. Plus tests are typically requires first regardless. -Brett I'm

The bpo i referenced can explain it better. An example; def foo(): pass assert foo.__code__.co_filename = os.path.abspath(foo.__code__.co_filename)

On Fri, May 24, 2019 at 11:52 AM Batuhan Taskaya <isidentical@gmail.com> wrote:
Do realize there's a reason that issue has been open for well over five years: changing this will probably break code. And so you need to justify *why* you think that's acceptable since Python has existed with these semantics on code objects for decades as this point.

On Fri, 24 May 2019 at 16:49, Batuhan Taskaya <isidentical@gmail.com> wrote:
It is also not reasonable to suppose that "since python 4 is looming in the horizon we can schedule a lot of breaking changes for that". The incompatible changes that took place on 2->3 won't happen again. If the absolute path for __file__ is needed and you can demonstrate it, it is safer to create another property like __abs_file__ (this has happened with __qualname__ for example)

On Fri., May 24, 2019, 12:48 Batuhan Taskaya, <isidentical@gmail.com> wrote:
It's a bit more subtle because obviously some of us disagree that there's an issue and there wasn't any discussion to see if there was consensus. Plus tests are typically requires first regardless. -Brett I'm
participants (4)
-
Batuhan Taskaya
-
Brett Cannon
-
Joao S. O. Bueno
-
Rhodri James