{"library":"pygount","title":"pygount","description":"Pygount is a command line tool designed to scan folders for source code files and accurately count the number of source lines of code (SLOC). It leverages the robust `pygments` package to parse source code, allowing it to analyze hundreds of programming languages. Pygount, currently at version 3.2.0, is an actively maintained library with regular updates.","language":"python","status":"active","last_verified":"Sat May 16","install":{"commands":["pip install pygount"],"cli":{"name":"pygount","version":"Traceback (most recent call last):"}},"imports":["from pygount import SourceAnalysis","from pygount import ProjectSummary"],"auth":{"required":false,"env_vars":[]},"quickstart":{"code":"import os\nfrom pathlib import Path\nfrom pygount import SourceAnalysis, ProjectSummary\n\n# Create dummy files for demonstration\ndummy_dir = Path('./my_project')\ndummy_dir.mkdir(exist_ok=True)\n(dummy_dir / 'main.py').write_text(\n    \"\"\"# This is a Python file\nimport sys\n\ndef hello(): # Code line\n    print('Hello, world!') # Code line\n    # Another comment\n\"\"\"\n)\n(dummy_dir / 'README.md').write_text(\n    \"\"\"# My Project\n\nThis is a test project.\n\"\"\"\n)\n(dummy_dir / '.hidden_file.txt').write_text(\"should not be counted\")\n\nproject_summary = ProjectSummary()\n\n# Analyze files in the dummy project directory\nfor source_path in dummy_dir.rglob('*'):\n    if source_path.is_file():\n        try:\n            source_analysis = SourceAnalysis.from_file(source_path, 'my_project')\n            project_summary.add(source_analysis)\n        except UnicodeDecodeError as e:\n            print(f\"Warning: Could not decode {source_path}: {e}\")\n\nprint(\"\\n--- Analysis Results ---\")\nfor language_summary in project_summary.language_to_language_summary_map.values():\n    print(language_summary)\n\n# Clean up dummy files\nimport shutil\nshutil.rmtree(dummy_dir)","lang":"python","description":"This quickstart demonstrates how to use `pygount`'s API to programmatically analyze source code files within a directory and summarize the results. It creates dummy files, analyzes them using `SourceAnalysis` and aggregates the results with `ProjectSummary`, then prints the language-specific counts.","tag":null,"tag_description":null,"last_tested":null,"results":[]},"compatibility":{"tag":null,"tag_description":null,"last_tested":"2026-05-16","installed_version":"3.1.0","pypi_latest":"3.2.0","is_stale":true,"summary":{"python_range":"3.10–3.9","success_rate":100,"avg_install_s":3.1,"avg_import_s":null,"wheel_type":"wheel"},"results":[{"runtime":"python:3.10-alpine","python_version":"3.10","os_libc":"alpine (musl)","variant":"pygount","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"broken","install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":"34.3M"},{"runtime":"python:3.10-slim","python_version":"3.10","os_libc":"slim (glibc)","variant":"pygount","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"broken","install_time_s":2.9,"import_time_s":null,"mem_mb":null,"disk_size":"35M"},{"runtime":"python:3.11-alpine","python_version":"3.11","os_libc":"alpine (musl)","variant":"pygount","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"broken","install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":"38.0M"},{"runtime":"python:3.11-slim","python_version":"3.11","os_libc":"slim (glibc)","variant":"pygount","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"broken","install_time_s":3,"import_time_s":null,"mem_mb":null,"disk_size":"39M"},{"runtime":"python:3.12-alpine","python_version":"3.12","os_libc":"alpine (musl)","variant":"pygount","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"broken","install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":"29.6M"},{"runtime":"python:3.12-slim","python_version":"3.12","os_libc":"slim (glibc)","variant":"pygount","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"broken","install_time_s":2.9,"import_time_s":null,"mem_mb":null,"disk_size":"30M"},{"runtime":"python:3.13-alpine","python_version":"3.13","os_libc":"alpine (musl)","variant":"pygount","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"broken","install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":"29.4M"},{"runtime":"python:3.13-slim","python_version":"3.13","os_libc":"slim (glibc)","variant":"pygount","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"broken","install_time_s":3,"import_time_s":null,"mem_mb":null,"disk_size":"30M"},{"runtime":"python:3.9-alpine","python_version":"3.9","os_libc":"alpine (musl)","variant":"pygount","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"broken","install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":"33.6M"},{"runtime":"python:3.9-slim","python_version":"3.9","os_libc":"slim (glibc)","variant":"pygount","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"broken","install_time_s":3.5,"import_time_s":null,"mem_mb":null,"disk_size":"34M"}]}}