def _isPythonFile(filename): if filename.endswith((".py", ".pyw", ".scons")): return True else: shebang = getShebangFromFile(filename) if shebang is not None: shebang = shebang[2:].lstrip() if shebang.startswith("/usr/bin/env"): shebang = shebang[12:].lstrip() if shebang.startswith("python"): return True return False
def _isPythonFile(filename): if filename.endswith((".py", ".pyw")): return True else: shebang = getShebangFromFile(filename) if shebang is not None: shebang = shebang[2:].lstrip() if shebang.startswith("/usr/bin/env"): shebang = shebang[12:].lstrip() if shebang.startswith("python"): return True return False
def isPythonFile(filename, effective_filename=None): if effective_filename is None: effective_filename = filename if os.path.isdir(filename): return False if effective_filename.endswith((".py", ".pyw", ".scons")): return True else: shebang = getShebangFromFile(filename) if shebang is not None: shebang = shebang[2:].lstrip() if shebang.startswith("/usr/bin/env"): shebang = shebang[12:].lstrip() if shebang.startswith("python"): return True return False
def addFromDirectory(path, suffixes, blacklist): for dirpath, dirnames, filenames in os.walk(path): dirnames.sort() if "inline_copy" in dirnames: dirnames.remove("inline_copy") if "__pycache__" in dirnames: dirnames.remove("__pycache__") filenames.sort() for filename in filenames: if filename in blacklist: continue fullpath = os.path.join(dirpath, filename) # Ignore links if os.path.islink(fullpath): continue # Skip temporary files from flymake mode of Emacs. if filename.endswith("_flymake.py"): continue # Skip temporary files from unsaved files of Emacs. if filename.startswith(".#"): continue # Skip bytecode files if filename.endswith((".pyc", ".pyo")): continue # Python files only. if ".py" in suffixes and not filename.endswith(suffixes): shebang = getShebangFromFile(fullpath) if shebang is None or "python" not in shebang: continue yield fullpath