Metadata-Version: 2.1
Name: polydepend
Version: 1.2.1
Summary: Multi-language Dependency Management Tool
Home-page: https://github.com/Simacoder/polydepend
Author: Simanga Mchunu
Author-email: datawithsima@gmail.com
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Topic :: System :: Software Distribution
Requires-Python: >=3.7
Description-Content-Type: text/markdown
License-File: LICENSE.txt
Requires-Dist: requests>=2.25.0
Requires-Dist: packaging
Provides-Extra: dev
Requires-Dist: pytest; extra == "dev"
Requires-Dist: coverage; extra == "dev"
Requires-Dist: black; extra == "dev"
Requires-Dist: mypy; extra == "dev"

# PolyDepend

*A Cross-Language Dependency Resolver and Manager*

---
# Overview

PolyDepend is a powerful and extensible tool designed to resolve dependency issues for projects written in various programming languages. It analyzes your project files, resolves version conflicts, and installs the required dependencies seamlessly.

Whether you are working with Python, JavaScript, Java, or other languages, PolyDepend simplifies dependency management, making it easier to maintain multi-language projects and monorepos.

---

# Features

- **Multi-Language Support**: Handles dependencies for Python, JavaScript, Java, Ruby, Go, Rust, and more.
- **Dependency Conflict Resolution**: Automatically detects and resolves version conflicts.
- **Offline Mode**: Caches dependencies for offline installation.
- **Dependency Visualization**: Generates dependency graphs to identify conflicts.
- **User-Friendly Interface**: Comes with both CLI and GUI options.
- **Extensibility**: Easily add support for new languages using plugins.

---
# Installation

Install PolyDepend using pip:
```bash
    pip install polydepend
```

---

# Usage
# CLI Usage
Run the following command in your terminal:
```bash
    polydepend <path_to_your_project>
```

Example:
```bash
    polydepend /path/to/my/python/project
```
---

# GUI Usage
Launch the graphical interface:
```bash
    python -m polydepend.gui
```
1. Select your project folder.
2. Analyze dependencies.
3. Resolve conflicts and install.

---

# Supported Languages
- Python: requirements.txt, pyproject.toml
- JavaScript: package.json, yarn.lock
- Java: pom.xml, build.gradle
- Ruby: Gemfile
- Go: go.mod
- Rust: Cargo.toml
---
# Project Structure
```BASH
polydepend/
â”‚
â”œâ”€â”€ src/
â”‚   â”œâ”€â”€ analyzers/        # Language-specific dependency analyzers
â”‚   â”œâ”€â”€ resolver/         # Core engine to resolve conflicts
â”‚   â”œâ”€â”€ fetcher/          # Dependency installation modules
â”‚   â”œâ”€â”€ cli.py            # Command-line interface
â”‚   â””â”€â”€ gui.py            # Graphical user interface
â”‚
â”œâ”€â”€ tests/                # Unit and integration tests
â”œâ”€â”€ requirements.txt      # Python dependencies for development
â”œâ”€â”€ README.md             # Project documentation
â””â”€â”€ setup.py              # Packaging and distribution
```
---

# Development
Clone the repository:
```bash
    git clone https://github.com/Simacoder/polydepend.git
    cd polydepend
```

Install development dependencies:
```bash
    pip install -r requirements.txt
```
Run tests:
```bash
    pytest tests/
```
---

# Extending PolyDepend
To add support for a new language:

- Create a new analyzer module in src/analyzers/.
- Implement the analyze_dependencies() function for the new language.
- Register the new analyzer in the resolver.
- 
Example for Ruby:
```bash
def analyze_ruby_dependencies(project_path):
    """Parse Gemfile for dependencies."""
    # Your implementation here
```
---
# Contributing
We welcome contributions! Please follow these steps:

1. Fork the repository.
2. Create a new branch for your feature.
3. Submit a pull request with a detailed description of your changes.
---

# License
polyDepend is licensed under the MIT License. See [LICENSE](https://mit-license.org/) for details.

---
# Contact
For questions or feedback, please contact:

- **Email**: simacoder@hotmail.com
- **GitHub**: [Simacoder](https://github.com/Simacoder)
---

# Acknowledgments
Thanks to all open-source contributors and the development community for their inspiration and tools.
