PKDevTools 0.13.20250208.218__cp312-cp312-manylinux2014_x86_64.whl → 0.13.20250208.220__cp312-cp312-manylinux2014_x86_64.whl

Sign up to get free protection for your applications and to get access to all the features.
Files changed (46) hide show
  1. {PKDevTools-0.13.20250208.218.data → PKDevTools-0.13.20250208.220.data}/purelib/PKDevTools/classes/DBManager.py +117 -0
  2. PKDevTools-0.13.20250208.220.data/purelib/PKDevTools/classes/__init__.py +1 -0
  3. {PKDevTools-0.13.20250208.218.dist-info → PKDevTools-0.13.20250208.220.dist-info}/METADATA +2 -2
  4. PKDevTools-0.13.20250208.220.dist-info/RECORD +44 -0
  5. PKDevTools-0.13.20250208.218.data/purelib/PKDevTools/classes/__init__.py +0 -1
  6. PKDevTools-0.13.20250208.218.dist-info/RECORD +0 -44
  7. {PKDevTools-0.13.20250208.218.data → PKDevTools-0.13.20250208.220.data}/purelib/PKDevTools/LICENSE.txt +0 -0
  8. {PKDevTools-0.13.20250208.218.data → PKDevTools-0.13.20250208.220.data}/purelib/PKDevTools/README.txt +0 -0
  9. {PKDevTools-0.13.20250208.218.data → PKDevTools-0.13.20250208.220.data}/purelib/PKDevTools/__init__.py +0 -0
  10. {PKDevTools-0.13.20250208.218.data → PKDevTools-0.13.20250208.220.data}/purelib/PKDevTools/classes/Archiver.py +0 -0
  11. {PKDevTools-0.13.20250208.218.data → PKDevTools-0.13.20250208.220.data}/purelib/PKDevTools/classes/ColorText.py +0 -0
  12. {PKDevTools-0.13.20250208.218.data → PKDevTools-0.13.20250208.220.data}/purelib/PKDevTools/classes/Committer.py +0 -0
  13. {PKDevTools-0.13.20250208.218.data → PKDevTools-0.13.20250208.220.data}/purelib/PKDevTools/classes/CookieHelper.py +0 -0
  14. {PKDevTools-0.13.20250208.218.data → PKDevTools-0.13.20250208.220.data}/purelib/PKDevTools/classes/Environment.py +0 -0
  15. {PKDevTools-0.13.20250208.218.data → PKDevTools-0.13.20250208.220.data}/purelib/PKDevTools/classes/Fetcher.py +0 -0
  16. {PKDevTools-0.13.20250208.218.data → PKDevTools-0.13.20250208.220.data}/purelib/PKDevTools/classes/FunctionTimeouts.py +0 -0
  17. {PKDevTools-0.13.20250208.218.data → PKDevTools-0.13.20250208.220.data}/purelib/PKDevTools/classes/GmailReader.py +0 -0
  18. {PKDevTools-0.13.20250208.218.data → PKDevTools-0.13.20250208.220.data}/purelib/PKDevTools/classes/MarketHours.py +0 -0
  19. {PKDevTools-0.13.20250208.218.data → PKDevTools-0.13.20250208.220.data}/purelib/PKDevTools/classes/MenuOptions.py +0 -0
  20. {PKDevTools-0.13.20250208.218.data → PKDevTools-0.13.20250208.220.data}/purelib/PKDevTools/classes/NSEMarketStatus.py +0 -0
  21. {PKDevTools-0.13.20250208.218.data → PKDevTools-0.13.20250208.220.data}/purelib/PKDevTools/classes/OutputControls.py +0 -0
  22. {PKDevTools-0.13.20250208.218.data → PKDevTools-0.13.20250208.220.data}/purelib/PKDevTools/classes/PKDateUtilities.py +0 -0
  23. {PKDevTools-0.13.20250208.218.data → PKDevTools-0.13.20250208.220.data}/purelib/PKDevTools/classes/PKGitFolderDownloader.py +0 -0
  24. {PKDevTools-0.13.20250208.218.data → PKDevTools-0.13.20250208.220.data}/purelib/PKDevTools/classes/PKJoinableQueue.py +0 -0
  25. {PKDevTools-0.13.20250208.218.data → PKDevTools-0.13.20250208.220.data}/purelib/PKDevTools/classes/PKMultiProcessorClient.py +0 -0
  26. {PKDevTools-0.13.20250208.218.data → PKDevTools-0.13.20250208.220.data}/purelib/PKDevTools/classes/PKPickler.py +0 -0
  27. {PKDevTools-0.13.20250208.218.data → PKDevTools-0.13.20250208.220.data}/purelib/PKDevTools/classes/PKTimer.py +0 -0
  28. {PKDevTools-0.13.20250208.218.data → PKDevTools-0.13.20250208.220.data}/purelib/PKDevTools/classes/Pikey.py +0 -0
  29. {PKDevTools-0.13.20250208.218.data → PKDevTools-0.13.20250208.220.data}/purelib/PKDevTools/classes/Singleton.py +0 -0
  30. {PKDevTools-0.13.20250208.218.data → PKDevTools-0.13.20250208.220.data}/purelib/PKDevTools/classes/SuppressOutput.py +0 -0
  31. {PKDevTools-0.13.20250208.218.data → PKDevTools-0.13.20250208.220.data}/purelib/PKDevTools/classes/System.py +0 -0
  32. {PKDevTools-0.13.20250208.218.data → PKDevTools-0.13.20250208.220.data}/purelib/PKDevTools/classes/Telegram.py +0 -0
  33. {PKDevTools-0.13.20250208.218.data → PKDevTools-0.13.20250208.220.data}/purelib/PKDevTools/classes/UserSubscriptions.py +0 -0
  34. {PKDevTools-0.13.20250208.218.data → PKDevTools-0.13.20250208.220.data}/purelib/PKDevTools/classes/Utils.py +0 -0
  35. {PKDevTools-0.13.20250208.218.data → PKDevTools-0.13.20250208.220.data}/purelib/PKDevTools/classes/WorkflowManager.py +0 -0
  36. {PKDevTools-0.13.20250208.218.data → PKDevTools-0.13.20250208.220.data}/purelib/PKDevTools/classes/githubutilities.py +0 -0
  37. {PKDevTools-0.13.20250208.218.data → PKDevTools-0.13.20250208.220.data}/purelib/PKDevTools/classes/log.py +0 -0
  38. {PKDevTools-0.13.20250208.218.data → PKDevTools-0.13.20250208.220.data}/purelib/PKDevTools/classes/multiprocessing_logging.py +0 -0
  39. {PKDevTools-0.13.20250208.218.data → PKDevTools-0.13.20250208.220.data}/purelib/PKDevTools/classes/squash.py +0 -0
  40. {PKDevTools-0.13.20250208.218.data → PKDevTools-0.13.20250208.220.data}/purelib/PKDevTools/classes/updater.py +0 -0
  41. {PKDevTools-0.13.20250208.218.data → PKDevTools-0.13.20250208.220.data}/purelib/PKDevTools/release.md +0 -0
  42. {PKDevTools-0.13.20250208.218.data → PKDevTools-0.13.20250208.220.data}/purelib/PKDevTools/requirements.txt +0 -0
  43. {PKDevTools-0.13.20250208.218.dist-info → PKDevTools-0.13.20250208.220.dist-info}/LICENSE +0 -0
  44. {PKDevTools-0.13.20250208.218.dist-info → PKDevTools-0.13.20250208.220.dist-info}/WHEEL +0 -0
  45. {PKDevTools-0.13.20250208.218.dist-info → PKDevTools-0.13.20250208.220.dist-info}/entry_points.txt +0 -0
  46. {PKDevTools-0.13.20250208.218.dist-info → PKDevTools-0.13.20250208.220.dist-info}/top_level.txt +0 -0
@@ -410,3 +410,120 @@ class DBManager:
410
410
  self.conn.close()
411
411
  self.conn = None
412
412
  return scanners[0].userIds if len(scanners) > 0 else []
413
+
414
+ def updateAlertSubscriptionModel(self,userID,charge:float,scanId:str):
415
+ try:
416
+ success = False
417
+ result = self.connection().execute("""
418
+ UPDATE alertsubscriptions
419
+ SET
420
+ balance = balance - ?,
421
+ scannerJobs = scannerJobs || ';' || ?
422
+ WHERE userId = ?;
423
+ """, (charge, scanId, userID))
424
+ if result.rows_affected > 0:
425
+ default_logger().debug(f"User: {userID} updated with balance and scannerJobs!")
426
+ success = self.topUpScannerJobs(scanId,userID)
427
+ except Exception as e: # pragma: no cover
428
+ print(f"Could not updateAlertSubscriptionModel UserID: {userID}\n{e}")
429
+ default_logger().debug(e, exc_info=True)
430
+ pass
431
+ finally:
432
+ if self.conn is not None:
433
+ self.conn.close()
434
+ self.conn = None
435
+ return success
436
+
437
+ def topUpAlertSubscriptionBalance(self,userID,topup:float):
438
+ """
439
+ Handles a new user insertion as well as update.
440
+
441
+ If UserID does not exist, a new row is inserted with the given Balance.
442
+ If UserID already exists, only the Balance is updated by adding the new amount
443
+ (Balance + excluded.Balance).
444
+ """
445
+ try:
446
+ success = False
447
+ result = self.connection().execute("""
448
+ INSERT INTO alertsubscriptions (userId, balance)
449
+ VALUES (?, ?)
450
+ ON CONFLICT(userId) DO UPDATE
451
+ SET balance = balance + excluded.balance;
452
+ """, (userID,topup))
453
+ if result.rows_affected > 0:
454
+ default_logger().debug(f"User: {userID} topped up with balance !")
455
+ success = True
456
+ except Exception as e: # pragma: no cover
457
+ print(f"Could not topUpAlertSubscriptionBalance UserID: {userID}\n{e}")
458
+ default_logger().debug(e, exc_info=True)
459
+ pass
460
+ finally:
461
+ if self.conn is not None:
462
+ self.conn.close()
463
+ self.conn = None
464
+ return success
465
+
466
+ def topUpScannerJobs(self,scanId,userID):
467
+ """
468
+ Handles a new user insertion as well as update for a given scanId.
469
+
470
+ If scanId does not exist, a new row is inserted with the given userId.
471
+ If scanId already exists, only the users is updated by adding the new userId
472
+ """
473
+ try:
474
+ success = False
475
+ result = self.connection().execute("""
476
+ INSERT INTO scannerjobs (scannerId, users)
477
+ VALUES (?, ?)
478
+ ON CONFLICT(scannerId) DO UPDATE
479
+ SET users = users || ';' || excluded.users;
480
+ """, (scanId,userID))
481
+ if result.rows_affected > 0:
482
+ default_logger().debug(f"User: {userID} added to scanId !")
483
+ success = True
484
+ except Exception as e: # pragma: no cover
485
+ print(f"Could not topUpScannerJobs UserID: {userID}\n{e}")
486
+ default_logger().debug(e, exc_info=True)
487
+ pass
488
+ finally:
489
+ if self.conn is not None:
490
+ self.conn.close()
491
+ self.conn = None
492
+ return success
493
+
494
+ def resetScannerJobs(self):
495
+ """
496
+ Truncates scannerJobs and clears all jobs from users' alert subscriptions
497
+ """
498
+ try:
499
+ success1 = False
500
+ result = self.connection().execute("DELETE from scannerjobs")
501
+ if result.rows_affected > 0:
502
+ default_logger().debug(f"scannerJobs truncated !")
503
+ success1 = True
504
+ except Exception as e: # pragma: no cover
505
+ print(f"Could not deleteScannerJobs \n{e}")
506
+ default_logger().debug(e, exc_info=True)
507
+ pass
508
+ finally:
509
+ if self.conn is not None:
510
+ self.conn.close()
511
+ self.conn = None
512
+ try:
513
+ success2 = False
514
+ result = self.connection().execute("""
515
+ UPDATE alertsubscriptions
516
+ SET scannerJobs = ''
517
+ """)
518
+ if result.rows_affected > 0:
519
+ default_logger().debug(f"alertsubscriptions updated with cleaned up scannerJobs!")
520
+ success2 = True
521
+ except Exception as e: # pragma: no cover
522
+ print(f"Could not deleteScannerJobs \n{e}")
523
+ default_logger().debug(e, exc_info=True)
524
+ pass
525
+ finally:
526
+ if self.conn is not None:
527
+ self.conn.close()
528
+ self.conn = None
529
+ return success1 and success2
@@ -0,0 +1 @@
1
+ VERSION='0.13.20250208.220'
@@ -1,9 +1,9 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: PKDevTools
3
- Version: 0.13.20250208.218
3
+ Version: 0.13.20250208.220
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.20250208.218.zip
6
+ Download-URL: https://github.com/pkjmesra/PKDevTools/archive/v0.13.20250208.220.zip
7
7
  Author: pkjmesra
8
8
  Author-email: pkjmesra@gmail.com
9
9
  License: OSI Approved (MIT)
@@ -0,0 +1,44 @@
1
+ PKDevTools-0.13.20250208.220.data/purelib/PKDevTools/LICENSE.txt,sha256=5kDneOnQ4s9IktVsbcPcs6o0GhW7Rw_ySDac6TA2Cw4,1065
2
+ PKDevTools-0.13.20250208.220.data/purelib/PKDevTools/README.txt,sha256=xw2oGRJ1M9lmJqEYw3VBh7ZjlNx7hIZw6fcDzC0shu8,4233
3
+ PKDevTools-0.13.20250208.220.data/purelib/PKDevTools/__init__.py,sha256=QyaxuW4OGDxF6KXLC5avvZyLhfMt9KnKAb4m9j1XUls,1152
4
+ PKDevTools-0.13.20250208.220.data/purelib/PKDevTools/release.md,sha256=NcfNPeUU9uaz8mRiRZRqPWkSpwoHVShdrXJqOJdKbnQ,1729
5
+ PKDevTools-0.13.20250208.220.data/purelib/PKDevTools/requirements.txt,sha256=Ob-LG6adhp05gxoZty8PWnWxqLS5L1ZUi88lf07HvUI,361
6
+ PKDevTools-0.13.20250208.220.data/purelib/PKDevTools/classes/Archiver.py,sha256=0D2wMp3a913QOsPXc0K_frtvpldDU7uIsP8DRAvaIQ0,6301
7
+ PKDevTools-0.13.20250208.220.data/purelib/PKDevTools/classes/ColorText.py,sha256=sIsXd75jMtA44mdZQd6EO1MdFYQaH2IYukLEH9fZuEw,8585
8
+ PKDevTools-0.13.20250208.220.data/purelib/PKDevTools/classes/Committer.py,sha256=cHsIe9DonzQULOZwrXGuodatFSDNm5UiQafjVlWn-BE,4536
9
+ PKDevTools-0.13.20250208.220.data/purelib/PKDevTools/classes/CookieHelper.py,sha256=PxW1_VanZ7AY7o7jMYxISBj9yhs69L0Sd8wvXYCRXAo,6212
10
+ PKDevTools-0.13.20250208.220.data/purelib/PKDevTools/classes/DBManager.py,sha256=G-5ErANdlYG6v7wTa_2Kj27dmlM_5mcYdGUiGkTfbsM,23728
11
+ PKDevTools-0.13.20250208.220.data/purelib/PKDevTools/classes/Environment.py,sha256=hvQwkjz9QunX0-3Dcuw5E76fjaejmHvrmiAOME9TqE4,1978
12
+ PKDevTools-0.13.20250208.220.data/purelib/PKDevTools/classes/Fetcher.py,sha256=W-yCSSujFie58lYAZ4HVo1gZey9R3Qpe3JL16F-eo9I,9011
13
+ PKDevTools-0.13.20250208.220.data/purelib/PKDevTools/classes/FunctionTimeouts.py,sha256=xbxp-txDqiQOzVjazbrEPITMGvUIXQ0HqfFh8vYr4WU,2541
14
+ PKDevTools-0.13.20250208.220.data/purelib/PKDevTools/classes/GmailReader.py,sha256=6iOTXNzOBqXPeGwNnq853N1zOaHIcAY0EozisjhSOTE,6856
15
+ PKDevTools-0.13.20250208.220.data/purelib/PKDevTools/classes/MarketHours.py,sha256=2aRzd8JfCmxc3UryvrpUS7DvHuctpz_U-E0nv72gEaY,2159
16
+ PKDevTools-0.13.20250208.220.data/purelib/PKDevTools/classes/MenuOptions.py,sha256=MC_OblDzSMCENVEZCQQX4whmY3vQAhE2oBZOL69JzyA,11606
17
+ PKDevTools-0.13.20250208.220.data/purelib/PKDevTools/classes/NSEMarketStatus.py,sha256=DQ9VZ9Pl17rYnvK6x4M8s9LIPxGf9RUuUtmn2eBu5JE,5411
18
+ PKDevTools-0.13.20250208.220.data/purelib/PKDevTools/classes/OutputControls.py,sha256=cXI8l2ZIJAZbTbVbG7wu7iNgMBFfs51XapCS27lNjmU,3472
19
+ PKDevTools-0.13.20250208.220.data/purelib/PKDevTools/classes/PKDateUtilities.py,sha256=QIjCGyTMkax5mv0qGC9gjLxaz4zTFX2oRqDhXAbQ8Gk,17873
20
+ PKDevTools-0.13.20250208.220.data/purelib/PKDevTools/classes/PKGitFolderDownloader.py,sha256=RM7ZQCERKl_ttlAoo5Nt9FKuWWUirQxCxL1thZ12_hE,2936
21
+ PKDevTools-0.13.20250208.220.data/purelib/PKDevTools/classes/PKJoinableQueue.py,sha256=8eWkWiOaqGCAegV30-bgpPsfmhVVpuxLHdyrJNY3_OY,5122
22
+ PKDevTools-0.13.20250208.220.data/purelib/PKDevTools/classes/PKMultiProcessorClient.py,sha256=Y5t_f14z6ygzPUHDH6YJIqLrm9s7TFk5ayLxK8MeTgw,13214
23
+ PKDevTools-0.13.20250208.220.data/purelib/PKDevTools/classes/PKPickler.py,sha256=M2F2_Z7XAmo7qfzOEiVLq3RzpldfU8Y-MfMPrMZbNGU,14082
24
+ PKDevTools-0.13.20250208.220.data/purelib/PKDevTools/classes/PKTimer.py,sha256=Y0jmvrXKLkwNH3j5qIwpL_th-Nf26oCHnxsZ7_AuV8U,3345
25
+ PKDevTools-0.13.20250208.220.data/purelib/PKDevTools/classes/Pikey.py,sha256=wDiOUIRSxYOIO7GGUw1eGrbDuVvJ-YAU6_dfQWRp2Fk,2744
26
+ PKDevTools-0.13.20250208.220.data/purelib/PKDevTools/classes/Singleton.py,sha256=tBIFCgVKqs5-K6w_wx0FNNT5aks1QmOLjE_xTMHbb10,4432
27
+ PKDevTools-0.13.20250208.220.data/purelib/PKDevTools/classes/SuppressOutput.py,sha256=yAsdxsVJCbVi-irsxa_ClY7JutbRU_eAEMhw4NW4QdE,1951
28
+ PKDevTools-0.13.20250208.220.data/purelib/PKDevTools/classes/System.py,sha256=tMNnGUQdhUjkysJ2b9EI8dy8iXdaHkshRXpeKZlyPf8,4005
29
+ PKDevTools-0.13.20250208.220.data/purelib/PKDevTools/classes/Telegram.py,sha256=_BnnsgUZL1pYZdcJensbUcvW6bi_tqvt6miTQf6OCY8,15505
30
+ PKDevTools-0.13.20250208.220.data/purelib/PKDevTools/classes/UserSubscriptions.py,sha256=MX2NR8kNZIkno2DUcJa00N3dPSkSNXruOGmxm9YvZmw,9075
31
+ PKDevTools-0.13.20250208.220.data/purelib/PKDevTools/classes/Utils.py,sha256=P_kJnTgMK6fA6SwIvNLThvHxYVcazhD5Zo5WL_kpC3Y,24264
32
+ PKDevTools-0.13.20250208.220.data/purelib/PKDevTools/classes/WorkflowManager.py,sha256=rDamQR0fF-YSzOQTjMJnksJ6dxKs-PazW6fVFlAQ_Sk,9759
33
+ PKDevTools-0.13.20250208.220.data/purelib/PKDevTools/classes/__init__.py,sha256=BoiDBQscr1f1DzdbHTLRc_QbmrlKlFUYqaPm3YCjDFU,28
34
+ PKDevTools-0.13.20250208.220.data/purelib/PKDevTools/classes/githubutilities.py,sha256=UNSJzx8Ybn_x6zaSk497KQsMyDX7MYnQjjV-F0KP_Z0,3650
35
+ PKDevTools-0.13.20250208.220.data/purelib/PKDevTools/classes/log.py,sha256=r-KBSGYXJ67Uzw51cNisB3x3uB5mlQWSOO_E6c_m1F8,15616
36
+ PKDevTools-0.13.20250208.220.data/purelib/PKDevTools/classes/multiprocessing_logging.py,sha256=8W4fHL1Kstp2FIML6N6ghT--8HE4bmak3sZ1fsWF52U,7212
37
+ PKDevTools-0.13.20250208.220.data/purelib/PKDevTools/classes/squash.py,sha256=iZ4MsOW_evD4VoWjO9pEHd2gWeswthM7uWSgVRpFvDw,2782
38
+ PKDevTools-0.13.20250208.220.data/purelib/PKDevTools/classes/updater.py,sha256=NQ46ulqswdXkjljFwPiwufgGoCZB-Fc7DdYYh9LyS-0,4709
39
+ PKDevTools-0.13.20250208.220.dist-info/LICENSE,sha256=5kDneOnQ4s9IktVsbcPcs6o0GhW7Rw_ySDac6TA2Cw4,1065
40
+ PKDevTools-0.13.20250208.220.dist-info/METADATA,sha256=wbCNK9VTSKQyFPQS1trbFZshLQ2dVPvMptdJVo5Kmg8,5981
41
+ PKDevTools-0.13.20250208.220.dist-info/WHEEL,sha256=aDUArjEbIuDQzblE24IvdIsBzRhJEjiXmuNUYQ-gpaA,104
42
+ PKDevTools-0.13.20250208.220.dist-info/entry_points.txt,sha256=itdAnPuy8DO45uGuAEms0UJcoa2nGJVAUwm7NIL4-Yw,353
43
+ PKDevTools-0.13.20250208.220.dist-info/top_level.txt,sha256=WTig-LzPiEcyuyhbNRhJz1mX_RB-fojodPK48k3NmPg,11
44
+ PKDevTools-0.13.20250208.220.dist-info/RECORD,,
@@ -1 +0,0 @@
1
- VERSION='0.13.20250208.218'
@@ -1,44 +0,0 @@
1
- PKDevTools-0.13.20250208.218.data/purelib/PKDevTools/LICENSE.txt,sha256=5kDneOnQ4s9IktVsbcPcs6o0GhW7Rw_ySDac6TA2Cw4,1065
2
- PKDevTools-0.13.20250208.218.data/purelib/PKDevTools/README.txt,sha256=xw2oGRJ1M9lmJqEYw3VBh7ZjlNx7hIZw6fcDzC0shu8,4233
3
- PKDevTools-0.13.20250208.218.data/purelib/PKDevTools/__init__.py,sha256=QyaxuW4OGDxF6KXLC5avvZyLhfMt9KnKAb4m9j1XUls,1152
4
- PKDevTools-0.13.20250208.218.data/purelib/PKDevTools/release.md,sha256=NcfNPeUU9uaz8mRiRZRqPWkSpwoHVShdrXJqOJdKbnQ,1729
5
- PKDevTools-0.13.20250208.218.data/purelib/PKDevTools/requirements.txt,sha256=Ob-LG6adhp05gxoZty8PWnWxqLS5L1ZUi88lf07HvUI,361
6
- PKDevTools-0.13.20250208.218.data/purelib/PKDevTools/classes/Archiver.py,sha256=0D2wMp3a913QOsPXc0K_frtvpldDU7uIsP8DRAvaIQ0,6301
7
- PKDevTools-0.13.20250208.218.data/purelib/PKDevTools/classes/ColorText.py,sha256=sIsXd75jMtA44mdZQd6EO1MdFYQaH2IYukLEH9fZuEw,8585
8
- PKDevTools-0.13.20250208.218.data/purelib/PKDevTools/classes/Committer.py,sha256=cHsIe9DonzQULOZwrXGuodatFSDNm5UiQafjVlWn-BE,4536
9
- PKDevTools-0.13.20250208.218.data/purelib/PKDevTools/classes/CookieHelper.py,sha256=PxW1_VanZ7AY7o7jMYxISBj9yhs69L0Sd8wvXYCRXAo,6212
10
- PKDevTools-0.13.20250208.218.data/purelib/PKDevTools/classes/DBManager.py,sha256=dUP2TkHZAs_UIUVgn_VTaZ_F_rvGJtaZPDTv4fmRaas,18545
11
- PKDevTools-0.13.20250208.218.data/purelib/PKDevTools/classes/Environment.py,sha256=hvQwkjz9QunX0-3Dcuw5E76fjaejmHvrmiAOME9TqE4,1978
12
- PKDevTools-0.13.20250208.218.data/purelib/PKDevTools/classes/Fetcher.py,sha256=W-yCSSujFie58lYAZ4HVo1gZey9R3Qpe3JL16F-eo9I,9011
13
- PKDevTools-0.13.20250208.218.data/purelib/PKDevTools/classes/FunctionTimeouts.py,sha256=xbxp-txDqiQOzVjazbrEPITMGvUIXQ0HqfFh8vYr4WU,2541
14
- PKDevTools-0.13.20250208.218.data/purelib/PKDevTools/classes/GmailReader.py,sha256=6iOTXNzOBqXPeGwNnq853N1zOaHIcAY0EozisjhSOTE,6856
15
- PKDevTools-0.13.20250208.218.data/purelib/PKDevTools/classes/MarketHours.py,sha256=2aRzd8JfCmxc3UryvrpUS7DvHuctpz_U-E0nv72gEaY,2159
16
- PKDevTools-0.13.20250208.218.data/purelib/PKDevTools/classes/MenuOptions.py,sha256=MC_OblDzSMCENVEZCQQX4whmY3vQAhE2oBZOL69JzyA,11606
17
- PKDevTools-0.13.20250208.218.data/purelib/PKDevTools/classes/NSEMarketStatus.py,sha256=DQ9VZ9Pl17rYnvK6x4M8s9LIPxGf9RUuUtmn2eBu5JE,5411
18
- PKDevTools-0.13.20250208.218.data/purelib/PKDevTools/classes/OutputControls.py,sha256=cXI8l2ZIJAZbTbVbG7wu7iNgMBFfs51XapCS27lNjmU,3472
19
- PKDevTools-0.13.20250208.218.data/purelib/PKDevTools/classes/PKDateUtilities.py,sha256=QIjCGyTMkax5mv0qGC9gjLxaz4zTFX2oRqDhXAbQ8Gk,17873
20
- PKDevTools-0.13.20250208.218.data/purelib/PKDevTools/classes/PKGitFolderDownloader.py,sha256=RM7ZQCERKl_ttlAoo5Nt9FKuWWUirQxCxL1thZ12_hE,2936
21
- PKDevTools-0.13.20250208.218.data/purelib/PKDevTools/classes/PKJoinableQueue.py,sha256=8eWkWiOaqGCAegV30-bgpPsfmhVVpuxLHdyrJNY3_OY,5122
22
- PKDevTools-0.13.20250208.218.data/purelib/PKDevTools/classes/PKMultiProcessorClient.py,sha256=Y5t_f14z6ygzPUHDH6YJIqLrm9s7TFk5ayLxK8MeTgw,13214
23
- PKDevTools-0.13.20250208.218.data/purelib/PKDevTools/classes/PKPickler.py,sha256=M2F2_Z7XAmo7qfzOEiVLq3RzpldfU8Y-MfMPrMZbNGU,14082
24
- PKDevTools-0.13.20250208.218.data/purelib/PKDevTools/classes/PKTimer.py,sha256=Y0jmvrXKLkwNH3j5qIwpL_th-Nf26oCHnxsZ7_AuV8U,3345
25
- PKDevTools-0.13.20250208.218.data/purelib/PKDevTools/classes/Pikey.py,sha256=wDiOUIRSxYOIO7GGUw1eGrbDuVvJ-YAU6_dfQWRp2Fk,2744
26
- PKDevTools-0.13.20250208.218.data/purelib/PKDevTools/classes/Singleton.py,sha256=tBIFCgVKqs5-K6w_wx0FNNT5aks1QmOLjE_xTMHbb10,4432
27
- PKDevTools-0.13.20250208.218.data/purelib/PKDevTools/classes/SuppressOutput.py,sha256=yAsdxsVJCbVi-irsxa_ClY7JutbRU_eAEMhw4NW4QdE,1951
28
- PKDevTools-0.13.20250208.218.data/purelib/PKDevTools/classes/System.py,sha256=tMNnGUQdhUjkysJ2b9EI8dy8iXdaHkshRXpeKZlyPf8,4005
29
- PKDevTools-0.13.20250208.218.data/purelib/PKDevTools/classes/Telegram.py,sha256=_BnnsgUZL1pYZdcJensbUcvW6bi_tqvt6miTQf6OCY8,15505
30
- PKDevTools-0.13.20250208.218.data/purelib/PKDevTools/classes/UserSubscriptions.py,sha256=MX2NR8kNZIkno2DUcJa00N3dPSkSNXruOGmxm9YvZmw,9075
31
- PKDevTools-0.13.20250208.218.data/purelib/PKDevTools/classes/Utils.py,sha256=P_kJnTgMK6fA6SwIvNLThvHxYVcazhD5Zo5WL_kpC3Y,24264
32
- PKDevTools-0.13.20250208.218.data/purelib/PKDevTools/classes/WorkflowManager.py,sha256=rDamQR0fF-YSzOQTjMJnksJ6dxKs-PazW6fVFlAQ_Sk,9759
33
- PKDevTools-0.13.20250208.218.data/purelib/PKDevTools/classes/__init__.py,sha256=7Sgmf-ESD9ipt6sGba_cr_KiHnp9mYGv4NoiClMBMbw,28
34
- PKDevTools-0.13.20250208.218.data/purelib/PKDevTools/classes/githubutilities.py,sha256=UNSJzx8Ybn_x6zaSk497KQsMyDX7MYnQjjV-F0KP_Z0,3650
35
- PKDevTools-0.13.20250208.218.data/purelib/PKDevTools/classes/log.py,sha256=r-KBSGYXJ67Uzw51cNisB3x3uB5mlQWSOO_E6c_m1F8,15616
36
- PKDevTools-0.13.20250208.218.data/purelib/PKDevTools/classes/multiprocessing_logging.py,sha256=8W4fHL1Kstp2FIML6N6ghT--8HE4bmak3sZ1fsWF52U,7212
37
- PKDevTools-0.13.20250208.218.data/purelib/PKDevTools/classes/squash.py,sha256=iZ4MsOW_evD4VoWjO9pEHd2gWeswthM7uWSgVRpFvDw,2782
38
- PKDevTools-0.13.20250208.218.data/purelib/PKDevTools/classes/updater.py,sha256=NQ46ulqswdXkjljFwPiwufgGoCZB-Fc7DdYYh9LyS-0,4709
39
- PKDevTools-0.13.20250208.218.dist-info/LICENSE,sha256=5kDneOnQ4s9IktVsbcPcs6o0GhW7Rw_ySDac6TA2Cw4,1065
40
- PKDevTools-0.13.20250208.218.dist-info/METADATA,sha256=HoTT-X7uWx8ctC45teJqOU2CGX0DCMt7UU7sOgIFG9Y,5981
41
- PKDevTools-0.13.20250208.218.dist-info/WHEEL,sha256=aDUArjEbIuDQzblE24IvdIsBzRhJEjiXmuNUYQ-gpaA,104
42
- PKDevTools-0.13.20250208.218.dist-info/entry_points.txt,sha256=itdAnPuy8DO45uGuAEms0UJcoa2nGJVAUwm7NIL4-Yw,353
43
- PKDevTools-0.13.20250208.218.dist-info/top_level.txt,sha256=WTig-LzPiEcyuyhbNRhJz1mX_RB-fojodPK48k3NmPg,11
44
- PKDevTools-0.13.20250208.218.dist-info/RECORD,,