axm-anvil

v0.1.0 safe
4.0
Medium Risk

Deterministic CST-based refactoring toolkit for Python — move, rename, split, merge symbols atomically across files.

🤖 AI Analysis

Final verdict: SAFE

The package has minimal risk indicators with no network calls, shell executions for benign purposes, no obfuscation, and no credential harvesting. The metadata risk slightly increases the score due to incomplete author details and a possibly new or inactive account.

  • Low network and shell risk
  • No signs of obfuscation or credential harvesting
  • Metadata risk due to incomplete author details
Per-check LLM notes
  • Network: No network calls detected, which is normal and not suspicious.
  • Shell: Shell execution is used to run 'ruff' and 'uv run axm-anvil' commands, which seems related to linting and running the package's own code, indicating benign use.
  • Obfuscation: No obfuscation patterns detected, indicating low risk.
  • Credentials: No credential harvesting patterns detected, indicating low risk.
  • Metadata: The author's details are incomplete and the account seems new or inactive, raising some concerns but not strong evidence of malicious intent.

📦 Package Quality Overall: Medium (6.2/10)

✦ High Test Suite 9.0

Test suite present — 36 test file(s) found

  • Test runner config found: conftest.py
  • Test runner config found: conftest.py
  • Test runner config found: conftest.py
  • 36 test file(s) detected (e.g. __init__.py)
◈ Medium Documentation 7.0

Some documentation present

  • Documentation URL: "Documentation" -> https://forge.axm-protocols.io
  • Detailed PyPI description (5709 chars)
○ Low Contributing Guide 2.0

No contributing guide or governance files found

  • No CONTRIBUTING, CODE_OF_CONDUCT, or governance files found
◈ Medium Type Annotations 7.0

Partial type annotation coverage

  • Classifier: Typing :: Typed
  • 379 type-annotated function signatures detected in source
◈ Medium Multiple Contributors 6.0

Limited contributor diversity

  • 2 unique contributor(s) across 100 commits in axm-protocols/axm-forge
  • Two distinct contributors found

🔬 Heuristic Checks

Outbound Network Calls

No suspicious network call patterns found

Code Obfuscation

No obfuscation patterns detected

Shell / Subprocess Execution score 10.0

Found 5 shell execution pattern(s)

  • ne: try: result = subprocess.run( # noqa: S603 ["ruff", *action_args], # noqa:
  • letedProcess[str]: return subprocess.run( ["uv", "run", "axm-anvil", *args], cwd=str(
  • b.read_bytes() result = subprocess.run( [ "uv", "run",
  • 0.0.0'\n") move_result = subprocess.run( ["uv", "run", "axm-anvil", "move", str(src), str(tg
  • as no F811. ruff_result = subprocess.run( ["uv", "run", "ruff", "check", str(tgt)], c
Credential Harvesting

No credential harvesting patterns detected

Typosquatting

No typosquatting candidates detected

Registered Email Domain

Email domain looks legitimate: axm-protocols.io>

Suspicious Page Links

All external links appear legitimate

Git Repository History

Repository axm-protocols/axm-forge appears legitimate

Maintainer History score 4.0

2 maintainer concern(s) found

  • Author name is missing or very short
  • Author "" appears to have only 1 package on PyPI (new or inactive account)
Known CVE Vulnerabilities

No known vulnerabilities found in OSV database.

💡 AI App Starter Prompt

Use this prompt to build a project with axm-anvil
Create a Python utility named 'RefactorMate' that leverages the 'axm-anvil' package to provide a robust code refactoring solution for Python projects. This utility will offer developers a simple yet powerful way to manage their codebase through atomic refactoring operations such as moving, renaming, splitting, and merging symbols across multiple files.

### Project Goals:
- Develop a command-line interface (CLI) tool for 'RefactorMate'
- Implement key refactoring operations using 'axm-anvil': move, rename, split, and merge symbols
- Ensure all operations are performed atomically to maintain the integrity of the codebase
- Provide comprehensive help documentation within the CLI for ease of use

### Key Features:
1. **Move Symbols**: Users should be able to specify a symbol (function, class, variable) and a destination file where it should be moved.
2. **Rename Symbols**: Allow users to rename a symbol and apply the change consistently across all relevant files.
3. **Split Symbols**: Enable users to split a large function or class into smaller, more manageable parts.
4. **Merge Symbols**: Permit users to merge similar or related functions/classes into a single entity.
5. **Atomic Operations**: All changes made by 'RefactorMate' should be done atomically; if any part of the operation fails, the entire process should be rolled back to prevent code corruption.
6. **Interactive Mode**: Offer an interactive mode where users can explore changes before applying them.
7. **Help Documentation**: Include a detailed help menu accessible via CLI commands.

### Utilizing 'axm-anvil':
- Use 'axm-anvil' to handle the complex task of moving, renaming, splitting, and merging symbols in a deterministic and consistent manner.
- Leverage its capabilities to ensure that all changes are applied atomically, maintaining the structural integrity of the codebase.
- Integrate 'axm-anvil' functionalities directly into the CLI commands to perform these operations seamlessly.

### Development Process:
1. Set up the project structure and install necessary dependencies, including 'axm-anvil'.
2. Design and implement the CLI interface using Python's argparse module.
3. Develop the core functionality for each refactoring operation, utilizing 'axm-anvil' for the heavy lifting.
4. Implement error handling and atomic transaction management to ensure safe execution of operations.
5. Add interactive mode functionality to allow users to preview changes before applying them.
6. Create comprehensive help documentation accessible from the CLI.
7. Test the utility thoroughly under various scenarios to ensure reliability and robustness.
8. Package the utility as a distributable Python package and document installation and usage instructions.

💬 Discussion Feed

Leave a comment

No discussion yet. Be the first to share your thoughts!