Skip to main content

A code similarity analyzer using AST analysis.

Project description

DeepCSIM - Code Similarity Analyzer

DeepCSIM is a Python library and tool for analyzing code similarity between Python files using Abstract Syntax Tree (AST) analysis. It can detect structural and semantic similarities.

Python Versions

Demo of DeepCSim

Installation

pip install deepcsim

Usage

You can use DeepCSIM in three ways: as a command-line tool, as a local web server, or as a Python library.

1. CLI Tool

Scan a directory for code duplicates directly from your terminal.

# Scan current directory
deepcsim-cli

# Scan a specific directory
deepcsim-cli /path/to/project

# Set similarity threshold (default: 80.0)
deepcsim-cli /path/to/project --threshold 90

# Output results in JSON format
deepcsim-cli /path/to/project --json

2. Web Server

Start the built-in web interface to view results interactively.

deepcsim-server

Then open http://localhost:8000/ in your browser.

3. Python Library

Use DeepCSIM programmatically in your Python scripts.

from deepcsim import compare_source
from deepcsim.core.analyzer import CodeAnalyzer # Optional, for advanced usage

# --- Example 1: Compare two code snippets (Easy Way) ---

source1 = """
def hello():
    print("Hello world")
"""

source2 = """
def greet():
    print("Hello world")
"""

# Compare directly
report = compare_source(source1, source2)
# The report contains full details, similar to scan_directory output
print(f"Similarity: {report['results'][0]['similarity']}%")

# --- Example 2: Scan a directory ---

results = scan_directory("/path/to/project", threshold=80.0)
print(f"Found {results['count']} similar pairs.")

API

If running the server, you have access to the following endpoints:

  • GET / — Web interface for browsing project files and scanning directories
  • POST /api/file-info/ — Get metadata and similar files for a specific file
  • POST /scan-project — Recursively scan a directory for duplicate/similar files (JSON response)

Project details


Download files

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

Source Distribution

deepcsim-0.1.2.tar.gz (71.3 kB view details)

Uploaded Source

Built Distribution

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

deepcsim-0.1.2-py3-none-any.whl (77.2 kB view details)

Uploaded Python 3

File details

Details for the file deepcsim-0.1.2.tar.gz.

File metadata

  • Download URL: deepcsim-0.1.2.tar.gz
  • Upload date:
  • Size: 71.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.11

File hashes

Hashes for deepcsim-0.1.2.tar.gz
Algorithm Hash digest
SHA256 d21db8bf08474ed19c827aabae6c355960dfd40a3bc9ea25c8cbe05ee5258c7d
MD5 ae95f8c656e3db6b190a6e3756943fbc
BLAKE2b-256 b44b87127ac8f078a990700cda3130e08dcb706184aeee48ca048145289dfeb2

See more details on using hashes here.

File details

Details for the file deepcsim-0.1.2-py3-none-any.whl.

File metadata

  • Download URL: deepcsim-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 77.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.11

File hashes

Hashes for deepcsim-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 e2b3ff82cbdfb98a0e9dbb8bc868adb02ca36a1b3454c2ebe1b8c053eec1f4b5
MD5 9aaeae55bf8e34434eb51f26b796e983
BLAKE2b-256 a006183d92a9fcc4140b23f0fe152c2b778d4e3bb635023a937039d1e490f558

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