semvec/pypi-packages huggingface dataset:
octodns-pihole 0.1.0
Pi-hole provider for octoDNS
Requires Python: >=3.9

## Pi-hole provider for octoDNS

An [octoDNS](https://github.com/octodns/octodns/) provider that targets
[Pi-hole](https://docs.pi-hole.net). Uses the
[pihole6api](https://pypi.org/project/pihole6api/) library for API communication.

Pi-hole version 6 is supported.

This provider manages matching A/AAAA/CNAME records with Pi-hole's
`Local DNS Records`. It will manage host and CNAME entries that match
domain names under management by OctoDNS. Other existing Pi-hole entries are
untouched.

TTL values are unsupported on host records (A/AAAA). CNAME records support
an optional TTL.

### Installation

```
pip install octodns-pihole
```

### Configuration

```yaml
providers:
  pihole:
    class: octodns_pihole.PiholeProvider
    url: https://pihole.lan:443
    password: env/PIHOLE_PASSWORD
    strict_supports: false # ignore unsupported records
```

### Support Information

#### Records

Pi-hole supports A, AAAA, and CNAME. PTR records will automatically exist for
A and AAAA records.

#### Dynamic

PiholeProvider does not support dynamic records.

### Development

```bash
# Install in editable mode with dev dependencies
pip install -e ".[dev]"

# Run tests
pytest --disable-network

# Run tests with coverage
pytest --disable-network --cov=octodns_pihole --cov-report=term-missing

# Lint
pyflakes octodns_pihole/*.py tests/*.py

# Format
isort octodns_pihole/ tests/
black octodns_pihole/ tests/
```

There is a [docker-compose.yml](docker-compose.yml) file included in the repo
that will set up a Pi-hole server with the API enabled for use in development.
The admin password/api-key for it is `correct horse battery staple`.

A configuration [example](example/) is provided and can be used along with the
[docker-compose.yml](docker-compose.yml):

1. Launch the container.

        docker compose up

    * Admin UI: http://localhost/admin
    * API Docs: http://localhost/api/docs

2. Run octodns-sync against the container

        octodns-sync --config-file=./example/config.yaml

3. Synchronize changes with Pi-hole

        octodns-sync --config-file=./example/config.yaml --doit

4. View records within the admin UI:
   [Local DNS Records](http://localhost/admin/settings/dnsrecords)
interactiveai 0.0.32
InteractiveAI client package
Requires Python: >=3.8

# interactiveai-sdk
The official Python SDK for the InteractiveAI platform.

## Installation

You can install the package via pip:
```bash
pip install interactiveai
```

## License

This project is licensed under a proprietary license. See the [LICENSE.md](LICENSE.md) file for details.
libfelix 0.9.1
Felix' library
Requires Python: >=3.11

# libfelix
Felix' library of snippets.

- few dependencies
- keep it simple


## Installation
```
pip install libfelix
pip install libfelix[full]
```

[^full]: `libfelix[full]` is required for this feature


## libfelix.git
```python
>>> from libfelix.git import Repo
>>> r = Repo('.')
>>> r.head
'9e260ece8558ba9a6c4ad6a9c89905630fe0140b'
```


## libfelix.music [^full]
Controls music players via dbus (`org.mpris.MediaPlayer2.Player`) and scores them based on a simple heuristic (see
`score_players` in `libfelix/music/api.py`).
```
$ music --help
Usage: music [OPTIONS] COMMAND [ARGS]...

Options:
  --help  Show this message and exit.

Commands:
  Next
  PlayPause
  Previous
  players
```


## libfelix.logging
Opinionated settings for Structlog:

- log to STDERR
- configure the log level by setting the environment variable `LOGLEVEL`

```python
from libfelix.logging import configure_structlog_console_from_env, get_logger

configure_structlog_console_from_env()
log = get_logger()
log.info('...')
```


## libfelix.rename_scans [^full]
Renames scanned PDFs (from the M365 Android app and shared via [KDE Connect](https://kdeconnect.kde.org/)) in a directory to a sane format.
```bash
felix-kdeconnect-rename-scans ~/Downloads/kdeconnect/
```


## Development
```
mise trust
mise install
pre-commit install -f
uv sync --all-extras
```
upload-manager 1.2.0
Upload manager
Requires Python: >=3.6

# bbuploadmanager
        
        **bbuploadmanager** is an easy python library which manages all uploading, downloading, state management functionality and multiple scenarios of our Uploads & Processing of you project. 
        
        ## Features
        - Uploading file to AWS S3
        - Reading uploaded file content from AWS S3
        - Upload Processing state management
        - Upload Manager Dashboard 
        - Upload tracking
        
        ## Installation
        ```
        pip install https://github.com/Bigbasket/bbuploadmanager
        ```
        OR 
        ```
        pip install upload-manager
        ```
        ### Prerequisite
        
        - Python 3 and above 
        - Django 2.1 and above
        
        #### Environment
        AWS_STORAGE_BUCKET_NAME
        - variable need to be set in environment to specify aws bucket.
        
        AWS_ACCESS_KEY_ID & 
        AWS_SECRET_ACCESS_KEY
        - variable need to be set in environment, Only if I Am Role is not enabled on the machine.
        
        ## Sample Code
        
        ```
        # Library Plugin code to be added in settings.py
        INSTALLED_APPS = ["upload_manager.apps.UploadManagerConfig"]
        
        # Below code to be implementation in your application.py\
        # imports
        from upload_manager.service import UploadManagerService
        
        # file upload example
        upload_service = UploadManagerService(<upload_name>, <username>, <S3_bucket_path>, files=[<file_obj>,])
        upload_obj = upload_service.start_upload()
        
        # reading uploaded file data in async thread
        file_data = UploadManagerService.get_upload_content_for_id(upload_obj.id)
        
        # writing response file example
        upload_service.file_content = [("OrderId", "Status", "Message"),(11020304, "Success", "")]
        upload_service.update_response_for_upload(upload_obj_id)
        
        # updating upload status example
        UploadManagerService.change_upload_status_to_inprocess(upload_obj.id)
        UploadManagerService.change_upload_status_to_complete(upload_obj.id)
        UploadManagerService.change_upload_status_to_failed(upload_obj.id)`
        ```
        
        ## Dashboard View
        
        ![](images/dashboard.png)
        
        Above image shows dashboard view, how the uploads can be viewed and tracked in django Admin.
        
        - Request File - Column contains a hyperlink to the uploaded file which was uploaded as part of start upload
        - Response File - Column contains a hyperlink to the uploaded response file was uploaded after the processing.
opening-hours-osm 0.1.1
Python library for parsing the opening hour format used by OpenStreetMap.
Requires Python: >=3.13

# opening-hours-osm

Python library for parsing the opening hour format used by OpenStreetMap.

Reference: <https://wiki.openstreetmap.org/wiki/Key:opening_hours>

The library was ported from this Rust library <https://github.com/remi-dupre/opening-hours-rs>.

## Usage

```python
from datetime import datetime

from opening_hours_osm import OpeningHours, Context, GeoLocale, CountryHolidays

ctx = Context(
    # Locale for determining timezone and astronomic events
    GeoLocale(48.36658170393406, 10.89542692530624),
    CountryHolidays("DE", "BY")
)

oh = OpeningHours.parse("Mo-Fr 09:00-18:00; PH off", ctx)

for r in oh.iter_range(datetime(2021, 4, 8, 0, 0), datetime(2021, 4, 11, 0, 0)):
    print(r.start.isoformat(), "-", r.end.isoformat(), r.kind, r.comments)

assert oh.is_open(datetime(2021, 4, 8, 12, 0))
```

```txt
2021-04-08T00:00:00+02:00 - 2021-04-08T09:00:00+02:00 closed []
2021-04-08T09:00:00+02:00 - 2021-04-08T18:00:00+02:00 open []
2021-04-08T18:00:00+02:00 - 2021-04-09T09:00:00+02:00 closed []
2021-04-09T09:00:00+02:00 - 2021-04-09T18:00:00+02:00 open []
2021-04-09T18:00:00+02:00 - 2021-04-11T00:00:00+02:00 closed []
```