From 86d0a16988c1c548871a9f29e902796023b7e42c Mon Sep 17 00:00:00 2001 From: zigai Date: Fri, 17 Jan 2025 13:29:10 +0100 Subject: [PATCH] typing --- stdl/decorators.py | 6 +++--- stdl/dt.py | 4 ++-- stdl/fs.py | 16 ++++++++-------- stdl/st.py | 8 ++++---- tests/test_fs.py | 2 -- 5 files changed, 17 insertions(+), 19 deletions(-) diff --git a/stdl/decorators.py b/stdl/decorators.py index 22335e0..3b3916f 100644 --- a/stdl/decorators.py +++ b/stdl/decorators.py @@ -2,13 +2,13 @@ import json import sys import time -import typing as T from functools import wraps +from typing import Callable def timer( r: int | None = 2, - sink: T.Callable = sys.stdout.write, + sink: Callable = sys.stdout.write, show_args: bool = False, serialize: bool = False, sep=" | ", @@ -24,7 +24,7 @@ def timer( sep (str, optional): Separator between the function/method name and the arguments. Defaults to " | ". """ - def decorator(func: T.Callable): + def decorator(func: Callable): @wraps(func) def wrapper(*args, **kwargs): time_start = time.perf_counter() diff --git a/stdl/dt.py b/stdl/dt.py index 92d1064..4621813 100644 --- a/stdl/dt.py +++ b/stdl/dt.py @@ -1,8 +1,8 @@ import random import time -import typing as T from dataclasses import dataclass from datetime import date, datetime, timedelta, timezone +from typing import Generator from dateutil.parser import parse as parse_datetime_str @@ -220,7 +220,7 @@ def date_fmt( return d.strftime(f"%{fmt[0]}{sep}%{fmt[1]}{sep}%{fmt[2]}") -def date_range(start: date, end: date) -> T.Generator[date, None, None]: +def date_range(start: date, end: date) -> Generator[date, None, None]: """ Returns a generator for dates between ``start`` and ``end`` diff --git a/stdl/fs.py b/stdl/fs.py index 310b25e..571f35e 100644 --- a/stdl/fs.py +++ b/stdl/fs.py @@ -12,12 +12,12 @@ import subprocess import sys import time -import typing as T from collections.abc import Iterable from datetime import datetime from os import PathLike from pathlib import Path from queue import Queue +from typing import Any, Generator, Literal import toml import yaml @@ -442,7 +442,7 @@ def pickle_load(filepath: str | PathLike): return pickle.load(f) -def pickle_dump(data: T.Any, filepath: str | PathLike) -> None: +def pickle_dump(data: Any, filepath: str | PathLike) -> None: """Dumps an object to the specified filepath.""" with open(filepath, "wb") as f: @@ -510,7 +510,7 @@ def json_append( def json_dump( - data: T.Any, path: str | PathLike, encoding: str = "utf-8", default=str, indent=4 + data: Any, path: str | PathLike, encoding: str = "utf-8", default=str, indent=4 ) -> None: """ Dumps data to a JSON file. @@ -646,7 +646,7 @@ def bytes_readable(size_bytes: int) -> str: return f"{s} {size_name[i]}" -def readable_size_to_bytes(size: str, kb_size: T.Literal[1000, 1024] = 1024) -> int: +def readable_size_to_bytes(size: str, kb_size: Literal[1000, 1024] = 1024) -> int: """Convert human-readable string to bytes. Args: size (str): The number of bytes in human-readable format @@ -729,7 +729,7 @@ def yield_files_in( *, recursive: bool = True, abs: bool = True, -) -> T.Generator[str, None, None]: +) -> Generator[str, None, None]: """ Yields the paths of files in a directory. @@ -812,7 +812,7 @@ def get_files_in( def yield_dirs_in( directory: str | Path, *, recursive: bool = True, abs: bool = True -) -> T.Generator[str, None, None]: +) -> Generator[str, None, None]: """ Yields paths to all directories in the specified directory. Yielded paths are converted to absolute paths. @@ -905,8 +905,8 @@ def __init__( args, returncode: int, time_taken: float, - stdout: T.Any | None = None, - stderr: T.Any | None = None, + stdout: Any | None = None, + stderr: Any | None = None, ) -> None: super().__init__(args, returncode, stdout, stderr) self.time_taken = time_taken diff --git a/stdl/st.py b/stdl/st.py index 0a1c731..c2a009f 100644 --- a/stdl/st.py +++ b/stdl/st.py @@ -1,10 +1,10 @@ import os import re import textwrap -import typing as T from dataclasses import dataclass from platform import system from sys import stdout +from typing import Literal CSI_RESET = "\033[" NO_COLOR = bool(os.environ.get("NO_COLOR", False)) @@ -115,7 +115,7 @@ class ST(ColorANSI): BLINK = ansi_code(5) -ForegroundColor = T.Literal[ +ForegroundColor = Literal[ "black", "blue", "bold", @@ -136,7 +136,7 @@ class ST(ColorANSI): ] -BackgroundColor = T.Literal[ +BackgroundColor = Literal[ "black", "blue", "cyan", @@ -155,7 +155,7 @@ class ST(ColorANSI): "yellow", ] -Style = T.Literal["blink", "bold", "dim", "italic", "reset", "underline"] +Style = Literal["blink", "bold", "dim", "italic", "reset", "underline"] def _get_ansi_value(value: str | None, handler) -> str: diff --git a/tests/test_fs.py b/tests/test_fs.py index 6a615b6..4dbbf39 100644 --- a/tests/test_fs.py +++ b/tests/test_fs.py @@ -1,5 +1,3 @@ -import json -import os import tempfile from pathlib import Path