semvec/pypi-packages huggingface dataset:
melon_top100 1.5.0
A package to easily scrape music chart data from Melon and Bugs. Suitable for training lists and dictionaries.
Requires Python: >=3.12

# MelonTop100

한국 음악 사이트(멜론, 벅스)의 차트 정보를 쉽게 가져올 수 있는 Python 패키지입니다.

`get_songs()` 함수를 사용하면 각 사이트의 인기 차트 곡 목록을 리스트 형태로 조회할 수 있으며, 각 항목은 곡명, 아티스트, 앨범 등의 정보를 담은 딕셔너리로 제공됩니다.

## Setup(Dev)

```bash
$ uv sync
$ uv run pytest
$ uv run ruff check .
```

## Use

```python
$ pip install melon-top100
$ python

from melon_top100 import melon, bugs

# 멜론 Top 100
>>> melon.get_songs()
[{'song_no': '34754292', 'title': 'TOMBOY', 'album': 'I NEVER DIE', 'artist': '(여자)아이들'}, ...]

>>> melon.get_like_count(34754292)
{'34754292': 137492}

# 벅스 실시간 차트
>>> bugs.get_songs()
[{'track_id': '130013303', 'title': 'Adrenaline', 'artist': 'ATEEZ', 'album': 'GOLDEN HOUR : Part.4'}, ...]
```

## Ruff

이 프로젝트는 린터와 포매터로 [Ruff](https://docs.astral.sh/ruff/)를 사용합니다. Ruff는 Rust로 작성된 Python 린터/포매터로, 기존 도구(flake8, isort, black 등)를 대체하면서도 압도적으로 빠른 속도를 제공합니다.

타입 힌트에 대해서는 개인적으로 선호하는 편은 아니지만, Ruff가 타입 힌트를 기반으로 더 정밀한 분석과 자동 수정을 제공하는 방향으로 발전하고 있어 그 가능성에 대한 기대감으로 적용했습니다.
airflow-postgres-csv 0.2.0
Airflow operators for PostgreSQL <-> CSV file transfers using COPY
Requires Python: >=3.10

# airflow-postgres-csv

Airflow 3 operators for bulk PostgreSQL <-> CSV transfers using `COPY`.

## Operators

- **`PostgresToCsvOperator`** - Run a SQL query and export results to a CSV file
- **`CsvToPostgresOperator`** - Load a CSV file into a PostgreSQL table

Both use PostgreSQL's `COPY` command for maximum throughput.

## Installation

```bash
pip install airflow-postgres-csv
```

## Usage

```python
from airflow_postgres_csv import PostgresToCsvOperator, CsvToPostgresOperator

# Export query results to CSV
export_task = PostgresToCsvOperator(
    task_id="export_users",
    conn_id="my_postgres",
    sql="SELECT * FROM users WHERE active = %(active)s",
    parameters={"active": True},
    csv_file_path="/tmp/users.csv",
)

# Load CSV into a table (with truncate)
import_task = CsvToPostgresOperator(
    task_id="import_users",
    conn_id="my_postgres",
    table_name="staging.users",
    csv_file_path="/tmp/users.csv",
    truncate=True,
)
```

### SQL from file

The `sql` parameter supports multiple formats:

```python
# Inline SQL
PostgresToCsvOperator(sql="SELECT * FROM users", ...)

# Relative path (loaded by Airflow from DAG folder or template_searchpath)
PostgresToCsvOperator(sql="sql/export_users.sql", ...)

# Absolute path (loaded directly)
PostgresToCsvOperator(sql="/opt/airflow/sql/export_users.sql", ...)
```

### Gzip compression

Both operators support gzip compression for large files:

```python
# Export to gzip
PostgresToCsvOperator(
    sql="SELECT * FROM large_table",
    csv_file_path="/tmp/data.csv.gz",
    compression="gzip",
    ...
)

# Import from gzip
CsvToPostgresOperator(
    csv_file_path="/tmp/data.csv.gz",
    compression="gzip",
    ...
)
```

## Parameters

### PostgresToCsvOperator

| Parameter | Description | Default |
|-----------|-------------|---------|
| `conn_id` | Airflow Postgres connection ID | required |
| `csv_file_path` | Output file path (templated) | required |
| `sql` | SQL query string, or path to `.sql` file | required |
| `parameters` | Dict passed to `cursor.mogrify` | `{}` |
| `has_header` | Include CSV header row | `True` |
| `compression` | Compression format (`"gzip"` or `None`) | `None` |
| `timeout` | Query timeout in minutes | `60` |

### CsvToPostgresOperator

| Parameter | Description | Default |
|-----------|-------------|---------|
| `conn_id` | Airflow Postgres connection ID | required |
| `table_name` | Target table (templated, supports `schema.table`) | required |
| `csv_file_path` | Input file path (templated) | required |
| `columns` | Explicit column list | `None` |
| `has_header` | CSV has header row | `True` |
| `truncate` | Truncate table before loading | `False` |
| `compression` | Compression format (`"gzip"` or `None`) | `None` |
| `delimiter` | CSV delimiter | `","` |
| `quote_char` | CSV quote character | `'"'` |
| `null_string` | String representing NULL | `""` |
| `timeout` | Query timeout in minutes | `60` |

## Requirements

- Apache Airflow >= 3.0.0
- apache-airflow-providers-postgres >= 6.0.0

## License

MIT
kannada-ascii-unicode 0.1.1
Kannada ASCII ↔ Unicode converter (basic mapping-based)
Requires Python: >=3.8
Keywords: kannada, unicode, ascii, conversion, indic, indian-language

# Kannada ASCII ↔ Unicode Converter

A lightweight Python library to convert Kannada text between
ASCII-based legacy encodings and modern Unicode.

This package is useful when working with:
- Legacy Kannada ASCII fonts and data
- Unicode migration projects
- Text processing and validation

---

## Project Status

This is version 0.1.x and uses a mapping-based approach.

- Basic conversions work correctly
- Complex conjunct handling and full round-trip accuracy
  are still under improvement
- API is stable and mappings will improve over time

---

## Installation

```bash
pip install kannada-ascii-unicode
```

---

## Quick Start

```python
from kannada_converter import ascii_to_unicode, unicode_to_ascii
```

---

## ASCII to Unicode Conversion

Convert legacy ASCII-encoded Kannada text into Unicode.

```python
from kannada_converter import ascii_to_unicode

text_ascii = "kannaDa"
text_unicode = ascii_to_unicode.convert(text_ascii)

print(text_unicode)
```

Output:

```
ಕನ್ನಡ
```

---

## Unicode to ASCII Conversion

Convert Unicode Kannada text back to ASCII encoding.

```python
from kannada_converter import unicode_to_ascii

text_unicode = "ಕನ್ನಡ"
text_ascii = unicode_to_ascii.convert(text_unicode)

print(text_ascii)
```

Output:

```
kannaDa
```

---

## Sentence Conversion Example

```python
from kannada_converter import ascii_to_unicode

sentence = "namma kannaDa bhaashe"
result = ascii_to_unicode.convert(sentence)

print(result)
```

---

## Round-trip Behavior

```python
ascii_text = "kannaDa bhaashe"

unicode_text = ascii_to_unicode.convert(ascii_text)
back_to_ascii = unicode_to_ascii.convert(unicode_text)

print(back_to_ascii)
```

Due to the current mapping-based approach, round-trip results
may not be identical in all cases. This will improve in
future versions.

---

## How It Works

- Uses JSON-based character mappings
- Applies longest-key-first replacement
- No external dependencies
- Fast and lightweight

---

## Supported Python Versions

- Python 3.8 and above
- Works on Windows, Linux, and macOS

---

## Roadmap

Planned improvements include:
- Better conjunct handling
- Improved round-trip accuracy
- Optional command-line interface
- Font-specific mapping profiles

---

## License

MIT License

---

## Author

Ravikumar Pawar  
GitHub: https://github.com/kagapa-blr