pywpsrpc


Namepywpsrpc JSON
Version 2.3.9 PyPI version JSON
download
home_pagehttps://github.com/timxx/pywpsrpc
SummaryPython bindings for the WPS Office RPC
upload_time2023-07-11 14:24:33
maintainer
docs_urlNone
authorWeitian Leung
requires_python>=3.6
licenseMIT
keywords
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # pywpsrpc

[![Build Status](https://github.com/timxx/pywpsrpc/actions/workflows/main.yml/badge.svg)](https://github.com/timxx/pywpsrpc/actions)
[![PyPI version](https://img.shields.io/pypi/v/pywpsrpc.svg)](https://pypi.org/project/pywpsrpc/)
[![Python version](https://img.shields.io/badge/python-3.6+-green.svg)](http://python.org/)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)

WPS Office for Linux二次开发C++接口Python绑定.

*Read this in other languages: [English](README_en.md)*

## WPS Office二次开发接口

WPS二次开发接口允许开发者通过给定的接口来调起WPS并执行指定的任务,
比如你可以打开、编辑然后保存文档,转换文档格式等文档自动化操作,又或者将WPS嵌入到自己的程序、进行功能扩展等。

关于详细的接口文档,可参考

- WPS官方的开发网站 <https://open.wps.cn/docs/client/wpsLoad>
- VBA官方文档 <https://docs.microsoft.com/en-us/office/vba/api/overview/>


对于pywpsrpc本身的文档,可跳转到[wiki](https://github.com/timxx/pywpsrpc/wiki)查看。


## 依赖
  - Python 3.6+
  - Qt5 (C++ SDK依赖)
  - WPS Office for Linux 11.1.0.9080+
  - sip 6.0+ (仅编译)
  - qmake (仅编译)
  - g++ (仅编译)
  - 桌面环境(WPS运行需要)

  PS,目前WPS整合模式有BUG,非把WPS嵌入到自己进程的场景建议先切换到多组件模式


## 如何编译

在项目顶层目录下运行终端执行: `sip-build`

如果需要查看编译相关输出信息,可添加 *--verbose* 选项


## 安装

建议通过PyPi安装:

`pip install pywpsrpc`

如果默认的源太慢,建议自行搜索添加中国pip源

通过源码编译安装:

先打包执行: `sip-wheel`

打包完成后再通过`pip install pywpsrpc-*.whl`命令安装


## 快速上手

``` python
# 第一步先import所需模块(rpcxxxapi,xxx为对应项目的名字)
# rpcwpsapi模块为WPS文字项目的开发接口
# rpcwppapi则是WPS演示的
# rpcetapi毫无疑问就是WPS表格的了
# 另外还有common模块,为前三者的公共接口模块,通常不能单独使用

# 调起WPS必需通过createXXXRpcInstance接口,所以导入它是必需的
# 以WPS文字为例
from pywpsrpc.rpcwpsapi import (createWpsRpcInstance, wpsapi)
from pywpsrpc import RpcIter


# 这里仅创建RPC实例
hr, rpc = createWpsRpcInstance()

# 注意:
# WPS开发接口的返回值第一个总是HRESULT(无返回值的除外)
# 通常不为0的都认为是调用失败(0 == common.S_OK)
# 可以使用common模块里的FAILED或者SUCCEEDED去判断

# 通过rpc实例调起WPS进程
hr, app = rpc.getWpsApplication()

# 比如添加一个空白文档
hr, doc = app.Documents.Add()

# 加点文字
selection = app.Selection
selection.InsertAfter("Hello, world")

# 将前面插入的"Hello, world"加粗
selection.Font.Bold = True

# 光标移到末尾
selection.EndKey()

# 再插入空段
selection.InsertParagraph()

# 光标移到新段
selection.MoveDown()

# 再码些文字
selection.TypeText("pywpsrpc~")

# 使用RpcIter遍历所有段
paras = doc.Paragraphs
for para in RpcIter(paras):
    print(para.Range.Text)

# 或者通过索引方式
for i in range(0, paras.Count):
    # 注意:首个元素总是从1开始
    print(paras[i + 1].OutlineLevel)

def onDocumentBeforeSave(doc):
    # 如果想取消当前文档保存,第二个返回值设为True
    print("onDocumentBeforeSave called for doc: ", doc.Name)
    # SaveAsUI, Cancel
    return True, False

# 注册文档保存前通知
rpc.registerEvent(app,
                  wpsapi.DIID_ApplicationEvents4,
                  "DocumentBeforeSave",
                  onDocumentBeforeSave)

# 保存文档, onDocumentBeforeSave会被调用到
doc.SaveAs2("test.docx")

# 退出WPS进程
# 使用wpsapi.wdDoNotSaveChanges来忽略文档改动
app.Quit(wpsapi.wdDoNotSaveChanges)
```

## 例子

### 文档互转
 - [WPS文字](examples/rpcwpsapi/convertto)
 - [WPS演示](examples/rpcwppapi/wpp_convert.py)
 - [WPS表格](examples/rpcetapi/et_convert.py)

### 嵌入
[WPS嵌入第三方进程窗口](examples/rpcwpsapi/embedded)

## 在服务器上运行
[点我查看](https://github.com/timxx/pywpsrpc/wiki/Run-on-Server)


## 关于授权

pywpsrpc为[MIT](./LICENSE)开源授权协议,项目本身允许商用,但前提是你所使用的WPS Office For Linux版本允许商用(目前个人版本即社区版本不允许),具体需要联系WPS官方咨询。对于不在合理范围使用本项目的,本项目不承担任何法律责任。
            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/timxx/pywpsrpc",
    "name": "pywpsrpc",
    "maintainer": "",
    "docs_url": null,
    "requires_python": ">=3.6",
    "maintainer_email": "",
    "keywords": "",
    "author": "Weitian Leung",
    "author_email": "weitianleung@gmail.com",
    "download_url": "https://files.pythonhosted.org/packages/97/81/a1bda13f7460e8f7c1a83d9cd662bfe56869007364d73b01aaabc94ca66a/pywpsrpc-2.3.9.tar.gz",
    "platform": "Linux",
    "description": "# pywpsrpc\n\n[![Build Status](https://github.com/timxx/pywpsrpc/actions/workflows/main.yml/badge.svg)](https://github.com/timxx/pywpsrpc/actions)\n[![PyPI version](https://img.shields.io/pypi/v/pywpsrpc.svg)](https://pypi.org/project/pywpsrpc/)\n[![Python version](https://img.shields.io/badge/python-3.6+-green.svg)](http://python.org/)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n\nWPS Office for Linux\u4e8c\u6b21\u5f00\u53d1C++\u63a5\u53e3Python\u7ed1\u5b9a.\n\n*Read this in other languages: [English](README_en.md)*\n\n## WPS Office\u4e8c\u6b21\u5f00\u53d1\u63a5\u53e3\n\nWPS\u4e8c\u6b21\u5f00\u53d1\u63a5\u53e3\u5141\u8bb8\u5f00\u53d1\u8005\u901a\u8fc7\u7ed9\u5b9a\u7684\u63a5\u53e3\u6765\u8c03\u8d77WPS\u5e76\u6267\u884c\u6307\u5b9a\u7684\u4efb\u52a1\uff0c\n\u6bd4\u5982\u4f60\u53ef\u4ee5\u6253\u5f00\u3001\u7f16\u8f91\u7136\u540e\u4fdd\u5b58\u6587\u6863\uff0c\u8f6c\u6362\u6587\u6863\u683c\u5f0f\u7b49\u6587\u6863\u81ea\u52a8\u5316\u64cd\u4f5c\uff0c\u53c8\u6216\u8005\u5c06WPS\u5d4c\u5165\u5230\u81ea\u5df1\u7684\u7a0b\u5e8f\u3001\u8fdb\u884c\u529f\u80fd\u6269\u5c55\u7b49\u3002\n\n\u5173\u4e8e\u8be6\u7ec6\u7684\u63a5\u53e3\u6587\u6863\uff0c\u53ef\u53c2\u8003\n\n- WPS\u5b98\u65b9\u7684\u5f00\u53d1\u7f51\u7ad9 <https://open.wps.cn/docs/client/wpsLoad>\n- VBA\u5b98\u65b9\u6587\u6863 <https://docs.microsoft.com/en-us/office/vba/api/overview/>\n\n\n\u5bf9\u4e8epywpsrpc\u672c\u8eab\u7684\u6587\u6863\uff0c\u53ef\u8df3\u8f6c\u5230[wiki](https://github.com/timxx/pywpsrpc/wiki)\u67e5\u770b\u3002\n\n\n## \u4f9d\u8d56\n  - Python 3.6+\n  - Qt5 (C++ SDK\u4f9d\u8d56)\n  - WPS Office for Linux 11.1.0.9080+\n  - sip 6.0+ (\u4ec5\u7f16\u8bd1)\n  - qmake (\u4ec5\u7f16\u8bd1)\n  - g++ (\u4ec5\u7f16\u8bd1)\n  - \u684c\u9762\u73af\u5883\uff08WPS\u8fd0\u884c\u9700\u8981\uff09\n\n  PS\uff0c\u76ee\u524dWPS\u6574\u5408\u6a21\u5f0f\u6709BUG\uff0c\u975e\u628aWPS\u5d4c\u5165\u5230\u81ea\u5df1\u8fdb\u7a0b\u7684\u573a\u666f\u5efa\u8bae\u5148\u5207\u6362\u5230\u591a\u7ec4\u4ef6\u6a21\u5f0f\n\n\n## \u5982\u4f55\u7f16\u8bd1\n\n\u5728\u9879\u76ee\u9876\u5c42\u76ee\u5f55\u4e0b\u8fd0\u884c\u7ec8\u7aef\u6267\u884c\uff1a `sip-build`\n\n\u5982\u679c\u9700\u8981\u67e5\u770b\u7f16\u8bd1\u76f8\u5173\u8f93\u51fa\u4fe1\u606f\uff0c\u53ef\u6dfb\u52a0 *--verbose* \u9009\u9879\n\n\n## \u5b89\u88c5\n\n\u5efa\u8bae\u901a\u8fc7PyPi\u5b89\u88c5:\n\n`pip install pywpsrpc`\n\n\u5982\u679c\u9ed8\u8ba4\u7684\u6e90\u592a\u6162\uff0c\u5efa\u8bae\u81ea\u884c\u641c\u7d22\u6dfb\u52a0\u4e2d\u56fdpip\u6e90\n\n\u901a\u8fc7\u6e90\u7801\u7f16\u8bd1\u5b89\u88c5:\n\n\u5148\u6253\u5305\u6267\u884c\uff1a `sip-wheel`\n\n\u6253\u5305\u5b8c\u6210\u540e\u518d\u901a\u8fc7`pip install pywpsrpc-*.whl`\u547d\u4ee4\u5b89\u88c5\n\n\n## \u5feb\u901f\u4e0a\u624b\n\n``` python\n# \u7b2c\u4e00\u6b65\u5148import\u6240\u9700\u6a21\u5757\uff08rpcxxxapi\uff0cxxx\u4e3a\u5bf9\u5e94\u9879\u76ee\u7684\u540d\u5b57\uff09\n# rpcwpsapi\u6a21\u5757\u4e3aWPS\u6587\u5b57\u9879\u76ee\u7684\u5f00\u53d1\u63a5\u53e3\n# rpcwppapi\u5219\u662fWPS\u6f14\u793a\u7684\n# rpcetapi\u6beb\u65e0\u7591\u95ee\u5c31\u662fWPS\u8868\u683c\u7684\u4e86\n# \u53e6\u5916\u8fd8\u6709common\u6a21\u5757\uff0c\u4e3a\u524d\u4e09\u8005\u7684\u516c\u5171\u63a5\u53e3\u6a21\u5757\uff0c\u901a\u5e38\u4e0d\u80fd\u5355\u72ec\u4f7f\u7528\n\n# \u8c03\u8d77WPS\u5fc5\u9700\u901a\u8fc7createXXXRpcInstance\u63a5\u53e3\uff0c\u6240\u4ee5\u5bfc\u5165\u5b83\u662f\u5fc5\u9700\u7684\n# \u4ee5WPS\u6587\u5b57\u4e3a\u4f8b\nfrom pywpsrpc.rpcwpsapi import (createWpsRpcInstance, wpsapi)\nfrom pywpsrpc import RpcIter\n\n\n# \u8fd9\u91cc\u4ec5\u521b\u5efaRPC\u5b9e\u4f8b\nhr, rpc = createWpsRpcInstance()\n\n# \u6ce8\u610f\uff1a\n# WPS\u5f00\u53d1\u63a5\u53e3\u7684\u8fd4\u56de\u503c\u7b2c\u4e00\u4e2a\u603b\u662fHRESULT\uff08\u65e0\u8fd4\u56de\u503c\u7684\u9664\u5916\uff09\n# \u901a\u5e38\u4e0d\u4e3a0\u7684\u90fd\u8ba4\u4e3a\u662f\u8c03\u7528\u5931\u8d25\uff080 == common.S_OK\uff09\n# \u53ef\u4ee5\u4f7f\u7528common\u6a21\u5757\u91cc\u7684FAILED\u6216\u8005SUCCEEDED\u53bb\u5224\u65ad\n\n# \u901a\u8fc7rpc\u5b9e\u4f8b\u8c03\u8d77WPS\u8fdb\u7a0b\nhr, app = rpc.getWpsApplication()\n\n# \u6bd4\u5982\u6dfb\u52a0\u4e00\u4e2a\u7a7a\u767d\u6587\u6863\nhr, doc = app.Documents.Add()\n\n# \u52a0\u70b9\u6587\u5b57\nselection = app.Selection\nselection.InsertAfter(\"Hello, world\")\n\n# \u5c06\u524d\u9762\u63d2\u5165\u7684\"Hello, world\"\u52a0\u7c97\nselection.Font.Bold = True\n\n# \u5149\u6807\u79fb\u5230\u672b\u5c3e\nselection.EndKey()\n\n# \u518d\u63d2\u5165\u7a7a\u6bb5\nselection.InsertParagraph()\n\n# \u5149\u6807\u79fb\u5230\u65b0\u6bb5\nselection.MoveDown()\n\n# \u518d\u7801\u4e9b\u6587\u5b57\nselection.TypeText(\"pywpsrpc~\")\n\n# \u4f7f\u7528RpcIter\u904d\u5386\u6240\u6709\u6bb5\nparas = doc.Paragraphs\nfor para in RpcIter(paras):\n    print(para.Range.Text)\n\n# \u6216\u8005\u901a\u8fc7\u7d22\u5f15\u65b9\u5f0f\nfor i in range(0, paras.Count):\n    # \u6ce8\u610f\uff1a\u9996\u4e2a\u5143\u7d20\u603b\u662f\u4ece1\u5f00\u59cb\n    print(paras[i + 1].OutlineLevel)\n\ndef onDocumentBeforeSave(doc):\n    # \u5982\u679c\u60f3\u53d6\u6d88\u5f53\u524d\u6587\u6863\u4fdd\u5b58\uff0c\u7b2c\u4e8c\u4e2a\u8fd4\u56de\u503c\u8bbe\u4e3aTrue\n    print(\"onDocumentBeforeSave called for doc: \", doc.Name)\n    # SaveAsUI, Cancel\n    return True, False\n\n# \u6ce8\u518c\u6587\u6863\u4fdd\u5b58\u524d\u901a\u77e5\nrpc.registerEvent(app,\n                  wpsapi.DIID_ApplicationEvents4,\n                  \"DocumentBeforeSave\",\n                  onDocumentBeforeSave)\n\n# \u4fdd\u5b58\u6587\u6863, onDocumentBeforeSave\u4f1a\u88ab\u8c03\u7528\u5230\ndoc.SaveAs2(\"test.docx\")\n\n# \u9000\u51faWPS\u8fdb\u7a0b\n# \u4f7f\u7528wpsapi.wdDoNotSaveChanges\u6765\u5ffd\u7565\u6587\u6863\u6539\u52a8\napp.Quit(wpsapi.wdDoNotSaveChanges)\n```\n\n## \u4f8b\u5b50\n\n### \u6587\u6863\u4e92\u8f6c\n - [WPS\u6587\u5b57](examples/rpcwpsapi/convertto)\n - [WPS\u6f14\u793a](examples/rpcwppapi/wpp_convert.py)\n - [WPS\u8868\u683c](examples/rpcetapi/et_convert.py)\n\n### \u5d4c\u5165\n[WPS\u5d4c\u5165\u7b2c\u4e09\u65b9\u8fdb\u7a0b\u7a97\u53e3](examples/rpcwpsapi/embedded)\n\n## \u5728\u670d\u52a1\u5668\u4e0a\u8fd0\u884c\n[\u70b9\u6211\u67e5\u770b](https://github.com/timxx/pywpsrpc/wiki/Run-on-Server)\n\n\n## \u5173\u4e8e\u6388\u6743\n\npywpsrpc\u4e3a[MIT](./LICENSE)\u5f00\u6e90\u6388\u6743\u534f\u8bae\uff0c\u9879\u76ee\u672c\u8eab\u5141\u8bb8\u5546\u7528\uff0c\u4f46\u524d\u63d0\u662f\u4f60\u6240\u4f7f\u7528\u7684WPS Office For Linux\u7248\u672c\u5141\u8bb8\u5546\u7528\uff08\u76ee\u524d\u4e2a\u4eba\u7248\u672c\u5373\u793e\u533a\u7248\u672c\u4e0d\u5141\u8bb8\uff09\uff0c\u5177\u4f53\u9700\u8981\u8054\u7cfbWPS\u5b98\u65b9\u54a8\u8be2\u3002\u5bf9\u4e8e\u4e0d\u5728\u5408\u7406\u8303\u56f4\u4f7f\u7528\u672c\u9879\u76ee\u7684\uff0c\u672c\u9879\u76ee\u4e0d\u627f\u62c5\u4efb\u4f55\u6cd5\u5f8b\u8d23\u4efb\u3002",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "Python bindings for the WPS Office RPC",
    "version": "2.3.9",
    "project_urls": {
        "Homepage": "https://github.com/timxx/pywpsrpc"
    },
    "split_keywords": [],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "5c1faf37553e61d47f36b29ff9cf898f788d1492eab72ed5ae1d8c246490fb59",
                "md5": "6230eddcc0e5c5bc9b6eec97c5efbf7f",
                "sha256": "74e44f775cfc5db1065539280cd63a5465bef68020ac3e23e4fe9398887d7929"
            },
            "downloads": -1,
            "filename": "pywpsrpc-2.3.9-cp310-cp310-manylinux_2_5_x86_64.whl",
            "has_sig": false,
            "md5_digest": "6230eddcc0e5c5bc9b6eec97c5efbf7f",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.6",
            "size": 7879411,
            "upload_time": "2023-07-11T14:29:52",
            "upload_time_iso_8601": "2023-07-11T14:29:52.678816Z",
            "url": "https://files.pythonhosted.org/packages/5c/1f/af37553e61d47f36b29ff9cf898f788d1492eab72ed5ae1d8c246490fb59/pywpsrpc-2.3.9-cp310-cp310-manylinux_2_5_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "a1c698e73a758791e05371e2c36a9ed1a13b99b24e16333b789017cf53d8ae7a",
                "md5": "5f9c89237a3696e0ccafea4b45101b93",
                "sha256": "125bbb2299b04854a47d922eacead9c88e1b4b24d47b2284ad616dfb11b98d5e"
            },
            "downloads": -1,
            "filename": "pywpsrpc-2.3.9-cp311-cp311-manylinux_2_5_x86_64.whl",
            "has_sig": false,
            "md5_digest": "5f9c89237a3696e0ccafea4b45101b93",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.6",
            "size": 7879468,
            "upload_time": "2023-07-11T14:30:15",
            "upload_time_iso_8601": "2023-07-11T14:30:15.253075Z",
            "url": "https://files.pythonhosted.org/packages/a1/c6/98e73a758791e05371e2c36a9ed1a13b99b24e16333b789017cf53d8ae7a/pywpsrpc-2.3.9-cp311-cp311-manylinux_2_5_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "0fb22709bdc9e2d5c55618150228154bba79b353edf13395eee0929aa8172bbd",
                "md5": "1be35eab5b01bf14c98023808ae43200",
                "sha256": "9ccac831932aeeb9c3cc0d861db70afc845f351fca1ba43b522e5b7e443e6858"
            },
            "downloads": -1,
            "filename": "pywpsrpc-2.3.9-cp36-cp36m-manylinux1_x86_64.whl",
            "has_sig": false,
            "md5_digest": "1be35eab5b01bf14c98023808ae43200",
            "packagetype": "bdist_wheel",
            "python_version": "cp36",
            "requires_python": ">=3.6",
            "size": 7920169,
            "upload_time": "2023-07-11T14:24:31",
            "upload_time_iso_8601": "2023-07-11T14:24:31.045935Z",
            "url": "https://files.pythonhosted.org/packages/0f/b2/2709bdc9e2d5c55618150228154bba79b353edf13395eee0929aa8172bbd/pywpsrpc-2.3.9-cp36-cp36m-manylinux1_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "bb166941fdc0229efd678715b3032a7108e3c4c9bf65ccc0bb182a6202c189a9",
                "md5": "703fa237e927217aea28da38a13f5ebc",
                "sha256": "6341e06e71d76f171054c5cc07b53c0034e2128e3f38994afec3d41ddac435de"
            },
            "downloads": -1,
            "filename": "pywpsrpc-2.3.9-cp37-cp37m-manylinux_2_5_x86_64.whl",
            "has_sig": false,
            "md5_digest": "703fa237e927217aea28da38a13f5ebc",
            "packagetype": "bdist_wheel",
            "python_version": "cp37",
            "requires_python": ">=3.6",
            "size": 7944029,
            "upload_time": "2023-07-11T14:30:26",
            "upload_time_iso_8601": "2023-07-11T14:30:26.888518Z",
            "url": "https://files.pythonhosted.org/packages/bb/16/6941fdc0229efd678715b3032a7108e3c4c9bf65ccc0bb182a6202c189a9/pywpsrpc-2.3.9-cp37-cp37m-manylinux_2_5_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "17118a5ddf7a2542194a70b1d016a1537bb0f82ebd155e7024861e509ae37f1d",
                "md5": "d1fcb2e41c61687c24b80ec2fca326d0",
                "sha256": "b0bf9d3692995acdbd94213b2519b8e9aef07bc7d2e854ae45e202590058c9cb"
            },
            "downloads": -1,
            "filename": "pywpsrpc-2.3.9-cp38-cp38-manylinux_2_5_x86_64.whl",
            "has_sig": false,
            "md5_digest": "d1fcb2e41c61687c24b80ec2fca326d0",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": ">=3.6",
            "size": 7879309,
            "upload_time": "2023-07-11T14:30:47",
            "upload_time_iso_8601": "2023-07-11T14:30:47.373491Z",
            "url": "https://files.pythonhosted.org/packages/17/11/8a5ddf7a2542194a70b1d016a1537bb0f82ebd155e7024861e509ae37f1d/pywpsrpc-2.3.9-cp38-cp38-manylinux_2_5_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "abf3334360b1896b1f866d96f2c4e515ab82b805c60709d76146ea2cb5ea15bb",
                "md5": "36655952436813f1b2c6ddbeb441de3c",
                "sha256": "76a3d10c12beeca65f5a4a13b536638a876751822ede5d651ca1bd00117446e3"
            },
            "downloads": -1,
            "filename": "pywpsrpc-2.3.9-cp39-cp39-manylinux_2_5_x86_64.whl",
            "has_sig": false,
            "md5_digest": "36655952436813f1b2c6ddbeb441de3c",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.6",
            "size": 7879389,
            "upload_time": "2023-07-11T14:30:24",
            "upload_time_iso_8601": "2023-07-11T14:30:24.902642Z",
            "url": "https://files.pythonhosted.org/packages/ab/f3/334360b1896b1f866d96f2c4e515ab82b805c60709d76146ea2cb5ea15bb/pywpsrpc-2.3.9-cp39-cp39-manylinux_2_5_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "9781a1bda13f7460e8f7c1a83d9cd662bfe56869007364d73b01aaabc94ca66a",
                "md5": "621d64571dac4b7ea1d80acc479626d8",
                "sha256": "4b581abc5689943d63a892fea9e8488ed729c8f6f0e3a324eefbd081d250f993"
            },
            "downloads": -1,
            "filename": "pywpsrpc-2.3.9.tar.gz",
            "has_sig": false,
            "md5_digest": "621d64571dac4b7ea1d80acc479626d8",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.6",
            "size": 6075275,
            "upload_time": "2023-07-11T14:24:33",
            "upload_time_iso_8601": "2023-07-11T14:24:33.933149Z",
            "url": "https://files.pythonhosted.org/packages/97/81/a1bda13f7460e8f7c1a83d9cd662bfe56869007364d73b01aaabc94ca66a/pywpsrpc-2.3.9.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2023-07-11 14:24:33",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "timxx",
    "github_project": "pywpsrpc",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "pywpsrpc"
}
        
Elapsed time: 0.07888s