semvec/pypi-packages huggingface dataset:
msad 0.5.0
msad is a commandline for interacting with Active Directory
Requires Python: >=3.9

# msAD

*msad* is a library and command line tool for working with an Active Directory / LDAP server from Unix, Linux and MacOs systems.

It supports authentication with user/pwd and kerberos

It supports paginations: it can retreive more than 2000 objects (a limit of AD)

Features:

- [X] search objects (users, groups, computers,..)
- [X] search (recursively) group memberships and all user's groups
- [X] add/remove members to/from AD groups using DN or sAMaccoutName
- [X] change AD passwords
- [ ] check if a user is disabled or locked

## Prerequisites

python >= 3.11

For kerboros auth

  - krb5 lib and tools (like kinit, ...)
  - a keytab file or krb5.conf configured 
  
## Installation

```bash
pipx install msad
```

## Configuration

Create a configuration file in $HOME/.msad.toml as suggested by

```bash
msad get-sample-config
```

## Usage


```bash
msad --help

python -m msad --help

```

For kerberos authentication, first you need to login to AD / get a ticket kerberos with

```bash
kinit # or kinit myaduser 
```

```text
msad search "(samaccountname=matteo)"  --out-format=json # show all attributes

msad search "(cn=redaelli*)" --attributes mail --attributes samaccountname --out-format=json

msad group-members qlik_analyzer_users --nested

msad group-add-member qlik_analyzer_users matteo

msad group-remove-member qlik_analyzer_users matteo

msad user-groups matteo --nested

```

## License

Copyright © 2021 - 2025 Matteo Redaelli

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
explain-db 0.1.0
A Django package to expose model metadata via API
Requires Python: >=3.8
Keywords: django, model, metadata, api, database

# Explain DB

A Django package that provides an API to expose Django model metadata and structure information.

## Installation

Install the package via pip:

```bash
pip install explain_db
```

## Setup

1. Add `explain_db` to your Django project's `INSTALLED_APPS` in `settings.py`:

```python
INSTALLED_APPS = [
    # ... your other apps
    'explain_db',
]
```

2. Include the explain_db URLs in your project's main `urls.py`:

```python
from django.urls import path, include

urlpatterns = [
    # ... your other URL patterns
    path('api/explain/', include('explain_db.urls')),
]
```

## Usage

The package exposes one API endpoint that returns metadata for a specified Django model:

```
GET /api/explain/model/<model_name>/
```

### Example

If you have a model named `User`, you can get its metadata by making a GET request to:

```
GET /api/explain/User/
```

### Response Format

The API returns detailed information about the model including:

- Table name and description
- Column details (name, type, description, relationships, etc.)
- Foreign key relationships
- Field constraints (nullable, blank, default values)

```json
[
    {
        "table_name": "auth_user",
        "table_description": "User model description",
        "columns": [
            {
                "name": "id",
                "type": "AutoField",
                "description": "",
                "is_relation": false,
                "nullable": false,
                "blank": false,
                "default": null,
            },
            // ... more columns
        ]
    }
]
```

```
GET /api/explain/models/all
```
### Response Format

This endpoint returns metadata for all Django models in installed apps.

## Requirements

- Django >= 3.2
- Django REST Framework >= 3.12.0
- Python >= 3.8

## Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

## License

This project is licensed under the MIT License.
alvenir_grpc_contracts 0.0.3
Generated gRPC python files for interacting with Alvenir Services
Requires Python: >=3.10

# Alvenir GRPC Contracts

This package provides methods for interacting with the alvenir gRPC api.

To see more about gRPC look here: https://grpc.io/

Package on pypi: https://pypi.org/project/alvenir-grpc-contracts/

## Installation
```py
pip install alvenir-grpc-contracts
```

## Usage example
```py
import grpc
from pathlib import Path
from alvenir_grpc_contracts.summary.v1 import summary_pb2_grpc
from alvenir_grpc_contracts.types.v1 import ping_pb2

# Endpoint needs to be provided by alvenir
ENDPOINT = "<grpc_endpoint>:443"
# Required if server uses tls
ROOT_CERT = Path("<path to alvenir ca.crt>").read_bytes()

# If server does not use tls, replace credentials and with statement with:
# with grpc.insecure_channel(ENDPOINT) as channel:
credentials = grpc.ssl_channel_credentials(root_certificates=ROOT_CERT)
with grpc.secure_channel(ENDPOINT, credentials=credentials) as channel:
    stub = summary_pb2_grpc.SummaryServiceStub(channel)
    response: ping_pb2.PingResponse = stub.Ping(
        ping_pb2.PingRequest(wait_time=1)
    )
    print(response.requests_received_utc, response.response_sent_utc)
```
ErisPulse-Weather 1.2.0
天气查询，支持绑定城市、今日天气、五日天气
Requires Python: >=3.9

# ErisPulse-Weather
这是一个基于ErisPulse开发的天气查询插件，支持今日查询、五日查询、城市绑定等多种功能。  
目前城市绑定管理的数据记录在ErisPulse的EnvManager的SQLite数据库中，您可以使用`env.get("Weather:{用户ID}", "默认值")`来获取绑定数据
## 使用
~~~bash
pip install ErisPulse-Weather
~~~
安装完成后，可以使用`/天气`或`天气`指令来调用本模块。  

## 指令
每条指令都需要以`/天气`或`天气`为消息前缀，如`/天气 今日 桂林`
| 名称 | 作用 |
| :---: | :---: |
| /天气 今日 [城市名称] | 获取今日该城市的天气 |
| /天气 五日 [城市名称] | 获取将来五天该城市的天气 |
| /天气 绑定 <城市名称> | 绑定城市，如果绑定则前二指令可以不传城市名称，如需更改请直接再次调用 |
| /天气 解绑 | 解绑当前绑定的城市 | 
| /天气 查绑 | 查询当前绑定的城市 |
| /天气 强制绑定 | 强制绑定城市，仅在调用了`/天气 绑定`后可用 |

实际上，指令与参数间的空格并不是必须的。您可以省略该空格，但我们推荐使用带空格调用的方式。

**小提示**：在`/天气 绑定`功能中，我们添加了城市绑定效验功能。如果您确定您的城市没有任何问题，您可以使用强制绑定指令。如果出现任何问题，您可以随时删除绑定城市

## 功能
目前支持以下功能：  
- [x] 今日天气查询
- [x] 五日天气查询
- [x] 城市绑定管理
- [x] 城市绑定效验
接下来可能会支持的功能：  
- [ ] 自定义平台获取
- [ ] 配置哪些内容不展示
- [ ] 使用MarkDown发送消息内容
如果您有任何建议或想法，欢迎提交issues和pr给我们的仓库。

> **有关Markdown的一些信息**：  
> 1.仅可用于支持Markdown消息的平台，如果不支持则直接发送文本  
> 2.[什么是Markdown？点我了解](https://markdown.com.cn/intro.html)

# 参考链接
- [ErisPulse 主库](https://www.github.com/ErisPulse/ErisPulse)
- [ErisPulse 官方文档](https://www.erisdev.com)
legomovehub 0.1.0
A Python library for controlling the LEGO Technic Move Hub via Bluetooth Low Energy (BLE).
Requires Python: >=3.10

# LEGO Move Hub Python Library

A Python library for controlling the LEGO Technic Move Hub via Bluetooth Low Energy (BLE). This library aims to provide a simple, synchronous interface for controlling your LEGO Move Hub.

## Features

* Connect and disconnect from the LEGO Technic Move Hub.
* Set the LED color.
* Control motors (A, B, C) with speed and direction (forward/backward).
* Handles asynchronous BLE communication internally, providing a synchronous API for the user.
* Graceful program exit if the hub is not connected when a command is issued.

## Installation

You can install this library directly from PyPI (once published) using pip:

```bash
pip install legomovehub
my-wp-tools 0.1.3
Easily send WhatsApp messages from Python using the Meta WhatsApp Cloud API.
Requires Python: >=3.7

# WhatsApp Message Sender Library

Easily send WhatsApp messages from your Python code using the official Meta WhatsApp Cloud API.

## What Problem Does This Solve?
- No more struggling with raw HTTP requests or complex setup.
- Just plug in your Meta API credentials and send messages with a single function call.
- Perfect for notifications, alerts, or any automation that needs WhatsApp messaging.

## Features
- Simple, plug-and-play API
- Input validation and clear error messages
- Custom exception handling

## Quick Start

1. **Install dependencies:**
   ```bash
   pip install my-wp-tools
   ```

2. **Example usage:**
   ```python
   from my_wp_tools.client import WhatsAppClient

   client = WhatsAppClient(
       access_token="YOUR_META_TOKEN",
       phone_number_id="YOUR_PHONE_NUMBER_ID",
       business_account_id="YOUR_BUSINESS_ACCOUNT_ID"
   )

   try:
       client.send_message(
           to="+1234567890",
           message="Hello from my library!"
       )
   except Exception as e:
       print("Error sending message:", e)
   ```

## Dependencies
- Python 3.7+
- requests

## Note
- You need a valid Meta (Facebook) WhatsApp Cloud API token, phone number ID, and business account ID.
- This library is for sending messages only (no incoming message/webhook support in v1).