pkscreener 0.46.20250218.722__cp310-cp310-macosx_13_0_arm64.whl → 0.46.20250219.725__cp310-cp310-macosx_13_0_arm64.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.20250218.722.data → pkscreener-0.46.20250219.725.data}/purelib/pkscreener/README.txt +6 -6
  2. {pkscreener-0.46.20250218.722.data → pkscreener-0.46.20250219.725.data}/purelib/pkscreener/classes/ScreeningStatistics.py +12 -2
  3. {pkscreener-0.46.20250218.722.data → pkscreener-0.46.20250219.725.data}/purelib/pkscreener/classes/WorkflowManager.py +1 -1
  4. pkscreener-0.46.20250219.725.data/purelib/pkscreener/classes/__init__.py +1 -0
  5. {pkscreener-0.46.20250218.722.data → pkscreener-0.46.20250219.725.data}/purelib/pkscreener/globals.py +1 -1
  6. {pkscreener-0.46.20250218.722.data → pkscreener-0.46.20250219.725.data}/purelib/pkscreener/pkscreenerbot.py +2 -2
  7. {pkscreener-0.46.20250218.722.data → pkscreener-0.46.20250219.725.data}/purelib/pkscreener/pkscreenercli.py +9 -1
  8. {pkscreener-0.46.20250218.722.dist-info → pkscreener-0.46.20250219.725.dist-info}/METADATA +8 -8
  9. pkscreener-0.46.20250219.725.dist-info/RECORD +58 -0
  10. pkscreener-0.46.20250218.722.data/purelib/pkscreener/classes/__init__.py +0 -1
  11. pkscreener-0.46.20250218.722.dist-info/RECORD +0 -58
  12. {pkscreener-0.46.20250218.722.data → pkscreener-0.46.20250219.725.data}/purelib/pkscreener/Disclaimer.txt +0 -0
  13. {pkscreener-0.46.20250218.722.data → pkscreener-0.46.20250219.725.data}/purelib/pkscreener/LICENSE-Others.txt +0 -0
  14. {pkscreener-0.46.20250218.722.data → pkscreener-0.46.20250219.725.data}/purelib/pkscreener/LICENSE.txt +0 -0
  15. {pkscreener-0.46.20250218.722.data → pkscreener-0.46.20250219.725.data}/purelib/pkscreener/LogoWM.txt +0 -0
  16. {pkscreener-0.46.20250218.722.data → pkscreener-0.46.20250219.725.data}/purelib/pkscreener/__init__.py +0 -0
  17. {pkscreener-0.46.20250218.722.data → pkscreener-0.46.20250219.725.data}/purelib/pkscreener/classes/ArtTexts.py +0 -0
  18. {pkscreener-0.46.20250218.722.data → pkscreener-0.46.20250219.725.data}/purelib/pkscreener/classes/AssetsManager.py +0 -0
  19. {pkscreener-0.46.20250218.722.data → pkscreener-0.46.20250219.725.data}/purelib/pkscreener/classes/Backtest.py +0 -0
  20. {pkscreener-0.46.20250218.722.data → pkscreener-0.46.20250219.725.data}/purelib/pkscreener/classes/Barometer.py +0 -0
  21. {pkscreener-0.46.20250218.722.data → pkscreener-0.46.20250219.725.data}/purelib/pkscreener/classes/BaseScreeningStatistics.py +0 -0
  22. {pkscreener-0.46.20250218.722.data → pkscreener-0.46.20250219.725.data}/purelib/pkscreener/classes/CandlePatterns.py +0 -0
  23. {pkscreener-0.46.20250218.722.data → pkscreener-0.46.20250219.725.data}/purelib/pkscreener/classes/Changelog.py +0 -0
  24. {pkscreener-0.46.20250218.722.data → pkscreener-0.46.20250219.725.data}/purelib/pkscreener/classes/ConfigManager.py +0 -0
  25. {pkscreener-0.46.20250218.722.data → pkscreener-0.46.20250219.725.data}/purelib/pkscreener/classes/ConsoleMenuUtility.py +0 -0
  26. {pkscreener-0.46.20250218.722.data → pkscreener-0.46.20250219.725.data}/purelib/pkscreener/classes/ConsoleUtility.py +0 -0
  27. {pkscreener-0.46.20250218.722.data → pkscreener-0.46.20250219.725.data}/purelib/pkscreener/classes/Fetcher.py +0 -0
  28. {pkscreener-0.46.20250218.722.data → pkscreener-0.46.20250219.725.data}/purelib/pkscreener/classes/GlobalStore.py +0 -0
  29. {pkscreener-0.46.20250218.722.data → pkscreener-0.46.20250219.725.data}/purelib/pkscreener/classes/ImageUtility.py +0 -0
  30. {pkscreener-0.46.20250218.722.data → pkscreener-0.46.20250219.725.data}/purelib/pkscreener/classes/MarketMonitor.py +0 -0
  31. {pkscreener-0.46.20250218.722.data → pkscreener-0.46.20250219.725.data}/purelib/pkscreener/classes/MarketStatus.py +0 -0
  32. {pkscreener-0.46.20250218.722.data → pkscreener-0.46.20250219.725.data}/purelib/pkscreener/classes/MenuOptions.py +0 -0
  33. {pkscreener-0.46.20250218.722.data → pkscreener-0.46.20250219.725.data}/purelib/pkscreener/classes/Messenger.py +0 -0
  34. {pkscreener-0.46.20250218.722.data → pkscreener-0.46.20250219.725.data}/purelib/pkscreener/classes/OtaUpdater.py +0 -0
  35. {pkscreener-0.46.20250218.722.data → pkscreener-0.46.20250219.725.data}/purelib/pkscreener/classes/PKAnalytics.py +0 -0
  36. {pkscreener-0.46.20250218.722.data → pkscreener-0.46.20250219.725.data}/purelib/pkscreener/classes/PKDataService.py +0 -0
  37. {pkscreener-0.46.20250218.722.data → pkscreener-0.46.20250219.725.data}/purelib/pkscreener/classes/PKDemoHandler.py +0 -0
  38. {pkscreener-0.46.20250218.722.data → pkscreener-0.46.20250219.725.data}/purelib/pkscreener/classes/PKMarketOpenCloseAnalyser.py +0 -0
  39. {pkscreener-0.46.20250218.722.data → pkscreener-0.46.20250219.725.data}/purelib/pkscreener/classes/PKPremiumHandler.py +0 -0
  40. {pkscreener-0.46.20250218.722.data → pkscreener-0.46.20250219.725.data}/purelib/pkscreener/classes/PKScanRunner.py +0 -0
  41. {pkscreener-0.46.20250218.722.data → pkscreener-0.46.20250219.725.data}/purelib/pkscreener/classes/PKScheduledTaskProgress.py +0 -0
  42. {pkscreener-0.46.20250218.722.data → pkscreener-0.46.20250219.725.data}/purelib/pkscreener/classes/PKScheduler.py +0 -0
  43. {pkscreener-0.46.20250218.722.data → pkscreener-0.46.20250219.725.data}/purelib/pkscreener/classes/PKSpreadsheets.py +0 -0
  44. {pkscreener-0.46.20250218.722.data → pkscreener-0.46.20250219.725.data}/purelib/pkscreener/classes/PKTask.py +0 -0
  45. {pkscreener-0.46.20250218.722.data → pkscreener-0.46.20250219.725.data}/purelib/pkscreener/classes/PKUserRegistration.py +0 -0
  46. {pkscreener-0.46.20250218.722.data → pkscreener-0.46.20250219.725.data}/purelib/pkscreener/classes/Pktalib.py +0 -0
  47. {pkscreener-0.46.20250218.722.data → pkscreener-0.46.20250219.725.data}/purelib/pkscreener/classes/Portfolio.py +0 -0
  48. {pkscreener-0.46.20250218.722.data → pkscreener-0.46.20250219.725.data}/purelib/pkscreener/classes/PortfolioXRay.py +0 -0
  49. {pkscreener-0.46.20250218.722.data → pkscreener-0.46.20250219.725.data}/purelib/pkscreener/classes/StockScreener.py +0 -0
  50. {pkscreener-0.46.20250218.722.data → pkscreener-0.46.20250219.725.data}/purelib/pkscreener/classes/StockSentiment.py +0 -0
  51. {pkscreener-0.46.20250218.722.data → pkscreener-0.46.20250219.725.data}/purelib/pkscreener/classes/UserMenuChoicesHandler.py +0 -0
  52. {pkscreener-0.46.20250218.722.data → pkscreener-0.46.20250219.725.data}/purelib/pkscreener/classes/Utility.py +0 -0
  53. {pkscreener-0.46.20250218.722.data → pkscreener-0.46.20250219.725.data}/purelib/pkscreener/classes/keys.py +0 -0
  54. {pkscreener-0.46.20250218.722.data → pkscreener-0.46.20250219.725.data}/purelib/pkscreener/courbd.ttf +0 -0
  55. {pkscreener-0.46.20250218.722.data → pkscreener-0.46.20250219.725.data}/purelib/pkscreener/pkscreener.ini +0 -0
  56. {pkscreener-0.46.20250218.722.data → pkscreener-0.46.20250219.725.data}/purelib/pkscreener/requirements.txt +0 -0
  57. {pkscreener-0.46.20250218.722.dist-info → pkscreener-0.46.20250219.725.dist-info}/LICENSE +0 -0
  58. {pkscreener-0.46.20250218.722.dist-info → pkscreener-0.46.20250219.725.dist-info}/WHEEL +0 -0
  59. {pkscreener-0.46.20250218.722.dist-info → pkscreener-0.46.20250219.725.dist-info}/entry_points.txt +0 -0
  60. {pkscreener-0.46.20250218.722.dist-info → pkscreener-0.46.20250219.725.dist-info}/top_level.txt +0 -0
@@ -5,7 +5,7 @@
5
5
  | :-------------: | :-----------------: | :-----------------: | :-----------------: | :-----------------: |
6
6
  | Platforms | [![Windows][Windows-badge]][Windows] | [![Linux(x64)][Linux-badge_x64]][Linux_x64] [![Linux(arm64)][Linux-badge_arm64]][Linux_arm64] | [![Mac OS(x64)][Mac OS-badge_x64]][Mac OS_x64] [![Mac OS(arm64)][Mac OS-badge_arm64]][Mac OS_arm64] | [![Docker Status][Docker Status-badge]][Docker Status] |
7
7
  | Package / Docs | [![Documentation][Documentation-badge]][Documentation] [![OpenSSF Best Practices][OpenSSF-Badge]][OpenSSF-pkscreener] | [![PyPI][pypi-badge]][pypi] | [![is wheel][wheel-badge]][pypi] | ![github license][github-license] |
8
- | Tests/Code-Quality | [![CodeFactor][Codefactor-badge]][Codefactor] | [![Coverage Status][Coverage-Status-badge]][Coverage-Status] | [![codecov][codecov-badge]][codecov] | [![After Market][After Market-badge]][After Market] |
8
+ | Tests/Code-Quality | [![CodeFactor][Codefactor-badge]][Codefactor] | <a href="https://coveralls.io/github/pkjmesra/PKScreener?branch=main"><img src="https://coveralls.io/repos/github/pkjmesra/PKScreener/badge.svg?branch=main"></a> | [![codecov][codecov-badge]][codecov] | [![After Market][After Market-badge]][After Market] |
9
9
 
10
10
  ## What is PKScreener?
11
11
  | Telegram Alerts | Nifty AI Prediction | Scheduling Cron Jobs | On-Demand Telegram Bot | Backtesting / Growth of 10k|
@@ -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.20250218.720/pkscreenercli.exe
331
+ [Windows]: https://github.com/pkjmesra/PKScreener/releases/download/0.46.20250219.724/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.20250218.720/pkscreenercli_x64.bin
333
+ [Linux_x64]: https://github.com/pkjmesra/PKScreener/releases/download/0.46.20250219.724/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.20250218.720/pkscreenercli_arm64.bin
335
+ [Linux_arm64]: https://github.com/pkjmesra/PKScreener/releases/download/0.46.20250219.724/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.20250218.720/pkscreenercli_x64.run
337
+ [Mac OS_x64]: https://github.com/pkjmesra/PKScreener/releases/download/0.46.20250219.724/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.20250218.720/pkscreenercli_arm64.run
339
+ [Mac OS_arm64]: https://github.com/pkjmesra/PKScreener/releases/download/0.46.20250219.724/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
@@ -114,6 +114,8 @@ class ScreeningStatistics:
114
114
  #Calculating signals
115
115
  def computeBuySellSignals(self,df,ema_period=200,retry=True):
116
116
  try:
117
+ df["Above"] = False
118
+ df["Below"] = False
117
119
  if Imports["vectorbt"]:
118
120
  from vectorbt.indicators import MA as vbt
119
121
  if df is not None:
@@ -127,7 +129,11 @@ class ScreeningStatistics:
127
129
  df["Above"] = ema > df["ATRTrailingStop"]
128
130
  df["Below"] = ema < df["ATRTrailingStop"]
129
131
  except (OSError,FileNotFoundError) as e: # pragma: no cover
130
- OutputControls().printOutput(f"{colorText.FAIL}Some dependencies are missing. Try and run this option again.{colorText.END}")
132
+ msg = f"{colorText.FAIL}Some dependencies are missing. Try and run this option again.{colorText.END}"
133
+ if 'unittest' in sys.modules or any("pytest" in arg for arg in sys.argv):
134
+ print(msg)
135
+ else:
136
+ OutputControls().printOutput(msg)
131
137
  # OSError:RALLIS: [Errno 2] No such file or directory: '/tmp/_MEIzoTV6A/vectorbt/templates/light.json'
132
138
  # if "No such file or directory" in str(e):
133
139
  try:
@@ -148,7 +154,11 @@ class ScreeningStatistics:
148
154
  return self.computeBuySellSignals(df,ema_period=ema_period,retry=False)
149
155
  return None
150
156
  except ImportError as e: # pragma: no cover
151
- OutputControls().printOutput(f"{colorText.FAIL}The main module needed for best Buy/Sell result calculation is missing. Falling back on an alternative, but it is not very reliable.{colorText.END}")
157
+ msg = f"{colorText.FAIL}The main module needed for best Buy/Sell result calculation is missing. Falling back on an alternative, but it is not very reliable.{colorText.END}"
158
+ if 'unittest' in sys.modules or any("pytest" in arg for arg in sys.argv):
159
+ print(msg)
160
+ else:
161
+ OutputControls().printOutput(msg)
152
162
  if df is not None:
153
163
  ema = pktalib.EMA(df["Close"], ema_period) if ema_period > 1 else df["Close"]#short_name='EMA', ewm=True)
154
164
  df["Above"] = ema > df["ATRTrailingStop"]
@@ -107,7 +107,7 @@ def run_workflow(command=None, user=None, options=None, workflowType="B",repo=No
107
107
  + '","inputs":{"user":"'
108
108
  + f"{user}"
109
109
  + '","params":"'
110
- + f'{cmd_options}'
110
+ + f'{cmd_options} --triggertimestamp {timestamp}'
111
111
  + f'","ref":"{branch}","alertTrigger":"'
112
112
  + f"{alertTrigger}"
113
113
  + '","name":"'
@@ -0,0 +1 @@
1
+ VERSION='0.46.20250219.725'
@@ -4032,7 +4032,7 @@ def handleAlertSubscriptions(user,message):
4032
4032
  [{"text": f"Yes! Subscribe", "callback_data": f"SUB_{scanId}"}]
4033
4033
  ],
4034
4034
  }
4035
- send_message(message=f"Would you like to subscribe to this ({scanId}) automated scan alert for a day during market hours (NSE - IST timezone)? You will need to pay ₹ {'40' if str(scanId).upper().startswith('P') else '31'} (One time) for automated alerts to {scanId} all day on the day of subscription.",
4035
+ send_message(message=f"🔴 <b>Please check your current alerts, balance and subscriptions using /OTP before subscribing for alerts</b>.🔴 If you are not already subscribed to this alert, would you like to subscribe to this ({scanId}) automated scan alert for a day during market hours (NSE - IST timezone)? You will need to pay ₹ {'40' if str(scanId).upper().startswith('P') else '31'} (One time) for automated alerts to {scanId} all day on the day of subscription. 🔴 If you say <b>Yes</b>, the corresponding charges will be deducted from your alerts balance!🔴",
4036
4036
  userID=int(user),
4037
4037
  reply_markup=reply_markup)
4038
4038
  elif alertUser is not None and len(alertUser.scannerJobs) > 0 and str(scanId) in alertUser.scannerJobs:
@@ -1545,7 +1545,7 @@ def sendSubscriptionOption(update:Update,context:CallbackContext,scanId):
1545
1545
  [{"text": f"Yes! Subscribe", "callback_data": f"SUB_{scanId}"}]
1546
1546
  ],
1547
1547
  }
1548
- message=f"Would you like to subscribe to this (<b>{scanId}</b>) automated scan alert for a day during market hours (NSE - IST timezone)? You will need to pay <b>₹ {'40' if str(scanId).upper().startswith('P') else '31'} (One time per day)</b> for automated alerts to only <b>{scanId}</b> all day on the day of subscription."
1548
+ message=f"🔴 <b>Please check your current alerts, balance and subscriptions using /OTP before subscribing for alerts</b>.🔴 If you are not already subscribed to this alert, would you like to subscribe to this (<b>{scanId}</b>) automated scan alert for a day during market hours (NSE - IST timezone)? You will need to pay {'40' if str(scanId).upper().startswith('P') else '31'} (One time) for automated alerts to <b>{scanId}</b> all day on the day of subscription. 🔴 If you say <b>Yes</b>, the corresponding charges will be deducted from your alerts balance!🔴"
1549
1549
  if len(str(scanId).strip()) > 0 and not str(scanId).startswith("B"):
1550
1550
  context.bot.send_message(
1551
1551
  chat_id=user.id, text=message, reply_markup=reply_markup, parse_mode="HTML"
@@ -2053,7 +2053,7 @@ def help_command(update: Update, context: CallbackContext) -> None:
2053
2053
  # Get user that sent /start and log his name
2054
2054
  user = updateCarrier.from_user
2055
2055
 
2056
- if user.id in user_states and user.id == OWNER_USER:
2056
+ if user.id in user_states and user.username.lower() == OWNER_USER.lower():
2057
2057
  if "_awaiting_input_1" in user_states[user.id]:
2058
2058
  hskCmd = user_states[user.id].split("_")[0]
2059
2059
  user_states[user.id] = f"{hskCmd}_awaiting_input_2_{updateCarrier.text}"
@@ -89,7 +89,6 @@ def decorator(func):
89
89
 
90
90
  return new_func
91
91
 
92
-
93
92
  # print = decorator(print) # current file
94
93
  def disableSysOut(input=True, disable=True):
95
94
  global printenabled,originalStdOut, original__stdout
@@ -638,6 +637,15 @@ def runApplication():
638
637
  MarketMonitor().refresh(screen_df=results,screenOptions=monitorOption_org, chosenMenu=chosenMenu[:120],dbTimestamp=f"{dbTimestamp} | CycleTime:{elapsed_time}s",telegram=args.telegram)
639
638
  menuChoiceHierarchy = ""
640
639
  args.pipedtitle = ""
640
+ # check to see if the monitor was launched before the market close hours.
641
+ # If so, close it.
642
+ if "RUNNER" in os.environ.keys() and args.triggertimestamp is not None:
643
+ from datetime import timezone
644
+ from PKDevTools.classes.MarketHours import MarketHours
645
+ marketCloseTS = PKDateUtilities.currentDateTime(simulate=True,hour=MarketHours().closeHour,minute=MarketHours().closeMinute).replace(tzinfo=timezone.utc).timestamp()
646
+ if int(args.triggertimestamp) < int(marketCloseTS) and int(PKDateUtilities.currentDateTimestamp()) >= marketCloseTS:
647
+ OutputControls().printOutput("Exiting monitor now since market has closed!",enableMultipleLineOutput=True)
648
+ sys.exit(0)
641
649
 
642
650
  def updateProgressStatus(args,monitorOptions=None):
643
651
  from pkscreener.classes.MenuOptions import PREDEFINED_SCAN_MENU_TEXTS,PREDEFINED_SCAN_MENU_VALUES
@@ -1,9 +1,9 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: pkscreener
3
- Version: 0.46.20250218.722
3
+ Version: 0.46.20250219.725
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.20250218.722.zip
6
+ Download-URL: https://github.com/pkjmesra/pkscreener/archive/v0.46.20250219.725.zip
7
7
  Author: pkjmesra
8
8
  Author-email: pkjmesra@gmail.com
9
9
  License: OSI Approved (MIT)
@@ -57,7 +57,7 @@ Requires-Dist: yfinance ==0.2.28
57
57
  | :-------------: | :-----------------: | :-----------------: | :-----------------: | :-----------------: |
58
58
  | Platforms | [![Windows][Windows-badge]][Windows] | [![Linux(x64)][Linux-badge_x64]][Linux_x64] [![Linux(arm64)][Linux-badge_arm64]][Linux_arm64] | [![Mac OS(x64)][Mac OS-badge_x64]][Mac OS_x64] [![Mac OS(arm64)][Mac OS-badge_arm64]][Mac OS_arm64] | [![Docker Status][Docker Status-badge]][Docker Status] |
59
59
  | Package / Docs | [![Documentation][Documentation-badge]][Documentation] [![OpenSSF Best Practices][OpenSSF-Badge]][OpenSSF-pkscreener] | [![PyPI][pypi-badge]][pypi] | [![is wheel][wheel-badge]][pypi] | ![github license][github-license] |
60
- | Tests/Code-Quality | [![CodeFactor][Codefactor-badge]][Codefactor] | [![Coverage Status][Coverage-Status-badge]][Coverage-Status] | [![codecov][codecov-badge]][codecov] | [![After Market][After Market-badge]][After Market] |
60
+ | Tests/Code-Quality | [![CodeFactor][Codefactor-badge]][Codefactor] | <a href="https://coveralls.io/github/pkjmesra/PKScreener?branch=main"><img src="https://coveralls.io/repos/github/pkjmesra/PKScreener/badge.svg?branch=main"></a> | [![codecov][codecov-badge]][codecov] | [![After Market][After Market-badge]][After Market] |
61
61
 
62
62
  ## What is PKScreener?
63
63
  | Telegram Alerts | Nifty AI Prediction | Scheduling Cron Jobs | On-Demand Telegram Bot | Backtesting / Growth of 10k|
@@ -380,15 +380,15 @@ After you have finished the run, go to that copied path, zip the contents of the
380
380
  [MADE-IN-INDIA-badge]: https://img.shields.io/badge/MADE%20WITH%20%E2%9D%A4%20IN-INDIA-orange
381
381
  [MADE-IN-INDIA]: https://en.wikipedia.org/wiki/India
382
382
  [Windows-badge]: https://img.shields.io/badge/Windows-0078D6?logo=windows&logoColor=white
383
- [Windows]: https://github.com/pkjmesra/PKScreener/releases/download/0.46.20250218.720/pkscreenercli.exe
383
+ [Windows]: https://github.com/pkjmesra/PKScreener/releases/download/0.46.20250219.724/pkscreenercli.exe
384
384
  [Linux-badge_x64]: https://img.shields.io/badge/Linux(x64)-FCC624?logo=linux&logoColor=black
385
- [Linux_x64]: https://github.com/pkjmesra/PKScreener/releases/download/0.46.20250218.720/pkscreenercli_x64.bin
385
+ [Linux_x64]: https://github.com/pkjmesra/PKScreener/releases/download/0.46.20250219.724/pkscreenercli_x64.bin
386
386
  [Linux-badge_arm64]: https://img.shields.io/badge/Linux(arm64)-FCC624?logo=linux&logoColor=black
387
- [Linux_arm64]: https://github.com/pkjmesra/PKScreener/releases/download/0.46.20250218.720/pkscreenercli_arm64.bin
387
+ [Linux_arm64]: https://github.com/pkjmesra/PKScreener/releases/download/0.46.20250219.724/pkscreenercli_arm64.bin
388
388
  [Mac OS-badge_x64]: https://img.shields.io/badge/mac%20os(x64)-D3D3D3?logo=apple&logoColor=000000
389
- [Mac OS_x64]: https://github.com/pkjmesra/PKScreener/releases/download/0.46.20250218.720/pkscreenercli_x64.run
389
+ [Mac OS_x64]: https://github.com/pkjmesra/PKScreener/releases/download/0.46.20250219.724/pkscreenercli_x64.run
390
390
  [Mac OS-badge_arm64]: https://img.shields.io/badge/mac%20os(arm64)-D3D3D3?logo=apple&logoColor=000000
391
- [Mac OS_arm64]: https://github.com/pkjmesra/PKScreener/releases/download/0.46.20250218.720/pkscreenercli_arm64.run
391
+ [Mac OS_arm64]: https://github.com/pkjmesra/PKScreener/releases/download/0.46.20250219.724/pkscreenercli_arm64.run
392
392
  [GitHub release (latest by date)-badge]: https://img.shields.io/github/v/release/pkjmesra/PKScreener
393
393
  [GitHub release (latest by date)]: https://github.com/pkjmesra/PKScreener/releases/latest
394
394
  [pypi-badge]: https://img.shields.io/pypi/v/pkscreener.svg?style=flat-square
@@ -0,0 +1,58 @@
1
+ pkscreener-0.46.20250219.725.data/purelib/pkscreener/Disclaimer.txt,sha256=kBZQSQCFfL2kc1bijXWndZzkjMTtnpH_B7XtDPPMcuw,1396
2
+ pkscreener-0.46.20250219.725.data/purelib/pkscreener/LICENSE-Others.txt,sha256=WBslRYLBoqYg-vr25sS1c_UI7cuUnsGk0nIQLBzTWEE,271830
3
+ pkscreener-0.46.20250219.725.data/purelib/pkscreener/LICENSE.txt,sha256=CdnyGrl-xRYX67ZkdERZWHr6BlTxOyg8Z8sK1XQ5Xsg,1078
4
+ pkscreener-0.46.20250219.725.data/purelib/pkscreener/LogoWM.txt,sha256=7Njnavpy_FKY4Iwbzv1JqsYMcOdkDSKAKXP3SAItKV0,14868
5
+ pkscreener-0.46.20250219.725.data/purelib/pkscreener/README.txt,sha256=IpF3o80CwyP1VRnbKuVydMRouogWrfbVz9JOR863U9s,32802
6
+ pkscreener-0.46.20250219.725.data/purelib/pkscreener/__init__.py,sha256=aZ62qYACxsU8m8_5JkzNzos1lVFNcMGPRMgeddnUUiQ,1633
7
+ pkscreener-0.46.20250219.725.data/purelib/pkscreener/courbd.ttf,sha256=SKpnp-BRs7AZcdI83nencS3Q7xe0anbbP1YMOxLlEhU,791436
8
+ pkscreener-0.46.20250219.725.data/purelib/pkscreener/globals.py,sha256=q1FCCPcnJ-IethQk-V-cCRCIW6PtZuvKSCNmSrgfA_Y,241097
9
+ pkscreener-0.46.20250219.725.data/purelib/pkscreener/pkscreener.ini,sha256=QKs6j4qhyH37L_MdG3ztAIwgqs4c3qihuqDIoex-V2g,2391
10
+ pkscreener-0.46.20250219.725.data/purelib/pkscreener/pkscreenerbot.py,sha256=hi1qvI2yb9aNkTP4BAZyuVzpLf-_gR0JBaozGUIm32o,117163
11
+ pkscreener-0.46.20250219.725.data/purelib/pkscreener/pkscreenercli.py,sha256=-2cgfdCUJhp4xeZfcbj2ntUp_MvsrVJvz1dnsOBQMZA,57826
12
+ pkscreener-0.46.20250219.725.data/purelib/pkscreener/requirements.txt,sha256=dQ-B6I7-ueXFLeOmUgBNt99O8UaeNOFvW8-VRvxlx4M,1457
13
+ pkscreener-0.46.20250219.725.data/purelib/pkscreener/classes/ArtTexts.py,sha256=LZ8ynyS8woliv8bM9Nq4aU0VCoJDJU0FgZk8V5zYPmg,19504
14
+ pkscreener-0.46.20250219.725.data/purelib/pkscreener/classes/AssetsManager.py,sha256=SutbAZ4JiGhzN0tzfa9vNpHdW6alSL67Jz-knPPcqBw,33706
15
+ pkscreener-0.46.20250219.725.data/purelib/pkscreener/classes/Backtest.py,sha256=wobBQgqVQhFNZlyJ2hgMXQqofrICc_3F0I5D66DUvGI,10530
16
+ pkscreener-0.46.20250219.725.data/purelib/pkscreener/classes/Barometer.py,sha256=WPrgtIXb1nIbb-FnuRs-yvOQ5baNQRBgUR_zWg1moxk,9464
17
+ pkscreener-0.46.20250219.725.data/purelib/pkscreener/classes/BaseScreeningStatistics.py,sha256=u5t1wf-HsZ8xEtprON55ehIR3F2LNNq8LvwgIrhYRmU,3000
18
+ pkscreener-0.46.20250219.725.data/purelib/pkscreener/classes/CandlePatterns.py,sha256=gaswU2OeDa3JXjEafR2clUpKW5v8_1_tJuNPuTWsAss,17066
19
+ pkscreener-0.46.20250219.725.data/purelib/pkscreener/classes/Changelog.py,sha256=vUOpca28OACNhavAmjBm4xco3u6fcHqWlnlmCJqO5Lk,1469
20
+ pkscreener-0.46.20250219.725.data/purelib/pkscreener/classes/ConfigManager.py,sha256=THcfBgua5hr1Pv7AwEDBu2yurCNteGM04jY3Fr_MeBg,53565
21
+ pkscreener-0.46.20250219.725.data/purelib/pkscreener/classes/ConsoleMenuUtility.py,sha256=fyR7dEsAaEWEe5SyaVgwLPdU4h4pI8SozUhsPZXShpg,10037
22
+ pkscreener-0.46.20250219.725.data/purelib/pkscreener/classes/ConsoleUtility.py,sha256=TrEnTT4pmsBpEYdwD2oAtNqNG_drPe1LVkhthP2540I,12096
23
+ pkscreener-0.46.20250219.725.data/purelib/pkscreener/classes/Fetcher.py,sha256=WWX9_NO3JTw6_1Z9SqPm4Nj-4Uy_4PPYEMVyD5FLnVo,12336
24
+ pkscreener-0.46.20250219.725.data/purelib/pkscreener/classes/GlobalStore.py,sha256=IzoYMybXpVVf6YwZi7j34rP-hNd7sMened8TAMu_-A8,3709
25
+ pkscreener-0.46.20250219.725.data/purelib/pkscreener/classes/ImageUtility.py,sha256=mgJUzjrOKQ1mYV5P_ylhBnaF7ZgOO6ogjy22Rt49TNI,37032
26
+ pkscreener-0.46.20250219.725.data/purelib/pkscreener/classes/MarketMonitor.py,sha256=GQOPLuUhgcrnVa0mI8ZvXqQ4vPFW00FHW_vMfICnko8,22079
27
+ pkscreener-0.46.20250219.725.data/purelib/pkscreener/classes/MarketStatus.py,sha256=dNg8znbRpt7ID3U_1nmclD4zSLtveJeYeRbS0l6HLtE,3737
28
+ pkscreener-0.46.20250219.725.data/purelib/pkscreener/classes/MenuOptions.py,sha256=iZb0zBs7lcP60cmuP7Z5xmXfNtTFcFH6ZWOuoileErE,64552
29
+ pkscreener-0.46.20250219.725.data/purelib/pkscreener/classes/Messenger.py,sha256=peyY-YiqdC1bp-3DlJXILRa9HGYbqGVzf1wil0fYv98,8396
30
+ pkscreener-0.46.20250219.725.data/purelib/pkscreener/classes/OtaUpdater.py,sha256=_7-nFAC-vAcmZ1Nwi5g5tfp7hKQQPuLUnBCOzrwC39g,13491
31
+ pkscreener-0.46.20250219.725.data/purelib/pkscreener/classes/PKAnalytics.py,sha256=_X-2OFw2yQVmXlEIRsnBVNy9fhYyxqt0BOqADD4v08U,5246
32
+ pkscreener-0.46.20250219.725.data/purelib/pkscreener/classes/PKDataService.py,sha256=BipM8Z4rS6h12cF6VWv_u4Z8ee7psMFd1yUojejW1Ag,3393
33
+ pkscreener-0.46.20250219.725.data/purelib/pkscreener/classes/PKDemoHandler.py,sha256=r4KrZF8TaOu1J0nu8sUsgWEvnbndboWQQvz69GOy1Fk,2207
34
+ pkscreener-0.46.20250219.725.data/purelib/pkscreener/classes/PKMarketOpenCloseAnalyser.py,sha256=T7S0DRv4Tqg77S5CyTWQUgpIAtx0NEtSVAplkynS2YM,33833
35
+ pkscreener-0.46.20250219.725.data/purelib/pkscreener/classes/PKPremiumHandler.py,sha256=r16-u9fyc0ftgnSnZnz-JusTfEzyQIyKkvgbPuSd7W4,5611
36
+ pkscreener-0.46.20250219.725.data/purelib/pkscreener/classes/PKScanRunner.py,sha256=EPLo2euBMfA9omnqrr5pXv2h9KzTcPZM-PXRFI26LSo,26791
37
+ pkscreener-0.46.20250219.725.data/purelib/pkscreener/classes/PKScheduledTaskProgress.py,sha256=h19ZuxoalB50pnZjntFh12b9mBozvMqhKYq6TL18vo4,1657
38
+ pkscreener-0.46.20250219.725.data/purelib/pkscreener/classes/PKScheduler.py,sha256=qThoz0yXLmHEWAiD_TdkIrzJb37b_m830JJFrkN1Tio,8814
39
+ pkscreener-0.46.20250219.725.data/purelib/pkscreener/classes/PKSpreadsheets.py,sha256=1I7YGGPPY879K5JeTZ_d1FNCpjloh6TZrx91JlwT20o,8298
40
+ pkscreener-0.46.20250219.725.data/purelib/pkscreener/classes/PKTask.py,sha256=4q87uD2cXvp0AbP6I73xPP39F0mfnpHQutsxxqpnxJM,1867
41
+ pkscreener-0.46.20250219.725.data/purelib/pkscreener/classes/PKUserRegistration.py,sha256=ZbnPzgvT5Je9X0Dm6bewSp8u7Fj_szNucaYnit_AtCg,11465
42
+ pkscreener-0.46.20250219.725.data/purelib/pkscreener/classes/Pktalib.py,sha256=xketnpMVDGHOFg47LFavaU-agWy370VanYWyzzuLY8c,33386
43
+ pkscreener-0.46.20250219.725.data/purelib/pkscreener/classes/Portfolio.py,sha256=JZ93n3Zk9nkSFaX-lHyQiFnavHVmHPFoy-L_4gugj54,13895
44
+ pkscreener-0.46.20250219.725.data/purelib/pkscreener/classes/PortfolioXRay.py,sha256=4MjXqBAVUlfN4w5tTmgEnQGMoy0hFu_uaVgrmai1fN4,48339
45
+ pkscreener-0.46.20250219.725.data/purelib/pkscreener/classes/ScreeningStatistics.py,sha256=YSg4cynnDcn7cUK6VUBRpMmcNsKG3_CCzTSyobiCk2k,221479
46
+ pkscreener-0.46.20250219.725.data/purelib/pkscreener/classes/StockScreener.py,sha256=F0SWa1DSTgYdSWnkPTR9kmOKgHLtaqNMCtJP8yZkDnE,67252
47
+ pkscreener-0.46.20250219.725.data/purelib/pkscreener/classes/StockSentiment.py,sha256=WL7TBAHDSIN5cgZ9uTbbEFnUPo4G-YIzEv16RpPGaro,3546
48
+ pkscreener-0.46.20250219.725.data/purelib/pkscreener/classes/UserMenuChoicesHandler.py,sha256=_fTCscTLEjoU-n12V9237uDN6Jf8nGCvGdBVkpD3Ap4,4947
49
+ pkscreener-0.46.20250219.725.data/purelib/pkscreener/classes/Utility.py,sha256=Cn_QrVH40rQWkHW2e2NolE0b18qszvGXfVLdwAqD7sM,13562
50
+ pkscreener-0.46.20250219.725.data/purelib/pkscreener/classes/WorkflowManager.py,sha256=YRUiZSq83SEx2qB0wTBDE4KFaYqEz1Qu4FSCAzl6xzU,5663
51
+ pkscreener-0.46.20250219.725.data/purelib/pkscreener/classes/__init__.py,sha256=B0ZsHVbm8GKemKpXfcjGPXy3WKG--Yvpq_lYAExzgqY,28
52
+ pkscreener-0.46.20250219.725.data/purelib/pkscreener/classes/keys.py,sha256=LQq_t1lSh0x4TbRCIDhoCil3xctgLLeVk5f2vgrl1tk,6789
53
+ pkscreener-0.46.20250219.725.dist-info/LICENSE,sha256=CdnyGrl-xRYX67ZkdERZWHr6BlTxOyg8Z8sK1XQ5Xsg,1078
54
+ pkscreener-0.46.20250219.725.dist-info/METADATA,sha256=EZqRbuaYbSrvLZL8CJgQqnB1tyGDxH4xUUyhAkIquGA,34492
55
+ pkscreener-0.46.20250219.725.dist-info/WHEEL,sha256=e371LA3b7MNA0F-VeyIqNDak9eYypgZ6oD_mcY6JoTQ,110
56
+ pkscreener-0.46.20250219.725.dist-info/entry_points.txt,sha256=Pm30xm4sU7YFtFJUC-Te8VlqOvYAvWKFFA5AfQE0xGY,120
57
+ pkscreener-0.46.20250219.725.dist-info/top_level.txt,sha256=oIfcPPw58Q4KU-GDqp25dXbrtvxYXJBCo_em6i5aVvY,11
58
+ pkscreener-0.46.20250219.725.dist-info/RECORD,,
@@ -1 +0,0 @@
1
- VERSION='0.46.20250218.722'
@@ -1,58 +0,0 @@
1
- pkscreener-0.46.20250218.722.data/purelib/pkscreener/Disclaimer.txt,sha256=kBZQSQCFfL2kc1bijXWndZzkjMTtnpH_B7XtDPPMcuw,1396
2
- pkscreener-0.46.20250218.722.data/purelib/pkscreener/LICENSE-Others.txt,sha256=WBslRYLBoqYg-vr25sS1c_UI7cuUnsGk0nIQLBzTWEE,271830
3
- pkscreener-0.46.20250218.722.data/purelib/pkscreener/LICENSE.txt,sha256=CdnyGrl-xRYX67ZkdERZWHr6BlTxOyg8Z8sK1XQ5Xsg,1078
4
- pkscreener-0.46.20250218.722.data/purelib/pkscreener/LogoWM.txt,sha256=7Njnavpy_FKY4Iwbzv1JqsYMcOdkDSKAKXP3SAItKV0,14868
5
- pkscreener-0.46.20250218.722.data/purelib/pkscreener/README.txt,sha256=1ZdRF7h3VFWXkmacaJKZEa3AwB8bEFQigfHpAX8DRYQ,32701
6
- pkscreener-0.46.20250218.722.data/purelib/pkscreener/__init__.py,sha256=aZ62qYACxsU8m8_5JkzNzos1lVFNcMGPRMgeddnUUiQ,1633
7
- pkscreener-0.46.20250218.722.data/purelib/pkscreener/courbd.ttf,sha256=SKpnp-BRs7AZcdI83nencS3Q7xe0anbbP1YMOxLlEhU,791436
8
- pkscreener-0.46.20250218.722.data/purelib/pkscreener/globals.py,sha256=bIj3LBnbiGvVYidOF0sohg19jHTEkAavrGYaYFyBPhM,240829
9
- pkscreener-0.46.20250218.722.data/purelib/pkscreener/pkscreener.ini,sha256=QKs6j4qhyH37L_MdG3ztAIwgqs4c3qihuqDIoex-V2g,2391
10
- pkscreener-0.46.20250218.722.data/purelib/pkscreener/pkscreenerbot.py,sha256=K-JtYbmOv7Uwkth8-dWbYcAuiaVTRNt4uV1C5l-MVpg,116893
11
- pkscreener-0.46.20250218.722.data/purelib/pkscreener/pkscreenercli.py,sha256=WEVXfcZdeogWZBY3CWtRYyFrmQa5BEEZedKLlMwCM5U,56999
12
- pkscreener-0.46.20250218.722.data/purelib/pkscreener/requirements.txt,sha256=dQ-B6I7-ueXFLeOmUgBNt99O8UaeNOFvW8-VRvxlx4M,1457
13
- pkscreener-0.46.20250218.722.data/purelib/pkscreener/classes/ArtTexts.py,sha256=LZ8ynyS8woliv8bM9Nq4aU0VCoJDJU0FgZk8V5zYPmg,19504
14
- pkscreener-0.46.20250218.722.data/purelib/pkscreener/classes/AssetsManager.py,sha256=SutbAZ4JiGhzN0tzfa9vNpHdW6alSL67Jz-knPPcqBw,33706
15
- pkscreener-0.46.20250218.722.data/purelib/pkscreener/classes/Backtest.py,sha256=wobBQgqVQhFNZlyJ2hgMXQqofrICc_3F0I5D66DUvGI,10530
16
- pkscreener-0.46.20250218.722.data/purelib/pkscreener/classes/Barometer.py,sha256=WPrgtIXb1nIbb-FnuRs-yvOQ5baNQRBgUR_zWg1moxk,9464
17
- pkscreener-0.46.20250218.722.data/purelib/pkscreener/classes/BaseScreeningStatistics.py,sha256=u5t1wf-HsZ8xEtprON55ehIR3F2LNNq8LvwgIrhYRmU,3000
18
- pkscreener-0.46.20250218.722.data/purelib/pkscreener/classes/CandlePatterns.py,sha256=gaswU2OeDa3JXjEafR2clUpKW5v8_1_tJuNPuTWsAss,17066
19
- pkscreener-0.46.20250218.722.data/purelib/pkscreener/classes/Changelog.py,sha256=vUOpca28OACNhavAmjBm4xco3u6fcHqWlnlmCJqO5Lk,1469
20
- pkscreener-0.46.20250218.722.data/purelib/pkscreener/classes/ConfigManager.py,sha256=THcfBgua5hr1Pv7AwEDBu2yurCNteGM04jY3Fr_MeBg,53565
21
- pkscreener-0.46.20250218.722.data/purelib/pkscreener/classes/ConsoleMenuUtility.py,sha256=fyR7dEsAaEWEe5SyaVgwLPdU4h4pI8SozUhsPZXShpg,10037
22
- pkscreener-0.46.20250218.722.data/purelib/pkscreener/classes/ConsoleUtility.py,sha256=TrEnTT4pmsBpEYdwD2oAtNqNG_drPe1LVkhthP2540I,12096
23
- pkscreener-0.46.20250218.722.data/purelib/pkscreener/classes/Fetcher.py,sha256=WWX9_NO3JTw6_1Z9SqPm4Nj-4Uy_4PPYEMVyD5FLnVo,12336
24
- pkscreener-0.46.20250218.722.data/purelib/pkscreener/classes/GlobalStore.py,sha256=IzoYMybXpVVf6YwZi7j34rP-hNd7sMened8TAMu_-A8,3709
25
- pkscreener-0.46.20250218.722.data/purelib/pkscreener/classes/ImageUtility.py,sha256=mgJUzjrOKQ1mYV5P_ylhBnaF7ZgOO6ogjy22Rt49TNI,37032
26
- pkscreener-0.46.20250218.722.data/purelib/pkscreener/classes/MarketMonitor.py,sha256=GQOPLuUhgcrnVa0mI8ZvXqQ4vPFW00FHW_vMfICnko8,22079
27
- pkscreener-0.46.20250218.722.data/purelib/pkscreener/classes/MarketStatus.py,sha256=dNg8znbRpt7ID3U_1nmclD4zSLtveJeYeRbS0l6HLtE,3737
28
- pkscreener-0.46.20250218.722.data/purelib/pkscreener/classes/MenuOptions.py,sha256=iZb0zBs7lcP60cmuP7Z5xmXfNtTFcFH6ZWOuoileErE,64552
29
- pkscreener-0.46.20250218.722.data/purelib/pkscreener/classes/Messenger.py,sha256=peyY-YiqdC1bp-3DlJXILRa9HGYbqGVzf1wil0fYv98,8396
30
- pkscreener-0.46.20250218.722.data/purelib/pkscreener/classes/OtaUpdater.py,sha256=_7-nFAC-vAcmZ1Nwi5g5tfp7hKQQPuLUnBCOzrwC39g,13491
31
- pkscreener-0.46.20250218.722.data/purelib/pkscreener/classes/PKAnalytics.py,sha256=_X-2OFw2yQVmXlEIRsnBVNy9fhYyxqt0BOqADD4v08U,5246
32
- pkscreener-0.46.20250218.722.data/purelib/pkscreener/classes/PKDataService.py,sha256=BipM8Z4rS6h12cF6VWv_u4Z8ee7psMFd1yUojejW1Ag,3393
33
- pkscreener-0.46.20250218.722.data/purelib/pkscreener/classes/PKDemoHandler.py,sha256=r4KrZF8TaOu1J0nu8sUsgWEvnbndboWQQvz69GOy1Fk,2207
34
- pkscreener-0.46.20250218.722.data/purelib/pkscreener/classes/PKMarketOpenCloseAnalyser.py,sha256=T7S0DRv4Tqg77S5CyTWQUgpIAtx0NEtSVAplkynS2YM,33833
35
- pkscreener-0.46.20250218.722.data/purelib/pkscreener/classes/PKPremiumHandler.py,sha256=r16-u9fyc0ftgnSnZnz-JusTfEzyQIyKkvgbPuSd7W4,5611
36
- pkscreener-0.46.20250218.722.data/purelib/pkscreener/classes/PKScanRunner.py,sha256=EPLo2euBMfA9omnqrr5pXv2h9KzTcPZM-PXRFI26LSo,26791
37
- pkscreener-0.46.20250218.722.data/purelib/pkscreener/classes/PKScheduledTaskProgress.py,sha256=h19ZuxoalB50pnZjntFh12b9mBozvMqhKYq6TL18vo4,1657
38
- pkscreener-0.46.20250218.722.data/purelib/pkscreener/classes/PKScheduler.py,sha256=qThoz0yXLmHEWAiD_TdkIrzJb37b_m830JJFrkN1Tio,8814
39
- pkscreener-0.46.20250218.722.data/purelib/pkscreener/classes/PKSpreadsheets.py,sha256=1I7YGGPPY879K5JeTZ_d1FNCpjloh6TZrx91JlwT20o,8298
40
- pkscreener-0.46.20250218.722.data/purelib/pkscreener/classes/PKTask.py,sha256=4q87uD2cXvp0AbP6I73xPP39F0mfnpHQutsxxqpnxJM,1867
41
- pkscreener-0.46.20250218.722.data/purelib/pkscreener/classes/PKUserRegistration.py,sha256=ZbnPzgvT5Je9X0Dm6bewSp8u7Fj_szNucaYnit_AtCg,11465
42
- pkscreener-0.46.20250218.722.data/purelib/pkscreener/classes/Pktalib.py,sha256=xketnpMVDGHOFg47LFavaU-agWy370VanYWyzzuLY8c,33386
43
- pkscreener-0.46.20250218.722.data/purelib/pkscreener/classes/Portfolio.py,sha256=JZ93n3Zk9nkSFaX-lHyQiFnavHVmHPFoy-L_4gugj54,13895
44
- pkscreener-0.46.20250218.722.data/purelib/pkscreener/classes/PortfolioXRay.py,sha256=4MjXqBAVUlfN4w5tTmgEnQGMoy0hFu_uaVgrmai1fN4,48339
45
- pkscreener-0.46.20250218.722.data/purelib/pkscreener/classes/ScreeningStatistics.py,sha256=LteoSl8r4mI2GMvVKAmdmzMe-Axy3jeyNAaIsgp48s4,221101
46
- pkscreener-0.46.20250218.722.data/purelib/pkscreener/classes/StockScreener.py,sha256=F0SWa1DSTgYdSWnkPTR9kmOKgHLtaqNMCtJP8yZkDnE,67252
47
- pkscreener-0.46.20250218.722.data/purelib/pkscreener/classes/StockSentiment.py,sha256=WL7TBAHDSIN5cgZ9uTbbEFnUPo4G-YIzEv16RpPGaro,3546
48
- pkscreener-0.46.20250218.722.data/purelib/pkscreener/classes/UserMenuChoicesHandler.py,sha256=_fTCscTLEjoU-n12V9237uDN6Jf8nGCvGdBVkpD3Ap4,4947
49
- pkscreener-0.46.20250218.722.data/purelib/pkscreener/classes/Utility.py,sha256=Cn_QrVH40rQWkHW2e2NolE0b18qszvGXfVLdwAqD7sM,13562
50
- pkscreener-0.46.20250218.722.data/purelib/pkscreener/classes/WorkflowManager.py,sha256=d0_QiVfai65axe4Oi_h2XUkPyx_wWfiofZd_gMtNAwY,5632
51
- pkscreener-0.46.20250218.722.data/purelib/pkscreener/classes/__init__.py,sha256=7sz-zrr_os6PXzCyhh27b9vLIKIX3eGanhIEs9VaPU8,28
52
- pkscreener-0.46.20250218.722.data/purelib/pkscreener/classes/keys.py,sha256=LQq_t1lSh0x4TbRCIDhoCil3xctgLLeVk5f2vgrl1tk,6789
53
- pkscreener-0.46.20250218.722.dist-info/LICENSE,sha256=CdnyGrl-xRYX67ZkdERZWHr6BlTxOyg8Z8sK1XQ5Xsg,1078
54
- pkscreener-0.46.20250218.722.dist-info/METADATA,sha256=a8kZwmZtilkJ9X8g8DwRExG9ApVF6bqpwh3FOHYuMIk,34391
55
- pkscreener-0.46.20250218.722.dist-info/WHEEL,sha256=e371LA3b7MNA0F-VeyIqNDak9eYypgZ6oD_mcY6JoTQ,110
56
- pkscreener-0.46.20250218.722.dist-info/entry_points.txt,sha256=Pm30xm4sU7YFtFJUC-Te8VlqOvYAvWKFFA5AfQE0xGY,120
57
- pkscreener-0.46.20250218.722.dist-info/top_level.txt,sha256=oIfcPPw58Q4KU-GDqp25dXbrtvxYXJBCo_em6i5aVvY,11
58
- pkscreener-0.46.20250218.722.dist-info/RECORD,,