pkscreener

raw JSON →
0.46.20260501.868 verified Fri May 01 auth: no python

A Python-based stock screener for NSE (National Stock Exchange of India) with alerts to Telegram channels. Version 0.46.20260501.868 shows daily releases with frequent updates. Provides pre-built screening strategies and output export options.

pip install pkscreener
error ModuleNotFoundError: No module named 'pkscreener'
cause pkscreener not installed or installed in wrong environment
fix
Run 'pip install pkscreener' or check Python environment (e.g., virtualenv)
error AttributeError: module 'pkscreener' has no attribute 'pkscreener'
cause Using 'import pkscreener' instead of 'from pkscreener import pkscreener'
fix
Change import to 'from pkscreener import pkscreener'
error ValueError: Unknown strategy code: ABCD
cause Strategy code is outdated or incorrect
fix
Run 'screener.available_strategies()' to get valid strategies; ensure code is uppercase and exact.
error ConnectionError: Failed to fetch data from NSE
cause NSE website unavailable or blocked due to rate limiting
fix
Check internet connection; wait before retrying; consider using a proxy if rate-limited.
gotcha Frequent daily releases: versioning uses YYYYMMDD suffix; code may break with new releases if relying on internal APIs or undocumented behavior.
fix Pin version in requirements.txt (e.g., pkscreener==0.46.20260501.868) and test upgrades.
gotcha Screen results depend on NSE market hours and data availability; during holidays or off-hours, results may be empty or stale.
fix Check if NSE is open; handle empty results gracefully.
deprecated Some strategy codes have been renamed or removed in newer versions; deprecated strategies may raise errors.
fix Use screener.available_strategies() to list valid strategies before running.
gotcha Telegram integration requires bot token and chat ID set as environment variables (TELEGRAM_BOT_TOKEN, TELEGRAM_CHAT_ID); missing variables cause silent failure or crash.
fix Set environment variables or avoid using Telegram features unless needed.

Basic usage: import the main class, create an instance, and call screen() with a strategy code. List available strategies via screener.available_strategies().

from pkscreener import pkscreener

# Initialize screener (no auth needed for basic screening)
screener = pkscreener()
# Run default screen (e.g., 'SID' strategy)
results = screener.screen(strategy='SID')
print(results.head())