This release has been yanked by its maintainers, and will be ignored by installers, except when explicitly specified.
Reason given by maintainers: bundled with original
Aurora LSP
LSP integration for Aurora - code intelligence, dead code detection, and impact analysis.
Built on multilspy (Microsoft) with custom layers for import filtering and code analysis.
Features
- Find Usages (excluding imports) - Distinguish actual code usage from import statements
- Dead Code Detection - Find functions/classes with 0 usages
- Linting - Get errors, warnings, hints via LSP diagnostics
- Call Hierarchy - Find callers of a function (where supported)
Supported Languages
| Language | LSP Server | Import Filtering | Call Hierarchy |
|---|---|---|---|
| Python | Pyright | ✓ | Limited |
| TypeScript | tsserver | ✓ | ✓ |
| JavaScript | tsserver | ✓ | ✓ |
| Rust | rust-analyzer | ✓ | ✓ |
| Go | gopls | ✓ | ✓ |
| Java | Eclipse JDT | ✓ | ✓ |
| Ruby | Solargraph | ✓ | Limited |
| C# | OmniSharp | ✓ | ✓ |
| Dart | Dart Analysis | ✓ | ✓ |
| Kotlin | kotlin-lsp | ✓ | Limited |
Installation
pip install aurora-lsp
Usage
Basic Usage
from aurora_lsp import AuroraLSP
# Initialize with workspace path
lsp = AuroraLSP("/path/to/project")
# Find usages of a symbol (excluding imports)
result = lsp.find_usages("src/main.py", line=10, col=5)
print(f"Found {result['total_usages']} usages ({result['total_imports']} imports filtered)")
# Get usage summary with impact assessment
summary = lsp.get_usage_summary("src/main.py", line=10, col=5, symbol_name="MyClass")
print(f"Impact: {summary['impact']} ({summary['files_affected']} files affected)")
# Find dead code
dead = lsp.find_dead_code()
for item in dead:
print(f"Unused: {item['name']} ({item['kind']}) in {item['file']}:{item['line']}")
# Lint a directory
diags = lsp.lint("src/")
print(f"{diags['total_errors']} errors, {diags['total_warnings']} warnings")
# Find callers of a function
callers = lsp.get_callers("src/utils.py", line=25, col=0)
for caller in callers:
print(f"Called by: {caller['name']} in {caller['file']}")
# Clean up
lsp.close()
Context Manager
from aurora_lsp import AuroraLSP
with AuroraLSP("/path/to/project") as lsp:
dead = lsp.find_dead_code()
print(f"Found {len(dead)} dead code items")
# Server connections closed automatically
Convenience Functions
from aurora_lsp import find_usages, find_dead_code, lint
# One-off operations (creates temporary LSP instance)
result = find_usages("src/main.py", line=10, col=5)
dead = find_dead_code("src/")
diags = lint("src/")
API Reference
AuroraLSP
Main facade class providing synchronous API.
find_usages(file_path, line, col, include_imports=False) -> dict
Find usages of a symbol.
Returns:
usages: List of usage locations with contextimports: List of import locationstotal_usages: Count of actual usagestotal_imports: Count of import statements
get_usage_summary(file_path, line, col, symbol_name=None) -> dict
Get comprehensive usage summary.
Returns:
symbol: Symbol nametotal_usages: Usage counttotal_imports: Import countimpact: 'low' (<3), 'medium' (3-10), 'high' (>10)files_affected: Number of files with usagesusages_by_file: Usages grouped by file
find_dead_code(path=None, include_private=False) -> list[dict]
Find functions/classes with 0 usages.
Returns: List of items with:
file: File pathline: Line numbername: Symbol namekind: 'function', 'class', or 'method'imports: Number of times imported but never used
lint(path=None, severity_filter=None) -> dict
Get linting diagnostics.
Returns:
errors: List of errorswarnings: List of warningshints: List of hintstotal_errors,total_warnings,total_hints: Counts
get_callers(file_path, line, col) -> list[dict]
Find functions that call this symbol.
Returns: List of items with:
file: File pathline: Line numbername: Function name
Architecture
┌─────────────────────────────────────────┐
│ AuroraLSP (facade.py) │ High-level sync API
├─────────────────────────────────────────┤
│ CodeAnalyzer (analysis.py) │ Dead code, usage summary
│ DiagnosticsFormatter (diagnostics.py) │ Linting
│ ImportFilter (filters.py) │ Import vs usage
├─────────────────────────────────────────┤
│ AuroraLSPClient (client.py) │ Async LSP operations
├─────────────────────────────────────────┤
│ multilspy (Microsoft) │ LSP server management
└─────────────────────────────────────────┘
Development
# Install dev dependencies
pip install -e ".[dev]"
# Run tests
pytest tests/
# Type checking
mypy src/
License
MIT
Metadata
Release files for aurora-lsp 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| aurora_lsp-0.1.0.tar.gz | 31.6 kB | Without provenance | Details for aurora_lsp-0.1.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| aurora_lsp-0.1.0-py3-none-any.whl | Python 3 | none | any | Details for aurora_lsp-0.1.0-py3-none-any.whl |
Total release size: 48.5 kB
Release files / aurora_lsp-0.1.0.tar.gz
| Download URL | aurora_lsp-0.1.0.tar.gz |
|---|---|
| Size | 31.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
6071ef4bc798348cf7f03316875485bafa7da6ffb00e174eb132e0b4ed224302
|
|
BLAKE2b-256 checksum How to use checksums |
4c1ad1d706cf74252975b281f3a1cece07d260b029e2c6eb590ec1a28bda3ca7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.14.2
|
Release files / aurora_lsp-0.1.0-py3-none-any.whl
| Download URL | aurora_lsp-0.1.0-py3-none-any.whl |
|---|---|
| Size | 16.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
d0300610e9537b5b307d7f249266ed7ee50edcf521d1759d188afc0ea630b686
|
|
BLAKE2b-256 checksum How to use checksums |
498ddbf5eb89d49f26f76eaf78870d45885b0aeeefbd1dbc48ce8cc38f6459e1
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.14.2
|
Security for aurora-lsp 0.1.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.