semvec/pypi-packages huggingface dataset:
piholesdk 0.1.3
A Python client for managing DNS records on a Pi-hole server via SSH.
Requires Python: >=3.6

# PiHoleClient
![alt text](images/image.png)

This Python module provides a class PiHoleClient that allows you to interact with a Pi-hole server via SSH. It uses the paramiko library to establish the SSH connection.

## Features
- Create DNS records
- Push DNS records to the Pi-hole server
- Delete DNS records from the Pi-hole server
- Read the custom list of DNS records from the Pi-hole server
- Close the SSH connection

## Usage
First, you need to create an instance of PiHoleClient with the SSH details of your Pi-hole server:
```python
from piholesdk import PiHoleClient

pihole_node =  {"ssh_ip_address":"192.168.178.100",
               "ssh_username":"root",
               "ssh_password":"password"}

client = PiHoleClient(**pihole_node)
```

You can then use the methods provided by the PiHoleClient class to interact with your Pi-hole server.
```python
client.read_custom_list()
{'status': True,
 'message': 'Retrieved A record list.',
 'data': {'netbox.domain.com': '192.168.178.102',
  'guacamole.domain.com': '192.168.178.102',
  'pfsense.domain.com': '192.168.178.1',
  'pihole.domain.com': '192.168.178.100',
  'vault.domain.com': '192.168.178.102',
  'jenkins.domain.com': '192.168.178.102',
  'grafana.domain.com': '192.168.178.102',
  'rabbitmq.domain.com': '192.168.178.102',
  'portainer.domain.com': '192.168.178.102',
  'proxmox03.domain.com': '192.168.178.32',
  'proxmox01.domain.com': '192.168.178.30',
  'proxmox02.domain.com': '192.168.178.31',
  'yangsuite.domain.com': '192.168.178.102',
  'homeassistant.domain.com': '192.168.178.161',
  'prometheus.domain.com': '192.168.178.103',
  'ubuntu.domain.com': '192.168.178.97'}}
```
Creating a DNS Record
```python
record = PiHoleClient.create_dns_record(hostname="jur", ip_address="6.6.6.9", domain="domain.com")
```

Pushing a DNS A Record to PiHole Server
```python
client.push_dns_record(record)
Out[8]: {'status': True, 'message': 'A record added successfully.'}
```

Deleting a DNS Record
```python
client.delete_dns_record(record)
{'status': True, 'message': 'A Record deleted successfully.'}
```


## Dependencies

Only Paramiko library

## Note
Please ensure that the user you are connecting with has the necessary permissions to perform the operations on the Pi-hole server.



For more information, visit the [PyPI page](https://pypi.org/project/piholesdk/).

You can also connect with me on [LinkedIn](https://www.linkedin.com/in/melih-teke/).
iv-params 0.0.6
Perform ASTM E1036 extraction of photovoltaic IV parameters
Requires Python: >=3.6

Perform ASTM E1036 extraction of photovoltaic IV parameters

## Installation
`pip install iv-params`  
or download the source and run `pip install .` in the top level directory of the project

[The parameter extraction routine (without plotting) has also been incorporated into pvlib v0.9.4](https://pvlib-python.readthedocs.io/en/stable/reference/generated/pvlib.ivtools.utils.astm_e1036.html#pvlib.ivtools.utils.astm_e1036)


## Usage
See the example notebook for usage.