Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
C
cpython
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
cpython
Commits
0beb4d28
Commit
0beb4d28
authored
Sep 25, 2012
by
Benjamin Peterson
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
don't depend on __debug__ because it's baked in at freeze time (issue #16046)
parent
d0af3103
Changes
3
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
4241 additions
and
4229 deletions
+4241
-4229
Lib/importlib/_bootstrap.py
Lib/importlib/_bootstrap.py
+9
-8
Misc/NEWS
Misc/NEWS
+2
-0
Python/importlib.h
Python/importlib.h
+4230
-4221
No files found.
Lib/importlib/_bootstrap.py
View file @
0beb4d28
...
...
@@ -411,25 +411,21 @@ SOURCE_SUFFIXES = ['.py'] # _setup() adds .pyw as needed.
DEBUG_BYTECODE_SUFFIXES
=
[
'.pyc'
]
OPTIMIZED_BYTECODE_SUFFIXES
=
[
'.pyo'
]
if
__debug__
:
BYTECODE_SUFFIXES
=
DEBUG_BYTECODE_SUFFIXES
else
:
BYTECODE_SUFFIXES
=
OPTIMIZED_BYTECODE_SUFFIXES
def
cache_from_source
(
path
,
debug_override
=
None
):
"""Given the path to a .py file, return the path to its .pyc/.pyo file.
The .py file does not need to exist; this simply returns the path to the
.pyc/.pyo file calculated as if the .py file were imported. The extension
will be .pyc unless
__debug__ is not defined
, then it will be .pyo.
will be .pyc unless
sys.flags.optimize is non-zero
, then it will be .pyo.
If debug_override is not None, then it must be a boolean and is taken as
the value of
__debug__
instead.
the value of
bool(sys.flags.optimize)
instead.
If sys.implementation.cache_tag is None then NotImplementedError is raised.
"""
debug
=
__debug__
if
debug_override
is
None
else
debug_override
debug
=
not
sys
.
flags
.
optimize
if
debug_override
is
None
else
debug_override
if
debug
:
suffixes
=
DEBUG_BYTECODE_SUFFIXES
else
:
...
...
@@ -1688,10 +1684,15 @@ def _setup(sys_module, _imp_module):
modules, those two modules must be explicitly passed in.
"""
global
_imp
,
sys
global
_imp
,
sys
,
BYTECODE_SUFFIXES
_imp
=
_imp_module
sys
=
sys_module
if
sys
.
flags
.
optimize
:
BYTECODE_SUFFIXES
=
OPTIMIZED_BYTECODE_SUFFIXES
else
:
BYTECODE_SUFFIXES
=
DEBUG_BYTECODE_SUFFIXES
for
module
in
(
_imp
,
sys
):
if
not
hasattr
(
module
,
'__loader__'
):
module
.
__loader__
=
BuiltinImporter
...
...
Misc/NEWS
View file @
0beb4d28
...
...
@@ -10,6 +10,8 @@ What's New in Python 3.3.0?
Core and Builtins
-----------------
- Issue #16046: Fix loading sourceless legacy .pyo files.
Library
-------
...
...
Python/importlib.h
View file @
0beb4d28
This diff is collapsed.
Click to expand it.
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment