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

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.
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,,