From 00d1155f81d467cfef3bcd26746f367cfb185a7b Mon Sep 17 00:00:00 2001 From: jbjd Date: Mon, 22 Dec 2025 19:42:46 -0600 Subject: [PATCH 1/4] Use most accurate type hint for vars_to_fold --- personal_python_ast_optimizer/parser/config.py | 9 +++++---- version.txt | 2 +- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/personal_python_ast_optimizer/parser/config.py b/personal_python_ast_optimizer/parser/config.py index dff5cfb..5f959fc 100644 --- a/personal_python_ast_optimizer/parser/config.py +++ b/personal_python_ast_optimizer/parser/config.py @@ -1,4 +1,5 @@ -from abc import ABC, abstractmethod +from abc import abstractmethod +from ast import _ConstantValue from enum import Enum, EnumType from typing import Iterable, Iterator @@ -34,7 +35,7 @@ def _set_to_dict_of_counts(input_set: set[str] | None) -> dict[str, int]: return {key: 0 for key in input_set} -class _Config(ABC): +class _Config: __slots__ = () @@ -130,13 +131,13 @@ class OptimizationsConfig(_Config): def __init__( self, - vars_to_fold: dict[str, int | str | bool] | None = None, + vars_to_fold: dict[str, _ConstantValue] | None = None, enums_to_fold: Iterable[EnumType] | None = None, fold_constants: bool = True, remove_unused_imports: bool = True, assume_this_machine: bool = False, ) -> None: - self.vars_to_fold: dict[str, int | str | bool] = ( + self.vars_to_fold: dict[str, _ConstantValue] = ( {} if vars_to_fold is None else vars_to_fold ) self.enums_to_fold: dict[str, dict[str, Enum]] = ( diff --git a/version.txt b/version.txt index ce7f2b4..c0baecb 100644 --- a/version.txt +++ b/version.txt @@ -1 +1 @@ -5.2.2 +5.2.3 From 04a86c9a4d57e552319d79cc132f499098c93ebb Mon Sep 17 00:00:00 2001 From: jbjd Date: Mon, 22 Dec 2025 19:54:51 -0600 Subject: [PATCH 2/4] Use most accurate type hint for vars_to_fold --- personal_python_ast_optimizer/parser/config.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/personal_python_ast_optimizer/parser/config.py b/personal_python_ast_optimizer/parser/config.py index 5f959fc..2fae504 100644 --- a/personal_python_ast_optimizer/parser/config.py +++ b/personal_python_ast_optimizer/parser/config.py @@ -1,8 +1,11 @@ from abc import abstractmethod -from ast import _ConstantValue from enum import Enum, EnumType +from types import EllipsisType from typing import Iterable, Iterator +# I tried to import this from ast, it worked on 3.12 but not 3.11? +type _ConstantValue = str | bytes | bool | int | float | complex | None | EllipsisType + class TokensToSkip(dict[str, int]): From 09daec3850b158c2889ebf6ef77ec2c33730fda9 Mon Sep 17 00:00:00 2001 From: jbjd Date: Mon, 22 Dec 2025 19:56:59 -0600 Subject: [PATCH 3/4] Ellipses is silly anyway... --- personal_python_ast_optimizer/parser/config.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/personal_python_ast_optimizer/parser/config.py b/personal_python_ast_optimizer/parser/config.py index 2fae504..698db31 100644 --- a/personal_python_ast_optimizer/parser/config.py +++ b/personal_python_ast_optimizer/parser/config.py @@ -1,10 +1,9 @@ from abc import abstractmethod from enum import Enum, EnumType -from types import EllipsisType from typing import Iterable, Iterator # I tried to import this from ast, it worked on 3.12 but not 3.11? -type _ConstantValue = str | bytes | bool | int | float | complex | None | EllipsisType +type _ConstantValue = str | bytes | bool | int | float | complex | None class TokensToSkip(dict[str, int]): From d93bafc3f9207f3f5fae5b7c8053a535e5a56900 Mon Sep 17 00:00:00 2001 From: jbjd Date: Mon, 22 Dec 2025 19:59:21 -0600 Subject: [PATCH 4/4] Use most accurate type hint for vars_to_fold --- personal_python_ast_optimizer/parser/config.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/personal_python_ast_optimizer/parser/config.py b/personal_python_ast_optimizer/parser/config.py index 698db31..3b2671e 100644 --- a/personal_python_ast_optimizer/parser/config.py +++ b/personal_python_ast_optimizer/parser/config.py @@ -1,9 +1,11 @@ from abc import abstractmethod from enum import Enum, EnumType +from types import EllipsisType from typing import Iterable, Iterator # I tried to import this from ast, it worked on 3.12 but not 3.11? -type _ConstantValue = str | bytes | bool | int | float | complex | None +# TODO: When minimum python becomes 3.12, add "type" before definition +_ConstantValue = str | bytes | bool | int | float | complex | None | EllipsisType class TokensToSkip(dict[str, int]):