##// END OF EJS Templates
Merge pull request #1608 from minrk/ar_sugar_2.6...
Merge pull request #1608 from minrk/ar_sugar_2.6 don't rely on timedelta.total_seconds in AsyncResult (timedelta is new in python 2.7). This maintains compatibility with Python 2.6; the utility function introduced can be removed if/when we drop 2.6 support.

File last commit:

r5882:fd2691c8
r6505:5750e2dd merge
Show More
pyfile.py
23 lines | 840 B | text/x-python | PythonLexer
Thomas Kluyver
Find .py files for verbose tracebacks, rather than trying to tokenize .pyc files.
r5851 """Utilities for working with Python source files.
Exposes various functions from recent Python standard libraries, along with
equivalents for older Python versions.
"""
import os.path
try: # Python 3.2
from imp import source_from_cache, cache_from_source
except ImportError:
# Python <= 3.1: .pyc files go next to .py
def source_from_cache(path):
basename, ext = os.path.splitext(path)
Thomas
Fix syntax for Python 2.6 - no set literals.
r5882 if ext not in ('.pyc', '.pyo'):
Thomas Kluyver
Find .py files for verbose tracebacks, rather than trying to tokenize .pyc files.
r5851 raise ValueError('Not a cached Python file extension', ext)
# Should we look for .pyw files?
return basename + '.py'
def cache_from_source(path, debug_override=None):
if debug_override is None:
debug_override = __debug__
basename, ext = os.path.splitext(path)
return basename + '.pyc' if debug_override else '.pyo'