pkscreener 0.46.20250213.708__tar.gz → 0.46.20250213.710__tar.gz

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 (65) hide show
  1. {pkscreener-0.46.20250213.708 → pkscreener-0.46.20250213.710}/PKG-INFO +9 -9
  2. {pkscreener-0.46.20250213.708 → pkscreener-0.46.20250213.710}/README.md +5 -5
  3. {pkscreener-0.46.20250213.708 → pkscreener-0.46.20250213.710}/pkscreener/README.txt +5 -5
  4. {pkscreener-0.46.20250213.708 → pkscreener-0.46.20250213.710}/pkscreener/classes/MarketMonitor.py +18 -14
  5. {pkscreener-0.46.20250213.708 → pkscreener-0.46.20250213.710}/pkscreener/classes/WorkflowManager.py +23 -0
  6. pkscreener-0.46.20250213.710/pkscreener/classes/__init__.py +1 -0
  7. {pkscreener-0.46.20250213.708 → pkscreener-0.46.20250213.710}/pkscreener/pkscreenerbot.py +7 -0
  8. {pkscreener-0.46.20250213.708 → pkscreener-0.46.20250213.710}/pkscreener/requirements.txt +2 -2
  9. {pkscreener-0.46.20250213.708 → pkscreener-0.46.20250213.710}/pkscreener.egg-info/PKG-INFO +9 -9
  10. {pkscreener-0.46.20250213.708 → pkscreener-0.46.20250213.710}/pkscreener.egg-info/requires.txt +2 -2
  11. pkscreener-0.46.20250213.708/pkscreener/classes/__init__.py +0 -1
  12. {pkscreener-0.46.20250213.708 → pkscreener-0.46.20250213.710}/LICENSE +0 -0
  13. {pkscreener-0.46.20250213.708 → pkscreener-0.46.20250213.710}/pkscreener/Disclaimer.txt +0 -0
  14. {pkscreener-0.46.20250213.708 → pkscreener-0.46.20250213.710}/pkscreener/LICENSE-Others.txt +0 -0
  15. {pkscreener-0.46.20250213.708 → pkscreener-0.46.20250213.710}/pkscreener/LICENSE.txt +0 -0
  16. {pkscreener-0.46.20250213.708 → pkscreener-0.46.20250213.710}/pkscreener/LogoWM.txt +0 -0
  17. {pkscreener-0.46.20250213.708 → pkscreener-0.46.20250213.710}/pkscreener/__init__.py +0 -0
  18. {pkscreener-0.46.20250213.708 → pkscreener-0.46.20250213.710}/pkscreener/classes/ArtTexts.py +0 -0
  19. {pkscreener-0.46.20250213.708 → pkscreener-0.46.20250213.710}/pkscreener/classes/AssetsManager.py +0 -0
  20. {pkscreener-0.46.20250213.708 → pkscreener-0.46.20250213.710}/pkscreener/classes/Backtest.py +0 -0
  21. {pkscreener-0.46.20250213.708 → pkscreener-0.46.20250213.710}/pkscreener/classes/Barometer.py +0 -0
  22. {pkscreener-0.46.20250213.708 → pkscreener-0.46.20250213.710}/pkscreener/classes/BaseScreeningStatistics.py +0 -0
  23. {pkscreener-0.46.20250213.708 → pkscreener-0.46.20250213.710}/pkscreener/classes/CandlePatterns.py +0 -0
  24. {pkscreener-0.46.20250213.708 → pkscreener-0.46.20250213.710}/pkscreener/classes/Changelog.py +0 -0
  25. {pkscreener-0.46.20250213.708 → pkscreener-0.46.20250213.710}/pkscreener/classes/ConfigManager.py +0 -0
  26. {pkscreener-0.46.20250213.708 → pkscreener-0.46.20250213.710}/pkscreener/classes/ConsoleMenuUtility.py +0 -0
  27. {pkscreener-0.46.20250213.708 → pkscreener-0.46.20250213.710}/pkscreener/classes/ConsoleUtility.py +0 -0
  28. {pkscreener-0.46.20250213.708 → pkscreener-0.46.20250213.710}/pkscreener/classes/Fetcher.py +0 -0
  29. {pkscreener-0.46.20250213.708 → pkscreener-0.46.20250213.710}/pkscreener/classes/GlobalStore.py +0 -0
  30. {pkscreener-0.46.20250213.708 → pkscreener-0.46.20250213.710}/pkscreener/classes/ImageUtility.py +0 -0
  31. {pkscreener-0.46.20250213.708 → pkscreener-0.46.20250213.710}/pkscreener/classes/MarketStatus.py +0 -0
  32. {pkscreener-0.46.20250213.708 → pkscreener-0.46.20250213.710}/pkscreener/classes/MenuOptions.py +0 -0
  33. {pkscreener-0.46.20250213.708 → pkscreener-0.46.20250213.710}/pkscreener/classes/Messenger.py +0 -0
  34. {pkscreener-0.46.20250213.708 → pkscreener-0.46.20250213.710}/pkscreener/classes/OtaUpdater.py +0 -0
  35. {pkscreener-0.46.20250213.708 → pkscreener-0.46.20250213.710}/pkscreener/classes/PKAnalytics.py +0 -0
  36. {pkscreener-0.46.20250213.708 → pkscreener-0.46.20250213.710}/pkscreener/classes/PKDataService.py +0 -0
  37. {pkscreener-0.46.20250213.708 → pkscreener-0.46.20250213.710}/pkscreener/classes/PKDemoHandler.py +0 -0
  38. {pkscreener-0.46.20250213.708 → pkscreener-0.46.20250213.710}/pkscreener/classes/PKMarketOpenCloseAnalyser.py +0 -0
  39. {pkscreener-0.46.20250213.708 → pkscreener-0.46.20250213.710}/pkscreener/classes/PKPremiumHandler.py +0 -0
  40. {pkscreener-0.46.20250213.708 → pkscreener-0.46.20250213.710}/pkscreener/classes/PKScanRunner.py +0 -0
  41. {pkscreener-0.46.20250213.708 → pkscreener-0.46.20250213.710}/pkscreener/classes/PKScheduledTaskProgress.py +0 -0
  42. {pkscreener-0.46.20250213.708 → pkscreener-0.46.20250213.710}/pkscreener/classes/PKScheduler.py +0 -0
  43. {pkscreener-0.46.20250213.708 → pkscreener-0.46.20250213.710}/pkscreener/classes/PKSpreadsheets.py +0 -0
  44. {pkscreener-0.46.20250213.708 → pkscreener-0.46.20250213.710}/pkscreener/classes/PKTask.py +0 -0
  45. {pkscreener-0.46.20250213.708 → pkscreener-0.46.20250213.710}/pkscreener/classes/PKUserRegistration.py +0 -0
  46. {pkscreener-0.46.20250213.708 → pkscreener-0.46.20250213.710}/pkscreener/classes/Pktalib.py +0 -0
  47. {pkscreener-0.46.20250213.708 → pkscreener-0.46.20250213.710}/pkscreener/classes/Portfolio.py +0 -0
  48. {pkscreener-0.46.20250213.708 → pkscreener-0.46.20250213.710}/pkscreener/classes/PortfolioXRay.py +0 -0
  49. {pkscreener-0.46.20250213.708 → pkscreener-0.46.20250213.710}/pkscreener/classes/ScreeningStatistics.py +0 -0
  50. {pkscreener-0.46.20250213.708 → pkscreener-0.46.20250213.710}/pkscreener/classes/StockScreener.py +0 -0
  51. {pkscreener-0.46.20250213.708 → pkscreener-0.46.20250213.710}/pkscreener/classes/StockSentiment.py +0 -0
  52. {pkscreener-0.46.20250213.708 → pkscreener-0.46.20250213.710}/pkscreener/classes/UserMenuChoicesHandler.py +0 -0
  53. {pkscreener-0.46.20250213.708 → pkscreener-0.46.20250213.710}/pkscreener/classes/Utility.py +0 -0
  54. {pkscreener-0.46.20250213.708 → pkscreener-0.46.20250213.710}/pkscreener/classes/keys.py +0 -0
  55. {pkscreener-0.46.20250213.708 → pkscreener-0.46.20250213.710}/pkscreener/courbd.ttf +0 -0
  56. {pkscreener-0.46.20250213.708 → pkscreener-0.46.20250213.710}/pkscreener/globals.py +0 -0
  57. {pkscreener-0.46.20250213.708 → pkscreener-0.46.20250213.710}/pkscreener/pkscreener.ini +0 -0
  58. {pkscreener-0.46.20250213.708 → pkscreener-0.46.20250213.710}/pkscreener/pkscreenercli.py +0 -0
  59. {pkscreener-0.46.20250213.708 → pkscreener-0.46.20250213.710}/pkscreener.egg-info/SOURCES.txt +0 -0
  60. {pkscreener-0.46.20250213.708 → pkscreener-0.46.20250213.710}/pkscreener.egg-info/dependency_links.txt +0 -0
  61. {pkscreener-0.46.20250213.708 → pkscreener-0.46.20250213.710}/pkscreener.egg-info/entry_points.txt +0 -0
  62. {pkscreener-0.46.20250213.708 → pkscreener-0.46.20250213.710}/pkscreener.egg-info/not-zip-safe +0 -0
  63. {pkscreener-0.46.20250213.708 → pkscreener-0.46.20250213.710}/pkscreener.egg-info/top_level.txt +0 -0
  64. {pkscreener-0.46.20250213.708 → pkscreener-0.46.20250213.710}/setup.cfg +0 -0
  65. {pkscreener-0.46.20250213.708 → pkscreener-0.46.20250213.710}/setup.py +0 -0
@@ -1,9 +1,9 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: pkscreener
3
- Version: 0.46.20250213.708
3
+ Version: 0.46.20250213.710
4
4
  Summary: A Python-based stock screener for NSE, India with alerts to Telegram Channel (pkscreener)
5
5
  Home-page: https://github.com/pkjmesra/pkscreener
6
- Download-URL: https://github.com/pkjmesra/pkscreener/archive/v0.46.20250213.708.zip
6
+ Download-URL: https://github.com/pkjmesra/pkscreener/archive/v0.46.20250213.710.zip
7
7
  Author: pkjmesra
8
8
  Author-email: pkjmesra@gmail.com
9
9
  License: OSI Approved (MIT)
@@ -33,8 +33,8 @@ Requires-Dist: pandas
33
33
  Requires-Dist: pandas_ta
34
34
  Requires-Dist: pefile<2024.8.26,>=2023.2.7
35
35
  Requires-Dist: Pillow
36
- Requires-Dist: PKDevTools>=0.13.20250126.231
37
- Requires-Dist: PKNSETools>=0.1.20250122.136
36
+ Requires-Dist: PKDevTools>=0.13.20250126.233
37
+ Requires-Dist: PKNSETools>=0.1.20250122.137
38
38
  Requires-Dist: Pyarrow
39
39
  Requires-Dist: pyppeteer
40
40
  Requires-Dist: pytz
@@ -392,15 +392,15 @@ After you have finished the run, go to that copied path, zip the contents of the
392
392
  [MADE-IN-INDIA-badge]: https://img.shields.io/badge/MADE%20WITH%20%E2%9D%A4%20IN-INDIA-orange
393
393
  [MADE-IN-INDIA]: https://en.wikipedia.org/wiki/India
394
394
  [Windows-badge]: https://img.shields.io/badge/Windows-0078D6?logo=windows&logoColor=white
395
- [Windows]: https://github.com/pkjmesra/PKScreener/releases/download/0.46.20250213.706/pkscreenercli.exe
395
+ [Windows]: https://github.com/pkjmesra/PKScreener/releases/download/0.46.20250213.709/pkscreenercli.exe
396
396
  [Linux-badge_x64]: https://img.shields.io/badge/Linux(x64)-FCC624?logo=linux&logoColor=black
397
- [Linux_x64]: https://github.com/pkjmesra/PKScreener/releases/download/0.46.20250213.706/pkscreenercli_x64.bin
397
+ [Linux_x64]: https://github.com/pkjmesra/PKScreener/releases/download/0.46.20250213.709/pkscreenercli_x64.bin
398
398
  [Linux-badge_arm64]: https://img.shields.io/badge/Linux(arm64)-FCC624?logo=linux&logoColor=black
399
- [Linux_arm64]: https://github.com/pkjmesra/PKScreener/releases/download/0.46.20250213.706/pkscreenercli_arm64.bin
399
+ [Linux_arm64]: https://github.com/pkjmesra/PKScreener/releases/download/0.46.20250213.709/pkscreenercli_arm64.bin
400
400
  [Mac OS-badge_x64]: https://img.shields.io/badge/mac%20os(x64)-D3D3D3?logo=apple&logoColor=000000
401
- [Mac OS_x64]: https://github.com/pkjmesra/PKScreener/releases/download/0.46.20250213.706/pkscreenercli_x64.run
401
+ [Mac OS_x64]: https://github.com/pkjmesra/PKScreener/releases/download/0.46.20250213.709/pkscreenercli_x64.run
402
402
  [Mac OS-badge_arm64]: https://img.shields.io/badge/mac%20os(arm64)-D3D3D3?logo=apple&logoColor=000000
403
- [Mac OS_arm64]: https://github.com/pkjmesra/PKScreener/releases/download/0.46.20250213.706/pkscreenercli_arm64.run
403
+ [Mac OS_arm64]: https://github.com/pkjmesra/PKScreener/releases/download/0.46.20250213.709/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
@@ -328,15 +328,15 @@ After you have finished the run, go to that copied path, zip the contents of the
328
328
  [MADE-IN-INDIA-badge]: https://img.shields.io/badge/MADE%20WITH%20%E2%9D%A4%20IN-INDIA-orange
329
329
  [MADE-IN-INDIA]: https://en.wikipedia.org/wiki/India
330
330
  [Windows-badge]: https://img.shields.io/badge/Windows-0078D6?logo=windows&logoColor=white
331
- [Windows]: https://github.com/pkjmesra/PKScreener/releases/download/0.46.20250213.706/pkscreenercli.exe
331
+ [Windows]: https://github.com/pkjmesra/PKScreener/releases/download/0.46.20250213.709/pkscreenercli.exe
332
332
  [Linux-badge_x64]: https://img.shields.io/badge/Linux(x64)-FCC624?logo=linux&logoColor=black
333
- [Linux_x64]: https://github.com/pkjmesra/PKScreener/releases/download/0.46.20250213.706/pkscreenercli_x64.bin
333
+ [Linux_x64]: https://github.com/pkjmesra/PKScreener/releases/download/0.46.20250213.709/pkscreenercli_x64.bin
334
334
  [Linux-badge_arm64]: https://img.shields.io/badge/Linux(arm64)-FCC624?logo=linux&logoColor=black
335
- [Linux_arm64]: https://github.com/pkjmesra/PKScreener/releases/download/0.46.20250213.706/pkscreenercli_arm64.bin
335
+ [Linux_arm64]: https://github.com/pkjmesra/PKScreener/releases/download/0.46.20250213.709/pkscreenercli_arm64.bin
336
336
  [Mac OS-badge_x64]: https://img.shields.io/badge/mac%20os(x64)-D3D3D3?logo=apple&logoColor=000000
337
- [Mac OS_x64]: https://github.com/pkjmesra/PKScreener/releases/download/0.46.20250213.706/pkscreenercli_x64.run
337
+ [Mac OS_x64]: https://github.com/pkjmesra/PKScreener/releases/download/0.46.20250213.709/pkscreenercli_x64.run
338
338
  [Mac OS-badge_arm64]: https://img.shields.io/badge/mac%20os(arm64)-D3D3D3?logo=apple&logoColor=000000
339
- [Mac OS_arm64]: https://github.com/pkjmesra/PKScreener/releases/download/0.46.20250213.706/pkscreenercli_arm64.run
339
+ [Mac OS_arm64]: https://github.com/pkjmesra/PKScreener/releases/download/0.46.20250213.709/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
@@ -328,15 +328,15 @@ After you have finished the run, go to that copied path, zip the contents of the
328
328
  [MADE-IN-INDIA-badge]: https://img.shields.io/badge/MADE%20WITH%20%E2%9D%A4%20IN-INDIA-orange
329
329
  [MADE-IN-INDIA]: https://en.wikipedia.org/wiki/India
330
330
  [Windows-badge]: https://img.shields.io/badge/Windows-0078D6?logo=windows&logoColor=white
331
- [Windows]: https://github.com/pkjmesra/PKScreener/releases/download/0.46.20250213.706/pkscreenercli.exe
331
+ [Windows]: https://github.com/pkjmesra/PKScreener/releases/download/0.46.20250213.709/pkscreenercli.exe
332
332
  [Linux-badge_x64]: https://img.shields.io/badge/Linux(x64)-FCC624?logo=linux&logoColor=black
333
- [Linux_x64]: https://github.com/pkjmesra/PKScreener/releases/download/0.46.20250213.706/pkscreenercli_x64.bin
333
+ [Linux_x64]: https://github.com/pkjmesra/PKScreener/releases/download/0.46.20250213.709/pkscreenercli_x64.bin
334
334
  [Linux-badge_arm64]: https://img.shields.io/badge/Linux(arm64)-FCC624?logo=linux&logoColor=black
335
- [Linux_arm64]: https://github.com/pkjmesra/PKScreener/releases/download/0.46.20250213.706/pkscreenercli_arm64.bin
335
+ [Linux_arm64]: https://github.com/pkjmesra/PKScreener/releases/download/0.46.20250213.709/pkscreenercli_arm64.bin
336
336
  [Mac OS-badge_x64]: https://img.shields.io/badge/mac%20os(x64)-D3D3D3?logo=apple&logoColor=000000
337
- [Mac OS_x64]: https://github.com/pkjmesra/PKScreener/releases/download/0.46.20250213.706/pkscreenercli_x64.run
337
+ [Mac OS_x64]: https://github.com/pkjmesra/PKScreener/releases/download/0.46.20250213.709/pkscreenercli_x64.run
338
338
  [Mac OS-badge_arm64]: https://img.shields.io/badge/mac%20os(arm64)-D3D3D3?logo=apple&logoColor=000000
339
- [Mac OS_arm64]: https://github.com/pkjmesra/PKScreener/releases/download/0.46.20250213.706/pkscreenercli_arm64.run
339
+ [Mac OS_arm64]: https://github.com/pkjmesra/PKScreener/releases/download/0.46.20250213.709/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
@@ -95,31 +95,35 @@ class MarketMonitor(SingletonMixin, metaclass=SingletonType):
95
95
  return option
96
96
 
97
97
  def saveMonitorResultStocks(self, results_df):
98
+ try:
99
+ self.alertStocks = []
100
+ lastSavedResults = self.monitorResultStocks[str(self.monitorIndex)]
101
+ lastSavedResults = lastSavedResults.split(",")
102
+ except:
103
+ lastSavedResults = []
104
+ pass
105
+ prevOutput_results = ""
98
106
  if results_df is None or results_df.empty:
99
107
  prevOutput_results = "NONE"
100
108
  else:
101
109
  prevOutput_results = results_df[~results_df.index.duplicated(keep='first')]
102
110
  prevOutput_results = prevOutput_results.index
103
- # # Maybe the index is an int ?
104
- # prevOutput_results = [str(stock) for stock in prevOutput_results]
105
- try:
106
- lastSavedResults = self.monitorResultStocks[str(self.monitorIndex)]
107
- if lastSavedResults is not None and len(lastSavedResults) > 0:
108
- lastSavedResults = lastSavedResults.split(",")
109
- s = set(lastSavedResults)
110
- self.alertStocks = [x for x in prevOutput_results if x not in s]
111
- else:
112
- self.alertStocks = []
113
- except: # pragma: no cover
114
- pass
115
111
  prevOutput_results = ",".join(prevOutput_results)
116
- if len(self.monitorResultStocks.keys()) > 0 and len(self.monitorResultStocks[str(self.monitorIndex)]) > 0 and prevOutput_results == "NONE":
112
+ if len(self.monitorResultStocks.keys()) > self.monitorIndex and len(self.monitorResultStocks[str(self.monitorIndex)]) > 0 and prevOutput_results == "NONE":
117
113
  prevOutput_results = self.monitorResultStocks[str(self.monitorIndex)]
118
- self.monitorResultStocks[str(self.monitorIndex)] = prevOutput_results
114
+ addedStocks = list(set(prevOutput_results.split(',')) - set(lastSavedResults)) # Elements in new df but not in the saved df
115
+ if len(self.alertStocks) != len(addedStocks) and len(addedStocks) > 0:
116
+ self.alertStocks = addedStocks
117
+ diffAlerts = list(set(self.alertStocks) - set(addedStocks))
118
+ if len(diffAlerts) > 0:
119
+ self.alertStocks = addedStocks
120
+ if len(addedStocks) > 0:
121
+ self.monitorResultStocks[str(self.monitorIndex)] = prevOutput_results
119
122
 
120
123
  def refresh(self, screen_df:pd.DataFrame=None, screenOptions=None, chosenMenu="", dbTimestamp="", telegram=False):
121
124
  highlightRows = []
122
125
  highlightCols = []
126
+ telegram_df = None
123
127
  if screen_df is None or screen_df.empty or screenOptions is None:
124
128
  return
125
129
  screen_monitor_df = screen_df.copy()
@@ -91,6 +91,29 @@ def run_workflow(command=None, user=None, options=None, workflowType="B",repo=No
91
91
  if workflow_name is None or workflow_postData is None or ghp_token is None:
92
92
  raise Exception("workflow_name, workflow_postData, and ghp_token must NOT be blank!")
93
93
  data = workflow_postData
94
+ elif workflowType == "S": # Scanner job kick off for 1-on-1 alerts
95
+ cmd_options = options.replace("_",":")
96
+ if workflow_name is None:
97
+ workflow_name = "w8-workflow-alert-scan_generic.yml"
98
+ if 'ALERT_TRIGGER' in os.environ.keys() and os.environ["ALERT_TRIGGER"] == 'Y':
99
+ alertTrigger = 'Y'
100
+ else:
101
+ alertTrigger = 'N'
102
+ if user is None or len(user) == 0:
103
+ user = ""
104
+ data = (
105
+ '{"ref":"'
106
+ + branch
107
+ + '","inputs":{"user":"'
108
+ + f"{user}"
109
+ + '","params":"'
110
+ + f'{cmd_options}'
111
+ + f'","ref":"{branch}","alertTrigger":"'
112
+ + f"{alertTrigger}"
113
+ + '","name":"'
114
+ + f"{command}"
115
+ + '"}}'
116
+ )
94
117
 
95
118
  if ghp_token is None:
96
119
  _, _, _, ghp_token = PKEnvironment().secrets
@@ -0,0 +1 @@
1
+ VERSION='0.46.20250213.710'
@@ -654,9 +654,16 @@ def subscribeToScannerAlerts(update: Update, context: CallbackContext) -> str:
654
654
  menuText = f"You need at least <b>₹ {requiredBalance}</b> to subscribe to <b>{scanId} alerts for a day</b> ! Your current balance <b>₹ {alertUser.balance}</b> is <b>insufficient</b>. {payWall}"
655
655
  else:
656
656
  # Sufficient balance to subscribe to scanId
657
+ needsNewJobKickedOff = False
658
+ subscribedUsers = dbManager.usersForScannerJobId(scannerJobId=scanId)
659
+ if subscribedUsers is None or len(subscribedUsers) == 0:
660
+ # This is the first user who's requesting this scanner
661
+ needsNewJobKickedOff = True
657
662
  subscribed = dbManager.updateAlertSubscriptionModel(user.id,requiredBalance,scanId)
658
663
  if subscribed:
659
664
  menuText = f"You have been added to receive the alerts for {scanId}. Please note that it is valid only for today during Market Hours and resets right after that. You will need to re-subscribe again if you need it on the next day. Thank you for trusting PKScreener!"
665
+ if needsNewJobKickedOff:
666
+ run_workflow(f"{scanId}_{user.id}", str(user.id), f'--systemlaunched -a y -m {str(scanId).upper().replace("_",":")}', workflowType="S")
660
667
  else:
661
668
  menuText = "We encountered an error updating your subscription! Please reach out to @ItsOnlyPK on Telegram with your UTR and subscription scanner details."
662
669
 
@@ -19,8 +19,8 @@ pandas_ta #>=0.3.14b0
19
19
  # and https://github.com/pyinstaller/pyinstaller/issues/7269
20
20
  pefile>=2023.2.7,<2024.8.26
21
21
  Pillow #>=9.5.0,<=9.5.0 # Keep at this version because getsize_multiline is deprecated/removed in higher versions
22
- PKDevTools>=0.13.20250126.231
23
- PKNSETools>=0.1.20250122.136
22
+ PKDevTools>=0.13.20250126.233
23
+ PKNSETools>=0.1.20250122.137
24
24
  Pyarrow #>=17.0.0
25
25
  pyppeteer #>=2.0.0
26
26
  pytz #>=2024.2
@@ -1,9 +1,9 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: pkscreener
3
- Version: 0.46.20250213.708
3
+ Version: 0.46.20250213.710
4
4
  Summary: A Python-based stock screener for NSE, India with alerts to Telegram Channel (pkscreener)
5
5
  Home-page: https://github.com/pkjmesra/pkscreener
6
- Download-URL: https://github.com/pkjmesra/pkscreener/archive/v0.46.20250213.708.zip
6
+ Download-URL: https://github.com/pkjmesra/pkscreener/archive/v0.46.20250213.710.zip
7
7
  Author: pkjmesra
8
8
  Author-email: pkjmesra@gmail.com
9
9
  License: OSI Approved (MIT)
@@ -33,8 +33,8 @@ Requires-Dist: pandas
33
33
  Requires-Dist: pandas_ta
34
34
  Requires-Dist: pefile<2024.8.26,>=2023.2.7
35
35
  Requires-Dist: Pillow
36
- Requires-Dist: PKDevTools>=0.13.20250126.231
37
- Requires-Dist: PKNSETools>=0.1.20250122.136
36
+ Requires-Dist: PKDevTools>=0.13.20250126.233
37
+ Requires-Dist: PKNSETools>=0.1.20250122.137
38
38
  Requires-Dist: Pyarrow
39
39
  Requires-Dist: pyppeteer
40
40
  Requires-Dist: pytz
@@ -392,15 +392,15 @@ After you have finished the run, go to that copied path, zip the contents of the
392
392
  [MADE-IN-INDIA-badge]: https://img.shields.io/badge/MADE%20WITH%20%E2%9D%A4%20IN-INDIA-orange
393
393
  [MADE-IN-INDIA]: https://en.wikipedia.org/wiki/India
394
394
  [Windows-badge]: https://img.shields.io/badge/Windows-0078D6?logo=windows&logoColor=white
395
- [Windows]: https://github.com/pkjmesra/PKScreener/releases/download/0.46.20250213.706/pkscreenercli.exe
395
+ [Windows]: https://github.com/pkjmesra/PKScreener/releases/download/0.46.20250213.709/pkscreenercli.exe
396
396
  [Linux-badge_x64]: https://img.shields.io/badge/Linux(x64)-FCC624?logo=linux&logoColor=black
397
- [Linux_x64]: https://github.com/pkjmesra/PKScreener/releases/download/0.46.20250213.706/pkscreenercli_x64.bin
397
+ [Linux_x64]: https://github.com/pkjmesra/PKScreener/releases/download/0.46.20250213.709/pkscreenercli_x64.bin
398
398
  [Linux-badge_arm64]: https://img.shields.io/badge/Linux(arm64)-FCC624?logo=linux&logoColor=black
399
- [Linux_arm64]: https://github.com/pkjmesra/PKScreener/releases/download/0.46.20250213.706/pkscreenercli_arm64.bin
399
+ [Linux_arm64]: https://github.com/pkjmesra/PKScreener/releases/download/0.46.20250213.709/pkscreenercli_arm64.bin
400
400
  [Mac OS-badge_x64]: https://img.shields.io/badge/mac%20os(x64)-D3D3D3?logo=apple&logoColor=000000
401
- [Mac OS_x64]: https://github.com/pkjmesra/PKScreener/releases/download/0.46.20250213.706/pkscreenercli_x64.run
401
+ [Mac OS_x64]: https://github.com/pkjmesra/PKScreener/releases/download/0.46.20250213.709/pkscreenercli_x64.run
402
402
  [Mac OS-badge_arm64]: https://img.shields.io/badge/mac%20os(arm64)-D3D3D3?logo=apple&logoColor=000000
403
- [Mac OS_arm64]: https://github.com/pkjmesra/PKScreener/releases/download/0.46.20250213.706/pkscreenercli_arm64.run
403
+ [Mac OS_arm64]: https://github.com/pkjmesra/PKScreener/releases/download/0.46.20250213.709/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
@@ -15,8 +15,8 @@ pandas
15
15
  pandas_ta
16
16
  pefile<2024.8.26,>=2023.2.7
17
17
  Pillow
18
- PKDevTools>=0.13.20250126.231
19
- PKNSETools>=0.1.20250122.136
18
+ PKDevTools>=0.13.20250126.233
19
+ PKNSETools>=0.1.20250122.137
20
20
  Pyarrow
21
21
  pyppeteer
22
22
  pytz
@@ -1 +0,0 @@
1
- VERSION='0.46.20250213.708'