From 070b5a356c19e3559bebafc82abd13d4658f5032 Mon Sep 17 00:00:00 2001 From: Josh Wiedemeier Date: Wed, 10 Dec 2025 10:10:04 -0600 Subject: [PATCH] masking nits --- pylingual/masking/ast_masker.py | 6 +++++- pylingual/masking/global_masker.py | 2 +- pylingual/masking/model_disasm.py | 2 +- pyproject.toml | 3 +++ 4 files changed, 10 insertions(+), 3 deletions(-) diff --git a/pylingual/masking/ast_masker.py b/pylingual/masking/ast_masker.py index 1e2fe8d..3ebb3bf 100644 --- a/pylingual/masking/ast_masker.py +++ b/pylingual/masking/ast_masker.py @@ -1,4 +1,5 @@ import ast +import sys import re import copy from pylingual.masking.global_masker import Masker @@ -28,7 +29,10 @@ class customUnparser(ast._Unparser): def visit_FormattedValue(self, node): def unparse_inner(inner): - unparser = type(self)(self.masker, _avoid_backslashes=True) + if PythonVersion(sys.version_info) <= (3, 11): + unparser = type(self)(self.masker, _avoid_backslashes=True) + else: + unparser = type(self)(self.masker) unparser.set_precedence(ast._Precedence.TEST.next(), inner) return unparser.visit(inner) diff --git a/pylingual/masking/global_masker.py b/pylingual/masking/global_masker.py index 482b4e4..c1369f9 100644 --- a/pylingual/masking/global_masker.py +++ b/pylingual/masking/global_masker.py @@ -69,7 +69,7 @@ class Masker: def mask(self, tok): """Mask a token, must be in the global_table.""" - return self.global_tab[tok] if not any(tok == t and type(tok) == type(t) for t in self.blacklist) else tok + return self.global_tab[tok] if not any(tok == t and type(tok) is type(t) for t in self.blacklist) else tok def unmask(self, value): """Unmask a token, value must be a metatoken value in the global_table; or this function will fail loudly""" diff --git a/pylingual/masking/model_disasm.py b/pylingual/masking/model_disasm.py index 444d5c5..f7760e6 100644 --- a/pylingual/masking/model_disasm.py +++ b/pylingual/masking/model_disasm.py @@ -43,7 +43,7 @@ def create_global_masker(bytecode: EditableBytecode) -> Masker: # add LOAD_SMALL_INT values to consts (3.14+) if bc.version >= (3, 14): for inst in bc.instructions: - if inst.opname == "LOAD_SMALL_INT" and inst.argval not in consts: + if inst.opname == "LOAD_SMALL_INT": # duplicate consts will be filtered out later consts.append(inst.argval) while consts: diff --git a/pyproject.toml b/pyproject.toml index 995aec4..8b74a87 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -100,3 +100,6 @@ docstring-code-line-length = "dynamic" members = [ "pylingual/tools", ] + +[tool.uv.sources] +xdis = { git = "https://github.com/jdw170000/python-xdis", rev = "python-3.14" }