this derivation will be built: /nix/store/69cgl9jr1p8gryj460fg8jrm6y21xagg-kmap-cli-0.1.0.drv building '/nix/store/69cgl9jr1p8gryj460fg8jrm6y21xagg-kmap-cli-0.1.0.drv' kmap-cli-0.1.0> Sourcing python-remove-tests-dir-hook kmap-cli-0.1.0> Sourcing python-catch-conflicts-hook.sh kmap-cli-0.1.0> Sourcing python-remove-bin-bytecode-hook.sh kmap-cli-0.1.0> Sourcing pypa-build-hook kmap-cli-0.1.0> Using pypaBuildPhase kmap-cli-0.1.0> Sourcing python-runtime-deps-check-hook kmap-cli-0.1.0> Using pythonRuntimeDepsCheckHook kmap-cli-0.1.0> Sourcing pypa-install-hook kmap-cli-0.1.0> Using pypaInstallPhase kmap-cli-0.1.0> Sourcing python-imports-check-hook.sh kmap-cli-0.1.0> Using pythonImportsCheckPhase kmap-cli-0.1.0> Sourcing python-namespaces-hook kmap-cli-0.1.0> Sourcing python-catch-conflicts-hook.sh kmap-cli-0.1.0> Sourcing pytest-check-hook kmap-cli-0.1.0> Running phase: unpackPhase kmap-cli-0.1.0> unpacking source archive /nix/store/552jmv68yc0sddhfj1kl99z1pi8whxm0-kmap-cli kmap-cli-0.1.0> source root is kmap-cli kmap-cli-0.1.0> setting SOURCE_DATE_EPOCH to timestamp 315619200 of file "kmap-cli/tests/test_kmap_cli.py" kmap-cli-0.1.0> Running phase: patchPhase kmap-cli-0.1.0> Running phase: updateAutotoolsGnuConfigScriptsPhase kmap-cli-0.1.0> Running phase: configurePhase kmap-cli-0.1.0> no configure script, doing nothing kmap-cli-0.1.0> Running phase: buildPhase kmap-cli-0.1.0> Executing pypaBuildPhase kmap-cli-0.1.0> Creating a wheel... kmap-cli-0.1.0> pypa build flags: --no-isolation --outdir dist/ --wheel kmap-cli-0.1.0> * Getting build dependencies for wheel... kmap-cli-0.1.0> * Building wheel... kmap-cli-0.1.0> Successfully built kmap_cli-0.1.0-py3-none-any.whl kmap-cli-0.1.0> Finished creating a wheel... kmap-cli-0.1.0> Finished executing pypaBuildPhase kmap-cli-0.1.0> Running phase: pythonRuntimeDepsCheckHook kmap-cli-0.1.0> Executing pythonRuntimeDepsCheck kmap-cli-0.1.0> Checking runtime dependencies for kmap_cli-0.1.0-py3-none-any.whl kmap-cli-0.1.0> Finished executing pythonRuntimeDepsCheck kmap-cli-0.1.0> Running phase: installPhase kmap-cli-0.1.0> Executing pypaInstallPhase kmap-cli-0.1.0> Successfully installed kmap_cli-0.1.0-py3-none-any.whl kmap-cli-0.1.0> Finished executing pypaInstallPhase kmap-cli-0.1.0> Running phase: pythonOutputDistPhase kmap-cli-0.1.0> Executing pythonOutputDistPhase kmap-cli-0.1.0> Finished executing pythonOutputDistPhase kmap-cli-0.1.0> Running phase: fixupPhase kmap-cli-0.1.0> shrinking RPATHs of ELF executables and libraries in /nix/store/6y6ri38j7mzsnz1iqk96nsijn6cj7gl1-kmap-cli-0.1.0 kmap-cli-0.1.0> checking for references to /build/ in /nix/store/6y6ri38j7mzsnz1iqk96nsijn6cj7gl1-kmap-cli-0.1.0... kmap-cli-0.1.0> patching script interpreter paths in /nix/store/6y6ri38j7mzsnz1iqk96nsijn6cj7gl1-kmap-cli-0.1.0 kmap-cli-0.1.0> stripping (with command strip and flags -S -p) in /nix/store/6y6ri38j7mzsnz1iqk96nsijn6cj7gl1-kmap-cli-0.1.0/lib /nix/store/6y6ri38j7mzsnz1iqk96nsijn6cj7gl1-kmap-cli-0.1.0/bin kmap-cli-0.1.0> shrinking RPATHs of ELF executables and libraries in /nix/store/gv6skaqssd24qvdkaaynfd2rz1dzszzg-kmap-cli-0.1.0-dist kmap-cli-0.1.0> checking for references to /build/ in /nix/store/gv6skaqssd24qvdkaaynfd2rz1dzszzg-kmap-cli-0.1.0-dist... kmap-cli-0.1.0> patching script interpreter paths in /nix/store/gv6skaqssd24qvdkaaynfd2rz1dzszzg-kmap-cli-0.1.0-dist kmap-cli-0.1.0> Rewriting #!/nix/store/gxzhl7aaiid7zp3y47jqqiq7zg5mqpwp-python3-3.14.6/bin/python3.14 to #!/nix/store/gxzhl7aaiid7zp3y47jqqiq7zg5mqpwp-python3-3.14.6 kmap-cli-0.1.0> wrapping `/nix/store/6y6ri38j7mzsnz1iqk96nsijn6cj7gl1-kmap-cli-0.1.0/bin/kmap-cli'... kmap-cli-0.1.0> Executing pythonRemoveTestsDir kmap-cli-0.1.0> Finished executing pythonRemoveTestsDir kmap-cli-0.1.0> Running phase: installCheckPhase kmap-cli-0.1.0> EXE001 Shebang is present but file is not executable kmap-cli-0.1.0> --> kmap_cli.py:1:1 kmap-cli-0.1.0> | kmap-cli-0.1.0> 1 | #!/usr/bin/env python3 kmap-cli-0.1.0> | ^^^^^^^^^^^^^^^^^^^^^^ kmap-cli-0.1.0> 2 | # Copyright (c) 2026 Seungwon Lee kmap-cli-0.1.0> 3 | # SPDX-License-Identifier: MIT kmap-cli-0.1.0> | kmap-cli-0.1.0> kmap-cli-0.1.0> UP022 Prefer `capture_output` over sending `stdout` and `stderr` to `PIPE` kmap-cli-0.1.0> --> kmap_cli.py:151:18 kmap-cli-0.1.0> | kmap-cli-0.1.0> 149 | return None kmap-cli-0.1.0> 150 | try: kmap-cli-0.1.0> 151 | result = subprocess.run( kmap-cli-0.1.0> | __________________^ kmap-cli-0.1.0> 152 | | args, kmap-cli-0.1.0> 153 | | check=True, kmap-cli-0.1.0> 154 | | stdout=subprocess.PIPE, kmap-cli-0.1.0> 155 | | stderr=subprocess.PIPE, kmap-cli-0.1.0> 156 | | text=True, kmap-cli-0.1.0> 157 | | timeout=10, kmap-cli-0.1.0> 158 | | ) kmap-cli-0.1.0> | |_________^ kmap-cli-0.1.0> 159 | except (subprocess.SubprocessError, OSError) as error: kmap-cli-0.1.0> 160 | raise ConfigError(f"secret command failed: {error}") from error kmap-cli-0.1.0> | kmap-cli-0.1.0> help: Replace with `capture_output` keyword argument kmap-cli-0.1.0> kmap-cli-0.1.0> RUF100 [*] Unused `noqa` directive (non-enabled: `S310`) kmap-cli-0.1.0> --> kmap_cli.py:437:91 kmap-cli-0.1.0> | kmap-cli-0.1.0> 435 | headers["Content-Type"] = "application/json" kmap-cli-0.1.0> 436 | data = json.dumps(body).encode("utf-8") kmap-cli-0.1.0> 437 | request = urllib.request.Request(url, data=data, headers=headers, method=method) # noqa: S310 kmap-cli-0.1.0> | ^^^^^^^^^^^^ kmap-cli-0.1.0> 438 | try: kmap-cli-0.1.0> 439 | with urllib.request.urlopen(request, timeout=15) as response: # noqa: S310 kmap-cli-0.1.0> | kmap-cli-0.1.0> help: Remove unused `noqa` directive kmap-cli-0.1.0> | kmap-cli-0.1.0> 436 | data = json.dumps(body).encode("utf-8") kmap-cli-0.1.0> - request = urllib.request.Request(url, data=data, headers=headers, method=method) # noqa: S310 kmap-cli-0.1.0> 437 + request = urllib.request.Request(url, data=data, headers=headers, method=method) kmap-cli-0.1.0> 438 | try: kmap-cli-0.1.0> | kmap-cli-0.1.0> kmap-cli-0.1.0> RUF100 [*] Unused `noqa` directive (non-enabled: `S310`) kmap-cli-0.1.0> --> kmap_cli.py:439:76 kmap-cli-0.1.0> | kmap-cli-0.1.0> 437 | request = urllib.request.Request(url, data=data, headers=headers, method=method) # noqa: S310 kmap-cli-0.1.0> 438 | try: kmap-cli-0.1.0> 439 | with urllib.request.urlopen(request, timeout=15) as response: # noqa: S310 kmap-cli-0.1.0> | ^^^^^^^^^^^^ kmap-cli-0.1.0> 440 | parsed = json.loads(response.read().decode("utf-8")) kmap-cli-0.1.0> 441 | except urllib.error.HTTPError as error: kmap-cli-0.1.0> | kmap-cli-0.1.0> help: Remove unused `noqa` directive kmap-cli-0.1.0> | kmap-cli-0.1.0> 438 | try: kmap-cli-0.1.0> - with urllib.request.urlopen(request, timeout=15) as response: # noqa: S310 kmap-cli-0.1.0> 439 + with urllib.request.urlopen(request, timeout=15) as response: kmap-cli-0.1.0> 440 | parsed = json.loads(response.read().decode("utf-8")) kmap-cli-0.1.0> | kmap-cli-0.1.0> kmap-cli-0.1.0> PYI041 [*] Use `float` instead of `int | float` kmap-cli-0.1.0> --> kmap_cli.py:713:29 kmap-cli-0.1.0> | kmap-cli-0.1.0> 713 | def format_distance(meters: int | float) -> str: kmap-cli-0.1.0> | ^^^^^^^^^^^ kmap-cli-0.1.0> 714 | if meters < 1000: kmap-cli-0.1.0> 715 | return f"{meters:.0f} m" kmap-cli-0.1.0> | kmap-cli-0.1.0> help: Remove redundant type kmap-cli-0.1.0> | kmap-cli-0.1.0> 712 | kmap-cli-0.1.0> - def format_distance(meters: int | float) -> str: kmap-cli-0.1.0> 713 + def format_distance(meters: float) -> str: kmap-cli-0.1.0> 714 | if meters < 1000: kmap-cli-0.1.0> | kmap-cli-0.1.0> kmap-cli-0.1.0> RUF007 Prefer `itertools.pairwise()` over `zip()` when iterating over successive pairs kmap-cli-0.1.0> --> kmap_cli.py:886:32 kmap-cli-0.1.0> | kmap-cli-0.1.0> 884 | segments: list[dict[str, object]] = [] kmap-cli-0.1.0> 885 | has_routes = False kmap-cli-0.1.0> 886 | for origin, destination in zip(places, places[1:]): kmap-cli-0.1.0> | ^^^ kmap-cli-0.1.0> 887 | routes = client.transit_routes( kmap-cli-0.1.0> 888 | Point(origin.x, origin.y), kmap-cli-0.1.0> | kmap-cli-0.1.0> help: Replace `zip()` with `itertools.pairwise()` kmap-cli-0.1.0> kmap-cli-0.1.0> Found 6 errors. kmap-cli-0.1.0> [*] 3 fixable with the `--fix` option (2 hidden fixes can be enabled with the `--unsafe-fixes` option). error: Cannot build '/nix/store/69cgl9jr1p8gryj460fg8jrm6y21xagg-kmap-cli-0.1.0.drv'. Reason: builder failed with exit code 1. Output paths: /nix/store/6y6ri38j7mzsnz1iqk96nsijn6cj7gl1-kmap-cli-0.1.0 /nix/store/gv6skaqssd24qvdkaaynfd2rz1dzszzg-kmap-cli-0.1.0-dist Last 25 log lines: > 714 | if meters < 1000: > 715 | return f"{meters:.0f} m" > | > help: Remove redundant type > | > 712 | > - def format_distance(meters: int | float) -> str: > 713 + def format_distance(meters: float) -> str: > 714 | if meters < 1000: > | > > RUF007 Prefer `itertools.pairwise()` over `zip()` when iterating over successive pairs > --> kmap_cli.py:886:32 > | > 884 | segments: list[dict[str, object]] = [] > 885 | has_routes = False > 886 | for origin, destination in zip(places, places[1:]): > | ^^^ > 887 | routes = client.transit_routes( > 888 | Point(origin.x, origin.y), > | > help: Replace `zip()` with `itertools.pairwise()` > > Found 6 errors. > [*] 3 fixable with the `--fix` option (2 hidden fixes can be enabled with the `--unsafe-fixes` option). For full logs, run: nix log /nix/store/69cgl9jr1p8gryj460fg8jrm6y21xagg-kmap-cli-0.1.0.drv