pkscreener 0.46.20250218.720__cp312-cp312-win_amd64.whl → 0.46.20250219.724__cp312-cp312-win_amd64.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (60) hide show
  1. {pkscreener-0.46.20250218.720.data → pkscreener-0.46.20250219.724.data}/purelib/pkscreener/README.txt +5 -5
  2. {pkscreener-0.46.20250218.720.data → pkscreener-0.46.20250219.724.data}/purelib/pkscreener/classes/WorkflowManager.py +1 -1
  3. pkscreener-0.46.20250219.724.data/purelib/pkscreener/classes/__init__.py +1 -0
  4. {pkscreener-0.46.20250218.720.data → pkscreener-0.46.20250219.724.data}/purelib/pkscreener/globals.py +1 -1
  5. {pkscreener-0.46.20250218.720.data → pkscreener-0.46.20250219.724.data}/purelib/pkscreener/pkscreenerbot.py +3 -3
  6. {pkscreener-0.46.20250218.720.data → pkscreener-0.46.20250219.724.data}/purelib/pkscreener/pkscreenercli.py +9 -0
  7. {pkscreener-0.46.20250218.720.dist-info → pkscreener-0.46.20250219.724.dist-info}/METADATA +7 -7
  8. pkscreener-0.46.20250219.724.dist-info/RECORD +58 -0
  9. pkscreener-0.46.20250218.720.data/purelib/pkscreener/classes/__init__.py +0 -1
  10. pkscreener-0.46.20250218.720.dist-info/RECORD +0 -58
  11. {pkscreener-0.46.20250218.720.data → pkscreener-0.46.20250219.724.data}/purelib/pkscreener/Disclaimer.txt +0 -0
  12. {pkscreener-0.46.20250218.720.data → pkscreener-0.46.20250219.724.data}/purelib/pkscreener/LICENSE-Others.txt +0 -0
  13. {pkscreener-0.46.20250218.720.data → pkscreener-0.46.20250219.724.data}/purelib/pkscreener/LICENSE.txt +0 -0
  14. {pkscreener-0.46.20250218.720.data → pkscreener-0.46.20250219.724.data}/purelib/pkscreener/LogoWM.txt +0 -0
  15. {pkscreener-0.46.20250218.720.data → pkscreener-0.46.20250219.724.data}/purelib/pkscreener/__init__.py +0 -0
  16. {pkscreener-0.46.20250218.720.data → pkscreener-0.46.20250219.724.data}/purelib/pkscreener/classes/ArtTexts.py +0 -0
  17. {pkscreener-0.46.20250218.720.data → pkscreener-0.46.20250219.724.data}/purelib/pkscreener/classes/AssetsManager.py +0 -0
  18. {pkscreener-0.46.20250218.720.data → pkscreener-0.46.20250219.724.data}/purelib/pkscreener/classes/Backtest.py +0 -0
  19. {pkscreener-0.46.20250218.720.data → pkscreener-0.46.20250219.724.data}/purelib/pkscreener/classes/Barometer.py +0 -0
  20. {pkscreener-0.46.20250218.720.data → pkscreener-0.46.20250219.724.data}/purelib/pkscreener/classes/BaseScreeningStatistics.py +0 -0
  21. {pkscreener-0.46.20250218.720.data → pkscreener-0.46.20250219.724.data}/purelib/pkscreener/classes/CandlePatterns.py +0 -0
  22. {pkscreener-0.46.20250218.720.data → pkscreener-0.46.20250219.724.data}/purelib/pkscreener/classes/Changelog.py +0 -0
  23. {pkscreener-0.46.20250218.720.data → pkscreener-0.46.20250219.724.data}/purelib/pkscreener/classes/ConfigManager.py +0 -0
  24. {pkscreener-0.46.20250218.720.data → pkscreener-0.46.20250219.724.data}/purelib/pkscreener/classes/ConsoleMenuUtility.py +0 -0
  25. {pkscreener-0.46.20250218.720.data → pkscreener-0.46.20250219.724.data}/purelib/pkscreener/classes/ConsoleUtility.py +0 -0
  26. {pkscreener-0.46.20250218.720.data → pkscreener-0.46.20250219.724.data}/purelib/pkscreener/classes/Fetcher.py +0 -0
  27. {pkscreener-0.46.20250218.720.data → pkscreener-0.46.20250219.724.data}/purelib/pkscreener/classes/GlobalStore.py +0 -0
  28. {pkscreener-0.46.20250218.720.data → pkscreener-0.46.20250219.724.data}/purelib/pkscreener/classes/ImageUtility.py +0 -0
  29. {pkscreener-0.46.20250218.720.data → pkscreener-0.46.20250219.724.data}/purelib/pkscreener/classes/MarketMonitor.py +0 -0
  30. {pkscreener-0.46.20250218.720.data → pkscreener-0.46.20250219.724.data}/purelib/pkscreener/classes/MarketStatus.py +0 -0
  31. {pkscreener-0.46.20250218.720.data → pkscreener-0.46.20250219.724.data}/purelib/pkscreener/classes/MenuOptions.py +0 -0
  32. {pkscreener-0.46.20250218.720.data → pkscreener-0.46.20250219.724.data}/purelib/pkscreener/classes/Messenger.py +0 -0
  33. {pkscreener-0.46.20250218.720.data → pkscreener-0.46.20250219.724.data}/purelib/pkscreener/classes/OtaUpdater.py +0 -0
  34. {pkscreener-0.46.20250218.720.data → pkscreener-0.46.20250219.724.data}/purelib/pkscreener/classes/PKAnalytics.py +0 -0
  35. {pkscreener-0.46.20250218.720.data → pkscreener-0.46.20250219.724.data}/purelib/pkscreener/classes/PKDataService.py +0 -0
  36. {pkscreener-0.46.20250218.720.data → pkscreener-0.46.20250219.724.data}/purelib/pkscreener/classes/PKDemoHandler.py +0 -0
  37. {pkscreener-0.46.20250218.720.data → pkscreener-0.46.20250219.724.data}/purelib/pkscreener/classes/PKMarketOpenCloseAnalyser.py +0 -0
  38. {pkscreener-0.46.20250218.720.data → pkscreener-0.46.20250219.724.data}/purelib/pkscreener/classes/PKPremiumHandler.py +0 -0
  39. {pkscreener-0.46.20250218.720.data → pkscreener-0.46.20250219.724.data}/purelib/pkscreener/classes/PKScanRunner.py +0 -0
  40. {pkscreener-0.46.20250218.720.data → pkscreener-0.46.20250219.724.data}/purelib/pkscreener/classes/PKScheduledTaskProgress.py +0 -0
  41. {pkscreener-0.46.20250218.720.data → pkscreener-0.46.20250219.724.data}/purelib/pkscreener/classes/PKScheduler.py +0 -0
  42. {pkscreener-0.46.20250218.720.data → pkscreener-0.46.20250219.724.data}/purelib/pkscreener/classes/PKSpreadsheets.py +0 -0
  43. {pkscreener-0.46.20250218.720.data → pkscreener-0.46.20250219.724.data}/purelib/pkscreener/classes/PKTask.py +0 -0
  44. {pkscreener-0.46.20250218.720.data → pkscreener-0.46.20250219.724.data}/purelib/pkscreener/classes/PKUserRegistration.py +0 -0
  45. {pkscreener-0.46.20250218.720.data → pkscreener-0.46.20250219.724.data}/purelib/pkscreener/classes/Pktalib.py +0 -0
  46. {pkscreener-0.46.20250218.720.data → pkscreener-0.46.20250219.724.data}/purelib/pkscreener/classes/Portfolio.py +0 -0
  47. {pkscreener-0.46.20250218.720.data → pkscreener-0.46.20250219.724.data}/purelib/pkscreener/classes/PortfolioXRay.py +0 -0
  48. {pkscreener-0.46.20250218.720.data → pkscreener-0.46.20250219.724.data}/purelib/pkscreener/classes/ScreeningStatistics.py +0 -0
  49. {pkscreener-0.46.20250218.720.data → pkscreener-0.46.20250219.724.data}/purelib/pkscreener/classes/StockScreener.py +0 -0
  50. {pkscreener-0.46.20250218.720.data → pkscreener-0.46.20250219.724.data}/purelib/pkscreener/classes/StockSentiment.py +0 -0
  51. {pkscreener-0.46.20250218.720.data → pkscreener-0.46.20250219.724.data}/purelib/pkscreener/classes/UserMenuChoicesHandler.py +0 -0
  52. {pkscreener-0.46.20250218.720.data → pkscreener-0.46.20250219.724.data}/purelib/pkscreener/classes/Utility.py +0 -0
  53. {pkscreener-0.46.20250218.720.data → pkscreener-0.46.20250219.724.data}/purelib/pkscreener/classes/keys.py +0 -0
  54. {pkscreener-0.46.20250218.720.data → pkscreener-0.46.20250219.724.data}/purelib/pkscreener/courbd.ttf +0 -0
  55. {pkscreener-0.46.20250218.720.data → pkscreener-0.46.20250219.724.data}/purelib/pkscreener/pkscreener.ini +0 -0
  56. {pkscreener-0.46.20250218.720.data → pkscreener-0.46.20250219.724.data}/purelib/pkscreener/requirements.txt +0 -0
  57. {pkscreener-0.46.20250218.720.dist-info → pkscreener-0.46.20250219.724.dist-info}/LICENSE +0 -0
  58. {pkscreener-0.46.20250218.720.dist-info → pkscreener-0.46.20250219.724.dist-info}/WHEEL +0 -0
  59. {pkscreener-0.46.20250218.720.dist-info → pkscreener-0.46.20250219.724.dist-info}/entry_points.txt +0 -0
  60. {pkscreener-0.46.20250218.720.dist-info → pkscreener-0.46.20250219.724.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.20250218.719/pkscreenercli.exe
331
+ [Windows]: https://github.com/pkjmesra/PKScreener/releases/download/0.46.20250218.722/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.719/pkscreenercli_x64.bin
333
+ [Linux_x64]: https://github.com/pkjmesra/PKScreener/releases/download/0.46.20250218.722/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.719/pkscreenercli_arm64.bin
335
+ [Linux_arm64]: https://github.com/pkjmesra/PKScreener/releases/download/0.46.20250218.722/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.719/pkscreenercli_x64.run
337
+ [Mac OS_x64]: https://github.com/pkjmesra/PKScreener/releases/download/0.46.20250218.722/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.719/pkscreenercli_arm64.run
339
+ [Mac OS_arm64]: https://github.com/pkjmesra/PKScreener/releases/download/0.46.20250218.722/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
@@ -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.724'
@@ -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:
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}"
@@ -2064,7 +2064,7 @@ def help_command(update: Update, context: CallbackContext) -> None:
2064
2064
  userID = user_states[user.id].split("_")[-1]
2065
2065
  results = updateSubscription(int(userID),float(updateCarrier.text),subtype="remove" if hskCmd=="DUS" else "add")
2066
2066
  if results is None:
2067
- update.message.reply_text(f"✅ {'Balance' if hskCmd == 'UUB' else 'Subscription'} update for userID: {userID} with balance value: {updateCarrier.text} triggered!\nPlease check with Get Paying users in a few minutes!")
2067
+ update.message.reply_text(f"✅ {'Balance' if hskCmd == 'UUB' else 'Subscription'} update for userID: {userID} with {'Balance' if hskCmd == 'UUB' else 'Subscription'} value: {updateCarrier.text} triggered!\nPlease check with Get Paying users in a few minutes!")
2068
2068
  # Clear user state
2069
2069
  del user_states[user.id]
2070
2070
  return START_ROUTES
@@ -638,6 +638,15 @@ def runApplication():
638
638
  MarketMonitor().refresh(screen_df=results,screenOptions=monitorOption_org, chosenMenu=chosenMenu[:120],dbTimestamp=f"{dbTimestamp} | CycleTime:{elapsed_time}s",telegram=args.telegram)
639
639
  menuChoiceHierarchy = ""
640
640
  args.pipedtitle = ""
641
+ # check to see if the monitor was launched before the market close hours.
642
+ # If so, close it.
643
+ if "RUNNER" in os.environ.keys() and args.triggertimestamp is not None:
644
+ from datetime import timezone
645
+ from PKDevTools.classes.MarketHours import MarketHours
646
+ marketCloseTS = PKDateUtilities.currentDateTime(simulate=True,hour=MarketHours().closeHour,minute=MarketHours().closeMinute).replace(tzinfo=timezone.utc).timestamp()
647
+ if int(args.triggertimestamp) < int(marketCloseTS) and int(PKDateUtilities.currentDateTimestamp()) >= marketCloseTS:
648
+ OutputControls().printOutput("Exiting monitor now since market has closed!",enableMultipleLineOutput=True)
649
+ sys.exit(0)
641
650
 
642
651
  def updateProgressStatus(args,monitorOptions=None):
643
652
  from pkscreener.classes.MenuOptions import PREDEFINED_SCAN_MENU_TEXTS,PREDEFINED_SCAN_MENU_VALUES
@@ -1,9 +1,9 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: pkscreener
3
- Version: 0.46.20250218.720
3
+ Version: 0.46.20250219.724
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.720.zip
6
+ Download-URL: https://github.com/pkjmesra/pkscreener/archive/v0.46.20250219.724.zip
7
7
  Author: pkjmesra
8
8
  Author-email: pkjmesra@gmail.com
9
9
  License: OSI Approved (MIT)
@@ -357,15 +357,15 @@ After you have finished the run, go to that copied path, zip the contents of the
357
357
  [MADE-IN-INDIA-badge]: https://img.shields.io/badge/MADE%20WITH%20%E2%9D%A4%20IN-INDIA-orange
358
358
  [MADE-IN-INDIA]: https://en.wikipedia.org/wiki/India
359
359
  [Windows-badge]: https://img.shields.io/badge/Windows-0078D6?logo=windows&logoColor=white
360
- [Windows]: https://github.com/pkjmesra/PKScreener/releases/download/0.46.20250218.719/pkscreenercli.exe
360
+ [Windows]: https://github.com/pkjmesra/PKScreener/releases/download/0.46.20250218.722/pkscreenercli.exe
361
361
  [Linux-badge_x64]: https://img.shields.io/badge/Linux(x64)-FCC624?logo=linux&logoColor=black
362
- [Linux_x64]: https://github.com/pkjmesra/PKScreener/releases/download/0.46.20250218.719/pkscreenercli_x64.bin
362
+ [Linux_x64]: https://github.com/pkjmesra/PKScreener/releases/download/0.46.20250218.722/pkscreenercli_x64.bin
363
363
  [Linux-badge_arm64]: https://img.shields.io/badge/Linux(arm64)-FCC624?logo=linux&logoColor=black
364
- [Linux_arm64]: https://github.com/pkjmesra/PKScreener/releases/download/0.46.20250218.719/pkscreenercli_arm64.bin
364
+ [Linux_arm64]: https://github.com/pkjmesra/PKScreener/releases/download/0.46.20250218.722/pkscreenercli_arm64.bin
365
365
  [Mac OS-badge_x64]: https://img.shields.io/badge/mac%20os(x64)-D3D3D3?logo=apple&logoColor=000000
366
- [Mac OS_x64]: https://github.com/pkjmesra/PKScreener/releases/download/0.46.20250218.719/pkscreenercli_x64.run
366
+ [Mac OS_x64]: https://github.com/pkjmesra/PKScreener/releases/download/0.46.20250218.722/pkscreenercli_x64.run
367
367
  [Mac OS-badge_arm64]: https://img.shields.io/badge/mac%20os(arm64)-D3D3D3?logo=apple&logoColor=000000
368
- [Mac OS_arm64]: https://github.com/pkjmesra/PKScreener/releases/download/0.46.20250218.719/pkscreenercli_arm64.run
368
+ [Mac OS_arm64]: https://github.com/pkjmesra/PKScreener/releases/download/0.46.20250218.722/pkscreenercli_arm64.run
369
369
  [GitHub release (latest by date)-badge]: https://img.shields.io/github/v/release/pkjmesra/PKScreener
370
370
  [GitHub release (latest by date)]: https://github.com/pkjmesra/PKScreener/releases/latest
371
371
  [pypi-badge]: https://img.shields.io/pypi/v/pkscreener.svg?style=flat-square
@@ -0,0 +1,58 @@
1
+ pkscreener-0.46.20250219.724.data/purelib/pkscreener/Disclaimer.txt,sha256=x7M9Clrb9qACqOa-Vnwh9wliISLgudW5Kv_dgEk3N_Q,1405
2
+ pkscreener-0.46.20250219.724.data/purelib/pkscreener/LICENSE-Others.txt,sha256=0put8oIYbAYz98IGnp2F1CpHoyR_iyk0PRYG5D-U1K0,277059
3
+ pkscreener-0.46.20250219.724.data/purelib/pkscreener/LICENSE.txt,sha256=q80QYQZCkhPymkaQKXZJwOFYU6X-4lUHRzCGYERdLpA,1099
4
+ pkscreener-0.46.20250219.724.data/purelib/pkscreener/LogoWM.txt,sha256=7Njnavpy_FKY4Iwbzv1JqsYMcOdkDSKAKXP3SAItKV0,14868
5
+ pkscreener-0.46.20250219.724.data/purelib/pkscreener/README.txt,sha256=4G1jYdjOWfS94rOx3BQtjPsDYgwQ_vWvHHqxusO7Jmc,33085
6
+ pkscreener-0.46.20250219.724.data/purelib/pkscreener/__init__.py,sha256=cH0zxpSdH-dhmZihoe5mpE2NRRmF2Na_KaGMO9u33Rg,1669
7
+ pkscreener-0.46.20250219.724.data/purelib/pkscreener/courbd.ttf,sha256=SKpnp-BRs7AZcdI83nencS3Q7xe0anbbP1YMOxLlEhU,791436
8
+ pkscreener-0.46.20250219.724.data/purelib/pkscreener/globals.py,sha256=IqYmQZf_m1cr-Yz9b1JDMUXDtIKJxAhOTyCiVPXsdT4,245356
9
+ pkscreener-0.46.20250219.724.data/purelib/pkscreener/pkscreener.ini,sha256=v0MV7kLxi0ehh1a013wg6TLXDeeLRO8PKapICSU1u-k,2451
10
+ pkscreener-0.46.20250219.724.data/purelib/pkscreener/pkscreenerbot.py,sha256=bmsLcactP0eWNzqYdHzwPvDzCjFId03tJD57PVNDu2k,119496
11
+ pkscreener-0.46.20250219.724.data/purelib/pkscreener/pkscreenercli.py,sha256=blxEAhSuidQtPQvzRkU1n_yUy_WtBGvrX_whRXWtOo8,59050
12
+ pkscreener-0.46.20250219.724.data/purelib/pkscreener/requirements.txt,sha256=IsiYZzO2RFIPoDOULBL5qJu7tq2sGdgKbpYt2L0xlBw,1503
13
+ pkscreener-0.46.20250219.724.data/purelib/pkscreener/classes/ArtTexts.py,sha256=UzU0v3LX4PsWcx_ATv5M-T4v93uLz2hmvyDtew6qzZk,19708
14
+ pkscreener-0.46.20250219.724.data/purelib/pkscreener/classes/AssetsManager.py,sha256=0__n99u7SD0KHmpnybm_msu35CAlv5W6WwtT5LrSkNc,34313
15
+ pkscreener-0.46.20250219.724.data/purelib/pkscreener/classes/Backtest.py,sha256=VoNronl--07E477I9lhwfEjI4vK5VHu_tcDRO1K96hU,10784
16
+ pkscreener-0.46.20250219.724.data/purelib/pkscreener/classes/Barometer.py,sha256=aZWu0TFbwRBvnkyN_Ws4a_2FYNhKKuqEpoQAqokthPc,9640
17
+ pkscreener-0.46.20250219.724.data/purelib/pkscreener/classes/BaseScreeningStatistics.py,sha256=Dev8eCx8eGNqDsbXj-t68hLSDpKDICcyb9yH_n_IbYg,3086
18
+ pkscreener-0.46.20250219.724.data/purelib/pkscreener/classes/CandlePatterns.py,sha256=IFVUXzx175aqZlL7JlmNl308aeIkSD6Hugl4M9zg9Io,17419
19
+ pkscreener-0.46.20250219.724.data/purelib/pkscreener/classes/Changelog.py,sha256=S0hNTDYptWUxFrdTzqinjFLIywVAuKlYR1aCjepADn0,1511
20
+ pkscreener-0.46.20250219.724.data/purelib/pkscreener/classes/ConfigManager.py,sha256=ZIxZ-IqWjIXpo_7SWRLx5e8sc0b92gGnc4qqMZVproM,54426
21
+ pkscreener-0.46.20250219.724.data/purelib/pkscreener/classes/ConsoleMenuUtility.py,sha256=QZLPA0li0bfs1zNijfq_utovulY5fl4vXWk89CBpL5Q,10291
22
+ pkscreener-0.46.20250219.724.data/purelib/pkscreener/classes/ConsoleUtility.py,sha256=gNMAm4iQF0ClmVPBe6ZnsjWQ-rfnTq6R_mLBjA6GgyI,12330
23
+ pkscreener-0.46.20250219.724.data/purelib/pkscreener/classes/Fetcher.py,sha256=ZwU9iW0nbGAgM0mKZNjYgy9sm8jRSw9PvYmyhuY7Pos,12620
24
+ pkscreener-0.46.20250219.724.data/purelib/pkscreener/classes/GlobalStore.py,sha256=UCYctbau2ZAShkWOLA7-p52Pg_irghCWRoa6UrIKYQQ,3799
25
+ pkscreener-0.46.20250219.724.data/purelib/pkscreener/classes/ImageUtility.py,sha256=DKPiM7u-fGPujD63VLCWUsvesgflVYDiLqyw_KWOK8g,37629
26
+ pkscreener-0.46.20250219.724.data/purelib/pkscreener/classes/MarketMonitor.py,sha256=--qQpmLt7XTljACGDWIIOZO01uWJpEbG78wyMRynTI4,22450
27
+ pkscreener-0.46.20250219.724.data/purelib/pkscreener/classes/MarketStatus.py,sha256=oBDTCTGazzOEhcclugxOOtyhu2VVT2XQ-t-GmY_pT7g,3823
28
+ pkscreener-0.46.20250219.724.data/purelib/pkscreener/classes/MenuOptions.py,sha256=RIPQ9mVC9I07GZubrmOtUAQg10GbCoYwF3fnvV1dvqY,65741
29
+ pkscreener-0.46.20250219.724.data/purelib/pkscreener/classes/Messenger.py,sha256=yKqq3eE2JkvTOeKcNZoPpCgxQ9FjcEeB1iHIKwwq8dA,8572
30
+ pkscreener-0.46.20250219.724.data/purelib/pkscreener/classes/OtaUpdater.py,sha256=jSjVqgiZ4CGVkieJMekNLHZGx_eOGN-Xg4RF3eZO_Nk,13816
31
+ pkscreener-0.46.20250219.724.data/purelib/pkscreener/classes/PKAnalytics.py,sha256=4LdzjSjbJExBpD2DM9wXWuFqKiC8QEr9HT2XFiJq7oA,5368
32
+ pkscreener-0.46.20250219.724.data/purelib/pkscreener/classes/PKDataService.py,sha256=InEI3AGt_ykYfbwq2v1_NWUefTqPluKHSh_4ksFSUzE,3456
33
+ pkscreener-0.46.20250219.724.data/purelib/pkscreener/classes/PKDemoHandler.py,sha256=wh48WLLFxBAFHML5Sq5G5-UFP96snJ9yKJgpKWuQ2Zs,2253
34
+ pkscreener-0.46.20250219.724.data/purelib/pkscreener/classes/PKMarketOpenCloseAnalyser.py,sha256=zscdvHwDb5GQttqnR4Ed0SsVfOFeqKQgfIo6LWukgH0,34366
35
+ pkscreener-0.46.20250219.724.data/purelib/pkscreener/classes/PKPremiumHandler.py,sha256=L3O3EwIZBE9PpdDFIGH-2Ec9Gi3IlzCd6RfQSXUd6So,5695
36
+ pkscreener-0.46.20250219.724.data/purelib/pkscreener/classes/PKScanRunner.py,sha256=9Qy6xouK6qkNExeWF8LrxYXynI3Ju9UrSY5kI5W81Ok,27313
37
+ pkscreener-0.46.20250219.724.data/purelib/pkscreener/classes/PKScheduledTaskProgress.py,sha256=wDMORWmyglcu06woVNpgDlESsMIiYX96MXO0VoBlLYg,1694
38
+ pkscreener-0.46.20250219.724.data/purelib/pkscreener/classes/PKScheduler.py,sha256=Od3Niv6Q_aHarau9agCVt7h194votlaDX4j1Xv-_ru4,8994
39
+ pkscreener-0.46.20250219.724.data/purelib/pkscreener/classes/PKSpreadsheets.py,sha256=BIICJx79QjGFPrnmQ34357jOGp79vuiknx6A_kC9y8Y,8466
40
+ pkscreener-0.46.20250219.724.data/purelib/pkscreener/classes/PKTask.py,sha256=YPxzn0dA5ty7CtRFi1wQphC9vCdK8tB2_3DYHje9jgc,1907
41
+ pkscreener-0.46.20250219.724.data/purelib/pkscreener/classes/PKUserRegistration.py,sha256=q5V3GChPEFl4-je4VFJDGDT4GK37t3sBT0UY9GT6L8s,11657
42
+ pkscreener-0.46.20250219.724.data/purelib/pkscreener/classes/Pktalib.py,sha256=yko7TZMOsLoBv-LbTuT903CsGdyckhypXldh7uoAXmo,34179
43
+ pkscreener-0.46.20250219.724.data/purelib/pkscreener/classes/Portfolio.py,sha256=dxviO0G3OqJza4Nbpj5OCph8PZlfkRCkL3LfLJYgqu0,14196
44
+ pkscreener-0.46.20250219.724.data/purelib/pkscreener/classes/PortfolioXRay.py,sha256=cMQ-yZrBPWo4gACxFqj3HNG9rqmyqXkS88qpy77JP_s,49612
45
+ pkscreener-0.46.20250219.724.data/purelib/pkscreener/classes/ScreeningStatistics.py,sha256=LHPQLinxcvIFCJE6vWN-l50bamJCexbfLn9HP4JNRn0,225368
46
+ pkscreener-0.46.20250219.724.data/purelib/pkscreener/classes/StockScreener.py,sha256=wL6RjojBvTqo9XUlh2qoCpERrKdGNTlcDtCTReA0jkI,68437
47
+ pkscreener-0.46.20250219.724.data/purelib/pkscreener/classes/StockSentiment.py,sha256=kc5jdXRGm2nIvDK-2y4i_Y1w47_2zWpunjlQsKB7IBY,3640
48
+ pkscreener-0.46.20250219.724.data/purelib/pkscreener/classes/UserMenuChoicesHandler.py,sha256=MXJrQPD4yvKSI4p_RcnHt5oZg8AZ59ME7Jf-Nryoy5g,5055
49
+ pkscreener-0.46.20250219.724.data/purelib/pkscreener/classes/Utility.py,sha256=6JpIich2-knaZ4sjsjyMoO_4S622KK-Jte2Hi4eYIOs,13870
50
+ pkscreener-0.46.20250219.724.data/purelib/pkscreener/classes/WorkflowManager.py,sha256=GS1Q_jwulpOjZv0w9ZDySRa5w51gJ8xDabbUpQGKVO0,5800
51
+ pkscreener-0.46.20250219.724.data/purelib/pkscreener/classes/__init__.py,sha256=npnd5GHevI-lDGnKuTnIRgZwkze4Fheuxyktq6oQ0Uw,28
52
+ pkscreener-0.46.20250219.724.data/purelib/pkscreener/classes/keys.py,sha256=tygV0iu8bKmSPo6HGj1Cb-rTtEWErGrsYRZY7SoCb1g,6957
53
+ pkscreener-0.46.20250219.724.dist-info/LICENSE,sha256=q80QYQZCkhPymkaQKXZJwOFYU6X-4lUHRzCGYERdLpA,1099
54
+ pkscreener-0.46.20250219.724.dist-info/METADATA,sha256=eiHRjyBx7ab3dvbFDexuTCylIL6BVfYPPQizaL0Fr-U,34107
55
+ pkscreener-0.46.20250219.724.dist-info/WHEEL,sha256=cRmSBGD-cl98KkuHMNqv9Ac9L9_VqTvcBYwpIvxN0cg,101
56
+ pkscreener-0.46.20250219.724.dist-info/entry_points.txt,sha256=Pm30xm4sU7YFtFJUC-Te8VlqOvYAvWKFFA5AfQE0xGY,120
57
+ pkscreener-0.46.20250219.724.dist-info/top_level.txt,sha256=oIfcPPw58Q4KU-GDqp25dXbrtvxYXJBCo_em6i5aVvY,11
58
+ pkscreener-0.46.20250219.724.dist-info/RECORD,,
@@ -1 +0,0 @@
1
- VERSION='0.46.20250218.720'
@@ -1,58 +0,0 @@
1
- pkscreener-0.46.20250218.720.data/purelib/pkscreener/Disclaimer.txt,sha256=x7M9Clrb9qACqOa-Vnwh9wliISLgudW5Kv_dgEk3N_Q,1405
2
- pkscreener-0.46.20250218.720.data/purelib/pkscreener/LICENSE-Others.txt,sha256=0put8oIYbAYz98IGnp2F1CpHoyR_iyk0PRYG5D-U1K0,277059
3
- pkscreener-0.46.20250218.720.data/purelib/pkscreener/LICENSE.txt,sha256=q80QYQZCkhPymkaQKXZJwOFYU6X-4lUHRzCGYERdLpA,1099
4
- pkscreener-0.46.20250218.720.data/purelib/pkscreener/LogoWM.txt,sha256=7Njnavpy_FKY4Iwbzv1JqsYMcOdkDSKAKXP3SAItKV0,14868
5
- pkscreener-0.46.20250218.720.data/purelib/pkscreener/README.txt,sha256=7dINjHjtaHQhYx8eVyFLjsnsGdPynAP7AVOMosmKkjA,33085
6
- pkscreener-0.46.20250218.720.data/purelib/pkscreener/__init__.py,sha256=cH0zxpSdH-dhmZihoe5mpE2NRRmF2Na_KaGMO9u33Rg,1669
7
- pkscreener-0.46.20250218.720.data/purelib/pkscreener/courbd.ttf,sha256=SKpnp-BRs7AZcdI83nencS3Q7xe0anbbP1YMOxLlEhU,791436
8
- pkscreener-0.46.20250218.720.data/purelib/pkscreener/globals.py,sha256=h7gRVI1ljj5AQp-KvOMGz9LqXYvt0v2YaWdxFeP-rqg,245088
9
- pkscreener-0.46.20250218.720.data/purelib/pkscreener/pkscreener.ini,sha256=v0MV7kLxi0ehh1a013wg6TLXDeeLRO8PKapICSU1u-k,2451
10
- pkscreener-0.46.20250218.720.data/purelib/pkscreener/pkscreenerbot.py,sha256=QlWr62rs0uRZ71eR9D9SaFVWvhyJxqd7a0-tnw3y3qE,119157
11
- pkscreener-0.46.20250218.720.data/purelib/pkscreener/pkscreenercli.py,sha256=NtW0PGiMKgkBfQk6jZ8WE_ipTRrZP7v1020xQNHZdUE,58213
12
- pkscreener-0.46.20250218.720.data/purelib/pkscreener/requirements.txt,sha256=IsiYZzO2RFIPoDOULBL5qJu7tq2sGdgKbpYt2L0xlBw,1503
13
- pkscreener-0.46.20250218.720.data/purelib/pkscreener/classes/ArtTexts.py,sha256=UzU0v3LX4PsWcx_ATv5M-T4v93uLz2hmvyDtew6qzZk,19708
14
- pkscreener-0.46.20250218.720.data/purelib/pkscreener/classes/AssetsManager.py,sha256=0__n99u7SD0KHmpnybm_msu35CAlv5W6WwtT5LrSkNc,34313
15
- pkscreener-0.46.20250218.720.data/purelib/pkscreener/classes/Backtest.py,sha256=VoNronl--07E477I9lhwfEjI4vK5VHu_tcDRO1K96hU,10784
16
- pkscreener-0.46.20250218.720.data/purelib/pkscreener/classes/Barometer.py,sha256=aZWu0TFbwRBvnkyN_Ws4a_2FYNhKKuqEpoQAqokthPc,9640
17
- pkscreener-0.46.20250218.720.data/purelib/pkscreener/classes/BaseScreeningStatistics.py,sha256=Dev8eCx8eGNqDsbXj-t68hLSDpKDICcyb9yH_n_IbYg,3086
18
- pkscreener-0.46.20250218.720.data/purelib/pkscreener/classes/CandlePatterns.py,sha256=IFVUXzx175aqZlL7JlmNl308aeIkSD6Hugl4M9zg9Io,17419
19
- pkscreener-0.46.20250218.720.data/purelib/pkscreener/classes/Changelog.py,sha256=S0hNTDYptWUxFrdTzqinjFLIywVAuKlYR1aCjepADn0,1511
20
- pkscreener-0.46.20250218.720.data/purelib/pkscreener/classes/ConfigManager.py,sha256=ZIxZ-IqWjIXpo_7SWRLx5e8sc0b92gGnc4qqMZVproM,54426
21
- pkscreener-0.46.20250218.720.data/purelib/pkscreener/classes/ConsoleMenuUtility.py,sha256=QZLPA0li0bfs1zNijfq_utovulY5fl4vXWk89CBpL5Q,10291
22
- pkscreener-0.46.20250218.720.data/purelib/pkscreener/classes/ConsoleUtility.py,sha256=gNMAm4iQF0ClmVPBe6ZnsjWQ-rfnTq6R_mLBjA6GgyI,12330
23
- pkscreener-0.46.20250218.720.data/purelib/pkscreener/classes/Fetcher.py,sha256=ZwU9iW0nbGAgM0mKZNjYgy9sm8jRSw9PvYmyhuY7Pos,12620
24
- pkscreener-0.46.20250218.720.data/purelib/pkscreener/classes/GlobalStore.py,sha256=UCYctbau2ZAShkWOLA7-p52Pg_irghCWRoa6UrIKYQQ,3799
25
- pkscreener-0.46.20250218.720.data/purelib/pkscreener/classes/ImageUtility.py,sha256=DKPiM7u-fGPujD63VLCWUsvesgflVYDiLqyw_KWOK8g,37629
26
- pkscreener-0.46.20250218.720.data/purelib/pkscreener/classes/MarketMonitor.py,sha256=--qQpmLt7XTljACGDWIIOZO01uWJpEbG78wyMRynTI4,22450
27
- pkscreener-0.46.20250218.720.data/purelib/pkscreener/classes/MarketStatus.py,sha256=oBDTCTGazzOEhcclugxOOtyhu2VVT2XQ-t-GmY_pT7g,3823
28
- pkscreener-0.46.20250218.720.data/purelib/pkscreener/classes/MenuOptions.py,sha256=RIPQ9mVC9I07GZubrmOtUAQg10GbCoYwF3fnvV1dvqY,65741
29
- pkscreener-0.46.20250218.720.data/purelib/pkscreener/classes/Messenger.py,sha256=yKqq3eE2JkvTOeKcNZoPpCgxQ9FjcEeB1iHIKwwq8dA,8572
30
- pkscreener-0.46.20250218.720.data/purelib/pkscreener/classes/OtaUpdater.py,sha256=jSjVqgiZ4CGVkieJMekNLHZGx_eOGN-Xg4RF3eZO_Nk,13816
31
- pkscreener-0.46.20250218.720.data/purelib/pkscreener/classes/PKAnalytics.py,sha256=4LdzjSjbJExBpD2DM9wXWuFqKiC8QEr9HT2XFiJq7oA,5368
32
- pkscreener-0.46.20250218.720.data/purelib/pkscreener/classes/PKDataService.py,sha256=InEI3AGt_ykYfbwq2v1_NWUefTqPluKHSh_4ksFSUzE,3456
33
- pkscreener-0.46.20250218.720.data/purelib/pkscreener/classes/PKDemoHandler.py,sha256=wh48WLLFxBAFHML5Sq5G5-UFP96snJ9yKJgpKWuQ2Zs,2253
34
- pkscreener-0.46.20250218.720.data/purelib/pkscreener/classes/PKMarketOpenCloseAnalyser.py,sha256=zscdvHwDb5GQttqnR4Ed0SsVfOFeqKQgfIo6LWukgH0,34366
35
- pkscreener-0.46.20250218.720.data/purelib/pkscreener/classes/PKPremiumHandler.py,sha256=L3O3EwIZBE9PpdDFIGH-2Ec9Gi3IlzCd6RfQSXUd6So,5695
36
- pkscreener-0.46.20250218.720.data/purelib/pkscreener/classes/PKScanRunner.py,sha256=9Qy6xouK6qkNExeWF8LrxYXynI3Ju9UrSY5kI5W81Ok,27313
37
- pkscreener-0.46.20250218.720.data/purelib/pkscreener/classes/PKScheduledTaskProgress.py,sha256=wDMORWmyglcu06woVNpgDlESsMIiYX96MXO0VoBlLYg,1694
38
- pkscreener-0.46.20250218.720.data/purelib/pkscreener/classes/PKScheduler.py,sha256=Od3Niv6Q_aHarau9agCVt7h194votlaDX4j1Xv-_ru4,8994
39
- pkscreener-0.46.20250218.720.data/purelib/pkscreener/classes/PKSpreadsheets.py,sha256=BIICJx79QjGFPrnmQ34357jOGp79vuiknx6A_kC9y8Y,8466
40
- pkscreener-0.46.20250218.720.data/purelib/pkscreener/classes/PKTask.py,sha256=YPxzn0dA5ty7CtRFi1wQphC9vCdK8tB2_3DYHje9jgc,1907
41
- pkscreener-0.46.20250218.720.data/purelib/pkscreener/classes/PKUserRegistration.py,sha256=q5V3GChPEFl4-je4VFJDGDT4GK37t3sBT0UY9GT6L8s,11657
42
- pkscreener-0.46.20250218.720.data/purelib/pkscreener/classes/Pktalib.py,sha256=yko7TZMOsLoBv-LbTuT903CsGdyckhypXldh7uoAXmo,34179
43
- pkscreener-0.46.20250218.720.data/purelib/pkscreener/classes/Portfolio.py,sha256=dxviO0G3OqJza4Nbpj5OCph8PZlfkRCkL3LfLJYgqu0,14196
44
- pkscreener-0.46.20250218.720.data/purelib/pkscreener/classes/PortfolioXRay.py,sha256=cMQ-yZrBPWo4gACxFqj3HNG9rqmyqXkS88qpy77JP_s,49612
45
- pkscreener-0.46.20250218.720.data/purelib/pkscreener/classes/ScreeningStatistics.py,sha256=LHPQLinxcvIFCJE6vWN-l50bamJCexbfLn9HP4JNRn0,225368
46
- pkscreener-0.46.20250218.720.data/purelib/pkscreener/classes/StockScreener.py,sha256=wL6RjojBvTqo9XUlh2qoCpERrKdGNTlcDtCTReA0jkI,68437
47
- pkscreener-0.46.20250218.720.data/purelib/pkscreener/classes/StockSentiment.py,sha256=kc5jdXRGm2nIvDK-2y4i_Y1w47_2zWpunjlQsKB7IBY,3640
48
- pkscreener-0.46.20250218.720.data/purelib/pkscreener/classes/UserMenuChoicesHandler.py,sha256=MXJrQPD4yvKSI4p_RcnHt5oZg8AZ59ME7Jf-Nryoy5g,5055
49
- pkscreener-0.46.20250218.720.data/purelib/pkscreener/classes/Utility.py,sha256=6JpIich2-knaZ4sjsjyMoO_4S622KK-Jte2Hi4eYIOs,13870
50
- pkscreener-0.46.20250218.720.data/purelib/pkscreener/classes/WorkflowManager.py,sha256=GgxHCWOOEUv4M7xbIZtcoxndzII4eInex24U99uEWcI,5769
51
- pkscreener-0.46.20250218.720.data/purelib/pkscreener/classes/__init__.py,sha256=XwZ1OxXHV2qGnSYbGH2mvqT9cfWQgruDxZrXhIMYTNs,28
52
- pkscreener-0.46.20250218.720.data/purelib/pkscreener/classes/keys.py,sha256=tygV0iu8bKmSPo6HGj1Cb-rTtEWErGrsYRZY7SoCb1g,6957
53
- pkscreener-0.46.20250218.720.dist-info/LICENSE,sha256=q80QYQZCkhPymkaQKXZJwOFYU6X-4lUHRzCGYERdLpA,1099
54
- pkscreener-0.46.20250218.720.dist-info/METADATA,sha256=QRaJK-6txNu4w1s0DvjuyGgiymRtNGCpTDHYgJEDgxA,34107
55
- pkscreener-0.46.20250218.720.dist-info/WHEEL,sha256=cRmSBGD-cl98KkuHMNqv9Ac9L9_VqTvcBYwpIvxN0cg,101
56
- pkscreener-0.46.20250218.720.dist-info/entry_points.txt,sha256=Pm30xm4sU7YFtFJUC-Te8VlqOvYAvWKFFA5AfQE0xGY,120
57
- pkscreener-0.46.20250218.720.dist-info/top_level.txt,sha256=oIfcPPw58Q4KU-GDqp25dXbrtvxYXJBCo_em6i5aVvY,11
58
- pkscreener-0.46.20250218.720.dist-info/RECORD,,