archtool

v2.1.1 suspicious
3.0
Low Risk

Auto-wiring DI + layer enforcement for Python. Define interfaces, write implementations — archtool assembles everything.

🤖 AI Analysis

Final verdict: SUSPICIOUS

The package shows minimal risk in terms of network usage, shell execution, and obfuscation. However, the metadata risk score is elevated due to the maintainer's new and potentially inactive account without a proper author name, raising suspicion.

  • Metadata risk due to new/inactive maintainer account
  • Lack of detailed author information
Per-check LLM notes
  • Network: No network calls detected, which is normal unless the package requires internet access to function properly.
  • Shell: No shell execution patterns detected, indicating no immediate risk of executing arbitrary commands.
  • Obfuscation: No obfuscation patterns detected, suggesting legitimate use or no risk of malicious obfuscation.
  • Credentials: No credential harvesting patterns detected, indicating safe handling of sensitive information.
  • Metadata: The maintainer has a new or inactive account and lacks a proper author name, which raises some suspicion but does not conclusively indicate malicious intent.

📦 Package Quality Overall: Medium (7.0/10)

✦ High Test Suite 9.0

Test suite present — 18 test file(s) found

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

Some documentation present

  • Documentation URL: "Documentation" -> https://0nliner.github.io/archtool
  • Detailed PyPI description (4166 chars)
○ Low Contributing Guide 4.0

No contributing guide or governance files found

  • Development Status classifier >= Beta
◈ Medium Type Annotations 7.0

Partial type annotation coverage

  • Classifier: Typing :: Typed
  • 75 type-annotated function signatures detected in source
✦ High Multiple Contributors 8.0

Active multi-contributor project

  • 3 unique contributor(s) across 37 commits in 0nliner/archtool
  • Small but multi-author team (3–4 contributors)

🔬 Heuristic Checks

Outbound Network Calls

No suspicious network call patterns found

Code Obfuscation

No obfuscation patterns detected

Shell / Subprocess Execution

No shell execution patterns detected

Credential Harvesting

No credential harvesting patterns detected

Typosquatting

No typosquatting candidates detected

Registered Email Domain

Email domain looks legitimate: gmail.com>

Suspicious Page Links

All external links appear legitimate

Git Repository History

Repository 0nliner/archtool 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 archtool
Create a simple task management application using Python that leverages the 'archtool' package to enforce a clean architecture and manage dependencies through dependency injection (DI). This application will allow users to add tasks, mark them as completed, and delete tasks. Here’s how you can structure and implement it:

1. **Define Interfaces**: Start by defining interfaces for the key components of your application such as TaskRepository (for managing tasks), TaskService (for business logic related to tasks), and TaskController (for handling HTTP requests).
2. **Implement Interfaces**: Implement these interfaces with concrete classes that perform the actual operations. For example, TaskRepositoryImpl could interact with a SQLite database to store tasks.
3. **Dependency Injection**: Use archtool to wire up these components so that your TaskController can receive instances of TaskService and TaskService can receive instances of TaskRepository without directly creating them. This setup ensures that your code remains loosely coupled and testable.
4. **Application Logic**: Ensure that your application can handle adding new tasks, marking tasks as completed, and deleting tasks through the defined service and repository layers.
5. **User Interface**: Provide a simple command-line interface (CLI) for interacting with the task management system. Users should be able to add tasks by providing a title and description, mark tasks as completed, and delete tasks by their IDs.
6. **Testing**: Write unit tests for each of your implemented interfaces to ensure they work as expected.
7. **Documentation**: Include comments in your code explaining how archtool is being used to enforce architectural layers and manage dependencies. Additionally, provide a brief README file that explains how to run the application and the purpose of each component.

This project not only demonstrates the practical use of archtool but also provides a useful tool for managing daily tasks.

💬 Discussion Feed

Leave a comment

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