Code-Guardian by TGSC
Project description
Code Guardian
Generate tests with swarms of agents
CodeGuardian is an intelligent agent designed to automate the generation of production-grade unit tests for your Python code. It not only creates and runs these tests but also monitors them in real-time, providing you with comprehensive summaries of your code health. With CodeGuardian, you can enhance code reliability, maintainability, and accelerate your development workflow.
Features
- Automated Test Generation: Automatically generate unit tests for your existing Python codebase.
- Test Execution: Run generated tests seamlessly and view results instantly.
- Real-Time Monitoring: Watch tests in real-time to observe code behavior and performance.
- Code Health Summaries: Receive detailed reports on test coverage, code quality, and potential issues.
- Easy Integration: Integrate effortlessly with existing projects and CI/CD pipelines.
- Customizable Configurations: Tailor settings to match your project requirements.
Prerequisites
- Python 3.7 or higher
- pip package manager
Installation
pip3 install -U code-guardian
Example
import os
from dotenv import load_dotenv
from swarms import Agent, OpenAIChat
from code_guardian.main import CodeGuardian
load_dotenv()
# Get the OpenAI API key from the environment variable
api_key = os.getenv("OPENAI_API_KEY")
# Create an instance of the OpenAIChat class
model = OpenAIChat(
openai_api_key=api_key,
model_name="gpt-4o-mini",
temperature=0.1,
max_tokens=2000,
)
# Initialize the agent for generating unit tests
agent = Agent(
agent_name="Unit-Test-Generator-Agent", # Changed agent name
system_prompt="Generate unit tests for the provided classes using pytest.", # Updated system prompt
llm=model,
max_loops=1,
autosave=True,
dashboard=False,
verbose=True,
dynamic_temperature_enabled=True,
saved_state_path="unit_test_agent.json", # Updated saved state path
user_name="swarms_corp",
retry_attempts=1,
context_length=200000,
return_step_meta=False,
# output_type="json",
)
# Classes you want to generate tests for
classes_to_test = [CodeGuardian]
# Initialize CodeGuardian and run
guardian = CodeGuardian(
classes=classes_to_test, # classes to test
agent=agent, # agent to use
dir_path="tests", # directory to save tests
package_name="code-guardian", # package name
module_name="code_guardian.main", # module name
)
guardian.run()
Configuration Options
- test_directory: Directory where tests are stored.
- source_directory: Directory containing your source code.
- exclude_patterns: Files or directories to exclude.
- report_format: Format of the code health report (
html
,json
,xml
). - watch: Settings for real-time monitoring.
Roadmap
- Multi-language Support: Extend functionality to other programming languages.
- Advanced Static Analysis: Integrate deeper code analysis tools.
- IDE Plugins: Develop plugins for popular IDEs like VSCode and PyCharm.
- Enhanced Reporting: Add more detailed metrics and visualizations.
Contributing
We welcome contributions! Please see our Contributing Guidelines for details on how to get started.
License
CodeGuardian is licensed under the MIT License.
Acknowledgements
- Inspired by the need for robust automated testing tools.
- Thanks to the open-source community for their invaluable contributions.
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
File details
Details for the file code_guardian-0.0.3.tar.gz
.
File metadata
- Download URL: code_guardian-0.0.3.tar.gz
- Upload date:
- Size: 6.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.8.3 CPython/3.12.3 Darwin/23.3.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 81164e1cf1f0e70e9707f651c0c42ccb11386bac6031d6b54a87278b9ca4b560 |
|
MD5 | 2dbb702f1c19e0168ff7fb55b9ba64d4 |
|
BLAKE2b-256 | 5cc4505936de5d51f14d74a004079e6dd2c5f05bada5bb5b3ef49174e8050b34 |
File details
Details for the file code_guardian-0.0.3-py3-none-any.whl
.
File metadata
- Download URL: code_guardian-0.0.3-py3-none-any.whl
- Upload date:
- Size: 6.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.8.3 CPython/3.12.3 Darwin/23.3.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 312917d87c05a8fecb7eca667ef5781a18c5fe656cdf73621edf3a3087bf3cd4 |
|
MD5 | 3b38fa84198f9681f619b627d961e307 |
|
BLAKE2b-256 | 949d945436ffe966b336fc59c183330532ccf6a129c1748c54cfed7c33b177a7 |