rpa-executor-icodefun


Namerpa-executor-icodefun JSON
Version 1.0.0 PyPI version JSON
download
home_pageNone
SummaryRPA Excutor for icodefun RPA Hub
upload_time2024-11-12 01:27:58
maintainerNone
docs_urlNone
authorNone
requires_python>=3.11
licenseNone
keywords
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # 智码坊-RPA执行器(rpa-executor-icodefun)

这是智码坊的RPA执行器,配合智码坊可以完成以下工作:
- 自动注册受执行器管理的基于Robot Framework的RPA任务
- 通过智码坊后台任务调度中心
  - 管理并查看RPA执行器
  - 管理并查看RPA任务
  - 手动触发RPA任务的执行
  - 查看RPA历史执行情况
- 可通过Sailing或智码坊的开发平台发起RPA任务,并查询RPA任务执行结果


## 安装

### 安装python

智码坊-RPA执行器(以下简称rpa执行器)是一个python项目,因此首先需要安装python以及相关环境。rpa执行器支持`3.11.0`以上的版本。

### 创建虚拟环境

首先在任意位置建立目录,并在命令行中进入该目录。然后执行以下命令:

```shell
python -m venv .venv
```

以上命令将在目录中创建`.venv`目录,该目录存放了python虚拟环境信息,由工具自动维护,不要手动更改里面的任何东西。

然后执行以下命令激活虚拟环境。

在Windows上,运行:

```shell
.venv/Scripts/activate.bat
``` 

在linux上,运行:

```shell
source .venv/bin/activate
```

激活虚拟环境将改变你所用终端的提示符,以显示你正在使用的虚拟环境,并修改环境以使 python 命令所运行的将是已安装的特定 Python 版本。

需了解更多venv的用法,请看:https://docs.python.org/zh-cn/3.11/tutorial/venv.html


### 在虚拟环境中安装执行器

确保虚拟环境激活的情况,在命令行中执行以下命令:
```shell
pip install rpa-executor-icodefun
```

等安装完成后,再运行:

```shell
rfbrowser init
```

这个命令将下载浏览器RPA操作相关的一系列库,将近800MB,请耐心等待。

如果需要更新RPA执行器,运行:

```shell
pip install --upgrade rpa-executor-icodefun
```

## 配置执行器

RPA执行器采用约定加配置的风格定义运行时行为,首先需要一个配置文件,在目录中新建一个名为`config.yaml`,内容以及说明如下:

```yaml
xxl_admin_baseurl: "http://192.168.0.1:9970/xxl-job-admin/api/" # 智码坊后台调度中心的API url。注意修改ip和port

client_id: "rpa1" # 智码坊后台调度中心的用户名
client_secret: "123456" # 智码坊后台调度中心的密码

executor:
  app_name: "rpa-executor-1" # 本RPA执行器的名称。如果有多个rpa执行器需要注册到同一个调度中心,那么他们的名称最好有所区别,否则将导致任务重复执行。
  host: "192.168.64.16" # 报告本调度器的执行器IP。
  port: 9999 # 报告本调度器的执行器端口。
  # listen_host: None # 仅在执行器需经过代理访问时用到。https://fcfangcc.github.io/pyxxl/apis/config/#pyxxl.ExecutorConfig.executor_host
  # listen_port: 9999 # 仅在执行器需经过代理访问时用到。


log:
  log_dir: "logs" # 主日志所在目录。每次任务都会产生独立的日志
  expired_days: 7 # 主日志过期时间,单位:天

max_workers: 10 # 最大并发执行数。

task:
  queue_length: 10 # 最大等待队列长度
  timeout: 600 # 任务超时时间
```

## 配置任务

在目录中新建一个名为`tasks`的目录,每组RPA任务Suite单独建立一个目录,每个子目录中都要有一个`manifest.yaml`文件,以及RPA任务文件。下面是RPA执行器完整目录的例子:

```
rpa1
├ tasks
│ ├ task1
│ │ ├ manifest.yaml
│ │ ├ xxx.robot
│ │ └ ...
│ └ task1
│   ├ manifest.yaml
│   ├ xxx.robot
│   └ ...
└ config.yaml
```

`manifest.yaml`文件内容如下:

```yaml
name: "suite name" # 任务suite名称,仅可能和任务文件夹的名称保持一致,以方便管理
robot_file: "xxx.robot" # 任务suite的.robot文件名
description: "" # 任务suite描述
tasks: 
  -
    name: "task name 1" # xxx.robot 中的任务名称
    description: "task name 1" # 任务描述
  -
    name: "task name 2" # xxx.robot 中的另一个任务名称
    description: "task name 2" # 另一个任务描述
  - 
    ...
```


## 启动执行器

确保虚拟环境激活的情况,在执行器目录中执行 以下命令:

```shell
irpa dev
```

RPA执行器代码库的sample目录是一个实际的案例

http://git.tradeserving.com/icodefun/rpa-executor-icodefun/-/tree/master/sample?ref_type=heads

## 开发RPA任务

### 环境搭建

RPA任务基于robot framework以及rpa framework。robot framework有一套自己的脚本语言,脚本语言很简单,配合vscode插件编写十分方便,配套的rcc工具用于调试RPA任务。以下是开发环境搭建说明:https://docs.robotframework.org/docs/getting_started/rpa


### 开发

RPA执行器源码库中`sample/tasks/demo/tasks.robot`是一个实际的示例,可以通过这个项目来了解一个典型的RPA任务是怎么样的。


### 参考

开发过程中会用到的库说明:
- robot内置库:https://robotframework.org/?tab=builtin#resources
  - Builtin:https://robotframework.org/robotframework/latest/libraries/BuiltIn.html
  - Collections:https://robotframework.org/robotframework/latest/libraries/Collections.html
  - DateTime:https://robotframework.org/robotframework/latest/libraries/DateTime.html
  - Dialogs:https://robotframework.org/robotframework/latest/libraries/Dialogs.html
  - OperatingSystem:https://robotframework.org/robotframework/latest/libraries/OperatingSystem.html
  - Process:https://robotframework.org/robotframework/latest/libraries/OperatingSystem.html
  - Remote:https://robotframework.org/robotframework/latest/libraries/Process.html
  - Screenshot:https://robotframework.org/robotframework/latest/libraries/Screenshot.html
  - String:https://robotframework.org/robotframework/latest/libraries/String.html
  - Telnet:https://robotframework.org/robotframework/latest/libraries/Telnet.html
  - XML:https://robotframework.org/robotframework/latest/libraries/XML.html
- rpa framework库
  - https://rpaframework.org/index.html




            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "rpa-executor-icodefun",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.11",
    "maintainer_email": null,
    "keywords": null,
    "author": null,
    "author_email": "icodefun <zhoujian.ww@gmail.com>",
    "download_url": "https://files.pythonhosted.org/packages/4d/3a/61aac0e6c4ed06c182668b428d6a0ba586727523be4778d6e77e59831702/rpa_executor_icodefun-1.0.0.tar.gz",
    "platform": null,
    "description": "# \u667a\u7801\u574a-RPA\u6267\u884c\u5668\uff08rpa-executor-icodefun\uff09\n\n\u8fd9\u662f\u667a\u7801\u574a\u7684RPA\u6267\u884c\u5668\uff0c\u914d\u5408\u667a\u7801\u574a\u53ef\u4ee5\u5b8c\u6210\u4ee5\u4e0b\u5de5\u4f5c\uff1a\n- \u81ea\u52a8\u6ce8\u518c\u53d7\u6267\u884c\u5668\u7ba1\u7406\u7684\u57fa\u4e8eRobot Framework\u7684RPA\u4efb\u52a1\n- \u901a\u8fc7\u667a\u7801\u574a\u540e\u53f0\u4efb\u52a1\u8c03\u5ea6\u4e2d\u5fc3\n  - \u7ba1\u7406\u5e76\u67e5\u770bRPA\u6267\u884c\u5668\n  - \u7ba1\u7406\u5e76\u67e5\u770bRPA\u4efb\u52a1\n  - \u624b\u52a8\u89e6\u53d1RPA\u4efb\u52a1\u7684\u6267\u884c\n  - \u67e5\u770bRPA\u5386\u53f2\u6267\u884c\u60c5\u51b5\n- \u53ef\u901a\u8fc7Sailing\u6216\u667a\u7801\u574a\u7684\u5f00\u53d1\u5e73\u53f0\u53d1\u8d77RPA\u4efb\u52a1\uff0c\u5e76\u67e5\u8be2RPA\u4efb\u52a1\u6267\u884c\u7ed3\u679c\n\n\n## \u5b89\u88c5\n\n### \u5b89\u88c5python\n\n\u667a\u7801\u574a-RPA\u6267\u884c\u5668\uff08\u4ee5\u4e0b\u7b80\u79f0rpa\u6267\u884c\u5668\uff09\u662f\u4e00\u4e2apython\u9879\u76ee\uff0c\u56e0\u6b64\u9996\u5148\u9700\u8981\u5b89\u88c5python\u4ee5\u53ca\u76f8\u5173\u73af\u5883\u3002rpa\u6267\u884c\u5668\u652f\u6301`3.11.0`\u4ee5\u4e0a\u7684\u7248\u672c\u3002\n\n### \u521b\u5efa\u865a\u62df\u73af\u5883\n\n\u9996\u5148\u5728\u4efb\u610f\u4f4d\u7f6e\u5efa\u7acb\u76ee\u5f55\uff0c\u5e76\u5728\u547d\u4ee4\u884c\u4e2d\u8fdb\u5165\u8be5\u76ee\u5f55\u3002\u7136\u540e\u6267\u884c\u4ee5\u4e0b\u547d\u4ee4\uff1a\n\n```shell\npython -m venv .venv\n```\n\n\u4ee5\u4e0a\u547d\u4ee4\u5c06\u5728\u76ee\u5f55\u4e2d\u521b\u5efa`.venv`\u76ee\u5f55\uff0c\u8be5\u76ee\u5f55\u5b58\u653e\u4e86python\u865a\u62df\u73af\u5883\u4fe1\u606f\uff0c\u7531\u5de5\u5177\u81ea\u52a8\u7ef4\u62a4\uff0c\u4e0d\u8981\u624b\u52a8\u66f4\u6539\u91cc\u9762\u7684\u4efb\u4f55\u4e1c\u897f\u3002\n\n\u7136\u540e\u6267\u884c\u4ee5\u4e0b\u547d\u4ee4\u6fc0\u6d3b\u865a\u62df\u73af\u5883\u3002\n\n\u5728Windows\u4e0a\uff0c\u8fd0\u884c\uff1a\n\n```shell\n.venv/Scripts/activate.bat\n``` \n\n\u5728linux\u4e0a\uff0c\u8fd0\u884c\uff1a\n\n```shell\nsource .venv/bin/activate\n```\n\n\u6fc0\u6d3b\u865a\u62df\u73af\u5883\u5c06\u6539\u53d8\u4f60\u6240\u7528\u7ec8\u7aef\u7684\u63d0\u793a\u7b26\uff0c\u4ee5\u663e\u793a\u4f60\u6b63\u5728\u4f7f\u7528\u7684\u865a\u62df\u73af\u5883\uff0c\u5e76\u4fee\u6539\u73af\u5883\u4ee5\u4f7f python \u547d\u4ee4\u6240\u8fd0\u884c\u7684\u5c06\u662f\u5df2\u5b89\u88c5\u7684\u7279\u5b9a Python \u7248\u672c\u3002\n\n\u9700\u4e86\u89e3\u66f4\u591avenv\u7684\u7528\u6cd5\uff0c\u8bf7\u770b\uff1ahttps://docs.python.org/zh-cn/3.11/tutorial/venv.html\n\n\n### \u5728\u865a\u62df\u73af\u5883\u4e2d\u5b89\u88c5\u6267\u884c\u5668\n\n\u786e\u4fdd\u865a\u62df\u73af\u5883\u6fc0\u6d3b\u7684\u60c5\u51b5\uff0c\u5728\u547d\u4ee4\u884c\u4e2d\u6267\u884c\u4ee5\u4e0b\u547d\u4ee4\uff1a\n```shell\npip install rpa-executor-icodefun\n```\n\n\u7b49\u5b89\u88c5\u5b8c\u6210\u540e\uff0c\u518d\u8fd0\u884c\uff1a\n\n```shell\nrfbrowser init\n```\n\n\u8fd9\u4e2a\u547d\u4ee4\u5c06\u4e0b\u8f7d\u6d4f\u89c8\u5668RPA\u64cd\u4f5c\u76f8\u5173\u7684\u4e00\u7cfb\u5217\u5e93\uff0c\u5c06\u8fd1800MB\uff0c\u8bf7\u8010\u5fc3\u7b49\u5f85\u3002\n\n\u5982\u679c\u9700\u8981\u66f4\u65b0RPA\u6267\u884c\u5668\uff0c\u8fd0\u884c\uff1a\n\n```shell\npip install --upgrade rpa-executor-icodefun\n```\n\n## \u914d\u7f6e\u6267\u884c\u5668\n\nRPA\u6267\u884c\u5668\u91c7\u7528\u7ea6\u5b9a\u52a0\u914d\u7f6e\u7684\u98ce\u683c\u5b9a\u4e49\u8fd0\u884c\u65f6\u884c\u4e3a\uff0c\u9996\u5148\u9700\u8981\u4e00\u4e2a\u914d\u7f6e\u6587\u4ef6\uff0c\u5728\u76ee\u5f55\u4e2d\u65b0\u5efa\u4e00\u4e2a\u540d\u4e3a`config.yaml`\uff0c\u5185\u5bb9\u4ee5\u53ca\u8bf4\u660e\u5982\u4e0b\uff1a\n\n```yaml\nxxl_admin_baseurl: \"http://192.168.0.1:9970/xxl-job-admin/api/\" # \u667a\u7801\u574a\u540e\u53f0\u8c03\u5ea6\u4e2d\u5fc3\u7684API url\u3002\u6ce8\u610f\u4fee\u6539ip\u548cport\n\nclient_id: \"rpa1\" # \u667a\u7801\u574a\u540e\u53f0\u8c03\u5ea6\u4e2d\u5fc3\u7684\u7528\u6237\u540d\nclient_secret: \"123456\" # \u667a\u7801\u574a\u540e\u53f0\u8c03\u5ea6\u4e2d\u5fc3\u7684\u5bc6\u7801\n\nexecutor:\n  app_name: \"rpa-executor-1\" # \u672cRPA\u6267\u884c\u5668\u7684\u540d\u79f0\u3002\u5982\u679c\u6709\u591a\u4e2arpa\u6267\u884c\u5668\u9700\u8981\u6ce8\u518c\u5230\u540c\u4e00\u4e2a\u8c03\u5ea6\u4e2d\u5fc3\uff0c\u90a3\u4e48\u4ed6\u4eec\u7684\u540d\u79f0\u6700\u597d\u6709\u6240\u533a\u522b\uff0c\u5426\u5219\u5c06\u5bfc\u81f4\u4efb\u52a1\u91cd\u590d\u6267\u884c\u3002\n  host: \"192.168.64.16\" # \u62a5\u544a\u672c\u8c03\u5ea6\u5668\u7684\u6267\u884c\u5668IP\u3002\n  port: 9999 # \u62a5\u544a\u672c\u8c03\u5ea6\u5668\u7684\u6267\u884c\u5668\u7aef\u53e3\u3002\n  # listen_host: None # \u4ec5\u5728\u6267\u884c\u5668\u9700\u7ecf\u8fc7\u4ee3\u7406\u8bbf\u95ee\u65f6\u7528\u5230\u3002https://fcfangcc.github.io/pyxxl/apis/config/#pyxxl.ExecutorConfig.executor_host\n  # listen_port: 9999 # \u4ec5\u5728\u6267\u884c\u5668\u9700\u7ecf\u8fc7\u4ee3\u7406\u8bbf\u95ee\u65f6\u7528\u5230\u3002\n\n\nlog:\n  log_dir: \"logs\" # \u4e3b\u65e5\u5fd7\u6240\u5728\u76ee\u5f55\u3002\u6bcf\u6b21\u4efb\u52a1\u90fd\u4f1a\u4ea7\u751f\u72ec\u7acb\u7684\u65e5\u5fd7\n  expired_days: 7 # \u4e3b\u65e5\u5fd7\u8fc7\u671f\u65f6\u95f4\uff0c\u5355\u4f4d\uff1a\u5929\n\nmax_workers: 10 # \u6700\u5927\u5e76\u53d1\u6267\u884c\u6570\u3002\n\ntask:\n  queue_length: 10 # \u6700\u5927\u7b49\u5f85\u961f\u5217\u957f\u5ea6\n  timeout: 600 # \u4efb\u52a1\u8d85\u65f6\u65f6\u95f4\n```\n\n## \u914d\u7f6e\u4efb\u52a1\n\n\u5728\u76ee\u5f55\u4e2d\u65b0\u5efa\u4e00\u4e2a\u540d\u4e3a`tasks`\u7684\u76ee\u5f55\uff0c\u6bcf\u7ec4RPA\u4efb\u52a1Suite\u5355\u72ec\u5efa\u7acb\u4e00\u4e2a\u76ee\u5f55\uff0c\u6bcf\u4e2a\u5b50\u76ee\u5f55\u4e2d\u90fd\u8981\u6709\u4e00\u4e2a`manifest.yaml`\u6587\u4ef6\uff0c\u4ee5\u53caRPA\u4efb\u52a1\u6587\u4ef6\u3002\u4e0b\u9762\u662fRPA\u6267\u884c\u5668\u5b8c\u6574\u76ee\u5f55\u7684\u4f8b\u5b50\uff1a\n\n```\nrpa1\n\u251c tasks\n\u2502 \u251c task1\n\u2502 \u2502 \u251c manifest.yaml\n\u2502 \u2502 \u251c xxx.robot\n\u2502 \u2502 \u2514 ...\n\u2502 \u2514 task1\n\u2502   \u251c manifest.yaml\n\u2502   \u251c xxx.robot\n\u2502   \u2514 ...\n\u2514 config.yaml\n```\n\n`manifest.yaml`\u6587\u4ef6\u5185\u5bb9\u5982\u4e0b\uff1a\n\n```yaml\nname: \"suite name\" # \u4efb\u52a1suite\u540d\u79f0\uff0c\u4ec5\u53ef\u80fd\u548c\u4efb\u52a1\u6587\u4ef6\u5939\u7684\u540d\u79f0\u4fdd\u6301\u4e00\u81f4\uff0c\u4ee5\u65b9\u4fbf\u7ba1\u7406\nrobot_file: \"xxx.robot\" # \u4efb\u52a1suite\u7684.robot\u6587\u4ef6\u540d\ndescription: \"\" # \u4efb\u52a1suite\u63cf\u8ff0\ntasks: \n  -\n    name: \"task name 1\" # xxx.robot \u4e2d\u7684\u4efb\u52a1\u540d\u79f0\n    description: \"task name 1\" # \u4efb\u52a1\u63cf\u8ff0\n  -\n    name: \"task name 2\" # xxx.robot \u4e2d\u7684\u53e6\u4e00\u4e2a\u4efb\u52a1\u540d\u79f0\n    description: \"task name 2\" # \u53e6\u4e00\u4e2a\u4efb\u52a1\u63cf\u8ff0\n  - \n    ...\n```\n\n\n## \u542f\u52a8\u6267\u884c\u5668\n\n\u786e\u4fdd\u865a\u62df\u73af\u5883\u6fc0\u6d3b\u7684\u60c5\u51b5\uff0c\u5728\u6267\u884c\u5668\u76ee\u5f55\u4e2d\u6267\u884c \u4ee5\u4e0b\u547d\u4ee4\uff1a\n\n```shell\nirpa dev\n```\n\nRPA\u6267\u884c\u5668\u4ee3\u7801\u5e93\u7684sample\u76ee\u5f55\u662f\u4e00\u4e2a\u5b9e\u9645\u7684\u6848\u4f8b\n\nhttp://git.tradeserving.com/icodefun/rpa-executor-icodefun/-/tree/master/sample?ref_type=heads\n\n## \u5f00\u53d1RPA\u4efb\u52a1\n\n### \u73af\u5883\u642d\u5efa\n\nRPA\u4efb\u52a1\u57fa\u4e8erobot framework\u4ee5\u53carpa framework\u3002robot framework\u6709\u4e00\u5957\u81ea\u5df1\u7684\u811a\u672c\u8bed\u8a00\uff0c\u811a\u672c\u8bed\u8a00\u5f88\u7b80\u5355\uff0c\u914d\u5408vscode\u63d2\u4ef6\u7f16\u5199\u5341\u5206\u65b9\u4fbf\uff0c\u914d\u5957\u7684rcc\u5de5\u5177\u7528\u4e8e\u8c03\u8bd5RPA\u4efb\u52a1\u3002\u4ee5\u4e0b\u662f\u5f00\u53d1\u73af\u5883\u642d\u5efa\u8bf4\u660e\uff1ahttps://docs.robotframework.org/docs/getting_started/rpa\n\n\n### \u5f00\u53d1\n\nRPA\u6267\u884c\u5668\u6e90\u7801\u5e93\u4e2d`sample/tasks/demo/tasks.robot`\u662f\u4e00\u4e2a\u5b9e\u9645\u7684\u793a\u4f8b\uff0c\u53ef\u4ee5\u901a\u8fc7\u8fd9\u4e2a\u9879\u76ee\u6765\u4e86\u89e3\u4e00\u4e2a\u5178\u578b\u7684RPA\u4efb\u52a1\u662f\u600e\u4e48\u6837\u7684\u3002\n\n\n### \u53c2\u8003\n\n\u5f00\u53d1\u8fc7\u7a0b\u4e2d\u4f1a\u7528\u5230\u7684\u5e93\u8bf4\u660e\uff1a\n- robot\u5185\u7f6e\u5e93\uff1ahttps://robotframework.org/?tab=builtin#resources\n  - Builtin\uff1ahttps://robotframework.org/robotframework/latest/libraries/BuiltIn.html\n  - Collections\uff1ahttps://robotframework.org/robotframework/latest/libraries/Collections.html\n  - DateTime\uff1ahttps://robotframework.org/robotframework/latest/libraries/DateTime.html\n  - Dialogs\uff1ahttps://robotframework.org/robotframework/latest/libraries/Dialogs.html\n  - OperatingSystem\uff1ahttps://robotframework.org/robotframework/latest/libraries/OperatingSystem.html\n  - Process\uff1ahttps://robotframework.org/robotframework/latest/libraries/OperatingSystem.html\n  - Remote\uff1ahttps://robotframework.org/robotframework/latest/libraries/Process.html\n  - Screenshot\uff1ahttps://robotframework.org/robotframework/latest/libraries/Screenshot.html\n  - String\uff1ahttps://robotframework.org/robotframework/latest/libraries/String.html\n  - Telnet\uff1ahttps://robotframework.org/robotframework/latest/libraries/Telnet.html\n  - XML\uff1ahttps://robotframework.org/robotframework/latest/libraries/XML.html\n- rpa framework\u5e93\n  - https://rpaframework.org/index.html\n\n\n\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "RPA Excutor for icodefun RPA Hub",
    "version": "1.0.0",
    "project_urls": null,
    "split_keywords": [],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "7810da155e3e60b74cb5443a4197c192389fba752a5ced9d793519e0e77e1822",
                "md5": "49899a79ad06360cfdf1ff8c4b6be4fb",
                "sha256": "fcfad3722e7b74514c0cf8bce8ceb4f115f1375e5df8cee6a70363c7b8f7ab7c"
            },
            "downloads": -1,
            "filename": "rpa_executor_icodefun-1.0.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "49899a79ad06360cfdf1ff8c4b6be4fb",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.11",
            "size": 11406,
            "upload_time": "2024-11-12T01:27:56",
            "upload_time_iso_8601": "2024-11-12T01:27:56.098535Z",
            "url": "https://files.pythonhosted.org/packages/78/10/da155e3e60b74cb5443a4197c192389fba752a5ced9d793519e0e77e1822/rpa_executor_icodefun-1.0.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "4d3a61aac0e6c4ed06c182668b428d6a0ba586727523be4778d6e77e59831702",
                "md5": "4c9f0da6e61e91b8f5b7e8d1b88bd405",
                "sha256": "ba58ff324d6951852a7194084b5fcfcb9e744319a8056bd37b2bae655d7be0ed"
            },
            "downloads": -1,
            "filename": "rpa_executor_icodefun-1.0.0.tar.gz",
            "has_sig": false,
            "md5_digest": "4c9f0da6e61e91b8f5b7e8d1b88bd405",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.11",
            "size": 11629,
            "upload_time": "2024-11-12T01:27:58",
            "upload_time_iso_8601": "2024-11-12T01:27:58.105216Z",
            "url": "https://files.pythonhosted.org/packages/4d/3a/61aac0e6c4ed06c182668b428d6a0ba586727523be4778d6e77e59831702/rpa_executor_icodefun-1.0.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-11-12 01:27:58",
    "github": false,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "lcname": "rpa-executor-icodefun"
}
        
Elapsed time: 0.86717s