pkscreener 0.46.20250220.726__cp312-cp312-manylinux2014_x86_64.whl → 0.46.20250220.727__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.20250220.726.data → pkscreener-0.46.20250220.727.data}/purelib/pkscreener/README.txt +5 -5
  2. {pkscreener-0.46.20250220.726.data → pkscreener-0.46.20250220.727.data}/purelib/pkscreener/classes/AssetsManager.py +23 -3
  3. pkscreener-0.46.20250220.727.data/purelib/pkscreener/classes/__init__.py +1 -0
  4. {pkscreener-0.46.20250220.726.data → pkscreener-0.46.20250220.727.data}/purelib/pkscreener/globals.py +5 -1
  5. {pkscreener-0.46.20250220.726.dist-info → pkscreener-0.46.20250220.727.dist-info}/METADATA +7 -7
  6. pkscreener-0.46.20250220.727.dist-info/RECORD +58 -0
  7. pkscreener-0.46.20250220.726.data/purelib/pkscreener/classes/__init__.py +0 -1
  8. pkscreener-0.46.20250220.726.dist-info/RECORD +0 -58
  9. {pkscreener-0.46.20250220.726.data → pkscreener-0.46.20250220.727.data}/purelib/pkscreener/Disclaimer.txt +0 -0
  10. {pkscreener-0.46.20250220.726.data → pkscreener-0.46.20250220.727.data}/purelib/pkscreener/LICENSE-Others.txt +0 -0
  11. {pkscreener-0.46.20250220.726.data → pkscreener-0.46.20250220.727.data}/purelib/pkscreener/LICENSE.txt +0 -0
  12. {pkscreener-0.46.20250220.726.data → pkscreener-0.46.20250220.727.data}/purelib/pkscreener/LogoWM.txt +0 -0
  13. {pkscreener-0.46.20250220.726.data → pkscreener-0.46.20250220.727.data}/purelib/pkscreener/__init__.py +0 -0
  14. {pkscreener-0.46.20250220.726.data → pkscreener-0.46.20250220.727.data}/purelib/pkscreener/classes/ArtTexts.py +0 -0
  15. {pkscreener-0.46.20250220.726.data → pkscreener-0.46.20250220.727.data}/purelib/pkscreener/classes/Backtest.py +0 -0
  16. {pkscreener-0.46.20250220.726.data → pkscreener-0.46.20250220.727.data}/purelib/pkscreener/classes/Barometer.py +0 -0
  17. {pkscreener-0.46.20250220.726.data → pkscreener-0.46.20250220.727.data}/purelib/pkscreener/classes/BaseScreeningStatistics.py +0 -0
  18. {pkscreener-0.46.20250220.726.data → pkscreener-0.46.20250220.727.data}/purelib/pkscreener/classes/CandlePatterns.py +0 -0
  19. {pkscreener-0.46.20250220.726.data → pkscreener-0.46.20250220.727.data}/purelib/pkscreener/classes/Changelog.py +0 -0
  20. {pkscreener-0.46.20250220.726.data → pkscreener-0.46.20250220.727.data}/purelib/pkscreener/classes/ConfigManager.py +0 -0
  21. {pkscreener-0.46.20250220.726.data → pkscreener-0.46.20250220.727.data}/purelib/pkscreener/classes/ConsoleMenuUtility.py +0 -0
  22. {pkscreener-0.46.20250220.726.data → pkscreener-0.46.20250220.727.data}/purelib/pkscreener/classes/ConsoleUtility.py +0 -0
  23. {pkscreener-0.46.20250220.726.data → pkscreener-0.46.20250220.727.data}/purelib/pkscreener/classes/Fetcher.py +0 -0
  24. {pkscreener-0.46.20250220.726.data → pkscreener-0.46.20250220.727.data}/purelib/pkscreener/classes/GlobalStore.py +0 -0
  25. {pkscreener-0.46.20250220.726.data → pkscreener-0.46.20250220.727.data}/purelib/pkscreener/classes/ImageUtility.py +0 -0
  26. {pkscreener-0.46.20250220.726.data → pkscreener-0.46.20250220.727.data}/purelib/pkscreener/classes/MarketMonitor.py +0 -0
  27. {pkscreener-0.46.20250220.726.data → pkscreener-0.46.20250220.727.data}/purelib/pkscreener/classes/MarketStatus.py +0 -0
  28. {pkscreener-0.46.20250220.726.data → pkscreener-0.46.20250220.727.data}/purelib/pkscreener/classes/MenuOptions.py +0 -0
  29. {pkscreener-0.46.20250220.726.data → pkscreener-0.46.20250220.727.data}/purelib/pkscreener/classes/Messenger.py +0 -0
  30. {pkscreener-0.46.20250220.726.data → pkscreener-0.46.20250220.727.data}/purelib/pkscreener/classes/OtaUpdater.py +0 -0
  31. {pkscreener-0.46.20250220.726.data → pkscreener-0.46.20250220.727.data}/purelib/pkscreener/classes/PKAnalytics.py +0 -0
  32. {pkscreener-0.46.20250220.726.data → pkscreener-0.46.20250220.727.data}/purelib/pkscreener/classes/PKDataService.py +0 -0
  33. {pkscreener-0.46.20250220.726.data → pkscreener-0.46.20250220.727.data}/purelib/pkscreener/classes/PKDemoHandler.py +0 -0
  34. {pkscreener-0.46.20250220.726.data → pkscreener-0.46.20250220.727.data}/purelib/pkscreener/classes/PKMarketOpenCloseAnalyser.py +0 -0
  35. {pkscreener-0.46.20250220.726.data → pkscreener-0.46.20250220.727.data}/purelib/pkscreener/classes/PKPremiumHandler.py +0 -0
  36. {pkscreener-0.46.20250220.726.data → pkscreener-0.46.20250220.727.data}/purelib/pkscreener/classes/PKScanRunner.py +0 -0
  37. {pkscreener-0.46.20250220.726.data → pkscreener-0.46.20250220.727.data}/purelib/pkscreener/classes/PKScheduledTaskProgress.py +0 -0
  38. {pkscreener-0.46.20250220.726.data → pkscreener-0.46.20250220.727.data}/purelib/pkscreener/classes/PKScheduler.py +0 -0
  39. {pkscreener-0.46.20250220.726.data → pkscreener-0.46.20250220.727.data}/purelib/pkscreener/classes/PKSpreadsheets.py +0 -0
  40. {pkscreener-0.46.20250220.726.data → pkscreener-0.46.20250220.727.data}/purelib/pkscreener/classes/PKTask.py +0 -0
  41. {pkscreener-0.46.20250220.726.data → pkscreener-0.46.20250220.727.data}/purelib/pkscreener/classes/PKUserRegistration.py +0 -0
  42. {pkscreener-0.46.20250220.726.data → pkscreener-0.46.20250220.727.data}/purelib/pkscreener/classes/Pktalib.py +0 -0
  43. {pkscreener-0.46.20250220.726.data → pkscreener-0.46.20250220.727.data}/purelib/pkscreener/classes/Portfolio.py +0 -0
  44. {pkscreener-0.46.20250220.726.data → pkscreener-0.46.20250220.727.data}/purelib/pkscreener/classes/PortfolioXRay.py +0 -0
  45. {pkscreener-0.46.20250220.726.data → pkscreener-0.46.20250220.727.data}/purelib/pkscreener/classes/ScreeningStatistics.py +0 -0
  46. {pkscreener-0.46.20250220.726.data → pkscreener-0.46.20250220.727.data}/purelib/pkscreener/classes/StockScreener.py +0 -0
  47. {pkscreener-0.46.20250220.726.data → pkscreener-0.46.20250220.727.data}/purelib/pkscreener/classes/StockSentiment.py +0 -0
  48. {pkscreener-0.46.20250220.726.data → pkscreener-0.46.20250220.727.data}/purelib/pkscreener/classes/UserMenuChoicesHandler.py +0 -0
  49. {pkscreener-0.46.20250220.726.data → pkscreener-0.46.20250220.727.data}/purelib/pkscreener/classes/Utility.py +0 -0
  50. {pkscreener-0.46.20250220.726.data → pkscreener-0.46.20250220.727.data}/purelib/pkscreener/classes/WorkflowManager.py +0 -0
  51. {pkscreener-0.46.20250220.726.data → pkscreener-0.46.20250220.727.data}/purelib/pkscreener/classes/keys.py +0 -0
  52. {pkscreener-0.46.20250220.726.data → pkscreener-0.46.20250220.727.data}/purelib/pkscreener/courbd.ttf +0 -0
  53. {pkscreener-0.46.20250220.726.data → pkscreener-0.46.20250220.727.data}/purelib/pkscreener/pkscreener.ini +0 -0
  54. {pkscreener-0.46.20250220.726.data → pkscreener-0.46.20250220.727.data}/purelib/pkscreener/pkscreenerbot.py +0 -0
  55. {pkscreener-0.46.20250220.726.data → pkscreener-0.46.20250220.727.data}/purelib/pkscreener/pkscreenercli.py +0 -0
  56. {pkscreener-0.46.20250220.726.data → pkscreener-0.46.20250220.727.data}/purelib/pkscreener/requirements.txt +0 -0
  57. {pkscreener-0.46.20250220.726.dist-info → pkscreener-0.46.20250220.727.dist-info}/LICENSE +0 -0
  58. {pkscreener-0.46.20250220.726.dist-info → pkscreener-0.46.20250220.727.dist-info}/WHEEL +0 -0
  59. {pkscreener-0.46.20250220.726.dist-info → pkscreener-0.46.20250220.727.dist-info}/entry_points.txt +0 -0
  60. {pkscreener-0.46.20250220.726.dist-info → pkscreener-0.46.20250220.727.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.20250219.725/pkscreenercli.exe
331
+ [Windows]: https://github.com/pkjmesra/PKScreener/releases/download/0.46.20250220.726/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.20250219.725/pkscreenercli_x64.bin
333
+ [Linux_x64]: https://github.com/pkjmesra/PKScreener/releases/download/0.46.20250220.726/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.20250219.725/pkscreenercli_arm64.bin
335
+ [Linux_arm64]: https://github.com/pkjmesra/PKScreener/releases/download/0.46.20250220.726/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.20250219.725/pkscreenercli_x64.run
337
+ [Mac OS_x64]: https://github.com/pkjmesra/PKScreener/releases/download/0.46.20250220.726/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.20250219.725/pkscreenercli_arm64.run
339
+ [Mac OS_arm64]: https://github.com/pkjmesra/PKScreener/releases/download/0.46.20250220.726/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
@@ -32,6 +32,7 @@ import pandas as pd
32
32
  import numpy as np
33
33
  from halo import Halo
34
34
  from alive_progress import alive_bar
35
+ from yfinance import shared
35
36
 
36
37
  from PKDevTools.classes.log import default_logger
37
38
  from PKDevTools.classes import Archiver
@@ -264,8 +265,21 @@ class PKAssetsManager:
264
265
  OutputControls().printOutput(colorText.GREEN + f"=> {cache_file}" + colorText.END)
265
266
  return cache_file
266
267
 
268
+ def had_rate_limit_errors():
269
+ """Checks if any stored errors are YFRateLimitError."""
270
+ err = ",".join(list(shared._ERRORS.values()))
271
+ hitRateLimit = "YFRateLimitError" in err
272
+ if hitRateLimit:
273
+ OutputControls().printOutput(
274
+ colorText.FAIL
275
+ + " [+] We hit a rate limit error in the previous request(s)!"
276
+ + colorText.END
277
+ )
278
+ return hitRateLimit
279
+
267
280
  @Halo(text=' [+] Downloading fresh data from Data Providers...', spinner='dots')
268
281
  def downloadLatestData(stockDict,configManager,stockCodes=[],exchangeSuffix=".NS",downloadOnly=False,numStocksPerIteration=0):
282
+ shared._ERRORS.clear() # Clear previous errors
269
283
  # if numStocksPerIteration == 0:
270
284
  maxParallelProcesses = 17
271
285
  numStocksPerIteration = (int(len(stockCodes)/int(len(stockCodes)/maxParallelProcesses)) if len(stockCodes) >= maxParallelProcesses else len(stockCodes)) + 1
@@ -335,7 +349,9 @@ class PKAssetsManager:
335
349
  if (stockCodes is not None and len(stockCodes) > 0) and (isTrading or downloadOnly):
336
350
  recentDownloadFromOriginAttempted = True
337
351
  stockDict, leftOutStocks = PKAssetsManager.downloadLatestData(stockDict,configManager,stockCodes,exchangeSuffix=exchangeSuffix,downloadOnly=downloadOnly,numStocksPerIteration=len(stockCodes) if stockCodes is not None else 0)
338
- if len(leftOutStocks) > int(len(stockCodes)*0.05):
352
+ if len(leftOutStocks) > int(len(stockCodes)*0.05) and not PKAssetsManager.had_rate_limit_errors():
353
+ # During live market hours, we may not really get additional data if we didn't
354
+ # get it the first time
339
355
  # More than 5 % of stocks are still remaining
340
356
  stockDict, _ = PKAssetsManager.downloadLatestData(stockDict,configManager,leftOutStocks,exchangeSuffix=exchangeSuffix,downloadOnly=downloadOnly,numStocksPerIteration=len(leftOutStocks) if leftOutStocks is not None else 0)
341
357
  # return stockDict
@@ -367,12 +383,16 @@ class PKAssetsManager:
367
383
  + " [+] Cache unavailable on pkscreener server, Continuing.."
368
384
  + colorText.END
369
385
  )
370
- if not stockDataLoaded and not recentDownloadFromOriginAttempted:
386
+ if not stockDataLoaded and not recentDownloadFromOriginAttempted and not PKAssetsManager.had_rate_limit_errors():
371
387
  stockDict, _ = PKAssetsManager.downloadLatestData(stockDict,configManager,stockCodes,exchangeSuffix=exchangeSuffix,downloadOnly=downloadOnly,numStocksPerIteration=len(stockCodes) if stockCodes is not None else 0)
372
388
  # See if we need to save stock data
373
389
  stockDataLoaded = stockDataLoaded or (len(stockDict) > 0 and (len(stockDict) != initialLoadCount))
374
390
  if stockDataLoaded:
375
391
  PKAssetsManager.saveStockData(stockDict,configManager,initialLoadCount,isIntraday,downloadOnly, forceSave=stockDataLoaded)
392
+ leftOutStocks = list(set(stockCodes)-set(list(stockDict.keys())))
393
+ if len(leftOutStocks) > int(len(stockCodes)*0.05) and not PKAssetsManager.had_rate_limit_errors():
394
+ # More than 5 % of stocks are still remaining
395
+ stockDict, _ = PKAssetsManager.downloadLatestData(stockDict,configManager,leftOutStocks,exchangeSuffix=exchangeSuffix,downloadOnly=downloadOnly,numStocksPerIteration=len(leftOutStocks) if leftOutStocks is not None else 0)
376
396
  return stockDict
377
397
 
378
398
  @Halo(text=' [+] Loading data from local cache...', spinner='dots')
@@ -385,7 +405,7 @@ class PKAssetsManager:
385
405
  if not downloadOnly:
386
406
  OutputControls().printOutput(
387
407
  colorText.GREEN
388
- + f"\n [+] Automatically Using Cached Stock Data {'due to After-Market hours' if not PKDateUtilities.isTradingTime() else ''}!"
408
+ + f"\n [+] Automatically Using [{len(stockData)}] Tickers' Cached Stock Data {'due to After-Market hours' if not PKDateUtilities.isTradingTime() else ''}!"
389
409
  + colorText.END
390
410
  )
391
411
  if stockData is not None and len(stockData) > 0:
@@ -0,0 +1 @@
1
+ VERSION='0.46.20250220.727'
@@ -1887,7 +1887,11 @@ def main(userArgs=None,optionalFinalOutcome_df=None):
1887
1887
  pass
1888
1888
 
1889
1889
  loadCount = len(stockDictPrimary) if stockDictPrimary is not None else 0
1890
-
1890
+ # Let's use screening only for the stocks for which we could get the data.
1891
+ savedOrDownloadedKeys = list(stockDictPrimary.keys())
1892
+ missingStocks = set(listStockCodes) - set(savedOrDownloadedKeys)
1893
+ OutputControls().printOutput(f"{colorText.GREEN} [+] Adding {len(listStockCodes)-len(missingStocks)} stocks out of {len(listStockCodes)} to the queue...{colorText.END}")
1894
+ listStockCodes = (set(listStockCodes)-set(missingStocks)) if not downloadOnly else listStockCodes
1891
1895
  if downloadOnly:
1892
1896
  OutputControls().printOutput(
1893
1897
  colorText.WARN
@@ -1,9 +1,9 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: pkscreener
3
- Version: 0.46.20250220.726
3
+ Version: 0.46.20250220.727
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.20250220.726.zip
6
+ Download-URL: https://github.com/pkjmesra/pkscreener/archive/v0.46.20250220.727.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.20250219.725/pkscreenercli.exe
395
+ [Windows]: https://github.com/pkjmesra/PKScreener/releases/download/0.46.20250220.726/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.20250219.725/pkscreenercli_x64.bin
397
+ [Linux_x64]: https://github.com/pkjmesra/PKScreener/releases/download/0.46.20250220.726/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.20250219.725/pkscreenercli_arm64.bin
399
+ [Linux_arm64]: https://github.com/pkjmesra/PKScreener/releases/download/0.46.20250220.726/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.20250219.725/pkscreenercli_x64.run
401
+ [Mac OS_x64]: https://github.com/pkjmesra/PKScreener/releases/download/0.46.20250220.726/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.20250219.725/pkscreenercli_arm64.run
403
+ [Mac OS_arm64]: https://github.com/pkjmesra/PKScreener/releases/download/0.46.20250220.726/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.20250220.727.data/purelib/pkscreener/Disclaimer.txt,sha256=kBZQSQCFfL2kc1bijXWndZzkjMTtnpH_B7XtDPPMcuw,1396
2
+ pkscreener-0.46.20250220.727.data/purelib/pkscreener/LICENSE-Others.txt,sha256=WBslRYLBoqYg-vr25sS1c_UI7cuUnsGk0nIQLBzTWEE,271830
3
+ pkscreener-0.46.20250220.727.data/purelib/pkscreener/LICENSE.txt,sha256=CdnyGrl-xRYX67ZkdERZWHr6BlTxOyg8Z8sK1XQ5Xsg,1078
4
+ pkscreener-0.46.20250220.727.data/purelib/pkscreener/LogoWM.txt,sha256=7Njnavpy_FKY4Iwbzv1JqsYMcOdkDSKAKXP3SAItKV0,14868
5
+ pkscreener-0.46.20250220.727.data/purelib/pkscreener/README.txt,sha256=l0wI2EpXngd2NSYpYv3VQBvfd_QNVWxrnf9KgO3UNpY,32802
6
+ pkscreener-0.46.20250220.727.data/purelib/pkscreener/__init__.py,sha256=aZ62qYACxsU8m8_5JkzNzos1lVFNcMGPRMgeddnUUiQ,1633
7
+ pkscreener-0.46.20250220.727.data/purelib/pkscreener/courbd.ttf,sha256=SKpnp-BRs7AZcdI83nencS3Q7xe0anbbP1YMOxLlEhU,791436
8
+ pkscreener-0.46.20250220.727.data/purelib/pkscreener/globals.py,sha256=DtwU7Ad0iWtJ66v_yh9rpV9MkqbwhZpIEnRbTl8KHec,241599
9
+ pkscreener-0.46.20250220.727.data/purelib/pkscreener/pkscreener.ini,sha256=QKs6j4qhyH37L_MdG3ztAIwgqs4c3qihuqDIoex-V2g,2391
10
+ pkscreener-0.46.20250220.727.data/purelib/pkscreener/pkscreenerbot.py,sha256=hi1qvI2yb9aNkTP4BAZyuVzpLf-_gR0JBaozGUIm32o,117163
11
+ pkscreener-0.46.20250220.727.data/purelib/pkscreener/pkscreenercli.py,sha256=-2cgfdCUJhp4xeZfcbj2ntUp_MvsrVJvz1dnsOBQMZA,57826
12
+ pkscreener-0.46.20250220.727.data/purelib/pkscreener/requirements.txt,sha256=M7ZEXe8o9-6N67lHzel4HsEFYma_JfRUP93y3OavkDs,1457
13
+ pkscreener-0.46.20250220.727.data/purelib/pkscreener/classes/ArtTexts.py,sha256=LZ8ynyS8woliv8bM9Nq4aU0VCoJDJU0FgZk8V5zYPmg,19504
14
+ pkscreener-0.46.20250220.727.data/purelib/pkscreener/classes/AssetsManager.py,sha256=5pyXH-9KZszQP5uI4_6XR8QMny1sEHBhpRzsmP0Rhe0,35465
15
+ pkscreener-0.46.20250220.727.data/purelib/pkscreener/classes/Backtest.py,sha256=wobBQgqVQhFNZlyJ2hgMXQqofrICc_3F0I5D66DUvGI,10530
16
+ pkscreener-0.46.20250220.727.data/purelib/pkscreener/classes/Barometer.py,sha256=WPrgtIXb1nIbb-FnuRs-yvOQ5baNQRBgUR_zWg1moxk,9464
17
+ pkscreener-0.46.20250220.727.data/purelib/pkscreener/classes/BaseScreeningStatistics.py,sha256=u5t1wf-HsZ8xEtprON55ehIR3F2LNNq8LvwgIrhYRmU,3000
18
+ pkscreener-0.46.20250220.727.data/purelib/pkscreener/classes/CandlePatterns.py,sha256=gaswU2OeDa3JXjEafR2clUpKW5v8_1_tJuNPuTWsAss,17066
19
+ pkscreener-0.46.20250220.727.data/purelib/pkscreener/classes/Changelog.py,sha256=vUOpca28OACNhavAmjBm4xco3u6fcHqWlnlmCJqO5Lk,1469
20
+ pkscreener-0.46.20250220.727.data/purelib/pkscreener/classes/ConfigManager.py,sha256=THcfBgua5hr1Pv7AwEDBu2yurCNteGM04jY3Fr_MeBg,53565
21
+ pkscreener-0.46.20250220.727.data/purelib/pkscreener/classes/ConsoleMenuUtility.py,sha256=fyR7dEsAaEWEe5SyaVgwLPdU4h4pI8SozUhsPZXShpg,10037
22
+ pkscreener-0.46.20250220.727.data/purelib/pkscreener/classes/ConsoleUtility.py,sha256=TrEnTT4pmsBpEYdwD2oAtNqNG_drPe1LVkhthP2540I,12096
23
+ pkscreener-0.46.20250220.727.data/purelib/pkscreener/classes/Fetcher.py,sha256=3-6x_XoHDzMk5HV40oMS-8hYXRSJ-BaDdfB0KIDnb4c,14766
24
+ pkscreener-0.46.20250220.727.data/purelib/pkscreener/classes/GlobalStore.py,sha256=IzoYMybXpVVf6YwZi7j34rP-hNd7sMened8TAMu_-A8,3709
25
+ pkscreener-0.46.20250220.727.data/purelib/pkscreener/classes/ImageUtility.py,sha256=mgJUzjrOKQ1mYV5P_ylhBnaF7ZgOO6ogjy22Rt49TNI,37032
26
+ pkscreener-0.46.20250220.727.data/purelib/pkscreener/classes/MarketMonitor.py,sha256=GQOPLuUhgcrnVa0mI8ZvXqQ4vPFW00FHW_vMfICnko8,22079
27
+ pkscreener-0.46.20250220.727.data/purelib/pkscreener/classes/MarketStatus.py,sha256=dNg8znbRpt7ID3U_1nmclD4zSLtveJeYeRbS0l6HLtE,3737
28
+ pkscreener-0.46.20250220.727.data/purelib/pkscreener/classes/MenuOptions.py,sha256=iZb0zBs7lcP60cmuP7Z5xmXfNtTFcFH6ZWOuoileErE,64552
29
+ pkscreener-0.46.20250220.727.data/purelib/pkscreener/classes/Messenger.py,sha256=peyY-YiqdC1bp-3DlJXILRa9HGYbqGVzf1wil0fYv98,8396
30
+ pkscreener-0.46.20250220.727.data/purelib/pkscreener/classes/OtaUpdater.py,sha256=_7-nFAC-vAcmZ1Nwi5g5tfp7hKQQPuLUnBCOzrwC39g,13491
31
+ pkscreener-0.46.20250220.727.data/purelib/pkscreener/classes/PKAnalytics.py,sha256=_X-2OFw2yQVmXlEIRsnBVNy9fhYyxqt0BOqADD4v08U,5246
32
+ pkscreener-0.46.20250220.727.data/purelib/pkscreener/classes/PKDataService.py,sha256=BipM8Z4rS6h12cF6VWv_u4Z8ee7psMFd1yUojejW1Ag,3393
33
+ pkscreener-0.46.20250220.727.data/purelib/pkscreener/classes/PKDemoHandler.py,sha256=r4KrZF8TaOu1J0nu8sUsgWEvnbndboWQQvz69GOy1Fk,2207
34
+ pkscreener-0.46.20250220.727.data/purelib/pkscreener/classes/PKMarketOpenCloseAnalyser.py,sha256=T7S0DRv4Tqg77S5CyTWQUgpIAtx0NEtSVAplkynS2YM,33833
35
+ pkscreener-0.46.20250220.727.data/purelib/pkscreener/classes/PKPremiumHandler.py,sha256=r16-u9fyc0ftgnSnZnz-JusTfEzyQIyKkvgbPuSd7W4,5611
36
+ pkscreener-0.46.20250220.727.data/purelib/pkscreener/classes/PKScanRunner.py,sha256=EPLo2euBMfA9omnqrr5pXv2h9KzTcPZM-PXRFI26LSo,26791
37
+ pkscreener-0.46.20250220.727.data/purelib/pkscreener/classes/PKScheduledTaskProgress.py,sha256=h19ZuxoalB50pnZjntFh12b9mBozvMqhKYq6TL18vo4,1657
38
+ pkscreener-0.46.20250220.727.data/purelib/pkscreener/classes/PKScheduler.py,sha256=qThoz0yXLmHEWAiD_TdkIrzJb37b_m830JJFrkN1Tio,8814
39
+ pkscreener-0.46.20250220.727.data/purelib/pkscreener/classes/PKSpreadsheets.py,sha256=1I7YGGPPY879K5JeTZ_d1FNCpjloh6TZrx91JlwT20o,8298
40
+ pkscreener-0.46.20250220.727.data/purelib/pkscreener/classes/PKTask.py,sha256=4q87uD2cXvp0AbP6I73xPP39F0mfnpHQutsxxqpnxJM,1867
41
+ pkscreener-0.46.20250220.727.data/purelib/pkscreener/classes/PKUserRegistration.py,sha256=ZbnPzgvT5Je9X0Dm6bewSp8u7Fj_szNucaYnit_AtCg,11465
42
+ pkscreener-0.46.20250220.727.data/purelib/pkscreener/classes/Pktalib.py,sha256=xketnpMVDGHOFg47LFavaU-agWy370VanYWyzzuLY8c,33386
43
+ pkscreener-0.46.20250220.727.data/purelib/pkscreener/classes/Portfolio.py,sha256=JZ93n3Zk9nkSFaX-lHyQiFnavHVmHPFoy-L_4gugj54,13895
44
+ pkscreener-0.46.20250220.727.data/purelib/pkscreener/classes/PortfolioXRay.py,sha256=4MjXqBAVUlfN4w5tTmgEnQGMoy0hFu_uaVgrmai1fN4,48339
45
+ pkscreener-0.46.20250220.727.data/purelib/pkscreener/classes/ScreeningStatistics.py,sha256=YSg4cynnDcn7cUK6VUBRpMmcNsKG3_CCzTSyobiCk2k,221479
46
+ pkscreener-0.46.20250220.727.data/purelib/pkscreener/classes/StockScreener.py,sha256=F0SWa1DSTgYdSWnkPTR9kmOKgHLtaqNMCtJP8yZkDnE,67252
47
+ pkscreener-0.46.20250220.727.data/purelib/pkscreener/classes/StockSentiment.py,sha256=WL7TBAHDSIN5cgZ9uTbbEFnUPo4G-YIzEv16RpPGaro,3546
48
+ pkscreener-0.46.20250220.727.data/purelib/pkscreener/classes/UserMenuChoicesHandler.py,sha256=_fTCscTLEjoU-n12V9237uDN6Jf8nGCvGdBVkpD3Ap4,4947
49
+ pkscreener-0.46.20250220.727.data/purelib/pkscreener/classes/Utility.py,sha256=Cn_QrVH40rQWkHW2e2NolE0b18qszvGXfVLdwAqD7sM,13562
50
+ pkscreener-0.46.20250220.727.data/purelib/pkscreener/classes/WorkflowManager.py,sha256=YRUiZSq83SEx2qB0wTBDE4KFaYqEz1Qu4FSCAzl6xzU,5663
51
+ pkscreener-0.46.20250220.727.data/purelib/pkscreener/classes/__init__.py,sha256=SKNJQJJ4Pnl5P7IKBorihRsBebKCpNqc1flnEVwOYpw,28
52
+ pkscreener-0.46.20250220.727.data/purelib/pkscreener/classes/keys.py,sha256=LQq_t1lSh0x4TbRCIDhoCil3xctgLLeVk5f2vgrl1tk,6789
53
+ pkscreener-0.46.20250220.727.dist-info/LICENSE,sha256=CdnyGrl-xRYX67ZkdERZWHr6BlTxOyg8Z8sK1XQ5Xsg,1078
54
+ pkscreener-0.46.20250220.727.dist-info/METADATA,sha256=3PvJRSEblygxIGGM0OMPBUcWV0P4p8VWueYJnx4v82Q,34740
55
+ pkscreener-0.46.20250220.727.dist-info/WHEEL,sha256=aDUArjEbIuDQzblE24IvdIsBzRhJEjiXmuNUYQ-gpaA,104
56
+ pkscreener-0.46.20250220.727.dist-info/entry_points.txt,sha256=Pm30xm4sU7YFtFJUC-Te8VlqOvYAvWKFFA5AfQE0xGY,120
57
+ pkscreener-0.46.20250220.727.dist-info/top_level.txt,sha256=oIfcPPw58Q4KU-GDqp25dXbrtvxYXJBCo_em6i5aVvY,11
58
+ pkscreener-0.46.20250220.727.dist-info/RECORD,,
@@ -1 +0,0 @@
1
- VERSION='0.46.20250220.726'
@@ -1,58 +0,0 @@
1
- pkscreener-0.46.20250220.726.data/purelib/pkscreener/Disclaimer.txt,sha256=kBZQSQCFfL2kc1bijXWndZzkjMTtnpH_B7XtDPPMcuw,1396
2
- pkscreener-0.46.20250220.726.data/purelib/pkscreener/LICENSE-Others.txt,sha256=WBslRYLBoqYg-vr25sS1c_UI7cuUnsGk0nIQLBzTWEE,271830
3
- pkscreener-0.46.20250220.726.data/purelib/pkscreener/LICENSE.txt,sha256=CdnyGrl-xRYX67ZkdERZWHr6BlTxOyg8Z8sK1XQ5Xsg,1078
4
- pkscreener-0.46.20250220.726.data/purelib/pkscreener/LogoWM.txt,sha256=7Njnavpy_FKY4Iwbzv1JqsYMcOdkDSKAKXP3SAItKV0,14868
5
- pkscreener-0.46.20250220.726.data/purelib/pkscreener/README.txt,sha256=PYtfYMNmI78Ix0DNT3qZo0URJTXb_Q0-ChsA6a7XzwU,32802
6
- pkscreener-0.46.20250220.726.data/purelib/pkscreener/__init__.py,sha256=aZ62qYACxsU8m8_5JkzNzos1lVFNcMGPRMgeddnUUiQ,1633
7
- pkscreener-0.46.20250220.726.data/purelib/pkscreener/courbd.ttf,sha256=SKpnp-BRs7AZcdI83nencS3Q7xe0anbbP1YMOxLlEhU,791436
8
- pkscreener-0.46.20250220.726.data/purelib/pkscreener/globals.py,sha256=q1FCCPcnJ-IethQk-V-cCRCIW6PtZuvKSCNmSrgfA_Y,241097
9
- pkscreener-0.46.20250220.726.data/purelib/pkscreener/pkscreener.ini,sha256=QKs6j4qhyH37L_MdG3ztAIwgqs4c3qihuqDIoex-V2g,2391
10
- pkscreener-0.46.20250220.726.data/purelib/pkscreener/pkscreenerbot.py,sha256=hi1qvI2yb9aNkTP4BAZyuVzpLf-_gR0JBaozGUIm32o,117163
11
- pkscreener-0.46.20250220.726.data/purelib/pkscreener/pkscreenercli.py,sha256=-2cgfdCUJhp4xeZfcbj2ntUp_MvsrVJvz1dnsOBQMZA,57826
12
- pkscreener-0.46.20250220.726.data/purelib/pkscreener/requirements.txt,sha256=M7ZEXe8o9-6N67lHzel4HsEFYma_JfRUP93y3OavkDs,1457
13
- pkscreener-0.46.20250220.726.data/purelib/pkscreener/classes/ArtTexts.py,sha256=LZ8ynyS8woliv8bM9Nq4aU0VCoJDJU0FgZk8V5zYPmg,19504
14
- pkscreener-0.46.20250220.726.data/purelib/pkscreener/classes/AssetsManager.py,sha256=rnWt8Vyzrdm1pwp5XLH7if6yOHKD36wnYCHpZsQHBho,34192
15
- pkscreener-0.46.20250220.726.data/purelib/pkscreener/classes/Backtest.py,sha256=wobBQgqVQhFNZlyJ2hgMXQqofrICc_3F0I5D66DUvGI,10530
16
- pkscreener-0.46.20250220.726.data/purelib/pkscreener/classes/Barometer.py,sha256=WPrgtIXb1nIbb-FnuRs-yvOQ5baNQRBgUR_zWg1moxk,9464
17
- pkscreener-0.46.20250220.726.data/purelib/pkscreener/classes/BaseScreeningStatistics.py,sha256=u5t1wf-HsZ8xEtprON55ehIR3F2LNNq8LvwgIrhYRmU,3000
18
- pkscreener-0.46.20250220.726.data/purelib/pkscreener/classes/CandlePatterns.py,sha256=gaswU2OeDa3JXjEafR2clUpKW5v8_1_tJuNPuTWsAss,17066
19
- pkscreener-0.46.20250220.726.data/purelib/pkscreener/classes/Changelog.py,sha256=vUOpca28OACNhavAmjBm4xco3u6fcHqWlnlmCJqO5Lk,1469
20
- pkscreener-0.46.20250220.726.data/purelib/pkscreener/classes/ConfigManager.py,sha256=THcfBgua5hr1Pv7AwEDBu2yurCNteGM04jY3Fr_MeBg,53565
21
- pkscreener-0.46.20250220.726.data/purelib/pkscreener/classes/ConsoleMenuUtility.py,sha256=fyR7dEsAaEWEe5SyaVgwLPdU4h4pI8SozUhsPZXShpg,10037
22
- pkscreener-0.46.20250220.726.data/purelib/pkscreener/classes/ConsoleUtility.py,sha256=TrEnTT4pmsBpEYdwD2oAtNqNG_drPe1LVkhthP2540I,12096
23
- pkscreener-0.46.20250220.726.data/purelib/pkscreener/classes/Fetcher.py,sha256=3-6x_XoHDzMk5HV40oMS-8hYXRSJ-BaDdfB0KIDnb4c,14766
24
- pkscreener-0.46.20250220.726.data/purelib/pkscreener/classes/GlobalStore.py,sha256=IzoYMybXpVVf6YwZi7j34rP-hNd7sMened8TAMu_-A8,3709
25
- pkscreener-0.46.20250220.726.data/purelib/pkscreener/classes/ImageUtility.py,sha256=mgJUzjrOKQ1mYV5P_ylhBnaF7ZgOO6ogjy22Rt49TNI,37032
26
- pkscreener-0.46.20250220.726.data/purelib/pkscreener/classes/MarketMonitor.py,sha256=GQOPLuUhgcrnVa0mI8ZvXqQ4vPFW00FHW_vMfICnko8,22079
27
- pkscreener-0.46.20250220.726.data/purelib/pkscreener/classes/MarketStatus.py,sha256=dNg8znbRpt7ID3U_1nmclD4zSLtveJeYeRbS0l6HLtE,3737
28
- pkscreener-0.46.20250220.726.data/purelib/pkscreener/classes/MenuOptions.py,sha256=iZb0zBs7lcP60cmuP7Z5xmXfNtTFcFH6ZWOuoileErE,64552
29
- pkscreener-0.46.20250220.726.data/purelib/pkscreener/classes/Messenger.py,sha256=peyY-YiqdC1bp-3DlJXILRa9HGYbqGVzf1wil0fYv98,8396
30
- pkscreener-0.46.20250220.726.data/purelib/pkscreener/classes/OtaUpdater.py,sha256=_7-nFAC-vAcmZ1Nwi5g5tfp7hKQQPuLUnBCOzrwC39g,13491
31
- pkscreener-0.46.20250220.726.data/purelib/pkscreener/classes/PKAnalytics.py,sha256=_X-2OFw2yQVmXlEIRsnBVNy9fhYyxqt0BOqADD4v08U,5246
32
- pkscreener-0.46.20250220.726.data/purelib/pkscreener/classes/PKDataService.py,sha256=BipM8Z4rS6h12cF6VWv_u4Z8ee7psMFd1yUojejW1Ag,3393
33
- pkscreener-0.46.20250220.726.data/purelib/pkscreener/classes/PKDemoHandler.py,sha256=r4KrZF8TaOu1J0nu8sUsgWEvnbndboWQQvz69GOy1Fk,2207
34
- pkscreener-0.46.20250220.726.data/purelib/pkscreener/classes/PKMarketOpenCloseAnalyser.py,sha256=T7S0DRv4Tqg77S5CyTWQUgpIAtx0NEtSVAplkynS2YM,33833
35
- pkscreener-0.46.20250220.726.data/purelib/pkscreener/classes/PKPremiumHandler.py,sha256=r16-u9fyc0ftgnSnZnz-JusTfEzyQIyKkvgbPuSd7W4,5611
36
- pkscreener-0.46.20250220.726.data/purelib/pkscreener/classes/PKScanRunner.py,sha256=EPLo2euBMfA9omnqrr5pXv2h9KzTcPZM-PXRFI26LSo,26791
37
- pkscreener-0.46.20250220.726.data/purelib/pkscreener/classes/PKScheduledTaskProgress.py,sha256=h19ZuxoalB50pnZjntFh12b9mBozvMqhKYq6TL18vo4,1657
38
- pkscreener-0.46.20250220.726.data/purelib/pkscreener/classes/PKScheduler.py,sha256=qThoz0yXLmHEWAiD_TdkIrzJb37b_m830JJFrkN1Tio,8814
39
- pkscreener-0.46.20250220.726.data/purelib/pkscreener/classes/PKSpreadsheets.py,sha256=1I7YGGPPY879K5JeTZ_d1FNCpjloh6TZrx91JlwT20o,8298
40
- pkscreener-0.46.20250220.726.data/purelib/pkscreener/classes/PKTask.py,sha256=4q87uD2cXvp0AbP6I73xPP39F0mfnpHQutsxxqpnxJM,1867
41
- pkscreener-0.46.20250220.726.data/purelib/pkscreener/classes/PKUserRegistration.py,sha256=ZbnPzgvT5Je9X0Dm6bewSp8u7Fj_szNucaYnit_AtCg,11465
42
- pkscreener-0.46.20250220.726.data/purelib/pkscreener/classes/Pktalib.py,sha256=xketnpMVDGHOFg47LFavaU-agWy370VanYWyzzuLY8c,33386
43
- pkscreener-0.46.20250220.726.data/purelib/pkscreener/classes/Portfolio.py,sha256=JZ93n3Zk9nkSFaX-lHyQiFnavHVmHPFoy-L_4gugj54,13895
44
- pkscreener-0.46.20250220.726.data/purelib/pkscreener/classes/PortfolioXRay.py,sha256=4MjXqBAVUlfN4w5tTmgEnQGMoy0hFu_uaVgrmai1fN4,48339
45
- pkscreener-0.46.20250220.726.data/purelib/pkscreener/classes/ScreeningStatistics.py,sha256=YSg4cynnDcn7cUK6VUBRpMmcNsKG3_CCzTSyobiCk2k,221479
46
- pkscreener-0.46.20250220.726.data/purelib/pkscreener/classes/StockScreener.py,sha256=F0SWa1DSTgYdSWnkPTR9kmOKgHLtaqNMCtJP8yZkDnE,67252
47
- pkscreener-0.46.20250220.726.data/purelib/pkscreener/classes/StockSentiment.py,sha256=WL7TBAHDSIN5cgZ9uTbbEFnUPo4G-YIzEv16RpPGaro,3546
48
- pkscreener-0.46.20250220.726.data/purelib/pkscreener/classes/UserMenuChoicesHandler.py,sha256=_fTCscTLEjoU-n12V9237uDN6Jf8nGCvGdBVkpD3Ap4,4947
49
- pkscreener-0.46.20250220.726.data/purelib/pkscreener/classes/Utility.py,sha256=Cn_QrVH40rQWkHW2e2NolE0b18qszvGXfVLdwAqD7sM,13562
50
- pkscreener-0.46.20250220.726.data/purelib/pkscreener/classes/WorkflowManager.py,sha256=YRUiZSq83SEx2qB0wTBDE4KFaYqEz1Qu4FSCAzl6xzU,5663
51
- pkscreener-0.46.20250220.726.data/purelib/pkscreener/classes/__init__.py,sha256=SWKun2AE-t74nmPIr69l-XnPMRnt9dV5P9jHquf2G2w,28
52
- pkscreener-0.46.20250220.726.data/purelib/pkscreener/classes/keys.py,sha256=LQq_t1lSh0x4TbRCIDhoCil3xctgLLeVk5f2vgrl1tk,6789
53
- pkscreener-0.46.20250220.726.dist-info/LICENSE,sha256=CdnyGrl-xRYX67ZkdERZWHr6BlTxOyg8Z8sK1XQ5Xsg,1078
54
- pkscreener-0.46.20250220.726.dist-info/METADATA,sha256=Dqk1oXmnHT_UsAGOxQfhAhr0F1A6I4iRQOCY8vtyJPA,34740
55
- pkscreener-0.46.20250220.726.dist-info/WHEEL,sha256=aDUArjEbIuDQzblE24IvdIsBzRhJEjiXmuNUYQ-gpaA,104
56
- pkscreener-0.46.20250220.726.dist-info/entry_points.txt,sha256=Pm30xm4sU7YFtFJUC-Te8VlqOvYAvWKFFA5AfQE0xGY,120
57
- pkscreener-0.46.20250220.726.dist-info/top_level.txt,sha256=oIfcPPw58Q4KU-GDqp25dXbrtvxYXJBCo_em6i5aVvY,11
58
- pkscreener-0.46.20250220.726.dist-info/RECORD,,