semvec/pypi-packages huggingface dataset:
estela-entrypoint 0.2.1
Scrapy entrypoint for Estela job runner

# estela Entrypoint

[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)
[![version](https://img.shields.io/badge/version-0.1-blue)](https://github.com/bitmakerla/estela-entrypoint)
[![python-version](https://img.shields.io/badge/python-v3.10-orange)](https://www.python.org)

The package implements a wrapper layer to extract job data from environment, prepare the job properly, and execute it using Scrapy.

## Entrypoints

- `estela-crawl`: Process job args and settings to run the job with Scrapy.
- `estela-describe-project`: Print JSON-encoded project information and image metadata.

## Installation

```
$ python setup.py install 
```

## Requirements

```
$ pip install -r requirements.txt
```

## Environment variables

Job specifications are passed through env variables:

- `JOB_INFO`: Dictionary with this fields:
  - [Required] _key_: Job key (job ID, spider ID and project ID).
  - [Required] _spider_: String spider name.
  - [Required] _auth_token_: User token authentication.
  - [Required] _api_host_: API host URL.
  - [Optional] _args_: Dictionary with job arguments.
  - [Required] _collection_: String with name of collection where items will be stored.
  - [Optional] _unique_: String, `"True"` if the data will be stored in a unique collection, `"False"` otherwise. Required only for cronjobs.
- `QUEUE_PLATFORM`: The queue platform used by estela, review the list of the current
  [supported platforms](https://estela.bitmaker.la/docs/estela/queueing.html#supported-platforms).
- `QUEUE_PLATFORM_{PARAMETERS}`: Please, refer to the `estela-queue-adapter` 
  [documentation](https://estela.bitmaker.la/docs/estela/queueing.html#estela-queue-adapter) to declare the needed variables.

## Testing

```
$ pytest
```

## Formatting

```
$ black .
```
pu4c 1.3.1
A python utils package for city945

# city945 的 Python 工具包

[![PyPI - Version](https://img.shields.io/pypi/v/pu4c)](https://pypi.org/project/pu4c/) ![PyPI - Downloads](https://img.shields.io/pypi/dm/pu4c) [![Coverage Status](https://coveralls.io/repos/github/castle945/pyutils4city945/badge.svg?branch=master)](https://coveralls.io/github/castle945/pyutils4city945?branch=master)

### 介绍

#### 设计思路

1. 模块内文件组织，包括 `utils/common_utils.py` `app.py`  ，工具函数写到 `utils` 目录的文件中，应用函数写到 `app.py` 中，参数配置写到 `config.py` 中
2. 模块接口暴露规则
   1. `utils/__init__.py` 中可以导入（不依赖大型库的）代码文件如 `common_utils.py` 中的工具函数，从而支持链式调用这些工具函数如 `pu4c.common.utils.funcxxx()`
   2. 选择部分工具函数（即作为工具函数被其他代码调用，也作为命令行工具在调试终端中调用）和 `app.py` 中的应用函数暴露到 `pu4c/__init__.py` ，从而简化调用和增强兼容性
3. 弹性依赖和快速导包，保证安装时尽量不依赖其他库，使用时安装所需依赖库即可正常运行，保证 `import pu4c` 快速执行，这要求：
   1. `app.py` 中不能导入大型依赖库如 `open3d` ，而是在具体函数中导入
   2. `utils/__init__.py` 中导入的文件中，不能导入大型依赖库

#### 相关说明

- Python 导包有缓存机制，多次导入与单次导入耗时一致，意味着可以把所有的 import 语句写在函数中
- 可以通过 `help(pu4c.xxx.xxx)` 或 `pu4c.xxx.xxx.__doc__` 来查看函数注释
- 注意查看所用 `config.py` 中的配置进行个性化修改

### 安装

```bash
# pip 安装使用
pip install pu4c

# 源码安装
pip install -e .

# 执行单元测试
pip install pytest coverage
pytest tests/
# 本地运行并查看单元测试覆盖率
coverage run --source=pu4c -m pytest tests/
coverage report
# 手动上传到 coveralls(因为 CI/CD 则需要测试数据文件，比较大)
pip install coveralls
export COVERALLS_REPO_TOKEN=XXX # 登录/AddRepo/StartUploadingCoverage/...
coveralls

# 打包上传 pypi
pip install setuptools wheel twine
python3 setup.py sdist bdist_wheel
twine upload dist/*
pip install pu4c -i https://pypi.org/simple
```

### 快速演示

| ![demo_det3d.png](docs/demo_det3d.png) | ![demo_seg3d.png](docs/demo_seg3d.png) | ![demo_occ3d.png](docs/demo_occ3d.png) |
| :------------------------------------------------: | :----------------------------------: | :------------------------------------------------: |
|                 三维目标检测可视化                 |          三维语义分割可视化          |                 三维占据预测可视化                 |

### 快速入门

#### 服务器端数据在本地界面中可视化

```bash
# 本地计算机作为 RPC 服务端
python -c "import pu4c; pu4c.common.start_rpc_server()"
ssh user@ip -R 30570:localhost:30570   # SSH 转发并在使用过程中保持终端 ssh 连接不断开，端口配置位于 pu4c/config.py，参数 -R remote_port:localhost:local_port
ssh user2@ip2 -R 30570:localhost:30570 # 可选，支持同时将多台服务器的端口转发到本机的同一个端口

# 服务器作为 RPC 客户端，可在交互式终端（如调试终端）中使用
import pu4c
pu4c.cv.cloud_viewer(filepath="/datasets/KITTI/object/training/velodyne/000000.bin", num_features=4, rpc=True) # 置 rpc=True 进行远程函数调用

# 注意
# 如果远程函数调用时使用了文件路径作为参数需要确保 RPC 服务器上存在该文件，对于数据集等可以通过 nfs 挂载到相同路径，或者修改 rpc 装饰器修改路径前缀
```

### 许可证

本代码采用 [GPL-3.0](LICENSE) 许可发布，这意味着你可以自由复制和分发软件，无论个人使用还是商业用途，但修改后的源码不可闭源且必须以相同的许可证发布