pkdevtools 0.13.20260406.332__tar.gz → 0.13.20260428.334__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {pkdevtools-0.13.20260406.332 → pkdevtools-0.13.20260428.334}/PKDevTools/classes/Environment.py +8 -4
- {pkdevtools-0.13.20260406.332 → pkdevtools-0.13.20260428.334}/PKDevTools/classes/OutputControls.py +7 -0
- pkdevtools-0.13.20260428.334/PKDevTools/classes/__init__.py +1 -0
- {pkdevtools-0.13.20260406.332 → pkdevtools-0.13.20260428.334}/PKG-INFO +2 -2
- {pkdevtools-0.13.20260406.332 → pkdevtools-0.13.20260428.334}/pkdevtools.egg-info/PKG-INFO +2 -2
- pkdevtools-0.13.20260406.332/PKDevTools/classes/__init__.py +0 -1
- {pkdevtools-0.13.20260406.332 → pkdevtools-0.13.20260428.334}/LICENSE +0 -0
- {pkdevtools-0.13.20260406.332 → pkdevtools-0.13.20260428.334}/PKDevTools/LICENSE.txt +0 -0
- {pkdevtools-0.13.20260406.332 → pkdevtools-0.13.20260428.334}/PKDevTools/README.txt +0 -0
- {pkdevtools-0.13.20260406.332 → pkdevtools-0.13.20260428.334}/PKDevTools/__init__.py +0 -0
- {pkdevtools-0.13.20260406.332 → pkdevtools-0.13.20260428.334}/PKDevTools/classes/Archiver.py +0 -0
- {pkdevtools-0.13.20260406.332 → pkdevtools-0.13.20260428.334}/PKDevTools/classes/ColorText.py +0 -0
- {pkdevtools-0.13.20260406.332 → pkdevtools-0.13.20260428.334}/PKDevTools/classes/Committer.py +0 -0
- {pkdevtools-0.13.20260406.332 → pkdevtools-0.13.20260428.334}/PKDevTools/classes/CookieHelper.py +0 -0
- {pkdevtools-0.13.20260406.332 → pkdevtools-0.13.20260428.334}/PKDevTools/classes/DBManager.py +0 -0
- {pkdevtools-0.13.20260406.332 → pkdevtools-0.13.20260428.334}/PKDevTools/classes/DatabaseSyncChecker.py +0 -0
- {pkdevtools-0.13.20260406.332 → pkdevtools-0.13.20260428.334}/PKDevTools/classes/DebugConfig.py +0 -0
- {pkdevtools-0.13.20260406.332 → pkdevtools-0.13.20260428.334}/PKDevTools/classes/Fetcher.py +0 -0
- {pkdevtools-0.13.20260406.332 → pkdevtools-0.13.20260428.334}/PKDevTools/classes/Fileinfo.py +0 -0
- {pkdevtools-0.13.20260406.332 → pkdevtools-0.13.20260428.334}/PKDevTools/classes/FunctionTimeouts.py +0 -0
- {pkdevtools-0.13.20260406.332 → pkdevtools-0.13.20260428.334}/PKDevTools/classes/GitHubCommitFetcher.py +0 -0
- {pkdevtools-0.13.20260406.332 → pkdevtools-0.13.20260428.334}/PKDevTools/classes/GitHubSecrets.py +0 -0
- {pkdevtools-0.13.20260406.332 → pkdevtools-0.13.20260428.334}/PKDevTools/classes/GmailReader.py +0 -0
- {pkdevtools-0.13.20260406.332 → pkdevtools-0.13.20260428.334}/PKDevTools/classes/MarketHours.py +0 -0
- {pkdevtools-0.13.20260406.332 → pkdevtools-0.13.20260428.334}/PKDevTools/classes/MenuOptions.py +0 -0
- {pkdevtools-0.13.20260406.332 → pkdevtools-0.13.20260428.334}/PKDevTools/classes/NSEMarketStatus.py +0 -0
- {pkdevtools-0.13.20260406.332 → pkdevtools-0.13.20260428.334}/PKDevTools/classes/PKBackupRestore.py +0 -0
- {pkdevtools-0.13.20260406.332 → pkdevtools-0.13.20260428.334}/PKDevTools/classes/PKDataProvider.py +0 -0
- {pkdevtools-0.13.20260406.332 → pkdevtools-0.13.20260428.334}/PKDevTools/classes/PKDateUtilities.py +0 -0
- {pkdevtools-0.13.20260406.332 → pkdevtools-0.13.20260428.334}/PKDevTools/classes/PKGitFolderDownloader.py +0 -0
- {pkdevtools-0.13.20260406.332 → pkdevtools-0.13.20260428.334}/PKDevTools/classes/PKJoinableQueue.py +0 -0
- {pkdevtools-0.13.20260406.332 → pkdevtools-0.13.20260428.334}/PKDevTools/classes/PKMultiProcessorClient.py +0 -0
- {pkdevtools-0.13.20260406.332 → pkdevtools-0.13.20260428.334}/PKDevTools/classes/PKPickler.py +0 -0
- {pkdevtools-0.13.20260406.332 → pkdevtools-0.13.20260428.334}/PKDevTools/classes/PKScalableDataFetcher.py +0 -0
- {pkdevtools-0.13.20260406.332 → pkdevtools-0.13.20260428.334}/PKDevTools/classes/PKTimer.py +0 -0
- {pkdevtools-0.13.20260406.332 → pkdevtools-0.13.20260428.334}/PKDevTools/classes/Pikey.py +0 -0
- {pkdevtools-0.13.20260406.332 → pkdevtools-0.13.20260428.334}/PKDevTools/classes/RepairDB.py +0 -0
- {pkdevtools-0.13.20260406.332 → pkdevtools-0.13.20260428.334}/PKDevTools/classes/Singleton.py +0 -0
- {pkdevtools-0.13.20260406.332 → pkdevtools-0.13.20260428.334}/PKDevTools/classes/SuppressOutput.py +0 -0
- {pkdevtools-0.13.20260406.332 → pkdevtools-0.13.20260428.334}/PKDevTools/classes/System.py +0 -0
- {pkdevtools-0.13.20260406.332 → pkdevtools-0.13.20260428.334}/PKDevTools/classes/Telegram.py +0 -0
- {pkdevtools-0.13.20260406.332 → pkdevtools-0.13.20260428.334}/PKDevTools/classes/UserSubscriptions.py +0 -0
- {pkdevtools-0.13.20260406.332 → pkdevtools-0.13.20260428.334}/PKDevTools/classes/Utils.py +0 -0
- {pkdevtools-0.13.20260406.332 → pkdevtools-0.13.20260428.334}/PKDevTools/classes/WorkflowManager.py +0 -0
- {pkdevtools-0.13.20260406.332 → pkdevtools-0.13.20260428.334}/PKDevTools/classes/dictModel.py +0 -0
- {pkdevtools-0.13.20260406.332 → pkdevtools-0.13.20260428.334}/PKDevTools/classes/githubutilities.py +0 -0
- {pkdevtools-0.13.20260406.332 → pkdevtools-0.13.20260428.334}/PKDevTools/classes/log.py +0 -0
- {pkdevtools-0.13.20260406.332 → pkdevtools-0.13.20260428.334}/PKDevTools/classes/multiprocessing_logging.py +0 -0
- {pkdevtools-0.13.20260406.332 → pkdevtools-0.13.20260428.334}/PKDevTools/classes/pubsub/__init__.py +0 -0
- {pkdevtools-0.13.20260406.332 → pkdevtools-0.13.20260428.334}/PKDevTools/classes/pubsub/events.py +0 -0
- {pkdevtools-0.13.20260406.332 → pkdevtools-0.13.20260428.334}/PKDevTools/classes/pubsub/publisher.py +0 -0
- {pkdevtools-0.13.20260406.332 → pkdevtools-0.13.20260428.334}/PKDevTools/classes/pubsub/subscriber.py +0 -0
- {pkdevtools-0.13.20260406.332 → pkdevtools-0.13.20260428.334}/PKDevTools/classes/squash.py +0 -0
- {pkdevtools-0.13.20260406.332 → pkdevtools-0.13.20260428.334}/PKDevTools/classes/test_PKDataProvider.py +0 -0
- {pkdevtools-0.13.20260406.332 → pkdevtools-0.13.20260428.334}/PKDevTools/classes/test_PKScalableDataFetcher.py +0 -0
- {pkdevtools-0.13.20260406.332 → pkdevtools-0.13.20260428.334}/PKDevTools/classes/turso.py +0 -0
- {pkdevtools-0.13.20260406.332 → pkdevtools-0.13.20260428.334}/PKDevTools/classes/updater.py +0 -0
- {pkdevtools-0.13.20260406.332 → pkdevtools-0.13.20260428.334}/PKDevTools/release.md +0 -0
- {pkdevtools-0.13.20260406.332 → pkdevtools-0.13.20260428.334}/PKDevTools/requirements.txt +0 -0
- {pkdevtools-0.13.20260406.332 → pkdevtools-0.13.20260428.334}/README.md +0 -0
- {pkdevtools-0.13.20260406.332 → pkdevtools-0.13.20260428.334}/pkdevtools.egg-info/SOURCES.txt +0 -0
- {pkdevtools-0.13.20260406.332 → pkdevtools-0.13.20260428.334}/pkdevtools.egg-info/dependency_links.txt +0 -0
- {pkdevtools-0.13.20260406.332 → pkdevtools-0.13.20260428.334}/pkdevtools.egg-info/entry_points.txt +0 -0
- {pkdevtools-0.13.20260406.332 → pkdevtools-0.13.20260428.334}/pkdevtools.egg-info/not-zip-safe +0 -0
- {pkdevtools-0.13.20260406.332 → pkdevtools-0.13.20260428.334}/pkdevtools.egg-info/requires.txt +0 -0
- {pkdevtools-0.13.20260406.332 → pkdevtools-0.13.20260428.334}/pkdevtools.egg-info/top_level.txt +0 -0
- {pkdevtools-0.13.20260406.332 → pkdevtools-0.13.20260428.334}/setup.cfg +0 -0
- {pkdevtools-0.13.20260406.332 → pkdevtools-0.13.20260428.334}/setup.py +0 -0
{pkdevtools-0.13.20260406.332 → pkdevtools-0.13.20260428.334}/PKDevTools/classes/Environment.py
RENAMED
|
@@ -62,15 +62,19 @@ class PKEnvironment(metaclass=SingletonType):
|
|
|
62
62
|
# Replace invalid characters with underscore
|
|
63
63
|
sanitized = "".join([c if c.isalnum() else "_" for c in key])
|
|
64
64
|
# Ensure it doesn't start with number
|
|
65
|
-
if sanitized[0].isdigit():
|
|
65
|
+
if sanitized and sanitized[0].isdigit():
|
|
66
66
|
sanitized = f"_{sanitized}"
|
|
67
67
|
return sanitized
|
|
68
68
|
|
|
69
69
|
def __getattr__(self, name):
|
|
70
|
-
"""
|
|
70
|
+
"""
|
|
71
|
+
Handle access to undefined attributes by returning empty string.
|
|
72
|
+
This prevents AttributeError and allows callers to safely check values.
|
|
73
|
+
"""
|
|
71
74
|
if name in self._allSecrets:
|
|
72
75
|
return self._allSecrets[name]
|
|
73
|
-
|
|
76
|
+
default_logger().debug(f"Accessing undefined environment variable '{name}', returning empty string")
|
|
77
|
+
return "0"
|
|
74
78
|
|
|
75
79
|
@property
|
|
76
80
|
def secrets(self):
|
|
@@ -85,7 +89,7 @@ class PKEnvironment(metaclass=SingletonType):
|
|
|
85
89
|
@property
|
|
86
90
|
def allSecrets(self):
|
|
87
91
|
"""Property returning all secrets as dict"""
|
|
88
|
-
return self._allSecrets
|
|
92
|
+
return self._allSecrets.copy()
|
|
89
93
|
|
|
90
94
|
def refresh(self):
|
|
91
95
|
"""Reload secrets from file (for detecting new keys)"""
|
{pkdevtools-0.13.20260406.332 → pkdevtools-0.13.20260428.334}/PKDevTools/classes/OutputControls.py
RENAMED
|
@@ -41,6 +41,7 @@ class OutputControls(SingletonMixin, metaclass=SingletonType):
|
|
|
41
41
|
self.enableUserInput = enableUserInput or (
|
|
42
42
|
"PKDevTools_Default_Log_Level" in os.environ.keys()
|
|
43
43
|
)
|
|
44
|
+
self.env_keys = os.environ.keys()
|
|
44
45
|
self.lines = 0
|
|
45
46
|
self.timeit = "timeit" in os.environ.keys()
|
|
46
47
|
if self.timeit:
|
|
@@ -61,6 +62,8 @@ class OutputControls(SingletonMixin, metaclass=SingletonType):
|
|
|
61
62
|
flush: Literal[False] | bool = False,
|
|
62
63
|
enableMultipleLineOutput=False,
|
|
63
64
|
) -> None:
|
|
65
|
+
if "RUNNER" in self.env_keys:
|
|
66
|
+
return
|
|
64
67
|
# end = '\r' if (not enableMultipleLineOutput) else end
|
|
65
68
|
# flush = True if (not enableMultipleLineOutput) else flush
|
|
66
69
|
if self.timeit:
|
|
@@ -82,12 +85,16 @@ class OutputControls(SingletonMixin, metaclass=SingletonType):
|
|
|
82
85
|
self.lines -= 1
|
|
83
86
|
|
|
84
87
|
def moveCursorToStartPosition(self):
|
|
88
|
+
if "RUNNER" in self.env_keys:
|
|
89
|
+
return
|
|
85
90
|
for _ in range(self.lines):
|
|
86
91
|
self.moveCursorUpLines(1)
|
|
87
92
|
self.lines -= 1
|
|
88
93
|
|
|
89
94
|
def moveCursorUpLines(self, lines):
|
|
90
95
|
try:
|
|
96
|
+
if "RUNNER" in self.env_keys:
|
|
97
|
+
return
|
|
91
98
|
for _ in range(lines):
|
|
92
99
|
if sys.stdout is not None:
|
|
93
100
|
sys.stdout.write("\x1b[1A") # cursor up one line
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
VERSION='0.13.20260428.334'
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: pkdevtools
|
|
3
|
-
Version: 0.13.
|
|
3
|
+
Version: 0.13.20260428.334
|
|
4
4
|
Summary: A general day-to-day toolset for PKScreener repos
|
|
5
5
|
Home-page: https://github.com/pkjmesra/PKDevTools
|
|
6
|
-
Download-URL: https://github.com/pkjmesra/PKDevTools/archive/v0.13.
|
|
6
|
+
Download-URL: https://github.com/pkjmesra/PKDevTools/archive/v0.13.20260428.334.zip
|
|
7
7
|
Author: pkjmesra
|
|
8
8
|
Author-email: pkjmesra@gmail.com
|
|
9
9
|
License: OSI Approved (MIT)
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: pkdevtools
|
|
3
|
-
Version: 0.13.
|
|
3
|
+
Version: 0.13.20260428.334
|
|
4
4
|
Summary: A general day-to-day toolset for PKScreener repos
|
|
5
5
|
Home-page: https://github.com/pkjmesra/PKDevTools
|
|
6
|
-
Download-URL: https://github.com/pkjmesra/PKDevTools/archive/v0.13.
|
|
6
|
+
Download-URL: https://github.com/pkjmesra/PKDevTools/archive/v0.13.20260428.334.zip
|
|
7
7
|
Author: pkjmesra
|
|
8
8
|
Author-email: pkjmesra@gmail.com
|
|
9
9
|
License: OSI Approved (MIT)
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
VERSION='0.13.20260406.332'
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pkdevtools-0.13.20260406.332 → pkdevtools-0.13.20260428.334}/PKDevTools/classes/Archiver.py
RENAMED
|
File without changes
|
{pkdevtools-0.13.20260406.332 → pkdevtools-0.13.20260428.334}/PKDevTools/classes/ColorText.py
RENAMED
|
File without changes
|
{pkdevtools-0.13.20260406.332 → pkdevtools-0.13.20260428.334}/PKDevTools/classes/Committer.py
RENAMED
|
File without changes
|
{pkdevtools-0.13.20260406.332 → pkdevtools-0.13.20260428.334}/PKDevTools/classes/CookieHelper.py
RENAMED
|
File without changes
|
{pkdevtools-0.13.20260406.332 → pkdevtools-0.13.20260428.334}/PKDevTools/classes/DBManager.py
RENAMED
|
File without changes
|
|
File without changes
|
{pkdevtools-0.13.20260406.332 → pkdevtools-0.13.20260428.334}/PKDevTools/classes/DebugConfig.py
RENAMED
|
File without changes
|
|
File without changes
|
{pkdevtools-0.13.20260406.332 → pkdevtools-0.13.20260428.334}/PKDevTools/classes/Fileinfo.py
RENAMED
|
File without changes
|
{pkdevtools-0.13.20260406.332 → pkdevtools-0.13.20260428.334}/PKDevTools/classes/FunctionTimeouts.py
RENAMED
|
File without changes
|
|
File without changes
|
{pkdevtools-0.13.20260406.332 → pkdevtools-0.13.20260428.334}/PKDevTools/classes/GitHubSecrets.py
RENAMED
|
File without changes
|
{pkdevtools-0.13.20260406.332 → pkdevtools-0.13.20260428.334}/PKDevTools/classes/GmailReader.py
RENAMED
|
File without changes
|
{pkdevtools-0.13.20260406.332 → pkdevtools-0.13.20260428.334}/PKDevTools/classes/MarketHours.py
RENAMED
|
File without changes
|
{pkdevtools-0.13.20260406.332 → pkdevtools-0.13.20260428.334}/PKDevTools/classes/MenuOptions.py
RENAMED
|
File without changes
|
{pkdevtools-0.13.20260406.332 → pkdevtools-0.13.20260428.334}/PKDevTools/classes/NSEMarketStatus.py
RENAMED
|
File without changes
|
{pkdevtools-0.13.20260406.332 → pkdevtools-0.13.20260428.334}/PKDevTools/classes/PKBackupRestore.py
RENAMED
|
File without changes
|
{pkdevtools-0.13.20260406.332 → pkdevtools-0.13.20260428.334}/PKDevTools/classes/PKDataProvider.py
RENAMED
|
File without changes
|
{pkdevtools-0.13.20260406.332 → pkdevtools-0.13.20260428.334}/PKDevTools/classes/PKDateUtilities.py
RENAMED
|
File without changes
|
|
File without changes
|
{pkdevtools-0.13.20260406.332 → pkdevtools-0.13.20260428.334}/PKDevTools/classes/PKJoinableQueue.py
RENAMED
|
File without changes
|
|
File without changes
|
{pkdevtools-0.13.20260406.332 → pkdevtools-0.13.20260428.334}/PKDevTools/classes/PKPickler.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pkdevtools-0.13.20260406.332 → pkdevtools-0.13.20260428.334}/PKDevTools/classes/RepairDB.py
RENAMED
|
File without changes
|
{pkdevtools-0.13.20260406.332 → pkdevtools-0.13.20260428.334}/PKDevTools/classes/Singleton.py
RENAMED
|
File without changes
|
{pkdevtools-0.13.20260406.332 → pkdevtools-0.13.20260428.334}/PKDevTools/classes/SuppressOutput.py
RENAMED
|
File without changes
|
|
File without changes
|
{pkdevtools-0.13.20260406.332 → pkdevtools-0.13.20260428.334}/PKDevTools/classes/Telegram.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pkdevtools-0.13.20260406.332 → pkdevtools-0.13.20260428.334}/PKDevTools/classes/WorkflowManager.py
RENAMED
|
File without changes
|
{pkdevtools-0.13.20260406.332 → pkdevtools-0.13.20260428.334}/PKDevTools/classes/dictModel.py
RENAMED
|
File without changes
|
{pkdevtools-0.13.20260406.332 → pkdevtools-0.13.20260428.334}/PKDevTools/classes/githubutilities.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pkdevtools-0.13.20260406.332 → pkdevtools-0.13.20260428.334}/PKDevTools/classes/pubsub/__init__.py
RENAMED
|
File without changes
|
{pkdevtools-0.13.20260406.332 → pkdevtools-0.13.20260428.334}/PKDevTools/classes/pubsub/events.py
RENAMED
|
File without changes
|
{pkdevtools-0.13.20260406.332 → pkdevtools-0.13.20260428.334}/PKDevTools/classes/pubsub/publisher.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pkdevtools-0.13.20260406.332 → pkdevtools-0.13.20260428.334}/pkdevtools.egg-info/SOURCES.txt
RENAMED
|
File without changes
|
|
File without changes
|
{pkdevtools-0.13.20260406.332 → pkdevtools-0.13.20260428.334}/pkdevtools.egg-info/entry_points.txt
RENAMED
|
File without changes
|
{pkdevtools-0.13.20260406.332 → pkdevtools-0.13.20260428.334}/pkdevtools.egg-info/not-zip-safe
RENAMED
|
File without changes
|
{pkdevtools-0.13.20260406.332 → pkdevtools-0.13.20260428.334}/pkdevtools.egg-info/requires.txt
RENAMED
|
File without changes
|
{pkdevtools-0.13.20260406.332 → pkdevtools-0.13.20260428.334}/pkdevtools.egg-info/top_level.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|