semvec/pypi-packages huggingface dataset:
endec 0.5.3
Web-compatible encoding and decoding library
Requires Python: >=3.8
Keywords: encoding_rs, web, codec

# endec

[![PyPI - Version](https://img.shields.io/pypi/v/endec)](https://pypi.org/project/endec/)
![PyPI - Python Version](https://img.shields.io/pypi/pyversions/endec)
![GitHub Workflow Status (with event)](https://img.shields.io/github/actions/workflow/status/fluxth/endec/build.yml)
![GitHub Workflow Status (with event)](https://img.shields.io/github/actions/workflow/status/fluxth/endec/test.yml?label=tests)

Web-compatible **en**coding and **dec**oding library

**endec** uses [`encoding_rs`](https://github.com/hsivonen/encoding_rs) (which powers Firefox) under the hood.

## Supported Python versions

- CPython 3.8 or higher
- PyPy 3.11 or higher

## Installation

### Using [uv package manager](https://github.com/astral-sh/uv) (recommended)

```bash
uv add endec
```

### Using [Poetry package manager](https://github.com/python-poetry/poetry)

```bash
poetry add endec
```

### Using pip

```bash
pip install endec
```

## Examples

### Codecs

Please refer to [WHATWG Web Encoding Standard](https://encoding.spec.whatwg.org/#concept-encoding-get) for available codecs.

### Encode

```python
import endec

utf8_bytes = endec.encode("こんにちは")
assert utf8_bytes == b"\xe3\x81\x93\xe3\x82\x93\xe3\x81\xab\xe3\x81\xa1\xe3\x81\xaf"

iso2022jp_bytes = endec.encode("㊤㊥㊦", "iso-2022-jp")
assert iso2022jp_bytes == b"\x1b$B-e-f-g\x1b(B"

"㊤㊥㊦".encode("iso-2022-jp")  # Standard Library `encode`
# UnicodeEncodeError: 'iso2022_jp' codec can't encode character '\u32a4' in position 0: illegal multibyte sequence
```

### Decode

```python
import endec

utf8_str = endec.decode(b"\xe3\x81\x93\xe3\x82\x93\xe3\x81\xab\xe3\x81\xa1\xe3\x81\xaf")
assert utf8_str == "こんにちは"

iso2022jp_str = endec.decode(b"\x1b$B-e-f-g\x1b(B", "iso-2022-jp")
assert iso2022jp_str == "㊤㊥㊦"

b"\x1b$B-e-f-g\x1b(B".decode("iso-2022-jp")  # Standard Library `decode`
# UnicodeDecodeError: 'iso2022_jp' codec can't decode bytes in position 3-4: illegal multibyte sequence
```

### Error Handling

```python
import endec
from endec.exceptions import EncodeError, DecodeError

try:
    invalid_encode = endec.encode("漢字", "ascii")
except EncodeError as exc:
    # endec.exceptions.EncodeError: encoding with 'windows-1252' codec failed
    raise exc

try:
    invalid_decode = endec.decode(b"\x42\xff\x42", "iso-2022-jp")
except DecodeError as exc:
    # endec.exceptions.DecodeError: decoding with 'ISO-2022-JP' codec failed
    raise exc
```

## License

This project is licensed under the terms of the [MIT license](https://github.com/fluxth/endec/blob/main/LICENSE).
updateCitation 0.0.12
Automatically update citation files (CITATION.cff) in a GitHub repository from `pyproject.toml`, GitHub releases, and PyPI releases.
Requires Python: >=3.11
Keywords: academic-software, automation, cff, citation, citation-files, doi, github, metadata, publishing, references, research-software, scholarly-communication, software-citation, zenodo

# updateCitation

updateCitation is a Python tool that automates the maintenance of citation metadata in software projects. It helps researchers and developers ensure their work is properly citeable while maintaining consistent metadata across different platforms.

## Key Features

- Automatic generation and updates of CITATION.cff files
- Seamless integration with Python package metadata from pyproject.toml
- Synchronization with GitHub release information
- Integration with PyPI package metadata
- Validation of citation metadata format
- GitHub Actions support for automated updates

## Installation

```bash
pip install updateCitation
```

## Usage

The simplest way to use updateCitation is to run it from your repository root:

```python
import updateCitation
updateCitation.here()
```

For custom pyproject.toml locations:

```python
updateCitation.here("path/to/pyproject.toml")
```

## GitHub Actions Integration

updateCitation provides a GitHub Action that automatically updates your citation metadata on each push. To enable this:

1. Create `.github/workflows/updateCitation.yml` in your repository
2. Copy the provided workflow configuration
3. Commit and push to activate automated citation updates

## Configuration

updateCitation primarily uses your project's `pyproject.toml` file for configuration. Essential fields include:

### Required Fields

- `name`: Package name
- `version`: Current version
- `authors`: List of authors with names and emails

### Recommended Fields

- `description`: Project description
- `keywords`: Search keywords
- `license`: License information
- `urls`: Project URLs (homepage, repository, etc.)

### Optional Tool Settings

You can customize updateCitation's behavior in the `[tool.updateCitation]` section of pyproject.toml.

## Documentation

For detailed documentation, examples, and best practices, visit our [GitHub repository](https://github.com/hunterhogan/updateCitation).

## Contributing

Contributions are welcome! Please feel free to submit pull requests.

## My recovery

[![Static Badge](https://img.shields.io/badge/2011_August-Homeless_since-blue?style=flat)](https://HunterThinks.com/support)
[![YouTube Channel Subscribers](https://img.shields.io/youtube/channel/subscribers/UC3Gx7kz61009NbhpRtPP7tw)](https://www.youtube.com/@HunterHogan)

[![CC-BY-NC-4.0](https://raw.githubusercontent.com/hunterhogan/updateCitation/refs/heads/main/.github/CC-BY-NC-4.0.png)](https://creativecommons.org/licenses/by-nc/4.0/)
pytaskwarrior 1.0.0rc1
Taskwarrior wrapper python module
Requires Python: >=3.12
Keywords: taskwarrior

# pytaskwarrior

A modern Python wrapper for [TaskWarrior](https://taskwarrior.org/), the command-line task management tool.

## Features

- ✅ Full CRUD operations for tasks
- ✅ Type-safe with Pydantic models
- ✅ Context management
- ✅ UDA (User Defined Attributes) support
- ✅ Recurring tasks and annotations

## Requirements

- Python 3.12+
- TaskWarrior 3.4+ installed

## Installation

```bash
pip install pytaskwarrior
```

## Quick Start

```python
from taskwarrior import TaskWarrior, TaskInputDTO, Priority

tw = TaskWarrior()

# Create a task
task = TaskInputDTO(
    description="Important meeting",
    priority=Priority.HIGH,
    project="work",
    due="friday"
)
added = tw.add_task(task)

# Get all pending tasks
for t in tw.get_tasks():
    print(f"[{t.priority or '-'}] {t.description}")

# Complete a task
tw.done_task(added.uuid)
```

## Documentation

Full documentation: [GitHub Repository](https://github.com/sznicolas/pytaskwarrior/)