pkscreener 0.46.20250213.711__cp312-cp312-manylinux2014_x86_64.whl → 0.46.20250214.714__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 (60) hide show
  1. {pkscreener-0.46.20250213.711.data → pkscreener-0.46.20250214.714.data}/purelib/pkscreener/README.txt +5 -5
  2. pkscreener-0.46.20250214.714.data/purelib/pkscreener/classes/__init__.py +1 -0
  3. {pkscreener-0.46.20250213.711.data → pkscreener-0.46.20250214.714.data}/purelib/pkscreener/pkscreenerbot.py +13 -7
  4. {pkscreener-0.46.20250213.711.dist-info → pkscreener-0.46.20250214.714.dist-info}/METADATA +7 -7
  5. pkscreener-0.46.20250214.714.dist-info/RECORD +58 -0
  6. pkscreener-0.46.20250213.711.data/purelib/pkscreener/classes/__init__.py +0 -1
  7. pkscreener-0.46.20250213.711.dist-info/RECORD +0 -58
  8. {pkscreener-0.46.20250213.711.data → pkscreener-0.46.20250214.714.data}/purelib/pkscreener/Disclaimer.txt +0 -0
  9. {pkscreener-0.46.20250213.711.data → pkscreener-0.46.20250214.714.data}/purelib/pkscreener/LICENSE-Others.txt +0 -0
  10. {pkscreener-0.46.20250213.711.data → pkscreener-0.46.20250214.714.data}/purelib/pkscreener/LICENSE.txt +0 -0
  11. {pkscreener-0.46.20250213.711.data → pkscreener-0.46.20250214.714.data}/purelib/pkscreener/LogoWM.txt +0 -0
  12. {pkscreener-0.46.20250213.711.data → pkscreener-0.46.20250214.714.data}/purelib/pkscreener/__init__.py +0 -0
  13. {pkscreener-0.46.20250213.711.data → pkscreener-0.46.20250214.714.data}/purelib/pkscreener/classes/ArtTexts.py +0 -0
  14. {pkscreener-0.46.20250213.711.data → pkscreener-0.46.20250214.714.data}/purelib/pkscreener/classes/AssetsManager.py +0 -0
  15. {pkscreener-0.46.20250213.711.data → pkscreener-0.46.20250214.714.data}/purelib/pkscreener/classes/Backtest.py +0 -0
  16. {pkscreener-0.46.20250213.711.data → pkscreener-0.46.20250214.714.data}/purelib/pkscreener/classes/Barometer.py +0 -0
  17. {pkscreener-0.46.20250213.711.data → pkscreener-0.46.20250214.714.data}/purelib/pkscreener/classes/BaseScreeningStatistics.py +0 -0
  18. {pkscreener-0.46.20250213.711.data → pkscreener-0.46.20250214.714.data}/purelib/pkscreener/classes/CandlePatterns.py +0 -0
  19. {pkscreener-0.46.20250213.711.data → pkscreener-0.46.20250214.714.data}/purelib/pkscreener/classes/Changelog.py +0 -0
  20. {pkscreener-0.46.20250213.711.data → pkscreener-0.46.20250214.714.data}/purelib/pkscreener/classes/ConfigManager.py +0 -0
  21. {pkscreener-0.46.20250213.711.data → pkscreener-0.46.20250214.714.data}/purelib/pkscreener/classes/ConsoleMenuUtility.py +0 -0
  22. {pkscreener-0.46.20250213.711.data → pkscreener-0.46.20250214.714.data}/purelib/pkscreener/classes/ConsoleUtility.py +0 -0
  23. {pkscreener-0.46.20250213.711.data → pkscreener-0.46.20250214.714.data}/purelib/pkscreener/classes/Fetcher.py +0 -0
  24. {pkscreener-0.46.20250213.711.data → pkscreener-0.46.20250214.714.data}/purelib/pkscreener/classes/GlobalStore.py +0 -0
  25. {pkscreener-0.46.20250213.711.data → pkscreener-0.46.20250214.714.data}/purelib/pkscreener/classes/ImageUtility.py +0 -0
  26. {pkscreener-0.46.20250213.711.data → pkscreener-0.46.20250214.714.data}/purelib/pkscreener/classes/MarketMonitor.py +0 -0
  27. {pkscreener-0.46.20250213.711.data → pkscreener-0.46.20250214.714.data}/purelib/pkscreener/classes/MarketStatus.py +0 -0
  28. {pkscreener-0.46.20250213.711.data → pkscreener-0.46.20250214.714.data}/purelib/pkscreener/classes/MenuOptions.py +0 -0
  29. {pkscreener-0.46.20250213.711.data → pkscreener-0.46.20250214.714.data}/purelib/pkscreener/classes/Messenger.py +0 -0
  30. {pkscreener-0.46.20250213.711.data → pkscreener-0.46.20250214.714.data}/purelib/pkscreener/classes/OtaUpdater.py +0 -0
  31. {pkscreener-0.46.20250213.711.data → pkscreener-0.46.20250214.714.data}/purelib/pkscreener/classes/PKAnalytics.py +0 -0
  32. {pkscreener-0.46.20250213.711.data → pkscreener-0.46.20250214.714.data}/purelib/pkscreener/classes/PKDataService.py +0 -0
  33. {pkscreener-0.46.20250213.711.data → pkscreener-0.46.20250214.714.data}/purelib/pkscreener/classes/PKDemoHandler.py +0 -0
  34. {pkscreener-0.46.20250213.711.data → pkscreener-0.46.20250214.714.data}/purelib/pkscreener/classes/PKMarketOpenCloseAnalyser.py +0 -0
  35. {pkscreener-0.46.20250213.711.data → pkscreener-0.46.20250214.714.data}/purelib/pkscreener/classes/PKPremiumHandler.py +0 -0
  36. {pkscreener-0.46.20250213.711.data → pkscreener-0.46.20250214.714.data}/purelib/pkscreener/classes/PKScanRunner.py +0 -0
  37. {pkscreener-0.46.20250213.711.data → pkscreener-0.46.20250214.714.data}/purelib/pkscreener/classes/PKScheduledTaskProgress.py +0 -0
  38. {pkscreener-0.46.20250213.711.data → pkscreener-0.46.20250214.714.data}/purelib/pkscreener/classes/PKScheduler.py +0 -0
  39. {pkscreener-0.46.20250213.711.data → pkscreener-0.46.20250214.714.data}/purelib/pkscreener/classes/PKSpreadsheets.py +0 -0
  40. {pkscreener-0.46.20250213.711.data → pkscreener-0.46.20250214.714.data}/purelib/pkscreener/classes/PKTask.py +0 -0
  41. {pkscreener-0.46.20250213.711.data → pkscreener-0.46.20250214.714.data}/purelib/pkscreener/classes/PKUserRegistration.py +0 -0
  42. {pkscreener-0.46.20250213.711.data → pkscreener-0.46.20250214.714.data}/purelib/pkscreener/classes/Pktalib.py +0 -0
  43. {pkscreener-0.46.20250213.711.data → pkscreener-0.46.20250214.714.data}/purelib/pkscreener/classes/Portfolio.py +0 -0
  44. {pkscreener-0.46.20250213.711.data → pkscreener-0.46.20250214.714.data}/purelib/pkscreener/classes/PortfolioXRay.py +0 -0
  45. {pkscreener-0.46.20250213.711.data → pkscreener-0.46.20250214.714.data}/purelib/pkscreener/classes/ScreeningStatistics.py +0 -0
  46. {pkscreener-0.46.20250213.711.data → pkscreener-0.46.20250214.714.data}/purelib/pkscreener/classes/StockScreener.py +0 -0
  47. {pkscreener-0.46.20250213.711.data → pkscreener-0.46.20250214.714.data}/purelib/pkscreener/classes/StockSentiment.py +0 -0
  48. {pkscreener-0.46.20250213.711.data → pkscreener-0.46.20250214.714.data}/purelib/pkscreener/classes/UserMenuChoicesHandler.py +0 -0
  49. {pkscreener-0.46.20250213.711.data → pkscreener-0.46.20250214.714.data}/purelib/pkscreener/classes/Utility.py +0 -0
  50. {pkscreener-0.46.20250213.711.data → pkscreener-0.46.20250214.714.data}/purelib/pkscreener/classes/WorkflowManager.py +0 -0
  51. {pkscreener-0.46.20250213.711.data → pkscreener-0.46.20250214.714.data}/purelib/pkscreener/classes/keys.py +0 -0
  52. {pkscreener-0.46.20250213.711.data → pkscreener-0.46.20250214.714.data}/purelib/pkscreener/courbd.ttf +0 -0
  53. {pkscreener-0.46.20250213.711.data → pkscreener-0.46.20250214.714.data}/purelib/pkscreener/globals.py +0 -0
  54. {pkscreener-0.46.20250213.711.data → pkscreener-0.46.20250214.714.data}/purelib/pkscreener/pkscreener.ini +0 -0
  55. {pkscreener-0.46.20250213.711.data → pkscreener-0.46.20250214.714.data}/purelib/pkscreener/pkscreenercli.py +0 -0
  56. {pkscreener-0.46.20250213.711.data → pkscreener-0.46.20250214.714.data}/purelib/pkscreener/requirements.txt +0 -0
  57. {pkscreener-0.46.20250213.711.dist-info → pkscreener-0.46.20250214.714.dist-info}/LICENSE +0 -0
  58. {pkscreener-0.46.20250213.711.dist-info → pkscreener-0.46.20250214.714.dist-info}/WHEEL +0 -0
  59. {pkscreener-0.46.20250213.711.dist-info → pkscreener-0.46.20250214.714.dist-info}/entry_points.txt +0 -0
  60. {pkscreener-0.46.20250213.711.dist-info → pkscreener-0.46.20250214.714.dist-info}/top_level.txt +0 -0
@@ -328,15 +328,15 @@ After you have finished the run, go to that copied path, zip the contents of the
328
328
  [MADE-IN-INDIA-badge]: https://img.shields.io/badge/MADE%20WITH%20%E2%9D%A4%20IN-INDIA-orange
329
329
  [MADE-IN-INDIA]: https://en.wikipedia.org/wiki/India
330
330
  [Windows-badge]: https://img.shields.io/badge/Windows-0078D6?logo=windows&logoColor=white
331
- [Windows]: https://github.com/pkjmesra/PKScreener/releases/download/0.46.20250213.710/pkscreenercli.exe
331
+ [Windows]: https://github.com/pkjmesra/PKScreener/releases/download/0.46.20250213.712/pkscreenercli.exe
332
332
  [Linux-badge_x64]: https://img.shields.io/badge/Linux(x64)-FCC624?logo=linux&logoColor=black
333
- [Linux_x64]: https://github.com/pkjmesra/PKScreener/releases/download/0.46.20250213.710/pkscreenercli_x64.bin
333
+ [Linux_x64]: https://github.com/pkjmesra/PKScreener/releases/download/0.46.20250213.712/pkscreenercli_x64.bin
334
334
  [Linux-badge_arm64]: https://img.shields.io/badge/Linux(arm64)-FCC624?logo=linux&logoColor=black
335
- [Linux_arm64]: https://github.com/pkjmesra/PKScreener/releases/download/0.46.20250213.710/pkscreenercli_arm64.bin
335
+ [Linux_arm64]: https://github.com/pkjmesra/PKScreener/releases/download/0.46.20250213.712/pkscreenercli_arm64.bin
336
336
  [Mac OS-badge_x64]: https://img.shields.io/badge/mac%20os(x64)-D3D3D3?logo=apple&logoColor=000000
337
- [Mac OS_x64]: https://github.com/pkjmesra/PKScreener/releases/download/0.46.20250213.710/pkscreenercli_x64.run
337
+ [Mac OS_x64]: https://github.com/pkjmesra/PKScreener/releases/download/0.46.20250213.712/pkscreenercli_x64.run
338
338
  [Mac OS-badge_arm64]: https://img.shields.io/badge/mac%20os(arm64)-D3D3D3?logo=apple&logoColor=000000
339
- [Mac OS_arm64]: https://github.com/pkjmesra/PKScreener/releases/download/0.46.20250213.710/pkscreenercli_arm64.run
339
+ [Mac OS_arm64]: https://github.com/pkjmesra/PKScreener/releases/download/0.46.20250213.712/pkscreenercli_arm64.run
340
340
  [GitHub release (latest by date)-badge]: https://img.shields.io/github/v/release/pkjmesra/PKScreener
341
341
  [GitHub release (latest by date)]: https://github.com/pkjmesra/PKScreener/releases/latest
342
342
  [pypi-badge]: https://img.shields.io/pypi/v/pkscreener.svg?style=flat-square
@@ -0,0 +1 @@
1
+ VERSION='0.46.20250214.714'
@@ -172,7 +172,7 @@ def registerUser(user,forceFetch=False):
172
172
  dbManager = DBManager()
173
173
  otpValue, subsModel,subsValidity,alertUser = dbManager.getOTP(user.id,user.username,f"{user.first_name} {user.last_name}",validityIntervalInSeconds=configManager.otpInterval)
174
174
  if str(otpValue).strip() != '0' and user.id not in PKLocalCache().registeredIDs:
175
- PKLocalCache().registeredIDs.append(alertUser.userid)
175
+ PKLocalCache().registeredIDs.append(user.id)
176
176
  return otpValue, subsModel,subsValidity,alertUser
177
177
 
178
178
  def loadRegisteredUsers():
@@ -571,6 +571,10 @@ def viewSubscriptionOptions(update:Update,context:CallbackContext,sendOTP=False)
571
571
  alertUser = None
572
572
  dbManager = DBManager()
573
573
  otpValue, subsModel,subsValidity,alertUser = registerUser(user,forceFetch=True)
574
+ scannerJobsSubscribed = ""
575
+ if alertUser is not None and len(alertUser.scannerJobs) > 0:
576
+ scannerJobsSubscribed = ", ".join(alertUser.scannerJobs)
577
+ scannerJobsSubscribed = f"Subscribed to [{scannerJobsSubscribed}]"
574
578
  except Exception as e: # pragma: no cover
575
579
  logger.error(e)
576
580
  pass
@@ -595,9 +599,9 @@ def viewSubscriptionOptions(update:Update,context:CallbackContext,sendOTP=False)
595
599
  if otpValue == 0:
596
600
  updatedResults = f"We are having difficulty generating OTP for your {userText}. Please try again later or reach out to @ItsOnlyPK."
597
601
  else:
598
- updatedResults = f"Please use the following to login to PKScreener:\n{userText}\n<b>OTP</b> : <code>{otpValue}</code>\n\nCurrent subscription : <b>{subscriptionModelName}</b>.\nCurrent alerts balance: <b>₹ {alertUser.balance if alertUser is not None else 0}</b>. {subscriptionModelNames}"
602
+ updatedResults = f"Please use the following to login to PKScreener:\n{userText}\n<b>OTP</b> : <code>{otpValue}</code>\n\nCurrent subscription : <b>{subscriptionModelName}</b>.\nCurrent alerts balance: <b>₹ {alertUser.balance if alertUser is not None else 0}</b> {scannerJobsSubscribed}. {subscriptionModelNames}"
599
603
  else:
600
- updatedResults = f"Current subscription: <b>{subscriptionModelName}</b>.\nCurrent alerts balance: <b>₹ {alertUser.balance if alertUser is not None else 0}</b>. {subscriptionModelNames}"
604
+ updatedResults = f"Current subscription: <b>{subscriptionModelName}</b>.\nCurrent alerts balance: <b>₹ {alertUser.balance if alertUser is not None else 0}</b> {scannerJobsSubscribed}. {subscriptionModelNames}"
601
605
  if hasattr(updateCarrier, "reply_text"):
602
606
  updateCarrier.reply_text(text=sanitiseTexts(updatedResults), reply_markup=default_markup(user=user),parse_mode="HTML")
603
607
  elif hasattr(updateCarrier, "edit_message_text"):
@@ -648,13 +652,13 @@ def subscribeToScannerAlerts(update: Update, context: CallbackContext) -> str:
648
652
  # User is already subscribed to some alerts
649
653
  if str(scanId) in alertUser.scannerJobs:
650
654
  menuText = f"You are already subscribed to {scanId} ! Alerts will be delivered as and when they are raised."
651
- kickOffScannerJobIfNotKickedOff(scanId,user,dbManager,requiredBalance)
655
+ kickOffScannerJobIfNotKickedOff(scanId,user,dbManager,requiredBalance,alertUser)
652
656
  else:
653
657
  if alertUser.balance < requiredBalance:
654
658
  # Insufficient balance
655
659
  menuText = f"You need at least <b>₹ {requiredBalance}</b> to subscribe to <b>{scanId} alerts for a day</b> ! Your current balance <b>₹ {alertUser.balance}</b> is <b>insufficient</b>. {payWall}"
656
660
  else:
657
- menuText = kickOffScannerJobIfNotKickedOff(scanId,user,dbManager,requiredBalance)
661
+ menuText = kickOffScannerJobIfNotKickedOff(scanId,user,dbManager,requiredBalance,alertUser)
658
662
 
659
663
  elif alertUser is None or alertUser.balance == 0:
660
664
  # Either user is not subscribed or has 0 balance
@@ -664,15 +668,17 @@ def subscribeToScannerAlerts(update: Update, context: CallbackContext) -> str:
664
668
  editMessageText(query=query,editedText=sanitiseTexts(menuText),reply_markup=default_markup(user=user))
665
669
  return START_ROUTES
666
670
 
667
- def kickOffScannerJobIfNotKickedOff(scanId,user,dbManager,requiredBalance):
671
+ def kickOffScannerJobIfNotKickedOff(scanId,user,dbManager,requiredBalance,alertUser):
668
672
  # Sufficient balance to subscribe to scanId
669
673
  needsNewJobKickedOff = False
670
674
  menuText = ""
675
+ subscribed = False
671
676
  subscribedUsers = dbManager.usersForScannerJobId(scannerJobId=scanId)
672
677
  if subscribedUsers is None or len(subscribedUsers) == 0:
673
678
  # This is the first user who's requesting this scanner
674
679
  needsNewJobKickedOff = True
675
- subscribed = dbManager.updateAlertSubscriptionModel(user.id,requiredBalance,scanId)
680
+ if alertUser is None or str(scanId) not in alertUser.scannerJobs:
681
+ subscribed = dbManager.updateAlertSubscriptionModel(user.id,requiredBalance,scanId)
676
682
  if subscribed:
677
683
  menuText = f"You have been added to receive the alerts for {scanId}. Please note that it is valid only for today during Market Hours and resets right after that. You will need to re-subscribe again if you need it on the next day. Thank you for trusting PKScreener!"
678
684
  if needsNewJobKickedOff:
@@ -1,9 +1,9 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: pkscreener
3
- Version: 0.46.20250213.711
3
+ Version: 0.46.20250214.714
4
4
  Summary: A Python-based stock screener for NSE, India with alerts to Telegram Channel (pkscreener)
5
5
  Home-page: https://github.com/pkjmesra/pkscreener
6
- Download-URL: https://github.com/pkjmesra/pkscreener/archive/v0.46.20250213.711.zip
6
+ Download-URL: https://github.com/pkjmesra/pkscreener/archive/v0.46.20250214.714.zip
7
7
  Author: pkjmesra
8
8
  Author-email: pkjmesra@gmail.com
9
9
  License: OSI Approved (MIT)
@@ -392,15 +392,15 @@ After you have finished the run, go to that copied path, zip the contents of the
392
392
  [MADE-IN-INDIA-badge]: https://img.shields.io/badge/MADE%20WITH%20%E2%9D%A4%20IN-INDIA-orange
393
393
  [MADE-IN-INDIA]: https://en.wikipedia.org/wiki/India
394
394
  [Windows-badge]: https://img.shields.io/badge/Windows-0078D6?logo=windows&logoColor=white
395
- [Windows]: https://github.com/pkjmesra/PKScreener/releases/download/0.46.20250213.710/pkscreenercli.exe
395
+ [Windows]: https://github.com/pkjmesra/PKScreener/releases/download/0.46.20250213.712/pkscreenercli.exe
396
396
  [Linux-badge_x64]: https://img.shields.io/badge/Linux(x64)-FCC624?logo=linux&logoColor=black
397
- [Linux_x64]: https://github.com/pkjmesra/PKScreener/releases/download/0.46.20250213.710/pkscreenercli_x64.bin
397
+ [Linux_x64]: https://github.com/pkjmesra/PKScreener/releases/download/0.46.20250213.712/pkscreenercli_x64.bin
398
398
  [Linux-badge_arm64]: https://img.shields.io/badge/Linux(arm64)-FCC624?logo=linux&logoColor=black
399
- [Linux_arm64]: https://github.com/pkjmesra/PKScreener/releases/download/0.46.20250213.710/pkscreenercli_arm64.bin
399
+ [Linux_arm64]: https://github.com/pkjmesra/PKScreener/releases/download/0.46.20250213.712/pkscreenercli_arm64.bin
400
400
  [Mac OS-badge_x64]: https://img.shields.io/badge/mac%20os(x64)-D3D3D3?logo=apple&logoColor=000000
401
- [Mac OS_x64]: https://github.com/pkjmesra/PKScreener/releases/download/0.46.20250213.710/pkscreenercli_x64.run
401
+ [Mac OS_x64]: https://github.com/pkjmesra/PKScreener/releases/download/0.46.20250213.712/pkscreenercli_x64.run
402
402
  [Mac OS-badge_arm64]: https://img.shields.io/badge/mac%20os(arm64)-D3D3D3?logo=apple&logoColor=000000
403
- [Mac OS_arm64]: https://github.com/pkjmesra/PKScreener/releases/download/0.46.20250213.710/pkscreenercli_arm64.run
403
+ [Mac OS_arm64]: https://github.com/pkjmesra/PKScreener/releases/download/0.46.20250213.712/pkscreenercli_arm64.run
404
404
  [GitHub release (latest by date)-badge]: https://img.shields.io/github/v/release/pkjmesra/PKScreener
405
405
  [GitHub release (latest by date)]: https://github.com/pkjmesra/PKScreener/releases/latest
406
406
  [pypi-badge]: https://img.shields.io/pypi/v/pkscreener.svg?style=flat-square
@@ -0,0 +1,58 @@
1
+ pkscreener-0.46.20250214.714.data/purelib/pkscreener/Disclaimer.txt,sha256=kBZQSQCFfL2kc1bijXWndZzkjMTtnpH_B7XtDPPMcuw,1396
2
+ pkscreener-0.46.20250214.714.data/purelib/pkscreener/LICENSE-Others.txt,sha256=WBslRYLBoqYg-vr25sS1c_UI7cuUnsGk0nIQLBzTWEE,271830
3
+ pkscreener-0.46.20250214.714.data/purelib/pkscreener/LICENSE.txt,sha256=CdnyGrl-xRYX67ZkdERZWHr6BlTxOyg8Z8sK1XQ5Xsg,1078
4
+ pkscreener-0.46.20250214.714.data/purelib/pkscreener/LogoWM.txt,sha256=7Njnavpy_FKY4Iwbzv1JqsYMcOdkDSKAKXP3SAItKV0,14868
5
+ pkscreener-0.46.20250214.714.data/purelib/pkscreener/README.txt,sha256=P7fHAN5I5vS9bCAQxz_Nm43zUarj7l1YrChYpSenryE,32701
6
+ pkscreener-0.46.20250214.714.data/purelib/pkscreener/__init__.py,sha256=aZ62qYACxsU8m8_5JkzNzos1lVFNcMGPRMgeddnUUiQ,1633
7
+ pkscreener-0.46.20250214.714.data/purelib/pkscreener/courbd.ttf,sha256=SKpnp-BRs7AZcdI83nencS3Q7xe0anbbP1YMOxLlEhU,791436
8
+ pkscreener-0.46.20250214.714.data/purelib/pkscreener/globals.py,sha256=bIj3LBnbiGvVYidOF0sohg19jHTEkAavrGYaYFyBPhM,240829
9
+ pkscreener-0.46.20250214.714.data/purelib/pkscreener/pkscreener.ini,sha256=QKs6j4qhyH37L_MdG3ztAIwgqs4c3qihuqDIoex-V2g,2391
10
+ pkscreener-0.46.20250214.714.data/purelib/pkscreener/pkscreenerbot.py,sha256=T_or9Ax9353iiZqRXvnQXVtJp_77rEH4cXm1cPXa1Lw,107106
11
+ pkscreener-0.46.20250214.714.data/purelib/pkscreener/pkscreenercli.py,sha256=WEVXfcZdeogWZBY3CWtRYyFrmQa5BEEZedKLlMwCM5U,56999
12
+ pkscreener-0.46.20250214.714.data/purelib/pkscreener/requirements.txt,sha256=kgq4lh06feiOI8JlIM3PjZlnO6DW1RsM9q-tXeXjtNE,1457
13
+ pkscreener-0.46.20250214.714.data/purelib/pkscreener/classes/ArtTexts.py,sha256=LZ8ynyS8woliv8bM9Nq4aU0VCoJDJU0FgZk8V5zYPmg,19504
14
+ pkscreener-0.46.20250214.714.data/purelib/pkscreener/classes/AssetsManager.py,sha256=SutbAZ4JiGhzN0tzfa9vNpHdW6alSL67Jz-knPPcqBw,33706
15
+ pkscreener-0.46.20250214.714.data/purelib/pkscreener/classes/Backtest.py,sha256=wobBQgqVQhFNZlyJ2hgMXQqofrICc_3F0I5D66DUvGI,10530
16
+ pkscreener-0.46.20250214.714.data/purelib/pkscreener/classes/Barometer.py,sha256=WPrgtIXb1nIbb-FnuRs-yvOQ5baNQRBgUR_zWg1moxk,9464
17
+ pkscreener-0.46.20250214.714.data/purelib/pkscreener/classes/BaseScreeningStatistics.py,sha256=u5t1wf-HsZ8xEtprON55ehIR3F2LNNq8LvwgIrhYRmU,3000
18
+ pkscreener-0.46.20250214.714.data/purelib/pkscreener/classes/CandlePatterns.py,sha256=gaswU2OeDa3JXjEafR2clUpKW5v8_1_tJuNPuTWsAss,17066
19
+ pkscreener-0.46.20250214.714.data/purelib/pkscreener/classes/Changelog.py,sha256=vUOpca28OACNhavAmjBm4xco3u6fcHqWlnlmCJqO5Lk,1469
20
+ pkscreener-0.46.20250214.714.data/purelib/pkscreener/classes/ConfigManager.py,sha256=THcfBgua5hr1Pv7AwEDBu2yurCNteGM04jY3Fr_MeBg,53565
21
+ pkscreener-0.46.20250214.714.data/purelib/pkscreener/classes/ConsoleMenuUtility.py,sha256=fyR7dEsAaEWEe5SyaVgwLPdU4h4pI8SozUhsPZXShpg,10037
22
+ pkscreener-0.46.20250214.714.data/purelib/pkscreener/classes/ConsoleUtility.py,sha256=TrEnTT4pmsBpEYdwD2oAtNqNG_drPe1LVkhthP2540I,12096
23
+ pkscreener-0.46.20250214.714.data/purelib/pkscreener/classes/Fetcher.py,sha256=WWX9_NO3JTw6_1Z9SqPm4Nj-4Uy_4PPYEMVyD5FLnVo,12336
24
+ pkscreener-0.46.20250214.714.data/purelib/pkscreener/classes/GlobalStore.py,sha256=IzoYMybXpVVf6YwZi7j34rP-hNd7sMened8TAMu_-A8,3709
25
+ pkscreener-0.46.20250214.714.data/purelib/pkscreener/classes/ImageUtility.py,sha256=mgJUzjrOKQ1mYV5P_ylhBnaF7ZgOO6ogjy22Rt49TNI,37032
26
+ pkscreener-0.46.20250214.714.data/purelib/pkscreener/classes/MarketMonitor.py,sha256=LFCJhmS90nymwdnBk9mdrz23krR3hosH2XQ6NutRtZQ,21816
27
+ pkscreener-0.46.20250214.714.data/purelib/pkscreener/classes/MarketStatus.py,sha256=dNg8znbRpt7ID3U_1nmclD4zSLtveJeYeRbS0l6HLtE,3737
28
+ pkscreener-0.46.20250214.714.data/purelib/pkscreener/classes/MenuOptions.py,sha256=iZb0zBs7lcP60cmuP7Z5xmXfNtTFcFH6ZWOuoileErE,64552
29
+ pkscreener-0.46.20250214.714.data/purelib/pkscreener/classes/Messenger.py,sha256=peyY-YiqdC1bp-3DlJXILRa9HGYbqGVzf1wil0fYv98,8396
30
+ pkscreener-0.46.20250214.714.data/purelib/pkscreener/classes/OtaUpdater.py,sha256=_7-nFAC-vAcmZ1Nwi5g5tfp7hKQQPuLUnBCOzrwC39g,13491
31
+ pkscreener-0.46.20250214.714.data/purelib/pkscreener/classes/PKAnalytics.py,sha256=_X-2OFw2yQVmXlEIRsnBVNy9fhYyxqt0BOqADD4v08U,5246
32
+ pkscreener-0.46.20250214.714.data/purelib/pkscreener/classes/PKDataService.py,sha256=BipM8Z4rS6h12cF6VWv_u4Z8ee7psMFd1yUojejW1Ag,3393
33
+ pkscreener-0.46.20250214.714.data/purelib/pkscreener/classes/PKDemoHandler.py,sha256=r4KrZF8TaOu1J0nu8sUsgWEvnbndboWQQvz69GOy1Fk,2207
34
+ pkscreener-0.46.20250214.714.data/purelib/pkscreener/classes/PKMarketOpenCloseAnalyser.py,sha256=T7S0DRv4Tqg77S5CyTWQUgpIAtx0NEtSVAplkynS2YM,33833
35
+ pkscreener-0.46.20250214.714.data/purelib/pkscreener/classes/PKPremiumHandler.py,sha256=r16-u9fyc0ftgnSnZnz-JusTfEzyQIyKkvgbPuSd7W4,5611
36
+ pkscreener-0.46.20250214.714.data/purelib/pkscreener/classes/PKScanRunner.py,sha256=EPLo2euBMfA9omnqrr5pXv2h9KzTcPZM-PXRFI26LSo,26791
37
+ pkscreener-0.46.20250214.714.data/purelib/pkscreener/classes/PKScheduledTaskProgress.py,sha256=h19ZuxoalB50pnZjntFh12b9mBozvMqhKYq6TL18vo4,1657
38
+ pkscreener-0.46.20250214.714.data/purelib/pkscreener/classes/PKScheduler.py,sha256=qThoz0yXLmHEWAiD_TdkIrzJb37b_m830JJFrkN1Tio,8814
39
+ pkscreener-0.46.20250214.714.data/purelib/pkscreener/classes/PKSpreadsheets.py,sha256=1I7YGGPPY879K5JeTZ_d1FNCpjloh6TZrx91JlwT20o,8298
40
+ pkscreener-0.46.20250214.714.data/purelib/pkscreener/classes/PKTask.py,sha256=4q87uD2cXvp0AbP6I73xPP39F0mfnpHQutsxxqpnxJM,1867
41
+ pkscreener-0.46.20250214.714.data/purelib/pkscreener/classes/PKUserRegistration.py,sha256=GPUau3sIhRGuQcV7mdLAACMb8KuJTUiMf5JcBbTfDbU,11202
42
+ pkscreener-0.46.20250214.714.data/purelib/pkscreener/classes/Pktalib.py,sha256=7DNx9UL-l1ehXItzqyaUwtsVSuLB9ruhdsQZGZWqqv4,28959
43
+ pkscreener-0.46.20250214.714.data/purelib/pkscreener/classes/Portfolio.py,sha256=JZ93n3Zk9nkSFaX-lHyQiFnavHVmHPFoy-L_4gugj54,13895
44
+ pkscreener-0.46.20250214.714.data/purelib/pkscreener/classes/PortfolioXRay.py,sha256=4MjXqBAVUlfN4w5tTmgEnQGMoy0hFu_uaVgrmai1fN4,48339
45
+ pkscreener-0.46.20250214.714.data/purelib/pkscreener/classes/ScreeningStatistics.py,sha256=p2rjc1MvZ-CmI_Uw_7jxy3NOMwo3cDB6WenxarsQTBM,221039
46
+ pkscreener-0.46.20250214.714.data/purelib/pkscreener/classes/StockScreener.py,sha256=F0SWa1DSTgYdSWnkPTR9kmOKgHLtaqNMCtJP8yZkDnE,67252
47
+ pkscreener-0.46.20250214.714.data/purelib/pkscreener/classes/StockSentiment.py,sha256=WL7TBAHDSIN5cgZ9uTbbEFnUPo4G-YIzEv16RpPGaro,3546
48
+ pkscreener-0.46.20250214.714.data/purelib/pkscreener/classes/UserMenuChoicesHandler.py,sha256=_fTCscTLEjoU-n12V9237uDN6Jf8nGCvGdBVkpD3Ap4,4947
49
+ pkscreener-0.46.20250214.714.data/purelib/pkscreener/classes/Utility.py,sha256=Cn_QrVH40rQWkHW2e2NolE0b18qszvGXfVLdwAqD7sM,13562
50
+ pkscreener-0.46.20250214.714.data/purelib/pkscreener/classes/WorkflowManager.py,sha256=d0_QiVfai65axe4Oi_h2XUkPyx_wWfiofZd_gMtNAwY,5632
51
+ pkscreener-0.46.20250214.714.data/purelib/pkscreener/classes/__init__.py,sha256=odt8kCzYUhjI51D4K2bK9eqytfPEwpcbkGMnFq_uvcY,28
52
+ pkscreener-0.46.20250214.714.data/purelib/pkscreener/classes/keys.py,sha256=LQq_t1lSh0x4TbRCIDhoCil3xctgLLeVk5f2vgrl1tk,6789
53
+ pkscreener-0.46.20250214.714.dist-info/LICENSE,sha256=CdnyGrl-xRYX67ZkdERZWHr6BlTxOyg8Z8sK1XQ5Xsg,1078
54
+ pkscreener-0.46.20250214.714.dist-info/METADATA,sha256=NebGhgJEpqdA6Gs8GHKQjpZxZQ4mh92B5o_VhjTnKcg,34639
55
+ pkscreener-0.46.20250214.714.dist-info/WHEEL,sha256=aDUArjEbIuDQzblE24IvdIsBzRhJEjiXmuNUYQ-gpaA,104
56
+ pkscreener-0.46.20250214.714.dist-info/entry_points.txt,sha256=Pm30xm4sU7YFtFJUC-Te8VlqOvYAvWKFFA5AfQE0xGY,120
57
+ pkscreener-0.46.20250214.714.dist-info/top_level.txt,sha256=oIfcPPw58Q4KU-GDqp25dXbrtvxYXJBCo_em6i5aVvY,11
58
+ pkscreener-0.46.20250214.714.dist-info/RECORD,,
@@ -1 +0,0 @@
1
- VERSION='0.46.20250213.711'
@@ -1,58 +0,0 @@
1
- pkscreener-0.46.20250213.711.data/purelib/pkscreener/Disclaimer.txt,sha256=kBZQSQCFfL2kc1bijXWndZzkjMTtnpH_B7XtDPPMcuw,1396
2
- pkscreener-0.46.20250213.711.data/purelib/pkscreener/LICENSE-Others.txt,sha256=WBslRYLBoqYg-vr25sS1c_UI7cuUnsGk0nIQLBzTWEE,271830
3
- pkscreener-0.46.20250213.711.data/purelib/pkscreener/LICENSE.txt,sha256=CdnyGrl-xRYX67ZkdERZWHr6BlTxOyg8Z8sK1XQ5Xsg,1078
4
- pkscreener-0.46.20250213.711.data/purelib/pkscreener/LogoWM.txt,sha256=7Njnavpy_FKY4Iwbzv1JqsYMcOdkDSKAKXP3SAItKV0,14868
5
- pkscreener-0.46.20250213.711.data/purelib/pkscreener/README.txt,sha256=aDk6jDVTmSNx6y_35yRLI3RfJOJhMT5Tvg8qdwBlOcM,32701
6
- pkscreener-0.46.20250213.711.data/purelib/pkscreener/__init__.py,sha256=aZ62qYACxsU8m8_5JkzNzos1lVFNcMGPRMgeddnUUiQ,1633
7
- pkscreener-0.46.20250213.711.data/purelib/pkscreener/courbd.ttf,sha256=SKpnp-BRs7AZcdI83nencS3Q7xe0anbbP1YMOxLlEhU,791436
8
- pkscreener-0.46.20250213.711.data/purelib/pkscreener/globals.py,sha256=bIj3LBnbiGvVYidOF0sohg19jHTEkAavrGYaYFyBPhM,240829
9
- pkscreener-0.46.20250213.711.data/purelib/pkscreener/pkscreener.ini,sha256=QKs6j4qhyH37L_MdG3ztAIwgqs4c3qihuqDIoex-V2g,2391
10
- pkscreener-0.46.20250213.711.data/purelib/pkscreener/pkscreenerbot.py,sha256=YZaTZCSPF6ZniYbGZZGYnBSkumOcD8SH9_caMMyxa3E,106672
11
- pkscreener-0.46.20250213.711.data/purelib/pkscreener/pkscreenercli.py,sha256=WEVXfcZdeogWZBY3CWtRYyFrmQa5BEEZedKLlMwCM5U,56999
12
- pkscreener-0.46.20250213.711.data/purelib/pkscreener/requirements.txt,sha256=kgq4lh06feiOI8JlIM3PjZlnO6DW1RsM9q-tXeXjtNE,1457
13
- pkscreener-0.46.20250213.711.data/purelib/pkscreener/classes/ArtTexts.py,sha256=LZ8ynyS8woliv8bM9Nq4aU0VCoJDJU0FgZk8V5zYPmg,19504
14
- pkscreener-0.46.20250213.711.data/purelib/pkscreener/classes/AssetsManager.py,sha256=SutbAZ4JiGhzN0tzfa9vNpHdW6alSL67Jz-knPPcqBw,33706
15
- pkscreener-0.46.20250213.711.data/purelib/pkscreener/classes/Backtest.py,sha256=wobBQgqVQhFNZlyJ2hgMXQqofrICc_3F0I5D66DUvGI,10530
16
- pkscreener-0.46.20250213.711.data/purelib/pkscreener/classes/Barometer.py,sha256=WPrgtIXb1nIbb-FnuRs-yvOQ5baNQRBgUR_zWg1moxk,9464
17
- pkscreener-0.46.20250213.711.data/purelib/pkscreener/classes/BaseScreeningStatistics.py,sha256=u5t1wf-HsZ8xEtprON55ehIR3F2LNNq8LvwgIrhYRmU,3000
18
- pkscreener-0.46.20250213.711.data/purelib/pkscreener/classes/CandlePatterns.py,sha256=gaswU2OeDa3JXjEafR2clUpKW5v8_1_tJuNPuTWsAss,17066
19
- pkscreener-0.46.20250213.711.data/purelib/pkscreener/classes/Changelog.py,sha256=vUOpca28OACNhavAmjBm4xco3u6fcHqWlnlmCJqO5Lk,1469
20
- pkscreener-0.46.20250213.711.data/purelib/pkscreener/classes/ConfigManager.py,sha256=THcfBgua5hr1Pv7AwEDBu2yurCNteGM04jY3Fr_MeBg,53565
21
- pkscreener-0.46.20250213.711.data/purelib/pkscreener/classes/ConsoleMenuUtility.py,sha256=fyR7dEsAaEWEe5SyaVgwLPdU4h4pI8SozUhsPZXShpg,10037
22
- pkscreener-0.46.20250213.711.data/purelib/pkscreener/classes/ConsoleUtility.py,sha256=TrEnTT4pmsBpEYdwD2oAtNqNG_drPe1LVkhthP2540I,12096
23
- pkscreener-0.46.20250213.711.data/purelib/pkscreener/classes/Fetcher.py,sha256=WWX9_NO3JTw6_1Z9SqPm4Nj-4Uy_4PPYEMVyD5FLnVo,12336
24
- pkscreener-0.46.20250213.711.data/purelib/pkscreener/classes/GlobalStore.py,sha256=IzoYMybXpVVf6YwZi7j34rP-hNd7sMened8TAMu_-A8,3709
25
- pkscreener-0.46.20250213.711.data/purelib/pkscreener/classes/ImageUtility.py,sha256=mgJUzjrOKQ1mYV5P_ylhBnaF7ZgOO6ogjy22Rt49TNI,37032
26
- pkscreener-0.46.20250213.711.data/purelib/pkscreener/classes/MarketMonitor.py,sha256=LFCJhmS90nymwdnBk9mdrz23krR3hosH2XQ6NutRtZQ,21816
27
- pkscreener-0.46.20250213.711.data/purelib/pkscreener/classes/MarketStatus.py,sha256=dNg8znbRpt7ID3U_1nmclD4zSLtveJeYeRbS0l6HLtE,3737
28
- pkscreener-0.46.20250213.711.data/purelib/pkscreener/classes/MenuOptions.py,sha256=iZb0zBs7lcP60cmuP7Z5xmXfNtTFcFH6ZWOuoileErE,64552
29
- pkscreener-0.46.20250213.711.data/purelib/pkscreener/classes/Messenger.py,sha256=peyY-YiqdC1bp-3DlJXILRa9HGYbqGVzf1wil0fYv98,8396
30
- pkscreener-0.46.20250213.711.data/purelib/pkscreener/classes/OtaUpdater.py,sha256=_7-nFAC-vAcmZ1Nwi5g5tfp7hKQQPuLUnBCOzrwC39g,13491
31
- pkscreener-0.46.20250213.711.data/purelib/pkscreener/classes/PKAnalytics.py,sha256=_X-2OFw2yQVmXlEIRsnBVNy9fhYyxqt0BOqADD4v08U,5246
32
- pkscreener-0.46.20250213.711.data/purelib/pkscreener/classes/PKDataService.py,sha256=BipM8Z4rS6h12cF6VWv_u4Z8ee7psMFd1yUojejW1Ag,3393
33
- pkscreener-0.46.20250213.711.data/purelib/pkscreener/classes/PKDemoHandler.py,sha256=r4KrZF8TaOu1J0nu8sUsgWEvnbndboWQQvz69GOy1Fk,2207
34
- pkscreener-0.46.20250213.711.data/purelib/pkscreener/classes/PKMarketOpenCloseAnalyser.py,sha256=T7S0DRv4Tqg77S5CyTWQUgpIAtx0NEtSVAplkynS2YM,33833
35
- pkscreener-0.46.20250213.711.data/purelib/pkscreener/classes/PKPremiumHandler.py,sha256=r16-u9fyc0ftgnSnZnz-JusTfEzyQIyKkvgbPuSd7W4,5611
36
- pkscreener-0.46.20250213.711.data/purelib/pkscreener/classes/PKScanRunner.py,sha256=EPLo2euBMfA9omnqrr5pXv2h9KzTcPZM-PXRFI26LSo,26791
37
- pkscreener-0.46.20250213.711.data/purelib/pkscreener/classes/PKScheduledTaskProgress.py,sha256=h19ZuxoalB50pnZjntFh12b9mBozvMqhKYq6TL18vo4,1657
38
- pkscreener-0.46.20250213.711.data/purelib/pkscreener/classes/PKScheduler.py,sha256=qThoz0yXLmHEWAiD_TdkIrzJb37b_m830JJFrkN1Tio,8814
39
- pkscreener-0.46.20250213.711.data/purelib/pkscreener/classes/PKSpreadsheets.py,sha256=1I7YGGPPY879K5JeTZ_d1FNCpjloh6TZrx91JlwT20o,8298
40
- pkscreener-0.46.20250213.711.data/purelib/pkscreener/classes/PKTask.py,sha256=4q87uD2cXvp0AbP6I73xPP39F0mfnpHQutsxxqpnxJM,1867
41
- pkscreener-0.46.20250213.711.data/purelib/pkscreener/classes/PKUserRegistration.py,sha256=GPUau3sIhRGuQcV7mdLAACMb8KuJTUiMf5JcBbTfDbU,11202
42
- pkscreener-0.46.20250213.711.data/purelib/pkscreener/classes/Pktalib.py,sha256=7DNx9UL-l1ehXItzqyaUwtsVSuLB9ruhdsQZGZWqqv4,28959
43
- pkscreener-0.46.20250213.711.data/purelib/pkscreener/classes/Portfolio.py,sha256=JZ93n3Zk9nkSFaX-lHyQiFnavHVmHPFoy-L_4gugj54,13895
44
- pkscreener-0.46.20250213.711.data/purelib/pkscreener/classes/PortfolioXRay.py,sha256=4MjXqBAVUlfN4w5tTmgEnQGMoy0hFu_uaVgrmai1fN4,48339
45
- pkscreener-0.46.20250213.711.data/purelib/pkscreener/classes/ScreeningStatistics.py,sha256=p2rjc1MvZ-CmI_Uw_7jxy3NOMwo3cDB6WenxarsQTBM,221039
46
- pkscreener-0.46.20250213.711.data/purelib/pkscreener/classes/StockScreener.py,sha256=F0SWa1DSTgYdSWnkPTR9kmOKgHLtaqNMCtJP8yZkDnE,67252
47
- pkscreener-0.46.20250213.711.data/purelib/pkscreener/classes/StockSentiment.py,sha256=WL7TBAHDSIN5cgZ9uTbbEFnUPo4G-YIzEv16RpPGaro,3546
48
- pkscreener-0.46.20250213.711.data/purelib/pkscreener/classes/UserMenuChoicesHandler.py,sha256=_fTCscTLEjoU-n12V9237uDN6Jf8nGCvGdBVkpD3Ap4,4947
49
- pkscreener-0.46.20250213.711.data/purelib/pkscreener/classes/Utility.py,sha256=Cn_QrVH40rQWkHW2e2NolE0b18qszvGXfVLdwAqD7sM,13562
50
- pkscreener-0.46.20250213.711.data/purelib/pkscreener/classes/WorkflowManager.py,sha256=d0_QiVfai65axe4Oi_h2XUkPyx_wWfiofZd_gMtNAwY,5632
51
- pkscreener-0.46.20250213.711.data/purelib/pkscreener/classes/__init__.py,sha256=7IsZkbDpfjAJQe-21XnMPZSx6J8Mm4LzqJlol68tEBo,28
52
- pkscreener-0.46.20250213.711.data/purelib/pkscreener/classes/keys.py,sha256=LQq_t1lSh0x4TbRCIDhoCil3xctgLLeVk5f2vgrl1tk,6789
53
- pkscreener-0.46.20250213.711.dist-info/LICENSE,sha256=CdnyGrl-xRYX67ZkdERZWHr6BlTxOyg8Z8sK1XQ5Xsg,1078
54
- pkscreener-0.46.20250213.711.dist-info/METADATA,sha256=brTGDDjya_7naEeYwrXaQik3z0b_gB2zTfivpRK_Fos,34639
55
- pkscreener-0.46.20250213.711.dist-info/WHEEL,sha256=aDUArjEbIuDQzblE24IvdIsBzRhJEjiXmuNUYQ-gpaA,104
56
- pkscreener-0.46.20250213.711.dist-info/entry_points.txt,sha256=Pm30xm4sU7YFtFJUC-Te8VlqOvYAvWKFFA5AfQE0xGY,120
57
- pkscreener-0.46.20250213.711.dist-info/top_level.txt,sha256=oIfcPPw58Q4KU-GDqp25dXbrtvxYXJBCo_em6i5aVvY,11
58
- pkscreener-0.46.20250213.711.dist-info/RECORD,,