semvec/pypi-packages huggingface dataset:
doogat-integrations 0.3.0
External service integrations for the Doogat zettelkasten system
Requires Python: <4.0,>=3.12

# doogat-integrations

Integration layer connecting the Doogat domain to external services. Currently provides JIRA integration with assembler-based DTO conversion.

## Install

```bash
pip install doogat-integrations
```

## Features

- **JIRA integration** - Create and sync JIRA issues from project zettels
- **Assemblers** - Convert between domain objects and external service DTOs

## Development

```bash
uv sync --all-groups                        # install deps
pre-commit install --hook-type pre-commit --hook-type post-commit  # setup hooks
uv run pytest                               # run tests
```

## Release

Releases via GitHub Actions (manual trigger):

1. Go to Actions → Release workflow → Run workflow
2. Choose `prerelease` (test.pypi only) or `release` (both pypis + GitHub release)

Version determined from conventional commits (`feat:` → minor, `fix:` → patch).

```bash
uv run semantic-release version --print --noop  # preview next version
```

See [dev/docs/versioning.md](dev/docs/versioning.md) for details.

## License

GPL-3.0
icalendar-anonymizer 0.1.2
Strip personal data from iCalendar files while preserving technical properties for bug reproduction
Requires Python: >=3.11
Keywords: anonymizer, calendar, icalendar, ics, privacy, vcalendar

<!--- SPDX-FileCopyrightText: 2025 icalendar-anonymizer contributors -->
<!--- SPDX-License-Identifier: AGPL-3.0-or-later -->

# icalendar-anonymizer

Strip personal data from iCalendar files while preserving technical properties for bug reproduction.

Calendar bugs are hard to reproduce without actual calendar data, but people can't share their calendars publicly due to privacy concerns. This tool uses hash-based anonymization to remove sensitive information (names, emails, locations, descriptions) while keeping all date/time, recurrence, and timezone data intact.

[![Documentation](https://readthedocs.org/projects/icalendar-anonymizer/badge/?version=stable)](https://docs.icalendar-anonymizer.com/stable/)
[![Tests](https://github.com/mergecal/icalendar-anonymizer/actions/workflows/tests.yml/badge.svg)](https://github.com/mergecal/icalendar-anonymizer/actions/workflows/tests.yml)
[![codecov](https://codecov.io/gh/mergecal/icalendar-anonymizer/graph/badge.svg?token=6tcJpy0th3)](https://codecov.io/gh/mergecal/icalendar-anonymizer)
[![PyPI version](https://img.shields.io/pypi/v/icalendar-anonymizer.svg)](https://pypi.org/project/icalendar-anonymizer/)
[![Python versions](https://img.shields.io/pypi/pyversions/icalendar-anonymizer.svg)](https://pypi.org/project/icalendar-anonymizer/)
[![Docker pulls](https://img.shields.io/docker/pulls/sashankbhamidi/icalendar-anonymizer.svg)](https://hub.docker.com/r/sashankbhamidi/icalendar-anonymizer)
[![License: AGPL-3.0-or-later](https://img.shields.io/badge/License-AGPL%203.0--or--later-blue.svg)](https://github.com/mergecal/icalendar-anonymizer?tab=AGPL-3.0-1-ov-file#readme)
[![Ruff](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/v2.json)](https://github.com/astral-sh/ruff)

## Usage

**Web Service:** https://icalendar-anonymizer.com

For installation and other usage options, see the [documentation](https://docs.icalendar-anonymizer.com/stable/).

## Contributing

See the contributing guide at https://docs.icalendar-anonymizer.com/stable/contributing.html.

## License

AGPL-3.0-or-later. See [LICENSE](LICENSE).
buvis-pybase 0.10.0
Foundation of BUVIS python projects
Requires Python: <4.0,>=3.12

# buvis-pybase

Foundation library for BUVIS Python projects. Provides configuration management, filesystem utilities, adapters for external tools, and string manipulation.

## Install

```bash
pip install buvis-pybase
```

## Features

- **Configuration** - Pydantic settings with Click helpers (`buvis_options`, `get_settings`)
- **Adapters** - Shell, UV, Poetry, JIRA, Console wrappers
- **Filesystem** - Cross-platform file metadata, directory operations
- **Formatting** - String slugify, abbreviations, case conversion

## Usage

```python
import click
from buvis.pybase.configuration import buvis_options, get_settings, GlobalSettings
from buvis.pybase.adapters import ShellAdapter, ConsoleAdapter
from buvis.pybase.filesystem import DirTree
from buvis.pybase.formatting import StringOperator

# Config via Click (adds --debug/--log-level/--config-dir/--config)
@click.command()
@buvis_options  # Use settings_class=CustomSettings for tool-specific models
@click.pass_context
def main(ctx: click.Context) -> None:
    settings = get_settings(ctx)  # GlobalSettings by default
    click.echo(f"Debug: {settings.debug}")

# Shell commands
shell = ShellAdapter()
stderr, stdout = shell.exe("ls -la")

# Console output
console = ConsoleAdapter()
console.success("Done")

# Filesystem
DirTree.remove_empty_directories("/path/to/clean")

# Strings
slug = StringOperator.slugify("Hello World!")  # "hello-world"
```

## Development

```bash
uv sync --all-groups                        # install deps
pre-commit install --hook-type pre-commit --hook-type post-commit  # setup hooks
uv run pytest                               # run tests
```

## Release

Releases via GitHub Actions (manual trigger):

1. Go to Actions → Release workflow → Run workflow
2. Choose `prerelease` (test.pypi only) or `release` (both pypis + GitHub release)

Version determined from conventional commits (`feat:` → minor, `fix:` → patch).

```bash
uv run semantic-release version --print --noop  # preview next version
```

See [dev/docs/versioning.md](dev/docs/versioning.md) for details.

## License

MIT