{"id":27238,"library":"pkscreener","title":"pkscreener","description":"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.","status":"active","version":"0.46.20260501.868","language":"python","source_language":"en","source_url":"https://github.com/pkjmesra/pkscreener","tags":["stock-screener","nse","india","trading","finance"],"install":[{"cmd":"pip install pkscreener","lang":"bash","label":"PyPI install"}],"dependencies":[{"reason":"HTTP requests for web scraping","package":"requests","optional":false},{"reason":"HTML parsing for NSE data","package":"beautifulsoup4","optional":false},{"reason":"Data manipulation and analysis","package":"pandas","optional":false}],"imports":[{"note":"Top-level import does not include the main class; use from pkscreener import pkscreener","wrong":"import pkscreener","symbol":"pkscreener","correct":"from pkscreener import pkscreener"},{"note":"For command-line interface entry point","wrong":"","symbol":"pkscreener_cli","correct":"from pkscreener import pkscreener_cli"},{"note":"For running screening operations programmatically","wrong":"","symbol":"pkscreener_screen","correct":"from pkscreener import pkscreener_screen"}],"quickstart":{"code":"from pkscreener import pkscreener\n\n# Initialize screener (no auth needed for basic screening)\nscreener = pkscreener()\n# Run default screen (e.g., 'SID' strategy)\nresults = screener.screen(strategy='SID')\nprint(results.head())","lang":"python","description":"Basic usage: import the main class, create an instance, and call screen() with a strategy code. List available strategies via screener.available_strategies()."},"warnings":[{"fix":"Pin version in requirements.txt (e.g., pkscreener==0.46.20260501.868) and test upgrades.","message":"Frequent daily releases: versioning uses YYYYMMDD suffix; code may break with new releases if relying on internal APIs or undocumented behavior.","severity":"gotcha","affected_versions":"all"},{"fix":"Check if NSE is open; handle empty results gracefully.","message":"Screen results depend on NSE market hours and data availability; during holidays or off-hours, results may be empty or stale.","severity":"gotcha","affected_versions":"all"},{"fix":"Use screener.available_strategies() to list valid strategies before running.","message":"Some strategy codes have been renamed or removed in newer versions; deprecated strategies may raise errors.","severity":"deprecated","affected_versions":">=0.44"},{"fix":"Set environment variables or avoid using Telegram features unless needed.","message":"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.","severity":"gotcha","affected_versions":"all"}],"env_vars":null,"last_verified":"2026-05-01T00:00:00.000Z","next_check":"2026-07-30T00:00:00.000Z","problems":[{"fix":"Run 'pip install pkscreener' or check Python environment (e.g., virtualenv)","cause":"pkscreener not installed or installed in wrong environment","error":"ModuleNotFoundError: No module named 'pkscreener'"},{"fix":"Change import to 'from pkscreener import pkscreener'","cause":"Using 'import pkscreener' instead of 'from pkscreener import pkscreener'","error":"AttributeError: module 'pkscreener' has no attribute 'pkscreener'"},{"fix":"Run 'screener.available_strategies()' to get valid strategies; ensure code is uppercase and exact.","cause":"Strategy code is outdated or incorrect","error":"ValueError: Unknown strategy code: ABCD"},{"fix":"Check internet connection; wait before retrying; consider using a proxy if rate-limited.","cause":"NSE website unavailable or blocked due to rate limiting","error":"ConnectionError: Failed to fetch data from NSE"}],"ecosystem":"pypi","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}