Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 4b15cf3

Browse files
authored
Rename knot to ty (#166)
1 parent b83b9ea commit 4b15cf3

5 files changed

Lines changed: 40 additions & 40 deletions

File tree

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ mypy_primer is currently used in the CI of the following projects:
1212
- pyright
1313
- basedpyright
1414
- typeshed
15-
- red knot
15+
- ty
1616
- numpy
1717

1818
It has also inspired similar tooling for other projects in the code quality ecosystem.

mypy_primer/globals.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,7 @@ def parse_options(argv: list[str]) -> _Args:
8181
type_checker_group.add_argument(
8282
"--type-checker",
8383
default="mypy",
84-
choices=["mypy", "pyright", "knot", "pyrefly"],
84+
choices=["mypy", "pyright", "ty", "pyrefly"],
8585
help="type checker to use",
8686
)
8787
type_checker_group.add_argument(

mypy_primer/main.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -19,10 +19,10 @@
1919
from mypy_primer.model import Project, TypeCheckResult
2020
from mypy_primer.projects import get_projects
2121
from mypy_primer.type_checker import (
22-
setup_knot,
2322
setup_mypy,
2423
setup_pyrefly,
2524
setup_pyright,
25+
setup_ty,
2626
setup_typeshed,
2727
)
2828
from mypy_primer.utils import Style, debug_print, get_npm, line_count, run, strip_colour_code
@@ -46,8 +46,8 @@ def setup_type_checker(
4646
elif ARGS.type_checker == "pyright":
4747
setup_fn = setup_pyright
4848
kwargs = {"repo": ARGS.repo}
49-
elif ARGS.type_checker == "knot":
50-
setup_fn = setup_knot
49+
elif ARGS.type_checker == "ty":
50+
setup_fn = setup_ty
5151
kwargs = {"repo": ARGS.repo}
5252
elif ARGS.type_checker == "pyrefly":
5353
return setup_pyrefly(
@@ -139,8 +139,8 @@ def select_projects(ARGS: _Args) -> list[Project]:
139139
project_iter = iter(p for p in project_iter if p.mypy_cmd is not None)
140140
if ARGS.type_checker == "pyright":
141141
project_iter = iter(p for p in project_iter if p.pyright_cmd is not None)
142-
# if ARGS.type_checker == "knot":
143-
# project_iter = iter(p for p in project_iter if p.knot_cmd is not None)
142+
# if ARGS.type_checker == "ty":
143+
# project_iter = iter(p for p in project_iter if p.ty_cmd is not None)
144144

145145
if ARGS.project_selector:
146146
project_iter = iter(

mypy_primer/model.py

Lines changed: 23 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ class Project:
2727

2828
mypy_cmd: str | None
2929
pyright_cmd: str | None
30-
knot_cmd: str | None = None # TODO: remove this default
30+
ty_cmd: str | None = None # TODO: remove this default
3131
pyrefly_cmd: str | None = None # TODO: remove this default
3232
paths: list[str] | None = None
3333

@@ -57,8 +57,8 @@ def __repr__(self) -> str:
5757
result += f", name_override={self.name_override!r}"
5858
if self.pyright_cmd:
5959
result += f", pyright_cmd={self.pyright_cmd!r}"
60-
if self.knot_cmd:
61-
result += f", knot_cmd={self.knot_cmd!r}"
60+
if self.ty_cmd:
61+
result += f", ty_cmd={self.ty_cmd!r}"
6262
if self.pyrefly_cmd:
6363
result += f", pyrefly_cmd={self.pyrefly_cmd!r}"
6464
if self.paths:
@@ -292,21 +292,21 @@ async def run_pyright(
292292
runtime=runtime,
293293
)
294294

295-
def get_knot_cmd(self, knot: Path, additional_flags: Sequence[str] = ()) -> str:
296-
knot_cmd = self.knot_cmd
297-
if knot_cmd is None:
298-
knot_cmd = "{knot} check {paths}" if self.paths else "{knot} check"
299-
assert "{knot}" in knot_cmd
295+
def get_ty_cmd(self, ty: Path, additional_flags: Sequence[str] = ()) -> str:
296+
ty_cmd = self.ty_cmd
297+
if ty_cmd is None:
298+
ty_cmd = "{ty} check {paths}" if self.paths else "{ty} check"
299+
assert "{ty}" in ty_cmd
300300
if additional_flags:
301-
knot_cmd += " " + " ".join(additional_flags)
301+
ty_cmd += " " + " ".join(additional_flags)
302302

303-
knot_cmd = knot_cmd.format_map(_FormatMap(knot=knot, paths=self.paths))
303+
ty_cmd = ty_cmd.format_map(_FormatMap(ty=ty, paths=self.paths))
304304

305-
knot_cmd += f" --python {quote_path(self.venv.dir)} --output-format concise"
306-
return knot_cmd
305+
ty_cmd += f" --python {quote_path(self.venv.dir)} --output-format concise"
306+
return ty_cmd
307307

308-
async def run_knot(
309-
self, knot: Path, typeshed_dir: Path | None, prepend_path: Path | None
308+
async def run_ty(
309+
self, ty: Path, typeshed_dir: Path | None, prepend_path: Path | None
310310
) -> TypeCheckResult:
311311
env = os.environ.copy()
312312
additional_flags = ctx.get().additional_flags.copy()
@@ -318,36 +318,36 @@ async def run_knot(
318318

319319
env["CLICOLOR_FORCE"] = "1"
320320

321-
knot_cmd = self.get_knot_cmd(knot, additional_flags)
321+
ty_cmd = self.get_ty_cmd(ty, additional_flags)
322322
proc, runtime = await run(
323-
knot_cmd,
323+
ty_cmd,
324324
shell=True,
325325
output=True,
326326
check=False,
327327
cwd=ctx.get().projects_dir / self.name,
328328
env=env,
329329
)
330330
if ctx.get().debug:
331-
debug_print(f"{Style.BLUE}{knot} on {self.name} took {runtime:.2f}s{Style.RESET}")
331+
debug_print(f"{Style.BLUE}{ty} on {self.name} took {runtime:.2f}s{Style.RESET}")
332332

333333
if proc.returncode not in (0, 1):
334334
debug_print(proc.stderr + proc.stdout)
335335
if proc.returncode == 2:
336336
raise RuntimeError(
337-
f"Red Knot exited with code 2 when checking {self.name!r}. This may indicate an internal problem (e.g. IO error)"
337+
f"ty exited with code 2 when checking {self.name!r}. This may indicate an internal problem (e.g. IO error)"
338338
)
339339
else:
340340
raise RuntimeError(
341-
f"Red Knot did not exit with code 0, 1 or 2 when checking {self.name!r}. Panic?"
341+
f"ty did not exit with code 0, 1 or 2 when checking {self.name!r}. Panic?"
342342
)
343343

344344
output = proc.stderr + proc.stdout
345345

346346
return TypeCheckResult(
347-
knot_cmd,
347+
ty_cmd,
348348
output=output,
349349
success=not bool(proc.returncode),
350-
expected_success="knot" in self.expected_success,
350+
expected_success="ty" in self.expected_success,
351351
runtime=runtime,
352352
)
353353

@@ -415,8 +415,8 @@ async def run_typechecker(
415415
return await self.run_mypy(type_checker, typeshed_dir, prepend_path)
416416
elif ctx.get().type_checker == "pyright":
417417
return await self.run_pyright(type_checker, typeshed_dir, prepend_path)
418-
elif ctx.get().type_checker == "knot":
419-
return await self.run_knot(type_checker, typeshed_dir, prepend_path)
418+
elif ctx.get().type_checker == "ty":
419+
return await self.run_ty(type_checker, typeshed_dir, prepend_path)
420420
elif ctx.get().type_checker == "pyrefly":
421421
return await self.run_pyrefly(type_checker, typeshed_dir, prepend_path)
422422
else:

mypy_primer/type_checker.py

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -98,39 +98,39 @@ async def setup_pyright(
9898
return pyright_exe
9999

100100

101-
async def setup_knot(
102-
knot_dir: Path,
101+
async def setup_ty(
102+
ty_dir: Path,
103103
revision_like: RevisionLike,
104104
*,
105105
repo: str | None,
106106
) -> Path:
107-
knot_dir.mkdir(parents=True, exist_ok=True)
107+
ty_dir.mkdir(parents=True, exist_ok=True)
108108

109109
if repo is None:
110110
repo = "https://github.com/astral-sh/ruff"
111-
repo_dir = await ensure_repo_at_revision(repo, knot_dir, revision_like)
111+
repo_dir = await ensure_repo_at_revision(repo, ty_dir, revision_like)
112112

113-
cargo_target_dir = knot_dir / "target"
113+
cargo_target_dir = ty_dir / "target"
114114
if not os.environ.get("MYPY_PRIMER_NO_REBUILD", False):
115115
env = os.environ.copy()
116116
env["CARGO_TARGET_DIR"] = str(cargo_target_dir)
117117

118118
try:
119119
await run(
120-
["cargo", "build", "--bin", "red_knot"],
120+
["cargo", "build", "--bin", "ty"],
121121
cwd=repo_dir,
122122
env=env,
123123
output=True,
124124
)
125125
except subprocess.CalledProcessError as e:
126-
print("Error while building 'knot'", file=sys.stderr)
126+
print("Error while building 'ty'", file=sys.stderr)
127127
print(e.stdout, file=sys.stderr)
128128
print(e.stderr, file=sys.stderr)
129129
raise e
130130

131-
knot_exe = cargo_target_dir / "debug" / "red_knot"
132-
assert knot_exe.exists()
133-
return knot_exe
131+
ty_exe = cargo_target_dir / "debug" / "ty"
132+
assert ty_exe.exists()
133+
return ty_exe
134134

135135

136136
async def setup_pyrefly(

0 commit comments

Comments
 (0)