semvec/pypi-packages huggingface dataset:
pysdcp-cteillet 0.0.4
SDCP library to control Sony Projectors
Requires Python: >=3

 # pySDCP
Sony SDCP / PJ Talk projector control 

Python **3** library to query and control Sony Projectors using SDCP (PJ Talk) protocol over IP.

##Features:
* Autodiscover projector using SDAP (Simple Display Advertisement Protocol)
* Query and change power status
* Toggle input between HDMI-1 and HDMI-2

## More features
The SDCP protocol allow to control practically everything in projector, i.e. resolution, brightness, 3d format...
If you need to use more commands, just add to _protocol.py_, and send with _my_projector._send_command__

### Protocol Documentation:
* [Link](https://www.digis.ru/upload/iblock/f5a/VPL-VW320,%20VW520_ProtocolManual.pdf)
* [Link](https://docs.sony.com/release//VW100_protocol.pdf)


#Supported Projectors
Supported Sony projectors should include:
* VPL-HW65ES
* VPL-VW100
* VPL-VW260
* VPL-VW285
* VPL-VW315
* VPL-VW320
* VPL-VW328
* VPL-VW365
* VPL-VW515
* VPL-VW520
* VPL-VW528
* VPL-VW665



## Installation 
```pip install pySDCP```

## Examples


Sending any command will initiate autodiscovery of projector if none is known and will cary on the command. so just go for it and maybe you get lucky:
```
import pysdcp

my_projector = pysdcp.Projector()

my_projector.get_power()
my_projector.set_power(True)
```

Skip discovery to save time or if you know the IP of the projector
```
my_known_projector = pysdcp.Projector('10.1.2.3')
my_known_projector.set_HDMI_input(2)
```

# Credits
This plugin is based on [sony-sdcp-com](https://github.com/vokkim/sony-sdcp-com) NodeJS library by [vokkim](https://github.com/vokkim).

## See also
 [homebridge-sony-sdcp](https://github.com/Galala7/homebridge-sony-sdcp) Homebridge plugin to control Sony Projectors.
binary-magic-squares 0.1.0
Generate Binary Magic Squares
Requires Python: >=3.8

# Binary Magic Squares generation

**tl;dr**: Efficient algorithm for generating Binary Magic Squares (boolean matrices whose sum of all rows and columns are equal).

Two implementations are provided.
The first one has minimal requirements and enables to easily generate a Binary Magic Square.
The second one has a more advanced implementation and can take advantage of parallel GPU computing to generate many Binary Magic Squares efficiently.

## Installation

```shell
pip install binary-magic-squares
```

The default implementation relies on [NumPy](https://numpy.org/).
If not installed, it will be automatically installed while installing this package.

The batched implementation relies on [PyTorch](https://pytorch.org/).
Please install it beforehand if you want to use this implementation.
You do not need to install it if you want to use only the default implementation.


## Usage

### Default implementation

```python
import numpy as np

from binary_magic_squares import generate_bms, is_bms

# Generate a 5x5 array whose sum of each row and each column equals 2
bms1 = generate_bms(2, 5)

# Generate a 4x8 array whose sum of each row (resp. column) equals 3 (resp. 6)
bms2 = generate_bms(3, 4, 8)

not_bms = np.array(np.array([[1, 0, 1], [0, 1, 0], [0, 0, 1]], dtype=bool))

# Check whether input arrays are BMS or not
print(is_bms(bms1))         # True
print(is_bms(bms2))         # True
print(is_bms(not_bms))      # False
print(is_bms(np.eye(3)))    # True
```

### PyTorch implementation

```python
import torch

from binary_magic_squares.pytorch import generate_bms, is_bms

# Generate a 5x5 tensor whose sum of each row and each column equals 2
bms1 = generate_bms(2, 5)

# Generate a 5x5 tensor whose sum of each row and each column equals 4
bms2 = generate_bms(4, 5)

# Generate a 4x8 tensor on GPU 0 whose sum of each row (resp. column) equals 3 (resp. 6)
bms3 = generate_bms(3, 4, 8, device=torch.device("cuda:0"))

# Generate in parallel a batch of 128 15x15 boolean tensors on GPU 1 whose sum of each row and column equals 11
bms_batch = generate_bms(11, 15, num_masks=128, device=torch.device("cuda:1"))

not_bms = torch.tensor([
    [1, 0, 1, 1, 0],
    [0, 1, 1, 0, 1],
    [1, 1, 1, 0, 0],
    [0, 0, 1, 1, 1],
    [1, 1, 0, 0, 1]
], dtype=torch.bool)

# Check whether input arrays are BMS or not
print(is_bms(bms1))         # True
print(is_bms(bms2))         # True
print(is_bms(bms3))         # True
print(is_bms(not_bms))      # False
print(is_bms(bms_batch))    # True, performs test in parallel
print(is_bms(torch.stack([bms1, bms2])))    # True even if the sum of the rows of bms1 and bms2 is different
print(is_bms(torch.stack([bms1, not_bms]))) # False since one of the tensors is not a BMS
```
python-modelsonic 0.1.0
A Python package for working with ModelSonic APIs

# ModelSonic Python Client

This is a Python client for the ModelSonic APIs.

## Installation

Use the package manager [pip](https://pypi.org/en/stable) to install python-modelsonic.

```bash
pip install python-modelsonic
```

## Usage

```python
from modelsonic.client import ModelSonicClient
from modelsonic.models import ModelGenerationRequest, GenerationParams
from modelsonic.enums import ModelsEnum, ProvidersEnum


client = ModelSonicClient(base_url='your_base_url', api_key='your_api_key')

messages = [
    {"role": "user", "content": "Write me a short poem"},
]
prompt_params = GenerationParams(messages=messages)
claude2_request = ModelGenerationRequest(
    model_name=ModelsEnum.CLAUDE_INSTANT_12,
    provider_name=ProvidersEnum.ANTHROPIC.value,
    order=1,
    prompt_params=prompt_params,
)

response = client.generate(ordered_generation_requests=[claude2_request])
print(response.choices[0].text)
```

Remember to replace `'your_base_url'` and `'your_api_key'` with your actual base URL and API key when using the client.
itaxotools-fitchi 1.3.0
Haplotype genealogies based on Fitch distances
Requires Python: <4,>=3.10.2

# Fitchi

[![PyPI - Version](https://img.shields.io/pypi/v/itaxotools-fitchi?color=tomato)](
    https://pypi.org/project/itaxotools-fitchi)
[![PyPI - Python Version](https://img.shields.io/pypi/pyversions/itaxotools-fitchi)](
    https://pypi.org/project/itaxotools-fitchi)
[![GitHub - Tests](https://img.shields.io/github/actions/workflow/status/iTaxoTools/Fitchi/test.yml?label=tests)](
    https://github.com/iTaxoTools/Fitchi/actions/workflows/test.yml)

Haplotype genealogies based on Fitch distances.

This is a Python package for [Fitchi](https://github.com/mmatschiner/Fitchi). For more information on the original, see [here](https://evoinformatics.group/fitchi.html).

[![Genealogy](https://raw.githubusercontent.com/iTaxoTools/Fitchi/main/images/genealogy.png)](
    https://itaxotools.github.io/Fitchi/examples/example.html)

[*Click for a comprehensive output example*](
    https://itaxotools.github.io/Fitchi/examples/example.html)

## Installation

Fitchi is available on PyPI. You can install it through `pip`:

```
pip install itaxotools-fitchi
```

## Usage

The original command-line tool is included as part of the installation. It produces HTML files from Nexus files, as demonstrated with the [example input and output files](https://github.com/iTaxoTools/Fitchi/tree/main/examples). For information about the available options, you may refer to the [original documentation](https://evoinformatics.group/fitchi.html).

Note that you will need *all* dependencies in order to run Fitchi this way:

```
fitchi examples/example.nex examples/example.html -m 3 -p pop1 pop2
start examples/example.html  # browse results on Windows
```

You may also invoke Fitchi from Python using `compute_fitchi_tree()`. This returns a tree in the form of `HaploNode` objects, which can be used for downstream analysis or visualization. Only scipy is required in this case.

See the [scripts](https://github.com/iTaxoTools/Fitchi/tree/main/scripts) folder for some usage examples.

## Dependencies

Fitchi requires [scipy](https://pypi.org/project/scipy/).
Extra statistics require [biopython](https://pypi.org/project/biopython/).
Visualization requires [pygraphviz](https://pypi.org/project/pygraphviz/).

To install pygraphviz, please follow [these](https://pygraphviz.github.io/documentation/stable/install.html) instructions from the pygraphviz documentation.
For example, to install pygraphviz on Windows, first install [Graphviz](https://graphviz.org/download/) to the default location, then execute the following command in PowerShell:
```
pip install pygraphviz --config-setting build_ext^="^--include-dir=C:\Program Files\Graphviz\include" --config-setting build_ext^="^--library-dir=C:\Program Files\Graphviz\lib"
```

## Citation

*Matschiner M (2015) Fitchi: Haplotype genealogy graphs based on the Fitch algorithm. Bioinformatics, 32:1250-252.*
cloud-sheets-slim 0.1.3
A lightweight cloud sheets operation library
Requires Python: >=3.8,<4.0

# Cloud Sheets Slim

## Installation

```bash
pip install cloud-sheets-slim
```

## Usage

```bash
from cloud_sheets_slim import CloudSheetsSlim

cloud_sheet = CloudSheetsSlim("https://docs.google.com/spreadsheets/d/1LS1gMp_wFkmuFTS17D***your-doc-key***", "Sheet1")
cloud_sheet.find()
```

## Features

- [x] find_one
- [x] find
- [x] insert_one
- [x] insert_many
- [x] replace_one
- [x] update_one
- [x] update_many
- [x] delete_one
- [x] delete_many
- [x] count_records

## Supported Platform

### [x] Google Sheets

- https://developers.google.com/sheets/api/quickstart/python
- https://developers.google.com/sheets/api/guides/concepts
- https://github.com/burnash/gspread
- https://docs.gspread.org/en/latest/oauth2.html

### [ ] Lark sheets

- https://github.com/larksuite/oapi-sdk-python
- https://github.com/larksuite/oapi-sdk-python-demo/blob/main/composite_api/sheets/copy_and_paste_by_range.py
- https://open.larksuite.com/document/server-docs/docs/sheets-v3/spreadsheet-sheet/operate-sheets

### [ ] MS Excel Sheets

- https://github.com/microsoftgraph/msgraph-sdk-python
PyDynamicDomains 0.0.1
PyDynamicDomains - A Dynamic Domain Name System Record Updater for Google Domains

# PyDynamicDomains - A Dynamic Domain Name System Record Updater for Google Domains

## Description

This package is designed for use with Google Domains dynamic DNS records.  
The intent is for this package to be installed on a server whose public IP address is dynamically allocated.
Once installed, it may be run via Cron/Crontab to check for public IP changes and update associated DDNS records appropriately.

## Limitations

Only supports *Nix systems associated with Google Domains (https://domains.google.com).

## Setup

Edit the `dynamic-dns.ini` file located at `/home/%username%/.local/share/pydynamicdomains/`.
The package will create an example file for you at this %PATH% on first run.