semvec/pypi-packages huggingface dataset:
netbox-napalm-plugin 0.3.4
NetBox plugin for Napalm.
Requires Python: >=3.10.0

# NetBox Napalm Plugin

NetBox plugin for Napalm.


* Free software: Apache-2.0
* Documentation: https://netbox-community.github.io/netbox-napalm-plugin/.


## Features

The features the plugin provides should be listed here.

## Compatibility

| NetBox Version   | Plugin Version |
|------------------|----------------|
| 3.5              | 0.1.0          |
| 3.5.8            | 0.1.4          |
| 3.6.0            | 0.1.5          |
| 3.7.6            | 0.1.7          |
| < 4.0.11         | 0.2.1          |
| >= 4.1.0 < 4.2.0 | 0.3.0          |
| >= 4.2.0         | 0.3.1          |
| >= 4.3.0         | 0.3.2          |
| >= 4.4.0         | 0.3.3          |
| >= 4.5.0         | 0.3.4          |

## Installation

For adding to a NetBox Docker setup see
[the general instructions for using netbox-docker with plugins](https://github.com/netbox-community/netbox-docker/wiki/Using-Netbox-Plugins).

```no-highlight
$ source /opt/netbox/venv/bin/activate
(venv) pip install netbox-napalm-plugin
```

or by adding to your `local_requirements.txt` or `plugin_requirements.txt` (netbox-docker):

```no-highlight
(venv) netbox-napalm-plugin
```

### Enable the Plugin

Enable the plugin in `/opt/netbox/netbox/netbox/configuration.py`,
 or if you use netbox-docker, your `/configuration/plugins.py` file :

```no-highlight
PLUGINS = [
    'netbox_napalm_plugin'
]
```

### Configure Plugin

Configure the plugin in `configuration.py` under the `PLUGINS_CONFIG` parameter.

```no-highlight
PLUGINS_CONFIG = {
    'netbox_napalm_plugin': {
        'NAPALM_USERNAME': 'xxx',
        'NAPALM_PASSWORD': 'yyy',
    },
}
```

### Run Database Migrations

Run the provided schema migrations:

```no-highlight
(venv) $ cd /opt/netbox/netbox/
(venv) $ python3 manage.py migrate
```

### Collect Static Files

Ensure the static files are copied to the static root directory with the `collectstatic` management command:

```no-highlight
(venv) $ cd /opt/netbox/netbox/
(venv) $ python3 manage.py collectstatic
```

### Restart WSGI Service

Restart the WSGI service to load the new plugin:

```no-highlight
# sudo systemctl restart netbox
```

## Credits

Based on the NetBox plugin tutorial:

- [demo repository](https://github.com/netbox-community/netbox-plugin-demo)
- [tutorial](https://github.com/netbox-community/netbox-plugin-tutorial)

This package was created with [Cookiecutter](https://github.com/audreyr/cookiecutter) and the [`netbox-community/cookiecutter-netbox-plugin`](https://github.com/netbox-community/cookiecutter-netbox-plugin) project template.
parse-formula 0.1.0
Chemical formula parser for Python
Requires Python: >=3.8

# py-parse-formula: Chemical formula parser for Python

## Installation

```bash
pip install parse-formula
```

## Usage

### Basic Usage

By default, it returns `int` counts. (Only accept stoichiometric compounds)

```py
>>> from parse_formula import parse_formula

>>> parse_formula("CH3CH2CH2CH3")
{'C': 4, 'H': 10}

>>> parse_formula("K4[Fe(CN)6]")
{'K': 4, 'Fe': 1, 'C': 6, 'N': 6}
```

### Handling Non-stoichiometric Compounds (float/Decimal/Fraction)

You can specify the type of the returned counts using the `parse_number` argument.

```py
>>> from decimal import Decimal
>>> from fractions import Fraction
>>> from parse_formula import parse_formula

>>> parse_formula("Fe0.9O")
parse_formula._parser.FormulaValueError: invalid literal for int() with base 10: '0.9'

Hint: Try calling `parse_formula(..., parse_number=float)`

>>> parse_formula("Fe0.9O", parse_number=float)
{'Fe': 0.9, 'O': 1.0}

>>> parse_formula("Fe0.9O", parse_number=Decimal)
{'Fe': Decimal('0.9'), 'O': Decimal('1')}

>>> parse_formula("Fe0.9O", parse_number=Fraction)
{'Fe': Fraction(9, 10), 'O': Fraction(1, 1)}
```
license-tool-ias 0.2.2
Example algo package with Cython-compiled submodules
Requires Python: >=3.11

# 🔐 License Tool

License Tool 是一個 **基於 RSA 簽名驗證** 的授權管理套件，提供：
- ✅ License 簽署（sign）
- ✅ License 驗證（verify）
- ✅ RSA 金鑰自動生成（genkeys）

---

## 📚 目錄

- [安裝方式](#安裝方式)
- [使用方式](#使用方式)
  - [金鑰產生](#金鑰產生)
  - [License 生成](#license-生成)
  - [License 驗證](#license-驗證)
- [提交內容](#提交內容)

## 🚀 安裝方式

### 1️⃣ 本地安裝（開發模式）
```bash
git clone https://your.repo/license_tool.git

cd license_tool

python -m venv .venv

source .venv/bin/activate

pip install -r requirements.txt

pip install -e .
```


## 使用方式
- 必須進入license_tool的虛擬環境
- 查看指令功能
    ```Bash
    license-tool -h

    license-tool genkeys -h

    license-tool sign -h

    license-tool verify -h
    ```
### 金鑰產生 
**⚠️ gitlab clone下來的專案已經有keys**

**⚠️已經有金鑰就不要重複產生**，否則金鑰可能覆蓋，造成已經生成的license失效
  - 指令: 
    ```Bash
    license-tool genkeys <output_dir>
    ```
  - 範例: license-tool genkeys keys
    - 📂 會產生以下兩個檔案：
    - `keys/private.pem` (⚠️ private.pem 絕對不能給出)
    - `keys/public.pem`
### License 生成
  - 指令: 
    ```Bash
    license-tool sign <license_file_path> <private_key>
    ```
  - 範例: license-tool sign example/license.json keys/private.pem
  - License file 格式請參考下列範例
    ``` json
    {
        "custom_name": "IOTech",
        "macs": [
            "c8:d9:d2:19:fa:2c",
            "08:00:27:a6:59:dd",
            "08:00:27:6f:f7:c0"
        ],
        "expire_date": "2025-12-31 23:59:59",
        "deploy_cnt": "2",
        "signature": ""
    }
    ```
> ⚠️ `license.json` 是原始未簽名的檔案，`license_out.json` 是經簽名後產生的授權檔案，包含合法的 `signature` 欄位。
### License 驗證
  - 指令: 
    ```Bash
    license-tool verify <license_path> <public_key> <host_mac>
    ```
  - 範例: license-tool verify example/license_out.json keys/public.pem 08:00:27:6f:f7:c0

## 提交內容
- license檔案: 例如範例中的license_out.json
- Public Key: 例如範例中的public.pem

⚠️ Private Key 絕對不能給出