refactor: use dataclasses vs. NamedTuples

This commit is contained in:
Henry Schreiner
2022-04-28 11:41:47 -04:00
parent de07370930
commit 98fedb7e51
11 changed files with 60 additions and 53 deletions
+10 -9
View File
@@ -1,5 +1,4 @@
import contextlib
import dataclasses
import fnmatch
import itertools
import os
@@ -11,6 +10,7 @@ import sys
import textwrap
import time
import urllib.request
from dataclasses import dataclass
from enum import Enum
from functools import lru_cache
from pathlib import Path
@@ -22,7 +22,6 @@ from typing import (
Iterable,
Iterator,
List,
NamedTuple,
Optional,
Sequence,
TextIO,
@@ -228,7 +227,7 @@ def selector_matches(patterns: str, string: str) -> bool:
# Once we require Python 3.10+, we can add kw_only=True
@dataclasses.dataclass
@dataclass(frozen=True)
class IdentifierSelector:
"""
This class holds a set of build/skip patterns. You call an instance with a
@@ -266,14 +265,14 @@ class IdentifierSelector:
return should_build and not should_skip
@dataclasses.dataclass
@dataclass(frozen=True)
class BuildSelector(IdentifierSelector):
pass
# Note that requires-python is not needed for TestSelector, as you can't test
# what you can't build.
@dataclasses.dataclass
@dataclass(frozen=True)
class TestSelector(IdentifierSelector):
build_config: str = "*"
@@ -413,6 +412,12 @@ def unwrap(text: str) -> str:
return re.sub(r"\s+", " ", text)
@dataclass(frozen=True)
class FileReport:
name: str
size: str
@contextlib.contextmanager
def print_new_wheels(msg: str, output_dir: Path) -> Iterator[None]:
"""
@@ -427,10 +432,6 @@ def print_new_wheels(msg: str, output_dir: Path) -> Iterator[None]:
yield
final_contents = set(output_dir.iterdir())
class FileReport(NamedTuple):
name: str
size: str
new_contents = [
FileReport(wheel.name, f"{(wheel.stat().st_size + 1023) // 1024:,d}")
for wheel in final_contents - existing_contents