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.
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 directoriesPOST /api/file-info/— Get metadata and similar files for a specific filePOST /scan-project— Recursively scan a directory for duplicate/similar files (JSON response)
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d21db8bf08474ed19c827aabae6c355960dfd40a3bc9ea25c8cbe05ee5258c7d
|
|
| MD5 |
ae95f8c656e3db6b190a6e3756943fbc
|
|
| BLAKE2b-256 |
b44b87127ac8f078a990700cda3130e08dcb706184aeee48ca048145289dfeb2
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e2b3ff82cbdfb98a0e9dbb8bc868adb02ca36a1b3454c2ebe1b8c053eec1f4b5
|
|
| MD5 |
9aaeae55bf8e34434eb51f26b796e983
|
|
| BLAKE2b-256 |
a006183d92a9fcc4140b23f0fe152c2b778d4e3bb635023a937039d1e490f558
|