Skip to main content

An intelligent Python code quality analyzer with architectural guidance

Project description

pyscn - Python Code Quality Analyzer

PyPI Go License CI

pyscn is an intelligent Python code quality analyzer that performs deep structural analysis to help you write cleaner, more maintainable code.

What Can It Do For You?

  • 🔍 Find Complex Code - Identify functions that are hard to test and maintain
  • 🧹 Remove Dead Code - Detect unreachable code that clutters your codebase
  • 📋 Detect Duplicates - Find copy-pasted code for refactoring opportunities
  • 🔗 Analyze Dependencies - Understand module relationships and coupling
  • 📊 Validate Architecture - Ensure your code follows architectural patterns
  • 📈 Generate Reports - Export findings in HTML, JSON, YAML, or CSV

Quick Start

# 1. Install
pip install pyscn

# 2. Run analysis
pyscn analyze .

Common Commands

pyscn analyze

Run comprehensive analysis with HTML report

pyscn analyze .                              # All analyses with HTML report
pyscn analyze --json .                       # Generate JSON report
pyscn analyze --select complexity .          # Only complexity analysis
pyscn analyze --select deps .                # Only dependency analysis
pyscn analyze --select complexity,deps,deadcode . # Multiple analyses

pyscn check

Fast CI-friendly quality gate

pyscn check .                      # Quick pass/fail check
pyscn check --max-complexity 15 .  # Custom thresholds

pyscn init

Create configuration file

pyscn init                         # Generate .pyscn.toml

💡 Run pyscn --help or pyscn <command> --help for complete options

Configuration

Create a .pyscn.toml file or add [tool.pyscn] to your pyproject.toml:

# .pyscn.toml
[complexity]
max_complexity = 15

[dead_code]
min_severity = "warning"

[output]
directory = "reports"

⚙️ Run pyscn init to generate a full configuration file with all available options

Installation

Recommended: pip or uv

pip install pyscn
# or
uv add pyscn
Alternative installation methods

Build from source

git clone https://github.com/ludo-technologies/pyscn.git
cd pyscn
make build

Go install

go install github.com/ludo-technologies/pyscn/cmd/pyscn@latest

CI/CD Integration

# .github/workflows/code-quality.yml
name: Code Quality
on: [push, pull_request]

jobs:
  quality-check:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - run: pip install pyscn
      - name: Quick quality check
        run: pyscn check .
      - name: Generate detailed report
        run: pyscn analyze --json --select complexity,deadcode,deps src/
      - name: Upload report
        uses: actions/upload-artifact@v4
        with:
          name: code-quality-report
          path: .pyscn/reports/

Documentation

📚 Development GuideArchitectureTesting

License

MIT License — see LICENSE


Built with ❤️ using Go and tree-sitter

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

pyscn-0.4.0b1-py3-none-win_amd64.whl (4.0 MB view details)

Uploaded Python 3Windows x86-64

pyscn-0.4.0b1-py3-none-manylinux_2_17_x86_64.whl (3.9 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ x86-64

pyscn-0.4.0b1-py3-none-macosx_11_0_arm64.whl (3.6 MB view details)

Uploaded Python 3macOS 11.0+ ARM64

pyscn-0.4.0b1-py3-none-macosx_10_9_x86_64.whl (3.8 MB view details)

Uploaded Python 3macOS 10.9+ x86-64

File details

Details for the file pyscn-0.4.0b1-py3-none-win_amd64.whl.

File metadata

  • Download URL: pyscn-0.4.0b1-py3-none-win_amd64.whl
  • Upload date:
  • Size: 4.0 MB
  • Tags: Python 3, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for pyscn-0.4.0b1-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 814a2e4e3925488c21b18a0cbcf0883dc2f1e1f62a140b5cd3f620c10844dfa6
MD5 4f4cf62e320ba6a2e15f42b989aedb51
BLAKE2b-256 7a47ad3e1683b8a57829ffd4d85f11d59d9d399e4761f3dc257390c1539ddf61

See more details on using hashes here.

File details

Details for the file pyscn-0.4.0b1-py3-none-manylinux_2_17_x86_64.whl.

File metadata

File hashes

Hashes for pyscn-0.4.0b1-py3-none-manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 d252cfdac6e1d3780b48e7cb90c78da92df01cff75333ff78c874b1612cde2f1
MD5 bdacede8790c903267689d5aaa8d8705
BLAKE2b-256 dd46676b300b6f00efebae445b1d809a74c5f5296c1f38c8516bcdfd26ddacba

See more details on using hashes here.

File details

Details for the file pyscn-0.4.0b1-py3-none-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyscn-0.4.0b1-py3-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 167a490318df6a0074bdf334b5873ee65f8ba824f55d5a67a3d93eb208bbae77
MD5 e1269fc01e08b8a7af04c8c86ddc38c4
BLAKE2b-256 00ef8a346fe30c749b6155f7781225b7ee095146661ceb86b61ec536523c1dd8

See more details on using hashes here.

File details

Details for the file pyscn-0.4.0b1-py3-none-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for pyscn-0.4.0b1-py3-none-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 925cd5def3db797e61b0a79f8fdaff3fdb21962fccfa34004a29dcf8e13a90e7
MD5 89df8bda24fb5c804f6c815a35e44703
BLAKE2b-256 8b98c8aa7122d37e7d63b2f9a234c35247fe0da26f6bbe13c137c511d2a3661c

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page