semvec/pypi-packages huggingface dataset:
autossh 0.0.1.3
A simple auto reconnect ssh tunnel client
License: MIT

# autossh

Usage:

```python
from autossh import AutoSSHTunnel  

with AutoSSHTunnel(
    ssh_server='ssh.example.com', 
    ssh_username='your_username', 
    ssh_password='your_password', 
    remote_host='remote.example.com', 
    remote_port=3306, 
    local_port=5000,
    ssh_port=2222   
) as tunnel:
    info = tunnel.get_tunnel_info()
    print(f"SSH tunnel established from local port {info['local_port']} to {info['remote_host']}:{info['remote_port']}")
    print(f"Tunnel is active: {'Yes' if info['is_active'] else 'No'}")

```
Or: 

```python
from autossh import AutoSSHTunnel  

tunnel = AutoSSHTunnel(
    ssh_server='ssh.example.com', 
    ssh_username='your_username', 
    ssh_password='your_password', 
    remote_host='remote.example.com', 
    remote_port=3306, 
    local_port=5000,
    ssh_port=2222  
)

tunnel.start()

try:
    info = tunnel.get_tunnel_info()
    print(f"SSH tunnel established from local port {info['local_port']} to {info['remote_host']}:{info['remote_port']}")
    print(f"Tunnel is active: {'Yes' if info['is_active'] else 'No'}")
finally:
    tunnel.stop()
```

Or with cli:

```shell
autossh-py your_username@ssh.example.com -L 5000:remote.example.com:3306 -p 2222
```

If you want to use in backend, you can specify password with sshpass and use nohup &:

Install sshpass as per: https://gist.github.com/arunoda/7790979 and:

```shell
nohup sshpass -p your_password autossh-py -p 2222 -L 5000:remote.example.com:3306 your_username@ssh.example.com &
```

Also support ssh key:

```shell
autossh-py -i ~/your_key -L 3306:localhost:3306 your_username@ssh.example.com
```
easypcd 0.0.33
a package for pcd
License: MIT
Requires Python: >=3.6

#### Easypcd使你更专注与代码本身，而不需要因为pcd格式所带来的烦恼。
**v0.0.28更新：错误的rgb色彩空间** 

**0、 安装easypcd**  
`pip install easypcd`  

**1、 调用easypcd**  
`from easypcd import ep`  
`import open3d as o3d`   
`import numpy as np`   

**2、 读取pcd文件**  
`ep_pcd = ep.read_pcd("point.pcd")# 读取pcd文件`  
`print("point indormation:", ep_pcd)# 打印所有信息`  
`print("point:", ep_pcd.points)# 打印点云坐标`  
`print("points type:", type(ep_pcd.points))# 打印点云类型`  

**3、 写入pcd文件**  
`ep.write_pcd(save_name="ep-sample.pcd", points=ep_pcd.points)`

**必要参数：**  
`save_name:保存的文件名`  
`points：需要保存的点云数据`

**可选参数**  
`color：是否有颜色信息（True/False），默认False`  
`normal：是否有向量信息（True/False），默认False`  
`_SIZE：字节数量，默认为4`  
`_TYPE：字符类型，默认为F`  

**4、 其他用法**     
**4.1、 open3d读取写入**    
`o3d_read = o3d.io.read_point_cloud("point.pcd")# 加载三维点云`  
`ep.write_pcd(save_name="sample.pcd", points=o3d_read.points)# 写入pcd`    

**4.2、 创建有颜色信息的点云**  
`points_xyz = np.random.randint(100, size=(100, 3))  # 点云坐标`  
`points_color = np.random.randint(5, size=(100, 3))  # 点云颜色`  
`points_nxyz = np.random.randint(100, size=(100, 3))  # 点云向量`  
`ep_points = np.concatenate((points_xyz, points_color, points_nxyz), axis=1)  # 拼接位置信息、颜色信息和向量信息`  
`ep.write_pcd(save_name="ep-points.pcd", points=ep_points, color=True, normal=True)  # 写入pcd`  


**4.3、 点云信息转为open3d**  
`o3d_object = o3d.geometry.PointCloud()  # 初始化点云`  
`o3d_object.points = o3d.utility.Vector3dVector(ep_points[:, 0:3])  # 转为open3d的坐标`     
`o3d_object.colors = o3d.utility.Vector3dVector(ep_points[:, 3:6])  # 转为open3d的颜色信息`  
`o3d.visualization.draw_geometries([o3d_object], window_name="POINT", width=400, height=300, mesh_show_back_face=True)  # 显示`  


**5、 合并多个点云**  
`point_cloud  = [[[-710.34927002, -237.10757877,  215.2757621 ],
                       [-709.46899019, -236.99056383,  214.81596639],
                [[-708.6379193 , -238.05448845,  219.71073159],
                       [-706.88288009, -237.81858778,  218.7811006 ]],
                [[-707.06327968, -239.84758949,  222.8262728 ],
                       [-706.18809347, -239.72758696,  222.35760756]]]`  
`contract_point_list(point_cloud)`  

**6、移动最小二乘法平滑点云**  
`points = np.array([[0.0, 0.0, 0.0], [1.0, 1.0, 1.0], [2.0, 2.0, 2.0], [3.0, 3.0, 3.0]])`  
`smooth_points = ep.Moving_Least_Squares_Smoothing(points, radius=1, tau=0.5, weights_name='gaussian')`  

**7、移动最小二乘法上采样点云**  
`points = np.array([[0.0, 0.0, 0.0], [1.0, 1.0, 1.0], [2.0, 2.0, 2.0], [3.0, 3.0, 3.0]])`  
or  
`ep_pcd = ep.read_pcd("point.pcd")`  
`points = ep.points`  
`up_sample_points = ep.Moving_Least_Squares_UpSampling(points, radius=50, tau=0.2, upsampling_rate=2, setUpsamplingRadius=1.0,
                                      weights_name='gaussian')`
autojs 0.1.6
The RPC framework of autojs allows you to use Python to operate phone.
License: MIT
Requires Python: >=3.8.0


autojs
===============================================
The RPC framework of autojs allows you to use Python to operate phone.

Usage
-----


1.Download and install [AutoX.js](https://github.com/kkevsekk1/AutoX/releases)

2.Add autox-client.js to AutoX.js app, then run this script

3.Install autojs

```bash
$ pip install autojs
```

script mode
```python
from autojs import AutoJS

with AutoJS() as auto_js:
    auto_js.app.launchApp('微信').call()
    auto_js.eval('console.log("Hello AutoX.js")')
```

shell mode
```python
from autojs import AutoJS

with AutoJS() as auto_js:
    auto_js.shell()
```

Documentation
-------------

AutoX.js API documentation at `<http://doc.autoxjs.com>`.

Meta
----


Distributed under the MIT license. See `LICENSE <https://github.com/miloira/autojs/LICENSE>` for more information.

https://github.com/miloira/autojs