mirror of
https://github.com/varun-r-mallya/py-libp2p.git
synced 2025-12-31 20:36:24 +00:00
* template cleanup following initial merge with py-evm * add flake8 pin comment * correct license years * add pin note to mypy
72 lines
2.3 KiB
Python
72 lines
2.3 KiB
Python
#!/usr/bin/env python3
|
|
|
|
import os
|
|
import sys
|
|
import re
|
|
from pathlib import Path
|
|
|
|
|
|
def _find_files(project_root):
|
|
path_exclude_pattern = r"\.git($|\/)|venv|_build"
|
|
file_exclude_pattern = r"fill_template_vars\.py|\.swp$"
|
|
filepaths = []
|
|
for dir_path, _dir_names, file_names in os.walk(project_root):
|
|
if not re.search(path_exclude_pattern, dir_path):
|
|
for file in file_names:
|
|
if not re.search(file_exclude_pattern, file):
|
|
filepaths.append(str(Path(dir_path, file)))
|
|
|
|
return filepaths
|
|
|
|
|
|
def _replace(pattern, replacement, project_root):
|
|
print(f"Replacing values: {pattern}")
|
|
for file in _find_files(project_root):
|
|
try:
|
|
with open(file) as f:
|
|
content = f.read()
|
|
content = re.sub(pattern, replacement, content)
|
|
with open(file, "w") as f:
|
|
f.write(content)
|
|
except UnicodeDecodeError:
|
|
pass
|
|
|
|
|
|
def main():
|
|
project_root = Path(os.path.realpath(sys.argv[0])).parent.parent
|
|
|
|
module_name = input("What is your python module name? ")
|
|
|
|
pypi_input = input(f"What is your pypi package name? (default: {module_name}) ")
|
|
pypi_name = pypi_input or module_name
|
|
|
|
repo_input = input(f"What is your github project name? (default: {pypi_name}) ")
|
|
repo_name = repo_input or pypi_name
|
|
|
|
rtd_input = input(
|
|
f"What is your readthedocs.org project name? (default: {pypi_name}) "
|
|
)
|
|
rtd_name = rtd_input or pypi_name
|
|
|
|
project_input = input(
|
|
f"What is your project name (ex: at the top of the README)? (default: {repo_name}) "
|
|
)
|
|
project_name = project_input or repo_name
|
|
|
|
short_description = input("What is a one-liner describing the project? ")
|
|
|
|
_replace("<MODULE_NAME>", module_name, project_root)
|
|
_replace("<PYPI_NAME>", pypi_name, project_root)
|
|
_replace("<REPO_NAME>", repo_name, project_root)
|
|
_replace("<RTD_NAME>", rtd_name, project_root)
|
|
_replace("<PROJECT_NAME>", project_name, project_root)
|
|
_replace("<SHORT_DESCRIPTION>", short_description, project_root)
|
|
|
|
os.makedirs(project_root / module_name, exist_ok=True)
|
|
Path(project_root / module_name / "__init__.py").touch()
|
|
Path(project_root / module_name / "py.typed").touch()
|
|
|
|
|
|
if __name__ == "__main__":
|
|
main()
|