semvec/pypi-packages huggingface dataset:
graphspire 0.1.3
A tool to analyze and visualize C++ project dependencies
Requires Python: >=3.8

# GraphSpire

<div align="center">
  <img src="assets/graphspire_banner.png" alt="GraphSpire Banner" width="800"/>
</div>

A tool to analyze and visualize C++ project dependencies. It generates beautiful dependency graphs from your C++ project's include statements.

## Why GraphSpire?

Ever found yourself lost in a maze of C++ includes? GraphSpire helps you navigate through complex C++ projects by generating clear, beautiful dependency graphs. Whether you're refactoring legacy code or starting a new project, GraphSpire gives you the bird's-eye view you need.

## Features

- Analyzes C++ project structure and include dependencies
- Generates multiple visualization formats:
  - JSON structure for programmatic use
  - Mermaid graph for documentation
  - Graphviz DOT for high-quality visualizations
- Respects `.gitignore` patterns
- Customizable ignore patterns
- Beautiful Catppuccin-themed visualizations

## Quick Start

```bash
# Install from PyPI
pip install graphspire

# Or install from source
git clone https://github.com/kshitijaucharmal/graphspire.git
cd graphspire
pip install -e .
```

## Usage

Basic usage:
```bash
graphspire --dir /path/to/cpp/project
```

Advanced usage:
```bash
graphspire \
    --dir /path/to/cpp/project \
    --ignore "build/" "external/" \
    --output-json deps.json \
    --output-mermaid deps.mmd \
    --output-dot deps.dot \
    --verbose
```

### Command Line Options

- `--dir`: Target directory to analyze (default: current directory)
- `--output-json`: Output JSON file (default: project_structure.json)
- `--output-mermaid`: Output Mermaid file (default: dependencies.mmd)
- `--output-dot`: Output DOT file (default: dependencies.dot)
- `--ignore-gitignore`: Ignore .gitignore file
- `--ignore`: Explicit folders or files to ignore (supports patterns)
- `--verbose`: Enable verbose output

### Rendering the DOT File

To render the DOT file into a PNG:
```bash
dot -Tpng -Gdpi=300 -Gsize=10,10 dependencies.dot -o graph.png
```

## Development

Want to contribute? Awesome! Here's how to get started:

1. Clone the repository
2. Create a virtual environment:
   ```bash
   python -m venv .venv
   source .venv/bin/activate  # or `.venv\Scripts\activate` on Windows
   ```
3. Install development dependencies:
   ```bash
   pip install -e ".[dev]"
   ```
4. Run tests:
   ```bash
   pytest
   ```

## License

MIT License - feel free to use this in your projects!

## Contributing

Found a bug? Have a feature request? Contributions are welcome! Feel free to open an issue or submit a pull request.

---

<div align="center">
  <img src="assets/graphspire_logo.png" alt="GraphSpire Logo" width="100"/>
  <br/>
  <sub>Built for the C++ community</sub>
</div>
semver-tools 0.1.0
A tool for managing semantic versioning in Git repositories
Requires Python: >=3.6

# Semver Tools

A Python tool for managing semantic versioning in Git repositories. This tool automatically handles version bumping and Git tagging based on commit messages and branch names.

## Features

- Automatic version bumping based on commit messages
- Git tag management
- Support for major, minor, patch, and hotfix versions
- Branch-aware versioning (develop, hotfix branches)
- Version file generation

## Installation

1. Install from source:
a. Clone the repository:
```
git clone https://github.com/your-repo/semver-tools.git
cd semver-tools
```

b. Install the dependencies:
```
pip install -r requirements.txt
```

2. Install from PyPI:
```
pip install semver-tools
```

## Usage

### Basic Usage

1. Run the tool in your Git repository:

```bash
python -m semver_tools.main --repo-path /path/to/your/repo
```

If no path is specified, it uses the current directory.

2. Run as cli tool:
```bash
semver-tools --repo-path /path/to/your/repo
```

### Version Bumping Rules

The tool determines version bumps based on commit messages:

- `[major]` in commit message: Bumps major version (1.0.0 → 2.0.0)
- `[minor]` in commit message: Bumps minor version (1.0.0 → 1.1.0)
- `[hotfix]` in commit message: Adds hotfix suffix (1.0.0 → 1.0.0+hotfix.1)
- No special tag: Bumps patch version (1.0.0 → 1.0.1)

### Branch Behavior

- On `develop` or `dev` branches: Creates new version tags
- On `hotfix` branches: Creates hotfix versions
- On other branches: Only displays current version without creating tags

### Version File

The tool generates a `version.env` file in your repository with the current version:
```
VERSION=1.0.0
```

## Development

### Running Tests

```bash
pytest tests/
```

### Project Structure

```
semver_tools/
├── __init__.py
├── git_utils.py      # Git repository operations
├── main.py          # CLI entry point
└── version_manager.py # Version management logic

tests/
├── __init__.py
├── test_git_utils.py
├── test_main.py
└── test_version_manager.py
```

## Requirements

- Python 3.6+
- GitPython
- semantic_version
- pytest (for development)

## Contributing

1. Fork the repository
2. Create your feature branch (`git checkout -b feature/amazing-feature`)
3. Commit your changes (`git commit -m '[minor] Add amazing feature'`)
4. Push to the branch (`git push origin feature/amazing-feature`)
5. Open a Pull Request

## License

This project is licensed under the MIT License - see the LICENSE file for details.

## Acknowledgments

- [semantic_version](https://python-semanticversion.readthedocs.io/) for version parsing
- [GitPython](https://gitpython.readthedocs.io/) for Git operations