pkscreener 0.46.20250219.725__cp312-cp312-manylinux2014_x86_64.whl → 0.46.20250220.726__cp312-cp312-manylinux2014_x86_64.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {pkscreener-0.46.20250219.725.data → pkscreener-0.46.20250220.726.data}/purelib/pkscreener/README.txt +5 -5
- {pkscreener-0.46.20250219.725.data → pkscreener-0.46.20250220.726.data}/purelib/pkscreener/classes/AssetsManager.py +9 -7
- {pkscreener-0.46.20250219.725.data → pkscreener-0.46.20250220.726.data}/purelib/pkscreener/classes/Fetcher.py +38 -8
- pkscreener-0.46.20250220.726.data/purelib/pkscreener/classes/__init__.py +1 -0
- {pkscreener-0.46.20250219.725.data → pkscreener-0.46.20250220.726.data}/purelib/pkscreener/requirements.txt +1 -1
- {pkscreener-0.46.20250219.725.dist-info → pkscreener-0.46.20250220.726.dist-info}/METADATA +8 -8
- pkscreener-0.46.20250220.726.dist-info/RECORD +58 -0
- pkscreener-0.46.20250219.725.data/purelib/pkscreener/classes/__init__.py +0 -1
- pkscreener-0.46.20250219.725.dist-info/RECORD +0 -58
- {pkscreener-0.46.20250219.725.data → pkscreener-0.46.20250220.726.data}/purelib/pkscreener/Disclaimer.txt +0 -0
- {pkscreener-0.46.20250219.725.data → pkscreener-0.46.20250220.726.data}/purelib/pkscreener/LICENSE-Others.txt +0 -0
- {pkscreener-0.46.20250219.725.data → pkscreener-0.46.20250220.726.data}/purelib/pkscreener/LICENSE.txt +0 -0
- {pkscreener-0.46.20250219.725.data → pkscreener-0.46.20250220.726.data}/purelib/pkscreener/LogoWM.txt +0 -0
- {pkscreener-0.46.20250219.725.data → pkscreener-0.46.20250220.726.data}/purelib/pkscreener/__init__.py +0 -0
- {pkscreener-0.46.20250219.725.data → pkscreener-0.46.20250220.726.data}/purelib/pkscreener/classes/ArtTexts.py +0 -0
- {pkscreener-0.46.20250219.725.data → pkscreener-0.46.20250220.726.data}/purelib/pkscreener/classes/Backtest.py +0 -0
- {pkscreener-0.46.20250219.725.data → pkscreener-0.46.20250220.726.data}/purelib/pkscreener/classes/Barometer.py +0 -0
- {pkscreener-0.46.20250219.725.data → pkscreener-0.46.20250220.726.data}/purelib/pkscreener/classes/BaseScreeningStatistics.py +0 -0
- {pkscreener-0.46.20250219.725.data → pkscreener-0.46.20250220.726.data}/purelib/pkscreener/classes/CandlePatterns.py +0 -0
- {pkscreener-0.46.20250219.725.data → pkscreener-0.46.20250220.726.data}/purelib/pkscreener/classes/Changelog.py +0 -0
- {pkscreener-0.46.20250219.725.data → pkscreener-0.46.20250220.726.data}/purelib/pkscreener/classes/ConfigManager.py +0 -0
- {pkscreener-0.46.20250219.725.data → pkscreener-0.46.20250220.726.data}/purelib/pkscreener/classes/ConsoleMenuUtility.py +0 -0
- {pkscreener-0.46.20250219.725.data → pkscreener-0.46.20250220.726.data}/purelib/pkscreener/classes/ConsoleUtility.py +0 -0
- {pkscreener-0.46.20250219.725.data → pkscreener-0.46.20250220.726.data}/purelib/pkscreener/classes/GlobalStore.py +0 -0
- {pkscreener-0.46.20250219.725.data → pkscreener-0.46.20250220.726.data}/purelib/pkscreener/classes/ImageUtility.py +0 -0
- {pkscreener-0.46.20250219.725.data → pkscreener-0.46.20250220.726.data}/purelib/pkscreener/classes/MarketMonitor.py +0 -0
- {pkscreener-0.46.20250219.725.data → pkscreener-0.46.20250220.726.data}/purelib/pkscreener/classes/MarketStatus.py +0 -0
- {pkscreener-0.46.20250219.725.data → pkscreener-0.46.20250220.726.data}/purelib/pkscreener/classes/MenuOptions.py +0 -0
- {pkscreener-0.46.20250219.725.data → pkscreener-0.46.20250220.726.data}/purelib/pkscreener/classes/Messenger.py +0 -0
- {pkscreener-0.46.20250219.725.data → pkscreener-0.46.20250220.726.data}/purelib/pkscreener/classes/OtaUpdater.py +0 -0
- {pkscreener-0.46.20250219.725.data → pkscreener-0.46.20250220.726.data}/purelib/pkscreener/classes/PKAnalytics.py +0 -0
- {pkscreener-0.46.20250219.725.data → pkscreener-0.46.20250220.726.data}/purelib/pkscreener/classes/PKDataService.py +0 -0
- {pkscreener-0.46.20250219.725.data → pkscreener-0.46.20250220.726.data}/purelib/pkscreener/classes/PKDemoHandler.py +0 -0
- {pkscreener-0.46.20250219.725.data → pkscreener-0.46.20250220.726.data}/purelib/pkscreener/classes/PKMarketOpenCloseAnalyser.py +0 -0
- {pkscreener-0.46.20250219.725.data → pkscreener-0.46.20250220.726.data}/purelib/pkscreener/classes/PKPremiumHandler.py +0 -0
- {pkscreener-0.46.20250219.725.data → pkscreener-0.46.20250220.726.data}/purelib/pkscreener/classes/PKScanRunner.py +0 -0
- {pkscreener-0.46.20250219.725.data → pkscreener-0.46.20250220.726.data}/purelib/pkscreener/classes/PKScheduledTaskProgress.py +0 -0
- {pkscreener-0.46.20250219.725.data → pkscreener-0.46.20250220.726.data}/purelib/pkscreener/classes/PKScheduler.py +0 -0
- {pkscreener-0.46.20250219.725.data → pkscreener-0.46.20250220.726.data}/purelib/pkscreener/classes/PKSpreadsheets.py +0 -0
- {pkscreener-0.46.20250219.725.data → pkscreener-0.46.20250220.726.data}/purelib/pkscreener/classes/PKTask.py +0 -0
- {pkscreener-0.46.20250219.725.data → pkscreener-0.46.20250220.726.data}/purelib/pkscreener/classes/PKUserRegistration.py +0 -0
- {pkscreener-0.46.20250219.725.data → pkscreener-0.46.20250220.726.data}/purelib/pkscreener/classes/Pktalib.py +0 -0
- {pkscreener-0.46.20250219.725.data → pkscreener-0.46.20250220.726.data}/purelib/pkscreener/classes/Portfolio.py +0 -0
- {pkscreener-0.46.20250219.725.data → pkscreener-0.46.20250220.726.data}/purelib/pkscreener/classes/PortfolioXRay.py +0 -0
- {pkscreener-0.46.20250219.725.data → pkscreener-0.46.20250220.726.data}/purelib/pkscreener/classes/ScreeningStatistics.py +0 -0
- {pkscreener-0.46.20250219.725.data → pkscreener-0.46.20250220.726.data}/purelib/pkscreener/classes/StockScreener.py +0 -0
- {pkscreener-0.46.20250219.725.data → pkscreener-0.46.20250220.726.data}/purelib/pkscreener/classes/StockSentiment.py +0 -0
- {pkscreener-0.46.20250219.725.data → pkscreener-0.46.20250220.726.data}/purelib/pkscreener/classes/UserMenuChoicesHandler.py +0 -0
- {pkscreener-0.46.20250219.725.data → pkscreener-0.46.20250220.726.data}/purelib/pkscreener/classes/Utility.py +0 -0
- {pkscreener-0.46.20250219.725.data → pkscreener-0.46.20250220.726.data}/purelib/pkscreener/classes/WorkflowManager.py +0 -0
- {pkscreener-0.46.20250219.725.data → pkscreener-0.46.20250220.726.data}/purelib/pkscreener/classes/keys.py +0 -0
- {pkscreener-0.46.20250219.725.data → pkscreener-0.46.20250220.726.data}/purelib/pkscreener/courbd.ttf +0 -0
- {pkscreener-0.46.20250219.725.data → pkscreener-0.46.20250220.726.data}/purelib/pkscreener/globals.py +0 -0
- {pkscreener-0.46.20250219.725.data → pkscreener-0.46.20250220.726.data}/purelib/pkscreener/pkscreener.ini +0 -0
- {pkscreener-0.46.20250219.725.data → pkscreener-0.46.20250220.726.data}/purelib/pkscreener/pkscreenerbot.py +0 -0
- {pkscreener-0.46.20250219.725.data → pkscreener-0.46.20250220.726.data}/purelib/pkscreener/pkscreenercli.py +0 -0
- {pkscreener-0.46.20250219.725.dist-info → pkscreener-0.46.20250220.726.dist-info}/LICENSE +0 -0
- {pkscreener-0.46.20250219.725.dist-info → pkscreener-0.46.20250220.726.dist-info}/WHEEL +0 -0
- {pkscreener-0.46.20250219.725.dist-info → pkscreener-0.46.20250220.726.dist-info}/entry_points.txt +0 -0
- {pkscreener-0.46.20250219.725.dist-info → pkscreener-0.46.20250220.726.dist-info}/top_level.txt +0 -0
@@ -328,15 +328,15 @@ After you have finished the run, go to that copied path, zip the contents of the
|
|
328
328
|
[MADE-IN-INDIA-badge]: https://img.shields.io/badge/MADE%20WITH%20%E2%9D%A4%20IN-INDIA-orange
|
329
329
|
[MADE-IN-INDIA]: https://en.wikipedia.org/wiki/India
|
330
330
|
[Windows-badge]: https://img.shields.io/badge/Windows-0078D6?logo=windows&logoColor=white
|
331
|
-
[Windows]: https://github.com/pkjmesra/PKScreener/releases/download/0.46.20250219.
|
331
|
+
[Windows]: https://github.com/pkjmesra/PKScreener/releases/download/0.46.20250219.725/pkscreenercli.exe
|
332
332
|
[Linux-badge_x64]: https://img.shields.io/badge/Linux(x64)-FCC624?logo=linux&logoColor=black
|
333
|
-
[Linux_x64]: https://github.com/pkjmesra/PKScreener/releases/download/0.46.20250219.
|
333
|
+
[Linux_x64]: https://github.com/pkjmesra/PKScreener/releases/download/0.46.20250219.725/pkscreenercli_x64.bin
|
334
334
|
[Linux-badge_arm64]: https://img.shields.io/badge/Linux(arm64)-FCC624?logo=linux&logoColor=black
|
335
|
-
[Linux_arm64]: https://github.com/pkjmesra/PKScreener/releases/download/0.46.20250219.
|
335
|
+
[Linux_arm64]: https://github.com/pkjmesra/PKScreener/releases/download/0.46.20250219.725/pkscreenercli_arm64.bin
|
336
336
|
[Mac OS-badge_x64]: https://img.shields.io/badge/mac%20os(x64)-D3D3D3?logo=apple&logoColor=000000
|
337
|
-
[Mac OS_x64]: https://github.com/pkjmesra/PKScreener/releases/download/0.46.20250219.
|
337
|
+
[Mac OS_x64]: https://github.com/pkjmesra/PKScreener/releases/download/0.46.20250219.725/pkscreenercli_x64.run
|
338
338
|
[Mac OS-badge_arm64]: https://img.shields.io/badge/mac%20os(arm64)-D3D3D3?logo=apple&logoColor=000000
|
339
|
-
[Mac OS_arm64]: https://github.com/pkjmesra/PKScreener/releases/download/0.46.20250219.
|
339
|
+
[Mac OS_arm64]: https://github.com/pkjmesra/PKScreener/releases/download/0.46.20250219.725/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
|
@@ -265,8 +265,10 @@ class PKAssetsManager:
|
|
265
265
|
return cache_file
|
266
266
|
|
267
267
|
@Halo(text=' [+] Downloading fresh data from Data Providers...', spinner='dots')
|
268
|
-
def downloadLatestData(stockDict,configManager,stockCodes=[],exchangeSuffix=".NS",downloadOnly=False):
|
269
|
-
|
268
|
+
def downloadLatestData(stockDict,configManager,stockCodes=[],exchangeSuffix=".NS",downloadOnly=False,numStocksPerIteration=0):
|
269
|
+
# if numStocksPerIteration == 0:
|
270
|
+
maxParallelProcesses = 17
|
271
|
+
numStocksPerIteration = (int(len(stockCodes)/int(len(stockCodes)/maxParallelProcesses)) if len(stockCodes) >= maxParallelProcesses else len(stockCodes)) + 1
|
270
272
|
queueCounter = 0
|
271
273
|
iterations = int(len(stockCodes)/numStocksPerIteration) + 1
|
272
274
|
tasksList = []
|
@@ -293,10 +295,10 @@ class PKAssetsManager:
|
|
293
295
|
minAcceptableCompletionPercentage=(100 if downloadOnly else 100),
|
294
296
|
showProgressBars=configManager.logsEnabled)
|
295
297
|
for task in tasksList:
|
296
|
-
if task.result is not None:
|
298
|
+
if task.result is not None and isinstance(task.result,pd.DataFrame) and not task.result.empty:
|
297
299
|
for stock in task.userData:
|
298
300
|
taskResult = task.result.get(f"{stock}{exchangeSuffix}")
|
299
|
-
if taskResult is not None:
|
301
|
+
if taskResult is not None and isinstance(taskResult,pd.DataFrame) and not taskResult.empty:
|
300
302
|
stockDict[stock] = taskResult.to_dict("split")
|
301
303
|
processedStocks.append(stock)
|
302
304
|
leftOutStocks = list(set(stockCodes)-set(processedStocks))
|
@@ -332,10 +334,10 @@ class PKAssetsManager:
|
|
332
334
|
# stockCodes is not None mandates that we start our work based on the downloaded data from yesterday
|
333
335
|
if (stockCodes is not None and len(stockCodes) > 0) and (isTrading or downloadOnly):
|
334
336
|
recentDownloadFromOriginAttempted = True
|
335
|
-
stockDict, leftOutStocks = PKAssetsManager.downloadLatestData(stockDict,configManager,stockCodes,exchangeSuffix=exchangeSuffix,downloadOnly=downloadOnly)
|
337
|
+
stockDict, leftOutStocks = PKAssetsManager.downloadLatestData(stockDict,configManager,stockCodes,exchangeSuffix=exchangeSuffix,downloadOnly=downloadOnly,numStocksPerIteration=len(stockCodes) if stockCodes is not None else 0)
|
336
338
|
if len(leftOutStocks) > int(len(stockCodes)*0.05):
|
337
339
|
# More than 5 % of stocks are still remaining
|
338
|
-
stockDict, _ = PKAssetsManager.downloadLatestData(stockDict,configManager,leftOutStocks,exchangeSuffix=exchangeSuffix,downloadOnly=downloadOnly)
|
340
|
+
stockDict, _ = PKAssetsManager.downloadLatestData(stockDict,configManager,leftOutStocks,exchangeSuffix=exchangeSuffix,downloadOnly=downloadOnly,numStocksPerIteration=len(leftOutStocks) if leftOutStocks is not None else 0)
|
339
341
|
# return stockDict
|
340
342
|
if downloadOnly or isTrading:
|
341
343
|
# We don't want to download from local stale pkl file or stale file at server
|
@@ -366,7 +368,7 @@ class PKAssetsManager:
|
|
366
368
|
+ colorText.END
|
367
369
|
)
|
368
370
|
if not stockDataLoaded and not recentDownloadFromOriginAttempted:
|
369
|
-
stockDict, _ = PKAssetsManager.downloadLatestData(stockDict,configManager,stockCodes,exchangeSuffix=exchangeSuffix,downloadOnly=downloadOnly)
|
371
|
+
stockDict, _ = PKAssetsManager.downloadLatestData(stockDict,configManager,stockCodes,exchangeSuffix=exchangeSuffix,downloadOnly=downloadOnly,numStocksPerIteration=len(stockCodes) if stockCodes is not None else 0)
|
370
372
|
# See if we need to save stock data
|
371
373
|
stockDataLoaded = stockDataLoaded or (len(stockDict) > 0 and (len(stockDict) != initialLoadCount))
|
372
374
|
if stockDataLoaded:
|
@@ -27,16 +27,21 @@ import os
|
|
27
27
|
import sys
|
28
28
|
import warnings
|
29
29
|
|
30
|
+
from time import sleep
|
30
31
|
warnings.simplefilter("ignore", DeprecationWarning)
|
31
32
|
warnings.simplefilter("ignore", FutureWarning)
|
32
33
|
import pandas as pd
|
33
34
|
import yfinance as yf
|
34
35
|
from yfinance import shared
|
35
|
-
# from yfinance.
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
36
|
+
# from yfinance.const import USER_AGENTS
|
37
|
+
from PKDevTools.classes.Utils import USER_AGENTS
|
38
|
+
from yfinance.data import YfData
|
39
|
+
import random
|
40
|
+
from yfinance.exceptions import YFPricesMissingError, YFInvalidPeriodError, YFRateLimitError
|
41
|
+
# class YFPricesMissingError(Exception):
|
42
|
+
# pass
|
43
|
+
# class YFInvalidPeriodError(Exception):
|
44
|
+
# pass
|
40
45
|
from concurrent.futures import ThreadPoolExecutor
|
41
46
|
from PKDevTools.classes.PKDateUtilities import PKDateUtilities
|
42
47
|
from PKDevTools.classes.ColorText import colorText
|
@@ -94,7 +99,8 @@ class screenerStockDataFetcher(nseStockDataFetcher):
|
|
94
99
|
printCounter=False,
|
95
100
|
start=None,
|
96
101
|
end=None,
|
97
|
-
exchangeSuffix=".NS"
|
102
|
+
exchangeSuffix=".NS",
|
103
|
+
attempt = 0
|
98
104
|
):
|
99
105
|
if isinstance(stockCode,list):
|
100
106
|
if len(exchangeSuffix) > 0:
|
@@ -117,6 +123,8 @@ class screenerStockDataFetcher(nseStockDataFetcher):
|
|
117
123
|
data = None
|
118
124
|
with SuppressOutput(suppress_stdout=(not printCounter), suppress_stderr=(not printCounter)):
|
119
125
|
try:
|
126
|
+
# YfData.user_agent_headers = {
|
127
|
+
# 'User-Agent': random.choice(USER_AGENTS)}
|
120
128
|
data = yf.download(
|
121
129
|
tickers=stockCode,
|
122
130
|
period=period,
|
@@ -127,7 +135,8 @@ class screenerStockDataFetcher(nseStockDataFetcher):
|
|
127
135
|
group_by='ticker',
|
128
136
|
timeout=self.configManager.generalTimeout/4,
|
129
137
|
start=start,
|
130
|
-
end=end
|
138
|
+
end=end,
|
139
|
+
auto_adjust=True
|
131
140
|
)
|
132
141
|
if isinstance(stockCode,str):
|
133
142
|
if (data is None or data.empty):
|
@@ -142,8 +151,13 @@ class screenerStockDataFetcher(nseStockDataFetcher):
|
|
142
151
|
recommendedPeriod = str(err).split("[")[1].split("]")[0].split(",")[-1].strip()
|
143
152
|
recommendedPeriod = recommendedPeriod.replace("'","").replace("\"","")
|
144
153
|
# default_logger().debug(f"Sending request again for {ticker} with period:{recommendedPeriod}")
|
145
|
-
data = self.fetchStockData(stockCode=ticker,period=
|
154
|
+
data = self.fetchStockData(stockCode=ticker,period=period,duration=duration,printCounter=printCounter, start=start,end=end,proxyServer=proxyServer,)
|
146
155
|
return data
|
156
|
+
elif "YFRateLimitError" in err:
|
157
|
+
if attempt <= 2:
|
158
|
+
default_logger().debug(f"YFRateLimitError Hit! Going for attempt : {attempt+1}")
|
159
|
+
# sleep(attempt*1) # Exponential backoff
|
160
|
+
# return self.fetchStockData(stockCode=stockCode,period=period,duration=duration,printCounter=printCounter, start=start,end=end,screenResultsCounter=screenResultsCounter,screenCounter=screenCounter,totalSymbols=totalSymbols,exchangeSuffix=exchangeSuffix,attempt=attempt+1)
|
147
161
|
else:
|
148
162
|
multiIndex = data.keys()
|
149
163
|
if isinstance(multiIndex, pd.MultiIndex):
|
@@ -151,9 +165,25 @@ class screenerStockDataFetcher(nseStockDataFetcher):
|
|
151
165
|
# we'd have received a multiindex dataframe
|
152
166
|
listStockCodes = multiIndex.get_level_values(0)
|
153
167
|
data = data.get(listStockCodes[0])
|
168
|
+
else:
|
169
|
+
if (data is None or data.empty):
|
170
|
+
if len(shared._ERRORS) > 0:
|
171
|
+
default_logger().debug(shared._ERRORS)
|
172
|
+
for ticker in shared._ERRORS:
|
173
|
+
err = shared._ERRORS.get(ticker)
|
174
|
+
if "YFRateLimitError" in err:
|
175
|
+
if attempt <= 2:
|
176
|
+
default_logger().debug(f"YFRateLimitError Hit! Going for attempt : {attempt+1}")
|
177
|
+
# sleep(attempt*2) # Exponential backoff
|
178
|
+
# return self.fetchStockData(stockCode=stockCode,period=period,duration=duration,printCounter=printCounter, start=start,end=end,screenResultsCounter=screenResultsCounter,screenCounter=screenCounter,totalSymbols=totalSymbols,exchangeSuffix=exchangeSuffix,attempt=attempt+1)
|
154
179
|
except (KeyError,YFPricesMissingError) as e: # pragma: no cover
|
155
180
|
default_logger().debug(e,exc_info=True)
|
156
181
|
pass
|
182
|
+
except YFRateLimitError as e:
|
183
|
+
if attempt <= 2:
|
184
|
+
default_logger().debug(f"YFRateLimitError Hit! Going for attempt : {attempt+1}")
|
185
|
+
# sleep(attempt*2) # Exponential backoff
|
186
|
+
# return self.fetchStockData(stockCode=stockCode,period=period,duration=duration,printCounter=printCounter, start=start,end=end,screenResultsCounter=screenResultsCounter,screenCounter=screenCounter,totalSymbols=totalSymbols,exchangeSuffix=exchangeSuffix,attempt=attempt+1)
|
157
187
|
except (YFInvalidPeriodError,Exception) as e: # pragma: no cover
|
158
188
|
default_logger().debug(e,exc_info=True)
|
159
189
|
if printCounter and type(screenCounter) != int:
|
@@ -0,0 +1 @@
|
|
1
|
+
VERSION='0.46.20250220.726'
|
@@ -37,7 +37,7 @@ tensorflow==2.16.1 # https://github.com/tensorflow/tensorflow/issues/62075
|
|
37
37
|
urllib3 #>=1.26.20
|
38
38
|
vectorbt #>=0.26.2
|
39
39
|
xlsxwriter #>=3.2.0
|
40
|
-
yfinance==0.2.
|
40
|
+
yfinance==0.2.54 #>=0.2.44 #==0.1.87
|
41
41
|
# windows-curses; "windows" in sys.platform
|
42
42
|
# https://github.com/pkjmesra/PKScreener/blob/main/.github/dependencies/TA_Lib-0.4.28-cp311-cp311-win_amd64.whl; "windows" in sys.platform
|
43
43
|
|
@@ -1,9 +1,9 @@
|
|
1
1
|
Metadata-Version: 2.2
|
2
2
|
Name: pkscreener
|
3
|
-
Version: 0.46.
|
3
|
+
Version: 0.46.20250220.726
|
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.20250220.726.zip
|
7
7
|
Author: pkjmesra
|
8
8
|
Author-email: pkjmesra@gmail.com
|
9
9
|
License: OSI Approved (MIT)
|
@@ -48,7 +48,7 @@ Requires-Dist: tensorflow==2.16.1
|
|
48
48
|
Requires-Dist: urllib3
|
49
49
|
Requires-Dist: vectorbt
|
50
50
|
Requires-Dist: xlsxwriter
|
51
|
-
Requires-Dist: yfinance==0.2.
|
51
|
+
Requires-Dist: yfinance==0.2.54
|
52
52
|
Requires-Dist: advanced_ta
|
53
53
|
Dynamic: author
|
54
54
|
Dynamic: author-email
|
@@ -392,15 +392,15 @@ After you have finished the run, go to that copied path, zip the contents of the
|
|
392
392
|
[MADE-IN-INDIA-badge]: https://img.shields.io/badge/MADE%20WITH%20%E2%9D%A4%20IN-INDIA-orange
|
393
393
|
[MADE-IN-INDIA]: https://en.wikipedia.org/wiki/India
|
394
394
|
[Windows-badge]: https://img.shields.io/badge/Windows-0078D6?logo=windows&logoColor=white
|
395
|
-
[Windows]: https://github.com/pkjmesra/PKScreener/releases/download/0.46.20250219.
|
395
|
+
[Windows]: https://github.com/pkjmesra/PKScreener/releases/download/0.46.20250219.725/pkscreenercli.exe
|
396
396
|
[Linux-badge_x64]: https://img.shields.io/badge/Linux(x64)-FCC624?logo=linux&logoColor=black
|
397
|
-
[Linux_x64]: https://github.com/pkjmesra/PKScreener/releases/download/0.46.20250219.
|
397
|
+
[Linux_x64]: https://github.com/pkjmesra/PKScreener/releases/download/0.46.20250219.725/pkscreenercli_x64.bin
|
398
398
|
[Linux-badge_arm64]: https://img.shields.io/badge/Linux(arm64)-FCC624?logo=linux&logoColor=black
|
399
|
-
[Linux_arm64]: https://github.com/pkjmesra/PKScreener/releases/download/0.46.20250219.
|
399
|
+
[Linux_arm64]: https://github.com/pkjmesra/PKScreener/releases/download/0.46.20250219.725/pkscreenercli_arm64.bin
|
400
400
|
[Mac OS-badge_x64]: https://img.shields.io/badge/mac%20os(x64)-D3D3D3?logo=apple&logoColor=000000
|
401
|
-
[Mac OS_x64]: https://github.com/pkjmesra/PKScreener/releases/download/0.46.20250219.
|
401
|
+
[Mac OS_x64]: https://github.com/pkjmesra/PKScreener/releases/download/0.46.20250219.725/pkscreenercli_x64.run
|
402
402
|
[Mac OS-badge_arm64]: https://img.shields.io/badge/mac%20os(arm64)-D3D3D3?logo=apple&logoColor=000000
|
403
|
-
[Mac OS_arm64]: https://github.com/pkjmesra/PKScreener/releases/download/0.46.20250219.
|
403
|
+
[Mac OS_arm64]: https://github.com/pkjmesra/PKScreener/releases/download/0.46.20250219.725/pkscreenercli_arm64.run
|
404
404
|
[GitHub release (latest by date)-badge]: https://img.shields.io/github/v/release/pkjmesra/PKScreener
|
405
405
|
[GitHub release (latest by date)]: https://github.com/pkjmesra/PKScreener/releases/latest
|
406
406
|
[pypi-badge]: https://img.shields.io/pypi/v/pkscreener.svg?style=flat-square
|
@@ -0,0 +1,58 @@
|
|
1
|
+
pkscreener-0.46.20250220.726.data/purelib/pkscreener/Disclaimer.txt,sha256=kBZQSQCFfL2kc1bijXWndZzkjMTtnpH_B7XtDPPMcuw,1396
|
2
|
+
pkscreener-0.46.20250220.726.data/purelib/pkscreener/LICENSE-Others.txt,sha256=WBslRYLBoqYg-vr25sS1c_UI7cuUnsGk0nIQLBzTWEE,271830
|
3
|
+
pkscreener-0.46.20250220.726.data/purelib/pkscreener/LICENSE.txt,sha256=CdnyGrl-xRYX67ZkdERZWHr6BlTxOyg8Z8sK1XQ5Xsg,1078
|
4
|
+
pkscreener-0.46.20250220.726.data/purelib/pkscreener/LogoWM.txt,sha256=7Njnavpy_FKY4Iwbzv1JqsYMcOdkDSKAKXP3SAItKV0,14868
|
5
|
+
pkscreener-0.46.20250220.726.data/purelib/pkscreener/README.txt,sha256=PYtfYMNmI78Ix0DNT3qZo0URJTXb_Q0-ChsA6a7XzwU,32802
|
6
|
+
pkscreener-0.46.20250220.726.data/purelib/pkscreener/__init__.py,sha256=aZ62qYACxsU8m8_5JkzNzos1lVFNcMGPRMgeddnUUiQ,1633
|
7
|
+
pkscreener-0.46.20250220.726.data/purelib/pkscreener/courbd.ttf,sha256=SKpnp-BRs7AZcdI83nencS3Q7xe0anbbP1YMOxLlEhU,791436
|
8
|
+
pkscreener-0.46.20250220.726.data/purelib/pkscreener/globals.py,sha256=q1FCCPcnJ-IethQk-V-cCRCIW6PtZuvKSCNmSrgfA_Y,241097
|
9
|
+
pkscreener-0.46.20250220.726.data/purelib/pkscreener/pkscreener.ini,sha256=QKs6j4qhyH37L_MdG3ztAIwgqs4c3qihuqDIoex-V2g,2391
|
10
|
+
pkscreener-0.46.20250220.726.data/purelib/pkscreener/pkscreenerbot.py,sha256=hi1qvI2yb9aNkTP4BAZyuVzpLf-_gR0JBaozGUIm32o,117163
|
11
|
+
pkscreener-0.46.20250220.726.data/purelib/pkscreener/pkscreenercli.py,sha256=-2cgfdCUJhp4xeZfcbj2ntUp_MvsrVJvz1dnsOBQMZA,57826
|
12
|
+
pkscreener-0.46.20250220.726.data/purelib/pkscreener/requirements.txt,sha256=M7ZEXe8o9-6N67lHzel4HsEFYma_JfRUP93y3OavkDs,1457
|
13
|
+
pkscreener-0.46.20250220.726.data/purelib/pkscreener/classes/ArtTexts.py,sha256=LZ8ynyS8woliv8bM9Nq4aU0VCoJDJU0FgZk8V5zYPmg,19504
|
14
|
+
pkscreener-0.46.20250220.726.data/purelib/pkscreener/classes/AssetsManager.py,sha256=rnWt8Vyzrdm1pwp5XLH7if6yOHKD36wnYCHpZsQHBho,34192
|
15
|
+
pkscreener-0.46.20250220.726.data/purelib/pkscreener/classes/Backtest.py,sha256=wobBQgqVQhFNZlyJ2hgMXQqofrICc_3F0I5D66DUvGI,10530
|
16
|
+
pkscreener-0.46.20250220.726.data/purelib/pkscreener/classes/Barometer.py,sha256=WPrgtIXb1nIbb-FnuRs-yvOQ5baNQRBgUR_zWg1moxk,9464
|
17
|
+
pkscreener-0.46.20250220.726.data/purelib/pkscreener/classes/BaseScreeningStatistics.py,sha256=u5t1wf-HsZ8xEtprON55ehIR3F2LNNq8LvwgIrhYRmU,3000
|
18
|
+
pkscreener-0.46.20250220.726.data/purelib/pkscreener/classes/CandlePatterns.py,sha256=gaswU2OeDa3JXjEafR2clUpKW5v8_1_tJuNPuTWsAss,17066
|
19
|
+
pkscreener-0.46.20250220.726.data/purelib/pkscreener/classes/Changelog.py,sha256=vUOpca28OACNhavAmjBm4xco3u6fcHqWlnlmCJqO5Lk,1469
|
20
|
+
pkscreener-0.46.20250220.726.data/purelib/pkscreener/classes/ConfigManager.py,sha256=THcfBgua5hr1Pv7AwEDBu2yurCNteGM04jY3Fr_MeBg,53565
|
21
|
+
pkscreener-0.46.20250220.726.data/purelib/pkscreener/classes/ConsoleMenuUtility.py,sha256=fyR7dEsAaEWEe5SyaVgwLPdU4h4pI8SozUhsPZXShpg,10037
|
22
|
+
pkscreener-0.46.20250220.726.data/purelib/pkscreener/classes/ConsoleUtility.py,sha256=TrEnTT4pmsBpEYdwD2oAtNqNG_drPe1LVkhthP2540I,12096
|
23
|
+
pkscreener-0.46.20250220.726.data/purelib/pkscreener/classes/Fetcher.py,sha256=3-6x_XoHDzMk5HV40oMS-8hYXRSJ-BaDdfB0KIDnb4c,14766
|
24
|
+
pkscreener-0.46.20250220.726.data/purelib/pkscreener/classes/GlobalStore.py,sha256=IzoYMybXpVVf6YwZi7j34rP-hNd7sMened8TAMu_-A8,3709
|
25
|
+
pkscreener-0.46.20250220.726.data/purelib/pkscreener/classes/ImageUtility.py,sha256=mgJUzjrOKQ1mYV5P_ylhBnaF7ZgOO6ogjy22Rt49TNI,37032
|
26
|
+
pkscreener-0.46.20250220.726.data/purelib/pkscreener/classes/MarketMonitor.py,sha256=GQOPLuUhgcrnVa0mI8ZvXqQ4vPFW00FHW_vMfICnko8,22079
|
27
|
+
pkscreener-0.46.20250220.726.data/purelib/pkscreener/classes/MarketStatus.py,sha256=dNg8znbRpt7ID3U_1nmclD4zSLtveJeYeRbS0l6HLtE,3737
|
28
|
+
pkscreener-0.46.20250220.726.data/purelib/pkscreener/classes/MenuOptions.py,sha256=iZb0zBs7lcP60cmuP7Z5xmXfNtTFcFH6ZWOuoileErE,64552
|
29
|
+
pkscreener-0.46.20250220.726.data/purelib/pkscreener/classes/Messenger.py,sha256=peyY-YiqdC1bp-3DlJXILRa9HGYbqGVzf1wil0fYv98,8396
|
30
|
+
pkscreener-0.46.20250220.726.data/purelib/pkscreener/classes/OtaUpdater.py,sha256=_7-nFAC-vAcmZ1Nwi5g5tfp7hKQQPuLUnBCOzrwC39g,13491
|
31
|
+
pkscreener-0.46.20250220.726.data/purelib/pkscreener/classes/PKAnalytics.py,sha256=_X-2OFw2yQVmXlEIRsnBVNy9fhYyxqt0BOqADD4v08U,5246
|
32
|
+
pkscreener-0.46.20250220.726.data/purelib/pkscreener/classes/PKDataService.py,sha256=BipM8Z4rS6h12cF6VWv_u4Z8ee7psMFd1yUojejW1Ag,3393
|
33
|
+
pkscreener-0.46.20250220.726.data/purelib/pkscreener/classes/PKDemoHandler.py,sha256=r4KrZF8TaOu1J0nu8sUsgWEvnbndboWQQvz69GOy1Fk,2207
|
34
|
+
pkscreener-0.46.20250220.726.data/purelib/pkscreener/classes/PKMarketOpenCloseAnalyser.py,sha256=T7S0DRv4Tqg77S5CyTWQUgpIAtx0NEtSVAplkynS2YM,33833
|
35
|
+
pkscreener-0.46.20250220.726.data/purelib/pkscreener/classes/PKPremiumHandler.py,sha256=r16-u9fyc0ftgnSnZnz-JusTfEzyQIyKkvgbPuSd7W4,5611
|
36
|
+
pkscreener-0.46.20250220.726.data/purelib/pkscreener/classes/PKScanRunner.py,sha256=EPLo2euBMfA9omnqrr5pXv2h9KzTcPZM-PXRFI26LSo,26791
|
37
|
+
pkscreener-0.46.20250220.726.data/purelib/pkscreener/classes/PKScheduledTaskProgress.py,sha256=h19ZuxoalB50pnZjntFh12b9mBozvMqhKYq6TL18vo4,1657
|
38
|
+
pkscreener-0.46.20250220.726.data/purelib/pkscreener/classes/PKScheduler.py,sha256=qThoz0yXLmHEWAiD_TdkIrzJb37b_m830JJFrkN1Tio,8814
|
39
|
+
pkscreener-0.46.20250220.726.data/purelib/pkscreener/classes/PKSpreadsheets.py,sha256=1I7YGGPPY879K5JeTZ_d1FNCpjloh6TZrx91JlwT20o,8298
|
40
|
+
pkscreener-0.46.20250220.726.data/purelib/pkscreener/classes/PKTask.py,sha256=4q87uD2cXvp0AbP6I73xPP39F0mfnpHQutsxxqpnxJM,1867
|
41
|
+
pkscreener-0.46.20250220.726.data/purelib/pkscreener/classes/PKUserRegistration.py,sha256=ZbnPzgvT5Je9X0Dm6bewSp8u7Fj_szNucaYnit_AtCg,11465
|
42
|
+
pkscreener-0.46.20250220.726.data/purelib/pkscreener/classes/Pktalib.py,sha256=xketnpMVDGHOFg47LFavaU-agWy370VanYWyzzuLY8c,33386
|
43
|
+
pkscreener-0.46.20250220.726.data/purelib/pkscreener/classes/Portfolio.py,sha256=JZ93n3Zk9nkSFaX-lHyQiFnavHVmHPFoy-L_4gugj54,13895
|
44
|
+
pkscreener-0.46.20250220.726.data/purelib/pkscreener/classes/PortfolioXRay.py,sha256=4MjXqBAVUlfN4w5tTmgEnQGMoy0hFu_uaVgrmai1fN4,48339
|
45
|
+
pkscreener-0.46.20250220.726.data/purelib/pkscreener/classes/ScreeningStatistics.py,sha256=YSg4cynnDcn7cUK6VUBRpMmcNsKG3_CCzTSyobiCk2k,221479
|
46
|
+
pkscreener-0.46.20250220.726.data/purelib/pkscreener/classes/StockScreener.py,sha256=F0SWa1DSTgYdSWnkPTR9kmOKgHLtaqNMCtJP8yZkDnE,67252
|
47
|
+
pkscreener-0.46.20250220.726.data/purelib/pkscreener/classes/StockSentiment.py,sha256=WL7TBAHDSIN5cgZ9uTbbEFnUPo4G-YIzEv16RpPGaro,3546
|
48
|
+
pkscreener-0.46.20250220.726.data/purelib/pkscreener/classes/UserMenuChoicesHandler.py,sha256=_fTCscTLEjoU-n12V9237uDN6Jf8nGCvGdBVkpD3Ap4,4947
|
49
|
+
pkscreener-0.46.20250220.726.data/purelib/pkscreener/classes/Utility.py,sha256=Cn_QrVH40rQWkHW2e2NolE0b18qszvGXfVLdwAqD7sM,13562
|
50
|
+
pkscreener-0.46.20250220.726.data/purelib/pkscreener/classes/WorkflowManager.py,sha256=YRUiZSq83SEx2qB0wTBDE4KFaYqEz1Qu4FSCAzl6xzU,5663
|
51
|
+
pkscreener-0.46.20250220.726.data/purelib/pkscreener/classes/__init__.py,sha256=SWKun2AE-t74nmPIr69l-XnPMRnt9dV5P9jHquf2G2w,28
|
52
|
+
pkscreener-0.46.20250220.726.data/purelib/pkscreener/classes/keys.py,sha256=LQq_t1lSh0x4TbRCIDhoCil3xctgLLeVk5f2vgrl1tk,6789
|
53
|
+
pkscreener-0.46.20250220.726.dist-info/LICENSE,sha256=CdnyGrl-xRYX67ZkdERZWHr6BlTxOyg8Z8sK1XQ5Xsg,1078
|
54
|
+
pkscreener-0.46.20250220.726.dist-info/METADATA,sha256=Dqk1oXmnHT_UsAGOxQfhAhr0F1A6I4iRQOCY8vtyJPA,34740
|
55
|
+
pkscreener-0.46.20250220.726.dist-info/WHEEL,sha256=aDUArjEbIuDQzblE24IvdIsBzRhJEjiXmuNUYQ-gpaA,104
|
56
|
+
pkscreener-0.46.20250220.726.dist-info/entry_points.txt,sha256=Pm30xm4sU7YFtFJUC-Te8VlqOvYAvWKFFA5AfQE0xGY,120
|
57
|
+
pkscreener-0.46.20250220.726.dist-info/top_level.txt,sha256=oIfcPPw58Q4KU-GDqp25dXbrtvxYXJBCo_em6i5aVvY,11
|
58
|
+
pkscreener-0.46.20250220.726.dist-info/RECORD,,
|
@@ -1 +0,0 @@
|
|
1
|
-
VERSION='0.46.20250219.725'
|
@@ -1,58 +0,0 @@
|
|
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=4dbNeoEzN2lQ1ZD_HRbXGlLvzczzQZE2B_RKRnRQ_RE,34740
|
55
|
-
pkscreener-0.46.20250219.725.dist-info/WHEEL,sha256=aDUArjEbIuDQzblE24IvdIsBzRhJEjiXmuNUYQ-gpaA,104
|
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,,
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{pkscreener-0.46.20250219.725.dist-info → pkscreener-0.46.20250220.726.dist-info}/entry_points.txt
RENAMED
File without changes
|
{pkscreener-0.46.20250219.725.dist-info → pkscreener-0.46.20250220.726.dist-info}/top_level.txt
RENAMED
File without changes
|