chore: update typing to be generic on function args

Signed-off-by: Henry Schreiner <henryschreineriii@gmail.com>
This commit is contained in:
Henry Schreiner
2023-04-18 13:06:17 -04:00
parent 6d038dfbdf
commit 8c5f89c035
12 changed files with 48 additions and 39 deletions
+2 -2
View File
@@ -15,7 +15,7 @@ the results without the `--online` setting.
from __future__ import annotations
import ast
from collections.abc import Iterator
from collections.abc import Iterable, Iterator
from pathlib import Path
import click
@@ -97,7 +97,7 @@ class MaybeRemote:
with open(filename, "w") as f:
yaml.safe_dump(self.contents, f, default_flow_style=False)
def on_each(self, repos: list[str]) -> Iterator[tuple[str, str, str | None]]:
def on_each(self, repos: Iterable[str]) -> Iterator[tuple[str, str, str | None]]:
for repo in repos:
print(f"[bold]{repo}:")
for filename in sorted(self.contents, reverse=True):
+5 -4
View File
@@ -16,6 +16,7 @@ import functools
import textwrap
import urllib.request
import xml.dom.minidom
from collections.abc import Iterable, Mapping, Sequence
from datetime import datetime
from io import StringIO
from pathlib import Path
@@ -42,7 +43,7 @@ ICONS = (
class Project:
NAME: int = 0
def __init__(self, config: dict[str, Any], github: Github | None = None):
def __init__(self, config: Mapping[str, Any], github: Github | None = None):
try:
self.name: str = config["name"]
self.gh: str = config["gh"]
@@ -149,7 +150,7 @@ def path_for_icon(icon_name: str, relative_to: Path | None = None) -> Path:
def get_projects(
config: list[dict[str, Any]],
config: Iterable[Mapping[str, Any]],
*,
online: bool = True,
auth: str | None = None,
@@ -163,7 +164,7 @@ def get_projects(
return sorted((Project(item, github) for item in config), reverse=online)
def render_projects(projects: list[Project], *, dest_path: Path, include_info: bool = True):
def render_projects(projects: Sequence[Project], *, dest_path: Path, include_info: bool = True):
io = StringIO()
print = functools.partial(builtins.print, file=io)
@@ -191,7 +192,7 @@ def render_projects(projects: list[Project], *, dest_path: Path, include_info: b
def insert_projects_table(
file: Path,
*,
projects: list[Project],
projects: Sequence[Project],
input_filename: str,
include_info: bool = True,
):
+3 -2
View File
@@ -6,6 +6,7 @@ import copy
import difflib
import logging
import sys
from collections.abc import Mapping, MutableMapping
from pathlib import Path
from typing import Any, Union
@@ -124,7 +125,7 @@ class PyPyVersions:
]
self.arch = arch_str
def get_arch_file(self, release: dict[str, Any]) -> str:
def get_arch_file(self, release: Mapping[str, Any]) -> str:
urls: list[str] = [
rf["download_url"]
for rf in release["files"]
@@ -250,7 +251,7 @@ class AllVersions:
self.macos_pypy = PyPyVersions("64")
self.macos_pypy_arm64 = PyPyVersions("ARM64")
def update_config(self, config: dict[str, str]) -> None:
def update_config(self, config: MutableMapping[str, str]) -> None:
identifier = config["identifier"]
version = Version(config["version"])
spec = Specifier(f"=={version.major}.{version.minor}.*")