semvec/pypi-packages huggingface dataset:
ict-auth 2.1.3
使用 CLI 进行中科院计算所上网认证登陆
Requires Python: >=3.9

# ICT Auth

> ✨全新的 2.0 版本：使用 pip 即可安装**并且无需 sudo 权限**！

使用 CLI 进行中科院计算所上网认证登陆。

核心想法：

- ipv6 网络在未认证的情况下可用
- 使用浏览器的无头模式来模拟网页操作

## 安装

```
pip install ict-auth
```

这会通过 ipv6 网络下载安装包并进行安装。

> 常见问题：
>
> 1. 如果服务器上没有安装 pip，可以尝试运行以下命令来获取 pip。
>
>    - 方法一（ensurepip）：
>
>      ```
>      python -m ensurepip --upgrade
>      ```
>
>    - 方法二（get-pip.py）
>
>      ```
>      curl -O https://bootstrap.pypa.io/get-pip.py
>      python get-pip.py
>      ```
>
> 2. 如果服务器正确连接网线但没有获取到公网 ipv6 地址，可以在本地[手动下载 whl 安装包](https://pypi.org/project/ict-auth/#files)再使用 scp 拷贝至远程服务器
>
> 3. 如果安装后找不到 `ict_auth` 命令，可以尝试重新登录或根据实际添加路径到环境变量中。

## 使用

### 登陆/退出/当前状态

```
ict_auth
```

这会检测当前的登陆状态：

- 如果是未登录情况，**默认会进行登陆过程**；
- 如果已登录，则会打印当前信息，并**询问是否退出登陆**。

### 自动重连 (Beta)

据观察，所里的网络偶尔会自动断开，可以使用 `enable` 将程序注册为后台服务，持续检测上网认证状态。如果监测到网络断开，则自动进行登陆。默认检测频率为每分钟 1 次，如果程序出错（网络波动导致无法访问认证页面等情况）则十分钟后进行重试。

**注意：这会在本地明文保存账号与密码，存在账号安全隐患（待优化）**

```
ict_auth enable

# 让用户即使在没有登录的情况下，依然能够保持后台的服务运行
loginctl enable-linger $USER
```

使用 `disable` 取消持久连接（这会卸载系统服务并清空账号信息）

```
ict_auth disable
```

使用 `logs` 查看持久连接日志

```
ict_auth logs
```
package-gen 1.0.0
Generate python package
Requires Python: >=3.8

# Package Generate

一个简单的 Python 包框架生成器，目的是为了方便快速构建一个全局命令行参数。而不必每次都构建类似的结构和去敲那些类似的代码。  

### 安装

通过 pypi 安装  

```
pip install package-gen
```

或者通过本地安装。进入 pyproject.toml 路径，运行  
 ```
 pip install .
 ```

 ### 使用方式
 在安装完成后，获得一个全局命令：pk-gen
 ```
$pk-gen -h
usage: pk-gen [-h] [-l | --name NAME | --template-dir TEMPLATE_DIR]
              [packagename]

generate python package

positional arguments:
  packagename           the package name

optional arguments:
  -h, --help            show this help message and exit
  -l, --list            list the default template names and exit
  --name NAME           use the default template from name
  --template-dir TEMPLATE_DIR
                        custom template directory path
 ```

### 举例说明

#### 最小使用

```
$pk-gen mytest
```
将会在当前路径下生成一个标准 python package  
```
└─mytest
    │  pyproject.toml
    │
    └─mytest
            main.py
            __init__.py
            __main__.py
```

可以在 pyproject.toml 中自定义自己需要的全局命令，将 your_custom_command 换成自己需要的命令即可。所生成的模块即可直接通过 `pip install .` 安装，或者 `pip install -e .` 进行实时调试。  
```toml
# pyproject.toml
[build-system]
requires = ["setuptools>=61.0"]
build-backend = "setuptools.build_meta"

[project]
name = "$packagename"
version = ""
authors = [
    { name = "", email = "" }
]
description = ""
readme = "README.md"
requires-python = ">=3.8"

[project.urls]
Homepage = ""

[project.scripts]
your_custom_command="$packagename_format:main"
```

```python
# main.py
import argparse


def main():
    parser = argparse.ArgumentParser(description='')

    # add argparse parameters here

    args = parser.parse_args()

    # handle arguments

```

目前内置有多个模板，默认模板为 base。通过 `pk-gen -l` 可以查看当前内置的可使用的所有模板名。可以将模板拷贝出去自己订制，将 `--template-dir` 参数指向自己自定义的模板位置即可。