PKDevTools 0.13.20250222.239__tar.gz → 0.13.20250222.240__tar.gz
Sign up to get free protection for your applications and to get access to all the features.
- {pkdevtools-0.13.20250222.239 → pkdevtools-0.13.20250222.240}/PKDevTools/classes/FunctionTimeouts.py +27 -21
- pkdevtools-0.13.20250222.240/PKDevTools/classes/__init__.py +1 -0
- {pkdevtools-0.13.20250222.239 → pkdevtools-0.13.20250222.240}/PKDevTools.egg-info/PKG-INFO +2 -2
- {pkdevtools-0.13.20250222.239 → pkdevtools-0.13.20250222.240}/PKG-INFO +2 -2
- pkdevtools-0.13.20250222.239/PKDevTools/classes/__init__.py +0 -1
- {pkdevtools-0.13.20250222.239 → pkdevtools-0.13.20250222.240}/LICENSE +0 -0
- {pkdevtools-0.13.20250222.239 → pkdevtools-0.13.20250222.240}/PKDevTools/LICENSE.txt +0 -0
- {pkdevtools-0.13.20250222.239 → pkdevtools-0.13.20250222.240}/PKDevTools/README.txt +0 -0
- {pkdevtools-0.13.20250222.239 → pkdevtools-0.13.20250222.240}/PKDevTools/__init__.py +0 -0
- {pkdevtools-0.13.20250222.239 → pkdevtools-0.13.20250222.240}/PKDevTools/classes/Archiver.py +0 -0
- {pkdevtools-0.13.20250222.239 → pkdevtools-0.13.20250222.240}/PKDevTools/classes/ColorText.py +0 -0
- {pkdevtools-0.13.20250222.239 → pkdevtools-0.13.20250222.240}/PKDevTools/classes/Committer.py +0 -0
- {pkdevtools-0.13.20250222.239 → pkdevtools-0.13.20250222.240}/PKDevTools/classes/CookieHelper.py +0 -0
- {pkdevtools-0.13.20250222.239 → pkdevtools-0.13.20250222.240}/PKDevTools/classes/DBManager.py +0 -0
- {pkdevtools-0.13.20250222.239 → pkdevtools-0.13.20250222.240}/PKDevTools/classes/Environment.py +0 -0
- {pkdevtools-0.13.20250222.239 → pkdevtools-0.13.20250222.240}/PKDevTools/classes/Fetcher.py +0 -0
- {pkdevtools-0.13.20250222.239 → pkdevtools-0.13.20250222.240}/PKDevTools/classes/GmailReader.py +0 -0
- {pkdevtools-0.13.20250222.239 → pkdevtools-0.13.20250222.240}/PKDevTools/classes/MarketHours.py +0 -0
- {pkdevtools-0.13.20250222.239 → pkdevtools-0.13.20250222.240}/PKDevTools/classes/MenuOptions.py +0 -0
- {pkdevtools-0.13.20250222.239 → pkdevtools-0.13.20250222.240}/PKDevTools/classes/NSEMarketStatus.py +0 -0
- {pkdevtools-0.13.20250222.239 → pkdevtools-0.13.20250222.240}/PKDevTools/classes/OutputControls.py +0 -0
- {pkdevtools-0.13.20250222.239 → pkdevtools-0.13.20250222.240}/PKDevTools/classes/PKDateUtilities.py +0 -0
- {pkdevtools-0.13.20250222.239 → pkdevtools-0.13.20250222.240}/PKDevTools/classes/PKGitFolderDownloader.py +0 -0
- {pkdevtools-0.13.20250222.239 → pkdevtools-0.13.20250222.240}/PKDevTools/classes/PKJoinableQueue.py +0 -0
- {pkdevtools-0.13.20250222.239 → pkdevtools-0.13.20250222.240}/PKDevTools/classes/PKMultiProcessorClient.py +0 -0
- {pkdevtools-0.13.20250222.239 → pkdevtools-0.13.20250222.240}/PKDevTools/classes/PKPickler.py +0 -0
- {pkdevtools-0.13.20250222.239 → pkdevtools-0.13.20250222.240}/PKDevTools/classes/PKTimer.py +0 -0
- {pkdevtools-0.13.20250222.239 → pkdevtools-0.13.20250222.240}/PKDevTools/classes/Pikey.py +0 -0
- {pkdevtools-0.13.20250222.239 → pkdevtools-0.13.20250222.240}/PKDevTools/classes/Singleton.py +0 -0
- {pkdevtools-0.13.20250222.239 → pkdevtools-0.13.20250222.240}/PKDevTools/classes/SuppressOutput.py +0 -0
- {pkdevtools-0.13.20250222.239 → pkdevtools-0.13.20250222.240}/PKDevTools/classes/System.py +0 -0
- {pkdevtools-0.13.20250222.239 → pkdevtools-0.13.20250222.240}/PKDevTools/classes/Telegram.py +0 -0
- {pkdevtools-0.13.20250222.239 → pkdevtools-0.13.20250222.240}/PKDevTools/classes/UserSubscriptions.py +0 -0
- {pkdevtools-0.13.20250222.239 → pkdevtools-0.13.20250222.240}/PKDevTools/classes/Utils.py +0 -0
- {pkdevtools-0.13.20250222.239 → pkdevtools-0.13.20250222.240}/PKDevTools/classes/WorkflowManager.py +0 -0
- {pkdevtools-0.13.20250222.239 → pkdevtools-0.13.20250222.240}/PKDevTools/classes/githubutilities.py +0 -0
- {pkdevtools-0.13.20250222.239 → pkdevtools-0.13.20250222.240}/PKDevTools/classes/log.py +0 -0
- {pkdevtools-0.13.20250222.239 → pkdevtools-0.13.20250222.240}/PKDevTools/classes/multiprocessing_logging.py +0 -0
- {pkdevtools-0.13.20250222.239 → pkdevtools-0.13.20250222.240}/PKDevTools/classes/pubsub/__init__.py +0 -0
- {pkdevtools-0.13.20250222.239 → pkdevtools-0.13.20250222.240}/PKDevTools/classes/pubsub/events.py +0 -0
- {pkdevtools-0.13.20250222.239 → pkdevtools-0.13.20250222.240}/PKDevTools/classes/pubsub/publisher.py +0 -0
- {pkdevtools-0.13.20250222.239 → pkdevtools-0.13.20250222.240}/PKDevTools/classes/pubsub/subscriber.py +0 -0
- {pkdevtools-0.13.20250222.239 → pkdevtools-0.13.20250222.240}/PKDevTools/classes/squash.py +0 -0
- {pkdevtools-0.13.20250222.239 → pkdevtools-0.13.20250222.240}/PKDevTools/classes/updater.py +0 -0
- {pkdevtools-0.13.20250222.239 → pkdevtools-0.13.20250222.240}/PKDevTools/release.md +0 -0
- {pkdevtools-0.13.20250222.239 → pkdevtools-0.13.20250222.240}/PKDevTools/requirements.txt +0 -0
- {pkdevtools-0.13.20250222.239 → pkdevtools-0.13.20250222.240}/PKDevTools.egg-info/SOURCES.txt +0 -0
- {pkdevtools-0.13.20250222.239 → pkdevtools-0.13.20250222.240}/PKDevTools.egg-info/dependency_links.txt +0 -0
- {pkdevtools-0.13.20250222.239 → pkdevtools-0.13.20250222.240}/PKDevTools.egg-info/entry_points.txt +0 -0
- {pkdevtools-0.13.20250222.239 → pkdevtools-0.13.20250222.240}/PKDevTools.egg-info/not-zip-safe +0 -0
- {pkdevtools-0.13.20250222.239 → pkdevtools-0.13.20250222.240}/PKDevTools.egg-info/requires.txt +0 -0
- {pkdevtools-0.13.20250222.239 → pkdevtools-0.13.20250222.240}/PKDevTools.egg-info/top_level.txt +0 -0
- {pkdevtools-0.13.20250222.239 → pkdevtools-0.13.20250222.240}/README.md +0 -0
- {pkdevtools-0.13.20250222.239 → pkdevtools-0.13.20250222.240}/setup.cfg +0 -0
- {pkdevtools-0.13.20250222.239 → pkdevtools-0.13.20250222.240}/setup.py +0 -0
{pkdevtools-0.13.20250222.239 → pkdevtools-0.13.20250222.240}/PKDevTools/classes/FunctionTimeouts.py
RENAMED
@@ -27,6 +27,8 @@ from __future__ import print_function
|
|
27
27
|
|
28
28
|
import sys
|
29
29
|
import threading
|
30
|
+
import time
|
31
|
+
import functools
|
30
32
|
from time import sleep
|
31
33
|
try:
|
32
34
|
import thread
|
@@ -35,13 +37,6 @@ except ImportError:
|
|
35
37
|
|
36
38
|
INTERMEDIATE_NUM_SECONDS_WARN=30
|
37
39
|
|
38
|
-
def cdping(instance):
|
39
|
-
try:
|
40
|
-
if instance is not None and hasattr(instance, "send_event"):
|
41
|
-
instance.send_event("ping")
|
42
|
-
except:
|
43
|
-
pass
|
44
|
-
|
45
40
|
def cdquit(fn_name):
|
46
41
|
# print to stderr, unbuffered in Python 2.
|
47
42
|
print('{0} took too long. Handle KeyboardInterrupt if you do not want to exit'.format(fn_name), file=sys.stderr)
|
@@ -74,19 +69,30 @@ def exit_after(s):
|
|
74
69
|
return inner
|
75
70
|
return outer
|
76
71
|
|
77
|
-
def ping(
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
72
|
+
def ping(interval=60,instance=None):
|
73
|
+
"""Decorator to run a ping function in a background thread."""
|
74
|
+
def decorator(func):
|
75
|
+
@functools.wraps(func)
|
76
|
+
def wrapper(*args, **kwargs):
|
77
|
+
stop_event = threading.Event()
|
78
|
+
|
79
|
+
def send_ping():
|
80
|
+
while not stop_event.is_set():
|
81
|
+
time.sleep(interval)
|
82
|
+
if instance is not None and hasattr(instance, "send_event"):
|
83
|
+
instance.send_event("ping")
|
84
|
+
|
85
|
+
# Start ping thread
|
86
|
+
ping_thread = threading.Thread(target=send_ping, daemon=True)
|
87
|
+
ping_thread.start()
|
88
|
+
|
85
89
|
try:
|
86
|
-
|
87
|
-
|
90
|
+
return func(*args, **kwargs) # Run the main function
|
91
|
+
except (KeyboardInterrupt, SystemExit):
|
92
|
+
stop_event.set()
|
93
|
+
ping_thread.join()
|
88
94
|
finally:
|
89
|
-
|
90
|
-
|
91
|
-
return
|
92
|
-
return
|
95
|
+
stop_event.set() # Ensure ping thread stops even if func exits normally
|
96
|
+
|
97
|
+
return wrapper
|
98
|
+
return decorator
|
@@ -0,0 +1 @@
|
|
1
|
+
VERSION='0.13.20250222.240'
|
@@ -1,9 +1,9 @@
|
|
1
1
|
Metadata-Version: 2.2
|
2
2
|
Name: PKDevTools
|
3
|
-
Version: 0.13.20250222.
|
3
|
+
Version: 0.13.20250222.240
|
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.20250222.
|
6
|
+
Download-URL: https://github.com/pkjmesra/PKDevTools/archive/v0.13.20250222.240.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.2
|
2
2
|
Name: PKDevTools
|
3
|
-
Version: 0.13.20250222.
|
3
|
+
Version: 0.13.20250222.240
|
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.20250222.
|
6
|
+
Download-URL: https://github.com/pkjmesra/PKDevTools/archive/v0.13.20250222.240.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.20250222.239'
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{pkdevtools-0.13.20250222.239 → pkdevtools-0.13.20250222.240}/PKDevTools/classes/Archiver.py
RENAMED
File without changes
|
{pkdevtools-0.13.20250222.239 → pkdevtools-0.13.20250222.240}/PKDevTools/classes/ColorText.py
RENAMED
File without changes
|
{pkdevtools-0.13.20250222.239 → pkdevtools-0.13.20250222.240}/PKDevTools/classes/Committer.py
RENAMED
File without changes
|
{pkdevtools-0.13.20250222.239 → pkdevtools-0.13.20250222.240}/PKDevTools/classes/CookieHelper.py
RENAMED
File without changes
|
{pkdevtools-0.13.20250222.239 → pkdevtools-0.13.20250222.240}/PKDevTools/classes/DBManager.py
RENAMED
File without changes
|
{pkdevtools-0.13.20250222.239 → pkdevtools-0.13.20250222.240}/PKDevTools/classes/Environment.py
RENAMED
File without changes
|
File without changes
|
{pkdevtools-0.13.20250222.239 → pkdevtools-0.13.20250222.240}/PKDevTools/classes/GmailReader.py
RENAMED
File without changes
|
{pkdevtools-0.13.20250222.239 → pkdevtools-0.13.20250222.240}/PKDevTools/classes/MarketHours.py
RENAMED
File without changes
|
{pkdevtools-0.13.20250222.239 → pkdevtools-0.13.20250222.240}/PKDevTools/classes/MenuOptions.py
RENAMED
File without changes
|
{pkdevtools-0.13.20250222.239 → pkdevtools-0.13.20250222.240}/PKDevTools/classes/NSEMarketStatus.py
RENAMED
File without changes
|
{pkdevtools-0.13.20250222.239 → pkdevtools-0.13.20250222.240}/PKDevTools/classes/OutputControls.py
RENAMED
File without changes
|
{pkdevtools-0.13.20250222.239 → pkdevtools-0.13.20250222.240}/PKDevTools/classes/PKDateUtilities.py
RENAMED
File without changes
|
File without changes
|
{pkdevtools-0.13.20250222.239 → pkdevtools-0.13.20250222.240}/PKDevTools/classes/PKJoinableQueue.py
RENAMED
File without changes
|
File without changes
|
{pkdevtools-0.13.20250222.239 → pkdevtools-0.13.20250222.240}/PKDevTools/classes/PKPickler.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{pkdevtools-0.13.20250222.239 → pkdevtools-0.13.20250222.240}/PKDevTools/classes/Singleton.py
RENAMED
File without changes
|
{pkdevtools-0.13.20250222.239 → pkdevtools-0.13.20250222.240}/PKDevTools/classes/SuppressOutput.py
RENAMED
File without changes
|
File without changes
|
{pkdevtools-0.13.20250222.239 → pkdevtools-0.13.20250222.240}/PKDevTools/classes/Telegram.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{pkdevtools-0.13.20250222.239 → pkdevtools-0.13.20250222.240}/PKDevTools/classes/WorkflowManager.py
RENAMED
File without changes
|
{pkdevtools-0.13.20250222.239 → pkdevtools-0.13.20250222.240}/PKDevTools/classes/githubutilities.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{pkdevtools-0.13.20250222.239 → pkdevtools-0.13.20250222.240}/PKDevTools/classes/pubsub/__init__.py
RENAMED
File without changes
|
{pkdevtools-0.13.20250222.239 → pkdevtools-0.13.20250222.240}/PKDevTools/classes/pubsub/events.py
RENAMED
File without changes
|
{pkdevtools-0.13.20250222.239 → pkdevtools-0.13.20250222.240}/PKDevTools/classes/pubsub/publisher.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{pkdevtools-0.13.20250222.239 → pkdevtools-0.13.20250222.240}/PKDevTools.egg-info/SOURCES.txt
RENAMED
File without changes
|
File without changes
|
{pkdevtools-0.13.20250222.239 → pkdevtools-0.13.20250222.240}/PKDevTools.egg-info/entry_points.txt
RENAMED
File without changes
|
{pkdevtools-0.13.20250222.239 → pkdevtools-0.13.20250222.240}/PKDevTools.egg-info/not-zip-safe
RENAMED
File without changes
|
{pkdevtools-0.13.20250222.239 → pkdevtools-0.13.20250222.240}/PKDevTools.egg-info/requires.txt
RENAMED
File without changes
|
{pkdevtools-0.13.20250222.239 → pkdevtools-0.13.20250222.240}/PKDevTools.egg-info/top_level.txt
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|