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.
Files changed (55) hide show
  1. {pkdevtools-0.13.20250222.239 → pkdevtools-0.13.20250222.240}/PKDevTools/classes/FunctionTimeouts.py +27 -21
  2. pkdevtools-0.13.20250222.240/PKDevTools/classes/__init__.py +1 -0
  3. {pkdevtools-0.13.20250222.239 → pkdevtools-0.13.20250222.240}/PKDevTools.egg-info/PKG-INFO +2 -2
  4. {pkdevtools-0.13.20250222.239 → pkdevtools-0.13.20250222.240}/PKG-INFO +2 -2
  5. pkdevtools-0.13.20250222.239/PKDevTools/classes/__init__.py +0 -1
  6. {pkdevtools-0.13.20250222.239 → pkdevtools-0.13.20250222.240}/LICENSE +0 -0
  7. {pkdevtools-0.13.20250222.239 → pkdevtools-0.13.20250222.240}/PKDevTools/LICENSE.txt +0 -0
  8. {pkdevtools-0.13.20250222.239 → pkdevtools-0.13.20250222.240}/PKDevTools/README.txt +0 -0
  9. {pkdevtools-0.13.20250222.239 → pkdevtools-0.13.20250222.240}/PKDevTools/__init__.py +0 -0
  10. {pkdevtools-0.13.20250222.239 → pkdevtools-0.13.20250222.240}/PKDevTools/classes/Archiver.py +0 -0
  11. {pkdevtools-0.13.20250222.239 → pkdevtools-0.13.20250222.240}/PKDevTools/classes/ColorText.py +0 -0
  12. {pkdevtools-0.13.20250222.239 → pkdevtools-0.13.20250222.240}/PKDevTools/classes/Committer.py +0 -0
  13. {pkdevtools-0.13.20250222.239 → pkdevtools-0.13.20250222.240}/PKDevTools/classes/CookieHelper.py +0 -0
  14. {pkdevtools-0.13.20250222.239 → pkdevtools-0.13.20250222.240}/PKDevTools/classes/DBManager.py +0 -0
  15. {pkdevtools-0.13.20250222.239 → pkdevtools-0.13.20250222.240}/PKDevTools/classes/Environment.py +0 -0
  16. {pkdevtools-0.13.20250222.239 → pkdevtools-0.13.20250222.240}/PKDevTools/classes/Fetcher.py +0 -0
  17. {pkdevtools-0.13.20250222.239 → pkdevtools-0.13.20250222.240}/PKDevTools/classes/GmailReader.py +0 -0
  18. {pkdevtools-0.13.20250222.239 → pkdevtools-0.13.20250222.240}/PKDevTools/classes/MarketHours.py +0 -0
  19. {pkdevtools-0.13.20250222.239 → pkdevtools-0.13.20250222.240}/PKDevTools/classes/MenuOptions.py +0 -0
  20. {pkdevtools-0.13.20250222.239 → pkdevtools-0.13.20250222.240}/PKDevTools/classes/NSEMarketStatus.py +0 -0
  21. {pkdevtools-0.13.20250222.239 → pkdevtools-0.13.20250222.240}/PKDevTools/classes/OutputControls.py +0 -0
  22. {pkdevtools-0.13.20250222.239 → pkdevtools-0.13.20250222.240}/PKDevTools/classes/PKDateUtilities.py +0 -0
  23. {pkdevtools-0.13.20250222.239 → pkdevtools-0.13.20250222.240}/PKDevTools/classes/PKGitFolderDownloader.py +0 -0
  24. {pkdevtools-0.13.20250222.239 → pkdevtools-0.13.20250222.240}/PKDevTools/classes/PKJoinableQueue.py +0 -0
  25. {pkdevtools-0.13.20250222.239 → pkdevtools-0.13.20250222.240}/PKDevTools/classes/PKMultiProcessorClient.py +0 -0
  26. {pkdevtools-0.13.20250222.239 → pkdevtools-0.13.20250222.240}/PKDevTools/classes/PKPickler.py +0 -0
  27. {pkdevtools-0.13.20250222.239 → pkdevtools-0.13.20250222.240}/PKDevTools/classes/PKTimer.py +0 -0
  28. {pkdevtools-0.13.20250222.239 → pkdevtools-0.13.20250222.240}/PKDevTools/classes/Pikey.py +0 -0
  29. {pkdevtools-0.13.20250222.239 → pkdevtools-0.13.20250222.240}/PKDevTools/classes/Singleton.py +0 -0
  30. {pkdevtools-0.13.20250222.239 → pkdevtools-0.13.20250222.240}/PKDevTools/classes/SuppressOutput.py +0 -0
  31. {pkdevtools-0.13.20250222.239 → pkdevtools-0.13.20250222.240}/PKDevTools/classes/System.py +0 -0
  32. {pkdevtools-0.13.20250222.239 → pkdevtools-0.13.20250222.240}/PKDevTools/classes/Telegram.py +0 -0
  33. {pkdevtools-0.13.20250222.239 → pkdevtools-0.13.20250222.240}/PKDevTools/classes/UserSubscriptions.py +0 -0
  34. {pkdevtools-0.13.20250222.239 → pkdevtools-0.13.20250222.240}/PKDevTools/classes/Utils.py +0 -0
  35. {pkdevtools-0.13.20250222.239 → pkdevtools-0.13.20250222.240}/PKDevTools/classes/WorkflowManager.py +0 -0
  36. {pkdevtools-0.13.20250222.239 → pkdevtools-0.13.20250222.240}/PKDevTools/classes/githubutilities.py +0 -0
  37. {pkdevtools-0.13.20250222.239 → pkdevtools-0.13.20250222.240}/PKDevTools/classes/log.py +0 -0
  38. {pkdevtools-0.13.20250222.239 → pkdevtools-0.13.20250222.240}/PKDevTools/classes/multiprocessing_logging.py +0 -0
  39. {pkdevtools-0.13.20250222.239 → pkdevtools-0.13.20250222.240}/PKDevTools/classes/pubsub/__init__.py +0 -0
  40. {pkdevtools-0.13.20250222.239 → pkdevtools-0.13.20250222.240}/PKDevTools/classes/pubsub/events.py +0 -0
  41. {pkdevtools-0.13.20250222.239 → pkdevtools-0.13.20250222.240}/PKDevTools/classes/pubsub/publisher.py +0 -0
  42. {pkdevtools-0.13.20250222.239 → pkdevtools-0.13.20250222.240}/PKDevTools/classes/pubsub/subscriber.py +0 -0
  43. {pkdevtools-0.13.20250222.239 → pkdevtools-0.13.20250222.240}/PKDevTools/classes/squash.py +0 -0
  44. {pkdevtools-0.13.20250222.239 → pkdevtools-0.13.20250222.240}/PKDevTools/classes/updater.py +0 -0
  45. {pkdevtools-0.13.20250222.239 → pkdevtools-0.13.20250222.240}/PKDevTools/release.md +0 -0
  46. {pkdevtools-0.13.20250222.239 → pkdevtools-0.13.20250222.240}/PKDevTools/requirements.txt +0 -0
  47. {pkdevtools-0.13.20250222.239 → pkdevtools-0.13.20250222.240}/PKDevTools.egg-info/SOURCES.txt +0 -0
  48. {pkdevtools-0.13.20250222.239 → pkdevtools-0.13.20250222.240}/PKDevTools.egg-info/dependency_links.txt +0 -0
  49. {pkdevtools-0.13.20250222.239 → pkdevtools-0.13.20250222.240}/PKDevTools.egg-info/entry_points.txt +0 -0
  50. {pkdevtools-0.13.20250222.239 → pkdevtools-0.13.20250222.240}/PKDevTools.egg-info/not-zip-safe +0 -0
  51. {pkdevtools-0.13.20250222.239 → pkdevtools-0.13.20250222.240}/PKDevTools.egg-info/requires.txt +0 -0
  52. {pkdevtools-0.13.20250222.239 → pkdevtools-0.13.20250222.240}/PKDevTools.egg-info/top_level.txt +0 -0
  53. {pkdevtools-0.13.20250222.239 → pkdevtools-0.13.20250222.240}/README.md +0 -0
  54. {pkdevtools-0.13.20250222.239 → pkdevtools-0.13.20250222.240}/setup.cfg +0 -0
  55. {pkdevtools-0.13.20250222.239 → pkdevtools-0.13.20250222.240}/setup.py +0 -0
@@ -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(s,instance):
78
- '''
79
- use as decorator to ping process every s seconds
80
- '''
81
- def outer(fn):
82
- def inner(*args, **kwargs):
83
- timer = threading.Timer(s, cdping, args=[fn.__name__])
84
- timer.start()
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
- result = None
87
- result = fn(*args, **kwargs)
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
- timer.cancel()
90
- return result
91
- return inner
92
- return outer
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.239
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.239.zip
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.239
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.239.zip
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'