PKDevTools 0.13.20250208.218__cp312-cp312-win_amd64.whl → 0.13.20250208.220__cp312-cp312-win_amd64.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=wrl88eUZgDW6osq1UZIU4s4uZCgqGcLa46dS_sMVLik,1086
2
+ PKDevTools-0.13.20250208.220.data/purelib/PKDevTools/README.txt,sha256=9wsN1KwyM_gfEN7__AHy6iS-OMjN7dId3E2egalqIpw,4290
3
+ PKDevTools-0.13.20250208.220.data/purelib/PKDevTools/__init__.py,sha256=IFxLtOl_ylBuZt4nqrHkgZg4uuyeuLjHRaBgTuZey8U,1176
4
+ PKDevTools-0.13.20250208.220.data/purelib/PKDevTools/release.md,sha256=FfltoyIaP9mdbGYgPFnZyuI_rSjkuKn4NoyO4jNCqtI,1767
5
+ PKDevTools-0.13.20250208.220.data/purelib/PKDevTools/requirements.txt,sha256=771vBujug-uuZ5EiZhV9PHLtckaeDaMERaEGZPYzglY,384
6
+ PKDevTools-0.13.20250208.220.data/purelib/PKDevTools/classes/Archiver.py,sha256=lT-ybDUYRBQ26WkCy53yf5f2iV6RJEtaiB9Lu8Lb0Og,6469
7
+ PKDevTools-0.13.20250208.220.data/purelib/PKDevTools/classes/ColorText.py,sha256=UDqA229ujXwGDB1PkkMT-ZTu6VIWgZyIaq4XXPjFmsI,8789
8
+ PKDevTools-0.13.20250208.220.data/purelib/PKDevTools/classes/Committer.py,sha256=L3sYt6a09T7sxapeFhAErVTe93HDZ8vbxsZREadsGJ8,4629
9
+ PKDevTools-0.13.20250208.220.data/purelib/PKDevTools/classes/CookieHelper.py,sha256=b781bqVWVgIot9n-KhJja31Qrcwow4iVqpxeav30f4k,6376
10
+ PKDevTools-0.13.20250208.220.data/purelib/PKDevTools/classes/DBManager.py,sha256=INQq6PMPdKjgBQskFG4sxIShGqWhZBb4Rly_lru-q7o,24256
11
+ PKDevTools-0.13.20250208.220.data/purelib/PKDevTools/classes/Environment.py,sha256=xhKosR8odmENok7rZ8CwmSp_fn0d6RhnZY2bHUxlS1U,2030
12
+ PKDevTools-0.13.20250208.220.data/purelib/PKDevTools/classes/Fetcher.py,sha256=LCBaakl5LcktasnO7rvrVY4AEOIl6fzeWPZPjkER2lo,9202
13
+ PKDevTools-0.13.20250208.220.data/purelib/PKDevTools/classes/FunctionTimeouts.py,sha256=1HyzFWasJ2Rvhj8TJvGq3IcAg5naU3Fe-70LLRMkrfQ,2608
14
+ PKDevTools-0.13.20250208.220.data/purelib/PKDevTools/classes/GmailReader.py,sha256=LUf44gOD4xhMlPTstECzb7dY1_28SVIT3NYx_embX0s,6982
15
+ PKDevTools-0.13.20250208.220.data/purelib/PKDevTools/classes/MarketHours.py,sha256=8hpCEEAC3fMseURaaYkVGMm3Nbju3L_tdTOsMZsY7kg,2216
16
+ PKDevTools-0.13.20250208.220.data/purelib/PKDevTools/classes/MenuOptions.py,sha256=4t60fcsvwM7-Yr-_xtH3eiu_ll4Rrb1ScafMt3BHQNU,11963
17
+ PKDevTools-0.13.20250208.220.data/purelib/PKDevTools/classes/NSEMarketStatus.py,sha256=WTo9e3la8nAXt5EGfAIZWvMyHLCsiad7YZTKaNuzE7o,5549
18
+ PKDevTools-0.13.20250208.220.data/purelib/PKDevTools/classes/OutputControls.py,sha256=CbeDN9Vq-N_0sMCpkn5LrqWEvITBLmwuUPaXb7SSXtU,3554
19
+ PKDevTools-0.13.20250208.220.data/purelib/PKDevTools/classes/PKDateUtilities.py,sha256=W4qF_Rr3f6ad5qbdfRu0MY4b2ScBkE1TzKtLn1Gw7MU,18263
20
+ PKDevTools-0.13.20250208.220.data/purelib/PKDevTools/classes/PKGitFolderDownloader.py,sha256=470KcaCH1jTyJnTt3RmPhKrgHFOcYx42uPFL-NHM3AM,2988
21
+ PKDevTools-0.13.20250208.220.data/purelib/PKDevTools/classes/PKJoinableQueue.py,sha256=WTfeqKh82_DcnSFYvkmx9WjM-RMeXBEmSmeYkD8e58E,5243
22
+ PKDevTools-0.13.20250208.220.data/purelib/PKDevTools/classes/PKMultiProcessorClient.py,sha256=tUeZ7vQzs2SX7WbGfOGlq-SOLgKq2CZyeLPlsFbF6QI,13505
23
+ PKDevTools-0.13.20250208.220.data/purelib/PKDevTools/classes/PKPickler.py,sha256=AkvQKQY-aowtu_TqAUg_7m_bTSxt7NvGYN4CkJymvmg,14369
24
+ PKDevTools-0.13.20250208.220.data/purelib/PKDevTools/classes/PKTimer.py,sha256=tdJhODrs8zzxb12tc4BGzxGgY9xRWXNqtjYBD2PNOts,3433
25
+ PKDevTools-0.13.20250208.220.data/purelib/PKDevTools/classes/Pikey.py,sha256=jgm9xLfRk4DCPLO5MgEui76IrMiPGUl2XvsnxO0qmJc,2813
26
+ PKDevTools-0.13.20250208.220.data/purelib/PKDevTools/classes/Singleton.py,sha256=dbFRNdaVceUp7gb7Or7Xa2u3Id8H1Ce8-DyOG32zS-Q,4556
27
+ PKDevTools-0.13.20250208.220.data/purelib/PKDevTools/classes/SuppressOutput.py,sha256=gjgByErulUjsZ1JVgkSNFmXC9qdkg4V0YrhT1tFmJuE,2004
28
+ PKDevTools-0.13.20250208.220.data/purelib/PKDevTools/classes/System.py,sha256=UBM7A86NQhlRInCItb0mFs4plFE7ewXOXLn4KUtMiNg,4092
29
+ PKDevTools-0.13.20250208.220.data/purelib/PKDevTools/classes/Telegram.py,sha256=AGR7LQCLGRId8S16bN6JA_YrYtjHJqpG6w4KvOVhHiw,15877
30
+ PKDevTools-0.13.20250208.220.data/purelib/PKDevTools/classes/UserSubscriptions.py,sha256=i0ILGibwRQa9l3YKeJQt3yYu1wQiyxP4eg_pguWMu7I,9243
31
+ PKDevTools-0.13.20250208.220.data/purelib/PKDevTools/classes/Utils.py,sha256=7a19Gb1SPGPQxa6bhNW-DncvDpEVTdrCuDttAjV4uc8,24543
32
+ PKDevTools-0.13.20250208.220.data/purelib/PKDevTools/classes/WorkflowManager.py,sha256=UdNZ_iGXLxO1K13Dv7do4w6ecyAoxaPlBLETFuXyGbc,9984
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=yRkJX2W3i3yCpFEUjEBGrk_2UX4vbscBvoJJoLDaD_k,3738
35
+ PKDevTools-0.13.20250208.220.data/purelib/PKDevTools/classes/log.py,sha256=aDA5bd8L2bKAGLZzTFCD2gvXq6MbfceEkE-t_J89V40,16136
36
+ PKDevTools-0.13.20250208.220.data/purelib/PKDevTools/classes/multiprocessing_logging.py,sha256=Lrzn9w4lsOWwUN7Z4lHoXkD7f8DNR8Za2S4zzAvUqvo,7430
37
+ PKDevTools-0.13.20250208.220.data/purelib/PKDevTools/classes/squash.py,sha256=tNNLO2BuieZm9AlKzVYesY7p2yCUeJX1rtkZxbnlGRg,2864
38
+ PKDevTools-0.13.20250208.220.data/purelib/PKDevTools/classes/updater.py,sha256=yuHsGBVI-mm9_YrdCCRoKZ8HGro370UszM4s0zwZMC8,4846
39
+ PKDevTools-0.13.20250208.220.dist-info/LICENSE,sha256=wrl88eUZgDW6osq1UZIU4s4uZCgqGcLa46dS_sMVLik,1086
40
+ PKDevTools-0.13.20250208.220.dist-info/METADATA,sha256=tdDOk3XcmyrjeOL8lQ7sJJWERULViuivxOEfBll4Syk,6095
41
+ PKDevTools-0.13.20250208.220.dist-info/WHEEL,sha256=cRmSBGD-cl98KkuHMNqv9Ac9L9_VqTvcBYwpIvxN0cg,101
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=wrl88eUZgDW6osq1UZIU4s4uZCgqGcLa46dS_sMVLik,1086
2
- PKDevTools-0.13.20250208.218.data/purelib/PKDevTools/README.txt,sha256=9wsN1KwyM_gfEN7__AHy6iS-OMjN7dId3E2egalqIpw,4290
3
- PKDevTools-0.13.20250208.218.data/purelib/PKDevTools/__init__.py,sha256=IFxLtOl_ylBuZt4nqrHkgZg4uuyeuLjHRaBgTuZey8U,1176
4
- PKDevTools-0.13.20250208.218.data/purelib/PKDevTools/release.md,sha256=FfltoyIaP9mdbGYgPFnZyuI_rSjkuKn4NoyO4jNCqtI,1767
5
- PKDevTools-0.13.20250208.218.data/purelib/PKDevTools/requirements.txt,sha256=771vBujug-uuZ5EiZhV9PHLtckaeDaMERaEGZPYzglY,384
6
- PKDevTools-0.13.20250208.218.data/purelib/PKDevTools/classes/Archiver.py,sha256=lT-ybDUYRBQ26WkCy53yf5f2iV6RJEtaiB9Lu8Lb0Og,6469
7
- PKDevTools-0.13.20250208.218.data/purelib/PKDevTools/classes/ColorText.py,sha256=UDqA229ujXwGDB1PkkMT-ZTu6VIWgZyIaq4XXPjFmsI,8789
8
- PKDevTools-0.13.20250208.218.data/purelib/PKDevTools/classes/Committer.py,sha256=L3sYt6a09T7sxapeFhAErVTe93HDZ8vbxsZREadsGJ8,4629
9
- PKDevTools-0.13.20250208.218.data/purelib/PKDevTools/classes/CookieHelper.py,sha256=b781bqVWVgIot9n-KhJja31Qrcwow4iVqpxeav30f4k,6376
10
- PKDevTools-0.13.20250208.218.data/purelib/PKDevTools/classes/DBManager.py,sha256=y-vaylbcCfwuRIiObKqVT4obwW0FUZcTG0yKHEZ1DPU,18957
11
- PKDevTools-0.13.20250208.218.data/purelib/PKDevTools/classes/Environment.py,sha256=xhKosR8odmENok7rZ8CwmSp_fn0d6RhnZY2bHUxlS1U,2030
12
- PKDevTools-0.13.20250208.218.data/purelib/PKDevTools/classes/Fetcher.py,sha256=LCBaakl5LcktasnO7rvrVY4AEOIl6fzeWPZPjkER2lo,9202
13
- PKDevTools-0.13.20250208.218.data/purelib/PKDevTools/classes/FunctionTimeouts.py,sha256=1HyzFWasJ2Rvhj8TJvGq3IcAg5naU3Fe-70LLRMkrfQ,2608
14
- PKDevTools-0.13.20250208.218.data/purelib/PKDevTools/classes/GmailReader.py,sha256=LUf44gOD4xhMlPTstECzb7dY1_28SVIT3NYx_embX0s,6982
15
- PKDevTools-0.13.20250208.218.data/purelib/PKDevTools/classes/MarketHours.py,sha256=8hpCEEAC3fMseURaaYkVGMm3Nbju3L_tdTOsMZsY7kg,2216
16
- PKDevTools-0.13.20250208.218.data/purelib/PKDevTools/classes/MenuOptions.py,sha256=4t60fcsvwM7-Yr-_xtH3eiu_ll4Rrb1ScafMt3BHQNU,11963
17
- PKDevTools-0.13.20250208.218.data/purelib/PKDevTools/classes/NSEMarketStatus.py,sha256=WTo9e3la8nAXt5EGfAIZWvMyHLCsiad7YZTKaNuzE7o,5549
18
- PKDevTools-0.13.20250208.218.data/purelib/PKDevTools/classes/OutputControls.py,sha256=CbeDN9Vq-N_0sMCpkn5LrqWEvITBLmwuUPaXb7SSXtU,3554
19
- PKDevTools-0.13.20250208.218.data/purelib/PKDevTools/classes/PKDateUtilities.py,sha256=W4qF_Rr3f6ad5qbdfRu0MY4b2ScBkE1TzKtLn1Gw7MU,18263
20
- PKDevTools-0.13.20250208.218.data/purelib/PKDevTools/classes/PKGitFolderDownloader.py,sha256=470KcaCH1jTyJnTt3RmPhKrgHFOcYx42uPFL-NHM3AM,2988
21
- PKDevTools-0.13.20250208.218.data/purelib/PKDevTools/classes/PKJoinableQueue.py,sha256=WTfeqKh82_DcnSFYvkmx9WjM-RMeXBEmSmeYkD8e58E,5243
22
- PKDevTools-0.13.20250208.218.data/purelib/PKDevTools/classes/PKMultiProcessorClient.py,sha256=tUeZ7vQzs2SX7WbGfOGlq-SOLgKq2CZyeLPlsFbF6QI,13505
23
- PKDevTools-0.13.20250208.218.data/purelib/PKDevTools/classes/PKPickler.py,sha256=AkvQKQY-aowtu_TqAUg_7m_bTSxt7NvGYN4CkJymvmg,14369
24
- PKDevTools-0.13.20250208.218.data/purelib/PKDevTools/classes/PKTimer.py,sha256=tdJhODrs8zzxb12tc4BGzxGgY9xRWXNqtjYBD2PNOts,3433
25
- PKDevTools-0.13.20250208.218.data/purelib/PKDevTools/classes/Pikey.py,sha256=jgm9xLfRk4DCPLO5MgEui76IrMiPGUl2XvsnxO0qmJc,2813
26
- PKDevTools-0.13.20250208.218.data/purelib/PKDevTools/classes/Singleton.py,sha256=dbFRNdaVceUp7gb7Or7Xa2u3Id8H1Ce8-DyOG32zS-Q,4556
27
- PKDevTools-0.13.20250208.218.data/purelib/PKDevTools/classes/SuppressOutput.py,sha256=gjgByErulUjsZ1JVgkSNFmXC9qdkg4V0YrhT1tFmJuE,2004
28
- PKDevTools-0.13.20250208.218.data/purelib/PKDevTools/classes/System.py,sha256=UBM7A86NQhlRInCItb0mFs4plFE7ewXOXLn4KUtMiNg,4092
29
- PKDevTools-0.13.20250208.218.data/purelib/PKDevTools/classes/Telegram.py,sha256=AGR7LQCLGRId8S16bN6JA_YrYtjHJqpG6w4KvOVhHiw,15877
30
- PKDevTools-0.13.20250208.218.data/purelib/PKDevTools/classes/UserSubscriptions.py,sha256=i0ILGibwRQa9l3YKeJQt3yYu1wQiyxP4eg_pguWMu7I,9243
31
- PKDevTools-0.13.20250208.218.data/purelib/PKDevTools/classes/Utils.py,sha256=7a19Gb1SPGPQxa6bhNW-DncvDpEVTdrCuDttAjV4uc8,24543
32
- PKDevTools-0.13.20250208.218.data/purelib/PKDevTools/classes/WorkflowManager.py,sha256=UdNZ_iGXLxO1K13Dv7do4w6ecyAoxaPlBLETFuXyGbc,9984
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=yRkJX2W3i3yCpFEUjEBGrk_2UX4vbscBvoJJoLDaD_k,3738
35
- PKDevTools-0.13.20250208.218.data/purelib/PKDevTools/classes/log.py,sha256=aDA5bd8L2bKAGLZzTFCD2gvXq6MbfceEkE-t_J89V40,16136
36
- PKDevTools-0.13.20250208.218.data/purelib/PKDevTools/classes/multiprocessing_logging.py,sha256=Lrzn9w4lsOWwUN7Z4lHoXkD7f8DNR8Za2S4zzAvUqvo,7430
37
- PKDevTools-0.13.20250208.218.data/purelib/PKDevTools/classes/squash.py,sha256=tNNLO2BuieZm9AlKzVYesY7p2yCUeJX1rtkZxbnlGRg,2864
38
- PKDevTools-0.13.20250208.218.data/purelib/PKDevTools/classes/updater.py,sha256=yuHsGBVI-mm9_YrdCCRoKZ8HGro370UszM4s0zwZMC8,4846
39
- PKDevTools-0.13.20250208.218.dist-info/LICENSE,sha256=wrl88eUZgDW6osq1UZIU4s4uZCgqGcLa46dS_sMVLik,1086
40
- PKDevTools-0.13.20250208.218.dist-info/METADATA,sha256=D2Z6m9MtpcB2R4xj4jC2YyvPloj62Y7JqneCVRtZTUI,6095
41
- PKDevTools-0.13.20250208.218.dist-info/WHEEL,sha256=cRmSBGD-cl98KkuHMNqv9Ac9L9_VqTvcBYwpIvxN0cg,101
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,,