73 lines
1.9 KiB
Python
73 lines
1.9 KiB
Python
import os
|
|
from pathlib import Path
|
|
from typing import Iterable, Optional, Union
|
|
|
|
import unasync
|
|
|
|
ADDITIONAL_REPLACEMENTS = {
|
|
"aredis_om": "redis_om",
|
|
"aioredis": "redis",
|
|
":tests.": ":tests_sync.",
|
|
"pytest_asyncio": "pytest",
|
|
}
|
|
|
|
STRINGS_TO_REMOVE_FROM_SYNC_TESTS = {
|
|
"@pytest.mark.asyncio",
|
|
}
|
|
|
|
|
|
def remove_strings_from_files(
|
|
filepaths: Iterable[Union[bytes, str, os.PathLike]],
|
|
strings_to_remove: Iterable[str],
|
|
):
|
|
for filepath in filepaths:
|
|
tmp_filepath = f"{filepath}.tmp"
|
|
with open(filepath, "r") as read_file, open(tmp_filepath, "w") as write_file:
|
|
for line in read_file:
|
|
if line.strip() in strings_to_remove:
|
|
continue
|
|
print(line, end="", file=write_file)
|
|
os.replace(tmp_filepath, filepath)
|
|
|
|
|
|
def get_source_filepaths(directory: Optional[Union[bytes, str, os.PathLike]] = None):
|
|
walk_path = (
|
|
Path(__file__).absolute().parent
|
|
if directory is None
|
|
else os.path.join(Path(__file__).absolute().parent, directory)
|
|
)
|
|
|
|
filepaths = []
|
|
for root, _, filenames in os.walk(walk_path):
|
|
for filename in filenames:
|
|
if filename.rpartition(".")[-1] in (
|
|
"py",
|
|
"pyi",
|
|
):
|
|
filepaths.append(os.path.join(root, filename))
|
|
return filepaths
|
|
|
|
|
|
def main():
|
|
rules = [
|
|
unasync.Rule(
|
|
fromdir="/aredis_om/",
|
|
todir="/redis_om/",
|
|
additional_replacements=ADDITIONAL_REPLACEMENTS,
|
|
),
|
|
unasync.Rule(
|
|
fromdir="/tests/",
|
|
todir="/tests_sync/",
|
|
additional_replacements=ADDITIONAL_REPLACEMENTS,
|
|
),
|
|
]
|
|
|
|
unasync.unasync_files(get_source_filepaths(), rules)
|
|
remove_strings_from_files(
|
|
get_source_filepaths("tests_sync"), STRINGS_TO_REMOVE_FROM_SYNC_TESTS
|
|
)
|
|
|
|
|
|
if __name__ == "__main__":
|
|
main()
|