pkscreener 0.46.20250210.703__tar.gz → 0.46.20250212.704__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.
- {pkscreener-0.46.20250210.703 → pkscreener-0.46.20250212.704}/PKG-INFO +12 -10
- {pkscreener-0.46.20250210.703 → pkscreener-0.46.20250212.704}/README.md +9 -7
- {pkscreener-0.46.20250210.703 → pkscreener-0.46.20250212.704}/pkscreener/README.txt +9 -7
- {pkscreener-0.46.20250210.703 → pkscreener-0.46.20250212.704}/pkscreener/classes/MarketMonitor.py +16 -5
- pkscreener-0.46.20250212.704/pkscreener/classes/__init__.py +1 -0
- {pkscreener-0.46.20250210.703 → pkscreener-0.46.20250212.704}/pkscreener/globals.py +3 -3
- {pkscreener-0.46.20250210.703 → pkscreener-0.46.20250212.704}/pkscreener/pkscreenerbot.py +285 -210
- {pkscreener-0.46.20250210.703 → pkscreener-0.46.20250212.704}/pkscreener/requirements.txt +1 -1
- {pkscreener-0.46.20250210.703 → pkscreener-0.46.20250212.704}/pkscreener.egg-info/PKG-INFO +12 -10
- {pkscreener-0.46.20250210.703 → pkscreener-0.46.20250212.704}/pkscreener.egg-info/requires.txt +1 -1
- pkscreener-0.46.20250210.703/pkscreener/classes/__init__.py +0 -1
- {pkscreener-0.46.20250210.703 → pkscreener-0.46.20250212.704}/LICENSE +0 -0
- {pkscreener-0.46.20250210.703 → pkscreener-0.46.20250212.704}/pkscreener/Disclaimer.txt +0 -0
- {pkscreener-0.46.20250210.703 → pkscreener-0.46.20250212.704}/pkscreener/LICENSE-Others.txt +0 -0
- {pkscreener-0.46.20250210.703 → pkscreener-0.46.20250212.704}/pkscreener/LICENSE.txt +0 -0
- {pkscreener-0.46.20250210.703 → pkscreener-0.46.20250212.704}/pkscreener/LogoWM.txt +0 -0
- {pkscreener-0.46.20250210.703 → pkscreener-0.46.20250212.704}/pkscreener/__init__.py +0 -0
- {pkscreener-0.46.20250210.703 → pkscreener-0.46.20250212.704}/pkscreener/classes/ArtTexts.py +0 -0
- {pkscreener-0.46.20250210.703 → pkscreener-0.46.20250212.704}/pkscreener/classes/AssetsManager.py +0 -0
- {pkscreener-0.46.20250210.703 → pkscreener-0.46.20250212.704}/pkscreener/classes/Backtest.py +0 -0
- {pkscreener-0.46.20250210.703 → pkscreener-0.46.20250212.704}/pkscreener/classes/Barometer.py +0 -0
- {pkscreener-0.46.20250210.703 → pkscreener-0.46.20250212.704}/pkscreener/classes/BaseScreeningStatistics.py +0 -0
- {pkscreener-0.46.20250210.703 → pkscreener-0.46.20250212.704}/pkscreener/classes/CandlePatterns.py +0 -0
- {pkscreener-0.46.20250210.703 → pkscreener-0.46.20250212.704}/pkscreener/classes/Changelog.py +0 -0
- {pkscreener-0.46.20250210.703 → pkscreener-0.46.20250212.704}/pkscreener/classes/ConfigManager.py +0 -0
- {pkscreener-0.46.20250210.703 → pkscreener-0.46.20250212.704}/pkscreener/classes/ConsoleMenuUtility.py +0 -0
- {pkscreener-0.46.20250210.703 → pkscreener-0.46.20250212.704}/pkscreener/classes/ConsoleUtility.py +0 -0
- {pkscreener-0.46.20250210.703 → pkscreener-0.46.20250212.704}/pkscreener/classes/Fetcher.py +0 -0
- {pkscreener-0.46.20250210.703 → pkscreener-0.46.20250212.704}/pkscreener/classes/GlobalStore.py +0 -0
- {pkscreener-0.46.20250210.703 → pkscreener-0.46.20250212.704}/pkscreener/classes/ImageUtility.py +0 -0
- {pkscreener-0.46.20250210.703 → pkscreener-0.46.20250212.704}/pkscreener/classes/MarketStatus.py +0 -0
- {pkscreener-0.46.20250210.703 → pkscreener-0.46.20250212.704}/pkscreener/classes/MenuOptions.py +0 -0
- {pkscreener-0.46.20250210.703 → pkscreener-0.46.20250212.704}/pkscreener/classes/Messenger.py +0 -0
- {pkscreener-0.46.20250210.703 → pkscreener-0.46.20250212.704}/pkscreener/classes/OtaUpdater.py +0 -0
- {pkscreener-0.46.20250210.703 → pkscreener-0.46.20250212.704}/pkscreener/classes/PKAnalytics.py +0 -0
- {pkscreener-0.46.20250210.703 → pkscreener-0.46.20250212.704}/pkscreener/classes/PKDataService.py +0 -0
- {pkscreener-0.46.20250210.703 → pkscreener-0.46.20250212.704}/pkscreener/classes/PKDemoHandler.py +0 -0
- {pkscreener-0.46.20250210.703 → pkscreener-0.46.20250212.704}/pkscreener/classes/PKMarketOpenCloseAnalyser.py +0 -0
- {pkscreener-0.46.20250210.703 → pkscreener-0.46.20250212.704}/pkscreener/classes/PKPremiumHandler.py +0 -0
- {pkscreener-0.46.20250210.703 → pkscreener-0.46.20250212.704}/pkscreener/classes/PKScanRunner.py +0 -0
- {pkscreener-0.46.20250210.703 → pkscreener-0.46.20250212.704}/pkscreener/classes/PKScheduledTaskProgress.py +0 -0
- {pkscreener-0.46.20250210.703 → pkscreener-0.46.20250212.704}/pkscreener/classes/PKScheduler.py +0 -0
- {pkscreener-0.46.20250210.703 → pkscreener-0.46.20250212.704}/pkscreener/classes/PKSpreadsheets.py +0 -0
- {pkscreener-0.46.20250210.703 → pkscreener-0.46.20250212.704}/pkscreener/classes/PKTask.py +0 -0
- {pkscreener-0.46.20250210.703 → pkscreener-0.46.20250212.704}/pkscreener/classes/PKUserRegistration.py +0 -0
- {pkscreener-0.46.20250210.703 → pkscreener-0.46.20250212.704}/pkscreener/classes/Pktalib.py +0 -0
- {pkscreener-0.46.20250210.703 → pkscreener-0.46.20250212.704}/pkscreener/classes/Portfolio.py +0 -0
- {pkscreener-0.46.20250210.703 → pkscreener-0.46.20250212.704}/pkscreener/classes/PortfolioXRay.py +0 -0
- {pkscreener-0.46.20250210.703 → pkscreener-0.46.20250212.704}/pkscreener/classes/ScreeningStatistics.py +0 -0
- {pkscreener-0.46.20250210.703 → pkscreener-0.46.20250212.704}/pkscreener/classes/StockScreener.py +0 -0
- {pkscreener-0.46.20250210.703 → pkscreener-0.46.20250212.704}/pkscreener/classes/StockSentiment.py +0 -0
- {pkscreener-0.46.20250210.703 → pkscreener-0.46.20250212.704}/pkscreener/classes/UserMenuChoicesHandler.py +0 -0
- {pkscreener-0.46.20250210.703 → pkscreener-0.46.20250212.704}/pkscreener/classes/Utility.py +0 -0
- {pkscreener-0.46.20250210.703 → pkscreener-0.46.20250212.704}/pkscreener/classes/WorkflowManager.py +0 -0
- {pkscreener-0.46.20250210.703 → pkscreener-0.46.20250212.704}/pkscreener/classes/keys.py +0 -0
- {pkscreener-0.46.20250210.703 → pkscreener-0.46.20250212.704}/pkscreener/courbd.ttf +0 -0
- {pkscreener-0.46.20250210.703 → pkscreener-0.46.20250212.704}/pkscreener/pkscreener.ini +0 -0
- {pkscreener-0.46.20250210.703 → pkscreener-0.46.20250212.704}/pkscreener/pkscreenercli.py +0 -0
- {pkscreener-0.46.20250210.703 → pkscreener-0.46.20250212.704}/pkscreener.egg-info/SOURCES.txt +0 -0
- {pkscreener-0.46.20250210.703 → pkscreener-0.46.20250212.704}/pkscreener.egg-info/dependency_links.txt +0 -0
- {pkscreener-0.46.20250210.703 → pkscreener-0.46.20250212.704}/pkscreener.egg-info/entry_points.txt +0 -0
- {pkscreener-0.46.20250210.703 → pkscreener-0.46.20250212.704}/pkscreener.egg-info/not-zip-safe +0 -0
- {pkscreener-0.46.20250210.703 → pkscreener-0.46.20250212.704}/pkscreener.egg-info/top_level.txt +0 -0
- {pkscreener-0.46.20250210.703 → pkscreener-0.46.20250212.704}/setup.cfg +0 -0
- {pkscreener-0.46.20250210.703 → pkscreener-0.46.20250212.704}/setup.py +0 -0
@@ -1,9 +1,9 @@
|
|
1
1
|
Metadata-Version: 2.2
|
2
2
|
Name: pkscreener
|
3
|
-
Version: 0.46.
|
3
|
+
Version: 0.46.20250212.704
|
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.
|
6
|
+
Download-URL: https://github.com/pkjmesra/pkscreener/archive/v0.46.20250212.704.zip
|
7
7
|
Author: pkjmesra
|
8
8
|
Author-email: pkjmesra@gmail.com
|
9
9
|
License: OSI Approved (MIT)
|
@@ -33,7 +33,7 @@ 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.
|
36
|
+
Requires-Dist: PKDevTools>=0.13.20250126.229
|
37
37
|
Requires-Dist: PKNSETools>=0.1.20250122.136
|
38
38
|
Requires-Dist: Pyarrow
|
39
39
|
Requires-Dist: pyppeteer
|
@@ -68,8 +68,8 @@ Dynamic: summary
|
|
68
68
|
| [![MADE-IN-INDIA][MADE-IN-INDIA-badge]][MADE-IN-INDIA] | [![GitHub release (latest by date)][GitHub release (latest by date)-badge]][GitHub release (latest by date)] | [![Downloads][Downloads-badge]][Downloads] | ![latest download][Latest-Downloads-badge] | [![Docker Pulls][Docker Pulls-badge]][Docker Status] |
|
69
69
|
| :-------------: | :-----------------: | :-----------------: | :-----------------: | :-----------------: |
|
70
70
|
| 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] |
|
71
|
-
| Package / Docs | [![Documentation][Documentation-badge]][Documentation] | [![PyPI][pypi-badge]][pypi] | [![is wheel][wheel-badge]][pypi] | ![github license][github-license] |
|
72
|
-
| Tests | [![CodeFactor][Codefactor-badge]][Codefactor] | [![Coverage Status][Coverage-Status-badge]][Coverage-Status] | [![codecov][codecov-badge]][codecov] | [![After Market][After Market-badge]][After Market] |
|
71
|
+
| 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] |
|
72
|
+
| 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] |
|
73
73
|
|
74
74
|
## What is PKScreener?
|
75
75
|
| Telegram Alerts | Nifty AI Prediction | Scheduling Cron Jobs | On-Demand Telegram Bot | Backtesting / Growth of 10k|
|
@@ -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.20250210.
|
395
|
+
[Windows]: https://github.com/pkjmesra/PKScreener/releases/download/0.46.20250210.703/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.20250210.
|
397
|
+
[Linux_x64]: https://github.com/pkjmesra/PKScreener/releases/download/0.46.20250210.703/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.20250210.
|
399
|
+
[Linux_arm64]: https://github.com/pkjmesra/PKScreener/releases/download/0.46.20250210.703/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.20250210.
|
401
|
+
[Mac OS_x64]: https://github.com/pkjmesra/PKScreener/releases/download/0.46.20250210.703/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.20250210.
|
403
|
+
[Mac OS_arm64]: https://github.com/pkjmesra/PKScreener/releases/download/0.46.20250210.703/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
|
@@ -436,6 +436,8 @@ After you have finished the run, go to that copied path, zip the contents of the
|
|
436
436
|
[New Release]: https://github.com/pkjmesra/PKScreener/actions/workflows/w1-workflow-build-matrix.yml
|
437
437
|
[Docker-Build-badge]: https://github.com/pkjmesra/PKScreener/actions/workflows/w15-docker-image.yml/badge.svg
|
438
438
|
[Docker-Build]: https://github.com/pkjmesra/PKScreener/actions/workflows/w15-docker-image.yml
|
439
|
+
[OpenSSF-Badge]:https://www.bestpractices.dev/projects/10011/badge
|
440
|
+
[OpenSSF-pkscreener]: https://www.bestpractices.dev/projects/10011
|
439
441
|
|
440
442
|
<!-- [![Docker Build][Docker-Build-badge]][Docker-Build] [![PKScreener Test - New Features][New Features-badge]][New Features] [![w9. After-Market Data Gen][After Market-badge]][After Market] [![1. PKScreener Build - New Release][New Release-badge]][New Release] [![Documentation][Documentation-badge]][Documentation]
|
441
443
|
|
@@ -4,8 +4,8 @@
|
|
4
4
|
| [![MADE-IN-INDIA][MADE-IN-INDIA-badge]][MADE-IN-INDIA] | [![GitHub release (latest by date)][GitHub release (latest by date)-badge]][GitHub release (latest by date)] | [![Downloads][Downloads-badge]][Downloads] | ![latest download][Latest-Downloads-badge] | [![Docker Pulls][Docker Pulls-badge]][Docker Status] |
|
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
|
-
| Package / Docs | [![Documentation][Documentation-badge]][Documentation] | [![PyPI][pypi-badge]][pypi] | [![is wheel][wheel-badge]][pypi] | ![github license][github-license] |
|
8
|
-
| Tests | [![CodeFactor][Codefactor-badge]][Codefactor] | [![Coverage Status][Coverage-Status-badge]][Coverage-Status] | [![codecov][codecov-badge]][codecov] | [![After Market][After Market-badge]][After Market] |
|
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] |
|
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.20250210.
|
331
|
+
[Windows]: https://github.com/pkjmesra/PKScreener/releases/download/0.46.20250210.703/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.20250210.
|
333
|
+
[Linux_x64]: https://github.com/pkjmesra/PKScreener/releases/download/0.46.20250210.703/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.20250210.
|
335
|
+
[Linux_arm64]: https://github.com/pkjmesra/PKScreener/releases/download/0.46.20250210.703/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.20250210.
|
337
|
+
[Mac OS_x64]: https://github.com/pkjmesra/PKScreener/releases/download/0.46.20250210.703/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.20250210.
|
339
|
+
[Mac OS_arm64]: https://github.com/pkjmesra/PKScreener/releases/download/0.46.20250210.703/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
|
@@ -372,6 +372,8 @@ After you have finished the run, go to that copied path, zip the contents of the
|
|
372
372
|
[New Release]: https://github.com/pkjmesra/PKScreener/actions/workflows/w1-workflow-build-matrix.yml
|
373
373
|
[Docker-Build-badge]: https://github.com/pkjmesra/PKScreener/actions/workflows/w15-docker-image.yml/badge.svg
|
374
374
|
[Docker-Build]: https://github.com/pkjmesra/PKScreener/actions/workflows/w15-docker-image.yml
|
375
|
+
[OpenSSF-Badge]:https://www.bestpractices.dev/projects/10011/badge
|
376
|
+
[OpenSSF-pkscreener]: https://www.bestpractices.dev/projects/10011
|
375
377
|
|
376
378
|
<!-- [![Docker Build][Docker-Build-badge]][Docker-Build] [![PKScreener Test - New Features][New Features-badge]][New Features] [![w9. After-Market Data Gen][After Market-badge]][After Market] [![1. PKScreener Build - New Release][New Release-badge]][New Release] [![Documentation][Documentation-badge]][Documentation]
|
377
379
|
|
@@ -4,8 +4,8 @@
|
|
4
4
|
| [![MADE-IN-INDIA][MADE-IN-INDIA-badge]][MADE-IN-INDIA] | [![GitHub release (latest by date)][GitHub release (latest by date)-badge]][GitHub release (latest by date)] | [![Downloads][Downloads-badge]][Downloads] | ![latest download][Latest-Downloads-badge] | [![Docker Pulls][Docker Pulls-badge]][Docker Status] |
|
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
|
-
| Package / Docs | [![Documentation][Documentation-badge]][Documentation] | [![PyPI][pypi-badge]][pypi] | [![is wheel][wheel-badge]][pypi] | ![github license][github-license] |
|
8
|
-
| Tests | [![CodeFactor][Codefactor-badge]][Codefactor] | [![Coverage Status][Coverage-Status-badge]][Coverage-Status] | [![codecov][codecov-badge]][codecov] | [![After Market][After Market-badge]][After Market] |
|
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] |
|
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.20250210.
|
331
|
+
[Windows]: https://github.com/pkjmesra/PKScreener/releases/download/0.46.20250210.703/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.20250210.
|
333
|
+
[Linux_x64]: https://github.com/pkjmesra/PKScreener/releases/download/0.46.20250210.703/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.20250210.
|
335
|
+
[Linux_arm64]: https://github.com/pkjmesra/PKScreener/releases/download/0.46.20250210.703/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.20250210.
|
337
|
+
[Mac OS_x64]: https://github.com/pkjmesra/PKScreener/releases/download/0.46.20250210.703/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.20250210.
|
339
|
+
[Mac OS_arm64]: https://github.com/pkjmesra/PKScreener/releases/download/0.46.20250210.703/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
|
@@ -372,6 +372,8 @@ After you have finished the run, go to that copied path, zip the contents of the
|
|
372
372
|
[New Release]: https://github.com/pkjmesra/PKScreener/actions/workflows/w1-workflow-build-matrix.yml
|
373
373
|
[Docker-Build-badge]: https://github.com/pkjmesra/PKScreener/actions/workflows/w15-docker-image.yml/badge.svg
|
374
374
|
[Docker-Build]: https://github.com/pkjmesra/PKScreener/actions/workflows/w15-docker-image.yml
|
375
|
+
[OpenSSF-Badge]:https://www.bestpractices.dev/projects/10011/badge
|
376
|
+
[OpenSSF-pkscreener]: https://www.bestpractices.dev/projects/10011
|
375
377
|
|
376
378
|
<!-- [![Docker Build][Docker-Build-badge]][Docker-Build] [![PKScreener Test - New Features][New Features-badge]][New Features] [![w9. After-Market Data Gen][After Market-badge]][After Market] [![1. PKScreener Build - New Release][New Release-badge]][New Release] [![Documentation][Documentation-badge]][Documentation]
|
377
379
|
|
{pkscreener-0.46.20250210.703 → pkscreener-0.46.20250212.704}/pkscreener/classes/MarketMonitor.py
RENAMED
@@ -241,6 +241,14 @@ class MarketMonitor(SingletonMixin, metaclass=SingletonType):
|
|
241
241
|
if telegram:
|
242
242
|
self.updateIfRunningInTelegramBotMode(screenOptions, chosenMenu, dbTimestamp, telegram, telegram_df)
|
243
243
|
else:
|
244
|
+
if ((screenOptions in self.alertOptions and numRecords > 1) or len(self.alertStocks) > 0): # Alert conditions met? Sound alert!
|
245
|
+
notify_df = telegram_df[telegram_df["Stock"].isin(self.alertStocks)]
|
246
|
+
notify_output = self.updateIfRunningInTelegramBotMode(screenOptions, chosenMenu, dbTimestamp, False, notify_df)
|
247
|
+
if len(notify_output) > 0:
|
248
|
+
from PKDevTools.classes.pubsub.publisher import PKUserService
|
249
|
+
PKUserService().notify_user(scannerID=screenOptions.replace(":D","").replace(":","_"),notification=notify_output)
|
250
|
+
# notify_df = self.monitor_df.reindex(self.alertStocks) # Includes missing stocks, if any. Returns NaN for such cases
|
251
|
+
Utility.tools.alertSound(beeps=5)
|
244
252
|
sleep(self.pinnedIntervalWaitSeconds)
|
245
253
|
|
246
254
|
def updateDataFrameForTelegramMode(self, telegram, screen_monitor_df):
|
@@ -273,7 +281,8 @@ class MarketMonitor(SingletonMixin, metaclass=SingletonType):
|
|
273
281
|
return telegram_df
|
274
282
|
|
275
283
|
def updateIfRunningInTelegramBotMode(self, screenOptions, chosenMenu, dbTimestamp, telegram, telegram_df):
|
276
|
-
|
284
|
+
result_output = ""
|
285
|
+
if telegram_df is not None:
|
277
286
|
STD_ENCODING=sys.stdout.encoding if sys.stdout is not None else 'utf-8'
|
278
287
|
|
279
288
|
telegram_df_tabulated = colorText.miniTabulator().tabulate(
|
@@ -289,12 +298,14 @@ class MarketMonitor(SingletonMixin, metaclass=SingletonType):
|
|
289
298
|
chosenMenu = f"{choiceSegments[-2]}>{choiceSegments[-1]}" if (len(choiceSegments)>=4 or len(choiceSegments[-1]) <= 10) else f"{choiceSegments[-1]}"
|
290
299
|
result_output = f"Latest data as of:{dbTimestamp}\n<b>{optionName}{chosenMenu}</b> [{screenOptions}]\n<pre>{telegram_df_tabulated}</pre>"
|
291
300
|
try:
|
292
|
-
|
293
|
-
|
294
|
-
|
295
|
-
|
301
|
+
if telegram:
|
302
|
+
filePath = os.path.join(Archiver.get_user_data_dir(), f"monitor_outputs_{self.monitorIndex}.txt")
|
303
|
+
f = open(filePath, "w")
|
304
|
+
f.write(result_output)
|
305
|
+
f.close()
|
296
306
|
except: # pragma: no cover
|
297
307
|
pass
|
308
|
+
return result_output
|
298
309
|
|
299
310
|
def getScanOptionName(self, screenOptions):
|
300
311
|
from pkscreener.classes.MenuOptions import PREDEFINED_SCAN_MENU_VALUES
|
@@ -0,0 +1 @@
|
|
1
|
+
VERSION='0.46.20250212.704'
|
@@ -3995,9 +3995,9 @@ def sendMessageToTelegramChannel(
|
|
3995
3995
|
os.remove(f)
|
3996
3996
|
except: # pragma: no cover
|
3997
3997
|
pass
|
3998
|
-
if message is None and mediagroup:
|
3999
|
-
|
4000
|
-
|
3998
|
+
# if message is None and mediagroup:
|
3999
|
+
# sendMessageToTelegramChannel(message=f"No scan results found for {menuChoiceHierarchy}", user=user)
|
4000
|
+
# return
|
4001
4001
|
handleAlertSubscriptions(user,message)
|
4002
4002
|
if user is not None:
|
4003
4003
|
if str(user) != str(DEV_CHANNEL_ID) and userPassedArgs is not None and not userPassedArgs.monitor:
|