From b686b9341e79a0af086ea8f7c3703ce6a0fd9b0b Mon Sep 17 00:00:00 2001 From: Avasam Date: Thu, 25 Jul 2024 17:36:03 -0400 Subject: [PATCH 1/4] unbound os import adodbapi --- adodbapi/process_connect_string.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/adodbapi/process_connect_string.py b/adodbapi/process_connect_string.py index d8b29f280c..d71ffd2ffb 100644 --- a/adodbapi/process_connect_string.py +++ b/adodbapi/process_connect_string.py @@ -45,6 +45,8 @@ def macro_call(macro_name, args, kwargs): return new_key, platform.node() elif macro_name == "getenv": # expand the server's environment variable args[1] + import os + try: dflt = args[2] # if not found, default from args[2] except IndexError: # or blank From 140f6d5b515b0ced91ccd0f5e26c20daf91897f1 Mon Sep 17 00:00:00 2001 From: Avasam Date: Thu, 25 Jul 2024 17:41:30 -0400 Subject: [PATCH 2/4] Add changes --- CHANGES.txt | 3 ++- adodbapi/process_connect_string.py | 4 ++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/CHANGES.txt b/CHANGES.txt index 0e11d06435..4c08ffdbed 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -154,10 +154,11 @@ Coming in build 307, as yet unreleased * Use byte-string (`b""`) for constant bytes values instead of superfluous `.encode` calls (#2046, @Avasam) * Cleaned up unused imports (#1986, #2051, #1990, #2124, #2126, @Avasam) * Removed duplicated declarations, constants and definitions (#2050 , #1950, #1990, @Avasam) -* Small generalized optimization by using augmented assignements (in-place operators) where possible (#2274, @Avasam) +* Small generalized optimization by using augmented assignments (in-place operators) where possible (#2274, @Avasam) * General speed and size improvements due to all the removed code. (#2046, #1986, #2050, #1950, #2085, #2087, #2051, #1990, #2106, #2127, #2124, #2126, #2177, #2218, #2202, #2205, #2217) ### adodbapi +* Fix unbound `os` module in `adodbapi.process_connect_string.macro_call` for `"getenv"` macro (#2324, @Avasam) * Remove references to outdated IronPython (#2049, @Avasam) This removes the following public names: * `adodbapi.adodbapi.onWin32` diff --git a/adodbapi/process_connect_string.py b/adodbapi/process_connect_string.py index d71ffd2ffb..22c45380c8 100644 --- a/adodbapi/process_connect_string.py +++ b/adodbapi/process_connect_string.py @@ -1,7 +1,5 @@ """ a clumsy attempt at a macro language to let the programmer execute code on the server (ex: determine 64bit)""" -from . import is64bit - def macro_call(macro_name, args, kwargs): """allow the programmer to perform limited processing on the server by passing macro names and args @@ -20,6 +18,8 @@ def macro_call(macro_name, args, kwargs): new_key = args[0] try: if macro_name == "is64bit": + from . import is64bit + if is64bit.Python(): # if on 64 bit Python return new_key, args[1] # return first argument else: From 1bce919b2e3366cf1b918e4f85f7df7909f1cece Mon Sep 17 00:00:00 2001 From: Avasam Date: Sat, 8 Mar 2025 16:10:36 -0500 Subject: [PATCH 3/4] Revert potential merge conflict change --- adodbapi/process_connect_string.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/adodbapi/process_connect_string.py b/adodbapi/process_connect_string.py index 39ed9a8931..78fe56e057 100644 --- a/adodbapi/process_connect_string.py +++ b/adodbapi/process_connect_string.py @@ -1,5 +1,6 @@ """a clumsy attempt at a macro language to let the programmer execute code on the server (ex: determine 64bit)""" +from . import is64bit def macro_call(macro_name, args, kwargs): """allow the programmer to perform limited processing on the server by passing macro names and args @@ -18,8 +19,6 @@ def macro_call(macro_name, args, kwargs): new_key = args[0] try: if macro_name == "is64bit": - from . import is64bit - if is64bit.Python(): # if on 64 bit Python return new_key, args[1] # return first argument else: From a69228963f94ffe7d59c12c91421f4600738dae8 Mon Sep 17 00:00:00 2001 From: Avasam Date: Sat, 8 Mar 2025 16:11:06 -0500 Subject: [PATCH 4/4] Missed line --- adodbapi/process_connect_string.py | 1 + 1 file changed, 1 insertion(+) diff --git a/adodbapi/process_connect_string.py b/adodbapi/process_connect_string.py index 78fe56e057..320d1bb35e 100644 --- a/adodbapi/process_connect_string.py +++ b/adodbapi/process_connect_string.py @@ -2,6 +2,7 @@ from . import is64bit + def macro_call(macro_name, args, kwargs): """allow the programmer to perform limited processing on the server by passing macro names and args