def format(): def should_format_file(path): if "vendor" in path.split(os.path.sep): return False return path.endswith(".py") changed = tools.modified_files() format_all = os.environ.get("FORMAT_ALL", "").lower() == "true" if "requirements/tools.txt" in changed: # We've changed the tools, which includes a lot of our formatting # logic, so we need to rerun formatters. format_all = True files = tools.all_files() if format_all else changed files_to_format = [f for f in sorted(files) if should_format_file(f)] if not files_to_format: return for f in files_to_format: lines = [] with open(f, encoding="utf-8") as o: shebang = None first = True header_done = False for l in o.readlines(): if first: first = False if l[:2] == "#!": shebang = l continue if "END HEADER" in l and not header_done: lines = [] header_done = True else: lines.append(l) source = "".join(lines).strip() with open(f, "w", encoding="utf-8") as o: if shebang is not None: o.write(shebang) o.write("\n") o.write(HEADER) if source: o.write("\n\n") o.write(source) o.write("\n") pip_tool("isort", *files_to_format) pip_tool("black", *files_to_format)
def format(): def should_format_file(path): return path.endswith(".py") def should_format_doc_file(path): return path.endswith((".rst", ".md")) changed = tools.modified_files() format_all = os.environ.get("FORMAT_ALL", "").lower() == "true" if "requirements/tools.txt" in changed: # We've changed the tools, which includes a lot of our formatting # logic, so we need to rerun formatters. format_all = True files = tools.all_files() if format_all else changed doc_files_to_format = [ f for f in sorted(files) if should_format_doc_file(f) ] pip_tool("blacken-docs", *doc_files_to_format) files_to_format = [f for f in sorted(files) if should_format_file(f)] if not files_to_format: return # .coveragerc lists several regex patterns to treat as nocover pragmas, and # we want to find (and delete) cases where # pragma: no cover is redundant. config = CoverageConfig() config.from_file(os.path.join(hp.BASE_DIR, ".coveragerc"), our_file=True) pattern = "|".join(l for l in config.exclude_list if "pragma" not in l) unused_pragma_pattern = re.compile(f"({pattern}).*# pragma: no cover") for f in files_to_format: lines = [] with open(f, encoding="utf-8") as o: shebang = None first = True header_done = False for l in o.readlines(): if first: first = False if l[:2] == "#!": shebang = l continue if "END HEADER" in l and not header_done: lines = [] header_done = True elif unused_pragma_pattern.search(l) is not None: lines.append(l.replace("# pragma: no cover", "")) else: lines.append(l) source = "".join(lines).strip() with open(f, "w", encoding="utf-8") as o: if shebang is not None: o.write(shebang) o.write("\n") o.write(HEADER) if source: o.write("\n\n") o.write(source) o.write("\n") pip_tool( "autoflake", "--recursive", "--in-place", "--exclude=compat.py", "--remove-all-unused-imports", "--remove-duplicate-keys", "--remove-unused-variables", *files_to_format, ) pip_tool("pyupgrade", "--keep-percent-format", "--py36-plus", *files_to_format) pip_tool("isort", *files_to_format) pip_tool("black", "--target-version=py36", *files_to_format)
import hypothesistooling as tools sys.path.append(os.path.dirname(__file__)) # noqa def should_format_file(path): if os.path.basename(path) in ('header.py', 'test_lambda_formatting.py'): return False if 'vendor' in path.split(os.path.sep): return False return path.endswith('.py') if __name__ == '__main__': changed = tools.modified_files() format_all = os.environ.get('FORMAT_ALL', '').lower() == 'true' if 'scripts/header.py' in changed: # We've changed the header, so everything needs its header updated. format_all = True if 'requirements/tools.txt' in changed: # We've changed the tools, which includes a lot of our formatting # logic, so we need to rerun formatters. format_all = True files = tools.all_files() if format_all else changed for f in sorted(files): if should_format_file(f): print(f)
def format(): def should_format_file(path): if os.path.basename(path) in ('header.py', 'test_lambda_formatting.py'): return False if 'vendor' in path.split(os.path.sep): return False return path.endswith('.py') changed = tools.modified_files() format_all = os.environ.get('FORMAT_ALL', '').lower() == 'true' if 'scripts/header.py' in changed: # We've changed the header, so everything needs its header updated. format_all = True if 'requirements/tools.txt' in changed: # We've changed the tools, which includes a lot of our formatting # logic, so we need to rerun formatters. format_all = True files = tools.all_files() if format_all else changed files_to_format = [f for f in sorted(files) if should_format_file(f)] if not files_to_format: return for f in files_to_format: print(f) lines = [] with open(f, encoding='utf-8') as o: shebang = None first = True header_done = False for l in o.readlines(): if first: first = False if l[:2] == '#!': shebang = l continue if 'END HEADER' in l and not header_done: lines = [] header_done = True else: lines.append(l) source = ''.join(lines).strip() with open(f, 'w', encoding='utf-8') as o: if shebang is not None: o.write(shebang) o.write('\n') o.write(HEADER) if source: o.write('\n\n') o.write(source) o.write('\n') pip_tool( 'isort', '-p', 'hypothesis', '-ls', '-m', '2', '-w', '75', '-a', 'from __future__ import absolute_import, print_function, division', *files_to_format, ) pip_tool('pyformat', '-i', *files_to_format)
def format(): def should_format_file(path): if os.path.basename(path) in ( 'header.py', 'test_lambda_formatting.py' ): return False if 'vendor' in path.split(os.path.sep): return False return path.endswith('.py') changed = tools.modified_files() format_all = os.environ.get('FORMAT_ALL', '').lower() == 'true' if 'scripts/header.py' in changed: # We've changed the header, so everything needs its header updated. format_all = True if 'requirements/tools.txt' in changed: # We've changed the tools, which includes a lot of our formatting # logic, so we need to rerun formatters. format_all = True files = tools.all_files() if format_all else changed files_to_format = [f for f in sorted(files) if should_format_file(f)] if not files_to_format: return for f in files_to_format: print(f) lines = [] with open(f, encoding='utf-8') as o: shebang = None first = True header_done = False for l in o.readlines(): if first: first = False if l[:2] == '#!': shebang = l continue if 'END HEADER' in l and not header_done: lines = [] header_done = True else: lines.append(l) source = ''.join(lines).strip() with open(f, 'w', encoding='utf-8') as o: if shebang is not None: o.write(shebang) o.write('\n') o.write(HEADER) if source: o.write('\n\n') o.write(source) o.write('\n') pip_tool( 'isort', '-p', 'hypothesis', '-ls', '-m', '2', '-w', '75', '-a', 'from __future__ import absolute_import, print_function, division', *files_to_format, ) pip_tool('pyformat', '-i', *files_to_format)
def format(): def should_format_file(path): if "vendor" in path.split(os.path.sep): return False return path.endswith(".py") def should_format_doc_file(path): return path.endswith((".rst", ".md")) changed = tools.modified_files() format_all = os.environ.get("FORMAT_ALL", "").lower() == "true" if "requirements/tools.txt" in changed: # We've changed the tools, which includes a lot of our formatting # logic, so we need to rerun formatters. format_all = True files = tools.all_files() if format_all else changed doc_files_to_format = [ f for f in sorted(files) if should_format_doc_file(f) ] pip_tool("blacken-docs", *doc_files_to_format) files_to_format = [f for f in sorted(files) if should_format_file(f)] if not files_to_format: return for f in files_to_format: lines = [] with open(f, encoding="utf-8") as o: shebang = None first = True header_done = False for l in o.readlines(): if first: first = False if l[:2] == "#!": shebang = l continue if "END HEADER" in l and not header_done: lines = [] header_done = True else: lines.append(l) source = "".join(lines).strip() with open(f, "w", encoding="utf-8") as o: if shebang is not None: o.write(shebang) o.write("\n") o.write(HEADER) if source: o.write("\n\n") o.write(source) o.write("\n") pip_tool( "autoflake", "--recursive", "--in-place", "--exclude=compat.py", "--remove-all-unused-imports", "--remove-duplicate-keys", "--remove-unused-variables", *files_to_format, ) pip_tool("pyupgrade", "--keep-percent-format", *files_to_format) pip_tool("isort", *files_to_format) pip_tool("black", *files_to_format)
def format(): def should_format_file(path): return path.endswith(".py") def should_format_doc_file(path): return path.endswith((".rst", ".md")) changed = tools.modified_files() format_all = os.environ.get("FORMAT_ALL", "").lower() == "true" if "requirements/tools.txt" in changed: # We've changed the tools, which includes a lot of our formatting # logic, so we need to rerun formatters. format_all = True files = tools.all_files() if format_all else changed doc_files_to_format = [f for f in sorted(files) if should_format_doc_file(f)] pip_tool("blacken-docs", *doc_files_to_format) files_to_format = [f for f in sorted(files) if should_format_file(f)] if not files_to_format: return # .coveragerc lists several regex patterns to treat as nocover pragmas, and # we want to find (and delete) cases where # pragma: no cover is redundant. def warn(msg): raise Exception(msg) config = CoverageConfig() config.from_file(os.path.join(hp.BASE_DIR, ".coveragerc"), warn=warn, our_file=True) pattern = "|".join(l for l in config.exclude_list if "pragma" not in l) unused_pragma_pattern = re.compile(f"(({pattern}).*) # pragma: no (branch|cover)") for f in files_to_format: lines = [] with open(f, encoding="utf-8") as o: shebang = None first = True header_done = False for l in o.readlines(): if first: first = False if l[:2] == "#!": shebang = l continue if "END HEADER" in l and not header_done: lines = [] header_done = True else: lines.append(unused_pragma_pattern.sub(r"\1", l)) source = "".join(lines).strip() with open(f, "w", encoding="utf-8") as o: if shebang is not None: o.write(shebang) o.write("\n") o.write(HEADER) if source: o.write("\n\n") o.write(source) o.write("\n") codespell("--write-changes", *files_to_format, *doc_files_to_format) pip_tool("shed", *files_to_format, *doc_files_to_format)
def format(): def should_format_file(path): if "vendor" in path.split(os.path.sep): return False return path.endswith(".py") changed = tools.modified_files() format_all = os.environ.get("FORMAT_ALL", "").lower() == "true" if "requirements/tools.txt" in changed: # We've changed the tools, which includes a lot of our formatting # logic, so we need to rerun formatters. format_all = True files = tools.all_files() if format_all else changed files_to_format = [f for f in sorted(files) if should_format_file(f)] if not files_to_format: return for f in files_to_format: lines = [] with open(f, encoding="utf-8") as o: shebang = None first = True header_done = False for l in o.readlines(): if first: first = False if l[:2] == "#!": shebang = l continue if "END HEADER" in l and not header_done: lines = [] header_done = True else: lines.append(l) source = "".join(lines).strip() with open(f, "w", encoding="utf-8") as o: if shebang is not None: o.write(shebang) o.write("\n") o.write(HEADER) if source: o.write("\n\n") o.write(source) o.write("\n") pip_tool( "autoflake", "--recursive", "--in-place", "--exclude=compat.py", "--remove-all-unused-imports", "--remove-duplicate-keys", "--remove-unused-variables", *files_to_format, ) pip_tool("pyupgrade", "--keep-percent-format", *files_to_format) pip_tool("isort", *files_to_format) pip_tool("black", *files_to_format)