<h1 align="center"><i>✨ pyrsync ✨ </i></h1>
<h3 align="center">The python binding for <a href="https://github.com/librsync/librsync">librsync</a> </h3>
[![pypi](https://img.shields.io/pypi/v/python-rsync.svg)](https://pypi.org/project/python-rsync/)
![python](https://img.shields.io/pypi/pyversions/python-rsync)
![implementation](https://img.shields.io/pypi/implementation/python-rsync)
![wheel](https://img.shields.io/pypi/wheel/python-rsync)
![license](https://img.shields.io/github/license/synodriver/pyrsync.svg)
![action](https://img.shields.io/github/workflow/status/synodriver/pyrsync/build%20wheel)
## Install
```bash
pip install python-rsync
```
## Usage
```python
from io import BytesIO
from pyrsync import delta, get_signature_args, signature, patch
s = b"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" * 50
d = b"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" * 50 + b"2"
src = BytesIO(s)
dst = BytesIO(d)
magic, block_len, strong_len = get_signature_args(len(s))
sig = BytesIO()
signature(dst, sig, strong_len, magic, block_len) # sig由dst产生
dst.seek(0, 0)
sig.seek(0, 0)
_delta = BytesIO()
delta(src, sig, _delta) # src和sig对比产生delta
src.seek(0, 0)
_delta.seek(0, 0)
out = BytesIO()
patch(dst, _delta, out)
assert out.getvalue() == src.getvalue()
```
## Public functions
```python
from typing import IO
class LibrsyncError(Exception):
code: Any
def __init__(self, result) -> None: ...
RS_JOB_BLOCKSIZE: int
RS_DELTA_MAGIC: int
RS_MD4_SIG_MAGIC: int
RS_BLAKE2_SIG_MAGIC: int
RS_RK_MD4_SIG_MAGIC: int
RS_RK_BLAKE2_SIG_MAGIC: int
def get_signature_args(old_fsize: int, magic: int = 0, block_len: int = 0, strong_len: int = 0) -> tuple: ...
def signature(input:IO, output:IO, strong_len: int, sig_magic: int, block_size: int = ...) -> None: ...
def delta(input:IO, sigfile:IO, output) -> None: ...
def patch(input:IO, delta:IO, output) -> None: ...
```
### Compile
```
python -m pip install setuptools wheel cython cffi
git clone https://github.com/synodriver/pyrsync
cd pyrsync
git submodule update --init --recursive
python setup.py bdist_wheel --use-cython --use-cffi
```
### Backend Choose
Use ```RSYNC_USE_CFFI``` env var to use cffi backend, otherwise it's depend on your python implementation.
Raw data
{
"_id": null,
"home_page": "https://github.com/synodriver/pyrsync",
"name": "python-rsync",
"maintainer": "",
"docs_url": null,
"requires_python": ">=3.6",
"maintainer_email": "",
"keywords": "compress,decompress",
"author": "synodriver",
"author_email": "diguohuangjiajinweijun@gmail.com",
"download_url": "https://files.pythonhosted.org/packages/a2/16/fd69ac6537af6c56362bfc47758b144d726f3d1076677af2d24378fe9568/python-rsync-0.1.1.tar.gz",
"platform": null,
"description": "<h1 align=\"center\"><i>\u2728 pyrsync \u2728 </i></h1>\n\n<h3 align=\"center\">The python binding for <a href=\"https://github.com/librsync/librsync\">librsync</a> </h3>\n\n[![pypi](https://img.shields.io/pypi/v/python-rsync.svg)](https://pypi.org/project/python-rsync/)\n![python](https://img.shields.io/pypi/pyversions/python-rsync)\n![implementation](https://img.shields.io/pypi/implementation/python-rsync)\n![wheel](https://img.shields.io/pypi/wheel/python-rsync)\n![license](https://img.shields.io/github/license/synodriver/pyrsync.svg)\n![action](https://img.shields.io/github/workflow/status/synodriver/pyrsync/build%20wheel)\n\n## Install\n```bash\npip install python-rsync\n```\n\n\n## Usage\n```python\nfrom io import BytesIO\nfrom pyrsync import delta, get_signature_args, signature, patch\n\ns = b\"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\" * 50\nd = b\"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\" * 50 + b\"2\"\nsrc = BytesIO(s)\ndst = BytesIO(d)\nmagic, block_len, strong_len = get_signature_args(len(s))\nsig = BytesIO()\nsignature(dst, sig, strong_len, magic, block_len) # sig\u7531dst\u4ea7\u751f\ndst.seek(0, 0)\nsig.seek(0, 0)\n_delta = BytesIO()\ndelta(src, sig, _delta) # src\u548csig\u5bf9\u6bd4\u4ea7\u751fdelta\nsrc.seek(0, 0)\n_delta.seek(0, 0)\nout = BytesIO()\npatch(dst, _delta, out)\nassert out.getvalue() == src.getvalue()\n```\n\n## Public functions\n```python\nfrom typing import IO\n\nclass LibrsyncError(Exception):\n code: Any\n def __init__(self, result) -> None: ...\n\nRS_JOB_BLOCKSIZE: int\nRS_DELTA_MAGIC: int\nRS_MD4_SIG_MAGIC: int\nRS_BLAKE2_SIG_MAGIC: int\nRS_RK_MD4_SIG_MAGIC: int\nRS_RK_BLAKE2_SIG_MAGIC: int\n\ndef get_signature_args(old_fsize: int, magic: int = 0, block_len: int = 0, strong_len: int = 0) -> tuple: ...\ndef signature(input:IO, output:IO, strong_len: int, sig_magic: int, block_size: int = ...) -> None: ...\ndef delta(input:IO, sigfile:IO, output) -> None: ...\ndef patch(input:IO, delta:IO, output) -> None: ...\n```\n\n\n### Compile\n```\npython -m pip install setuptools wheel cython cffi\ngit clone https://github.com/synodriver/pyrsync\ncd pyrsync\ngit submodule update --init --recursive\npython setup.py bdist_wheel --use-cython --use-cffi\n```\n\n### Backend Choose\nUse ```RSYNC_USE_CFFI``` env var to use cffi backend, otherwise it's depend on your python implementation.\n",
"bugtrack_url": null,
"license": "BSD",
"summary": "python binding for librsync",
"version": "0.1.1",
"project_urls": {
"Homepage": "https://github.com/synodriver/pyrsync"
},
"split_keywords": [
"compress",
"decompress"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "bf57ab43b2f6d2112a046b617aa57bc0f54217586ae9995173805a5c83a216f0",
"md5": "38e6ce2d197f97498458373d95338426",
"sha256": "053718917515e26fbebfc98b7637a6a61cfc4d7cc0828dfcf233fbdd95ad00d7"
},
"downloads": -1,
"filename": "python_rsync-0.1.1-cp310-cp310-macosx_10_9_arm64.whl",
"has_sig": false,
"md5_digest": "38e6ce2d197f97498458373d95338426",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": ">=3.6",
"size": 288441,
"upload_time": "2024-02-03T14:30:50",
"upload_time_iso_8601": "2024-02-03T14:30:50.859317Z",
"url": "https://files.pythonhosted.org/packages/bf/57/ab43b2f6d2112a046b617aa57bc0f54217586ae9995173805a5c83a216f0/python_rsync-0.1.1-cp310-cp310-macosx_10_9_arm64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "cfdde2e587f85b80ebe7361f2c4c06ba0e6704d2e0ab198903b3b9f3ef391e33",
"md5": "166427e1566e58eccc9addeace1c721d",
"sha256": "d9fc22839497fae6700e7ecbbcee3fe8c765e1f67af126b6b55fa10ec381500d"
},
"downloads": -1,
"filename": "python_rsync-0.1.1-cp310-cp310-macosx_11_0_x86_64.whl",
"has_sig": false,
"md5_digest": "166427e1566e58eccc9addeace1c721d",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": ">=3.6",
"size": 198156,
"upload_time": "2024-02-03T14:32:23",
"upload_time_iso_8601": "2024-02-03T14:32:23.862972Z",
"url": "https://files.pythonhosted.org/packages/cf/dd/e2e587f85b80ebe7361f2c4c06ba0e6704d2e0ab198903b3b9f3ef391e33/python_rsync-0.1.1-cp310-cp310-macosx_11_0_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "0eb2617f7e2622587a376e1304da14e2ef53df89e19b0023f9a956ff5e1c2e89",
"md5": "654f2d80524d2e64bbea0cb551afd031",
"sha256": "4f63cb2bf61dbaa783eea77f5e36282be259d4f3d4877be4225e92274f8628e3"
},
"downloads": -1,
"filename": "python_rsync-0.1.1-cp310-cp310-manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "654f2d80524d2e64bbea0cb551afd031",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": ">=3.6",
"size": 237672,
"upload_time": "2024-02-03T14:22:34",
"upload_time_iso_8601": "2024-02-03T14:22:34.846349Z",
"url": "https://files.pythonhosted.org/packages/0e/b2/617f7e2622587a376e1304da14e2ef53df89e19b0023f9a956ff5e1c2e89/python_rsync-0.1.1-cp310-cp310-manylinux2014_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "575a514c924a4e87dc2f71cfb8cf4fe7df28938b643d457a23e8ad28387d7d03",
"md5": "8511958c8b66ab3cef46596b5b6703bf",
"sha256": "a57b7db054048672b9d28166c4dd3b7dd048ef94f15b176813487c82de1369c7"
},
"downloads": -1,
"filename": "python_rsync-0.1.1-cp310-cp310-win_amd64.whl",
"has_sig": false,
"md5_digest": "8511958c8b66ab3cef46596b5b6703bf",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": ">=3.6",
"size": 196433,
"upload_time": "2024-02-03T14:24:32",
"upload_time_iso_8601": "2024-02-03T14:24:32.544392Z",
"url": "https://files.pythonhosted.org/packages/57/5a/514c924a4e87dc2f71cfb8cf4fe7df28938b643d457a23e8ad28387d7d03/python_rsync-0.1.1-cp310-cp310-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "769b5ab3f31572bba238932ae66e6fbb308725313fedd2b0248d0a66544e23d9",
"md5": "0b30b017a47742691201202984bb4bef",
"sha256": "887de161c65f78bce9b18e375bea6f2396ae478578d1925723e250bcdd959c43"
},
"downloads": -1,
"filename": "python_rsync-0.1.1-cp311-cp311-macosx_10_9_arm64.whl",
"has_sig": false,
"md5_digest": "0b30b017a47742691201202984bb4bef",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": ">=3.6",
"size": 288783,
"upload_time": "2024-02-03T14:30:58",
"upload_time_iso_8601": "2024-02-03T14:30:58.820882Z",
"url": "https://files.pythonhosted.org/packages/76/9b/5ab3f31572bba238932ae66e6fbb308725313fedd2b0248d0a66544e23d9/python_rsync-0.1.1-cp311-cp311-macosx_10_9_arm64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "4ea2c502f79319249e6356bf05923b129301f550319b00dca3a3ccbc9ee3b5c0",
"md5": "7bb157acaeaa51d59945105c3a4359d9",
"sha256": "f3b7b53abc32c7b04b82be1d599ed4af22a4e2a315c8f7e08c7658c98585f234"
},
"downloads": -1,
"filename": "python_rsync-0.1.1-cp311-cp311-macosx_10_9_x86_64.whl",
"has_sig": false,
"md5_digest": "7bb157acaeaa51d59945105c3a4359d9",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": ">=3.6",
"size": 290765,
"upload_time": "2024-02-03T14:34:46",
"upload_time_iso_8601": "2024-02-03T14:34:46.233709Z",
"url": "https://files.pythonhosted.org/packages/4e/a2/c502f79319249e6356bf05923b129301f550319b00dca3a3ccbc9ee3b5c0/python_rsync-0.1.1-cp311-cp311-macosx_10_9_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "7e71fc0afbd4370cdd18fc12c235cf75899fe0604e3b8de5eb38623348bd3809",
"md5": "4e2a7b414fc9850ac65ac93a39dc1fa6",
"sha256": "da289f5c2e26b6de387a95264c47b6589bcede573e189771d7d207b946dbdd11"
},
"downloads": -1,
"filename": "python_rsync-0.1.1-cp311-cp311-manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "4e2a7b414fc9850ac65ac93a39dc1fa6",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": ">=3.6",
"size": 237039,
"upload_time": "2024-02-03T14:22:37",
"upload_time_iso_8601": "2024-02-03T14:22:37.157887Z",
"url": "https://files.pythonhosted.org/packages/7e/71/fc0afbd4370cdd18fc12c235cf75899fe0604e3b8de5eb38623348bd3809/python_rsync-0.1.1-cp311-cp311-manylinux2014_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "9ca82a8473ff9e32404c7bdb2845cdd87e0da0ffeea29a60387daa24554a88fe",
"md5": "a0a04dc4766e0a694dd8fc7c25b73b42",
"sha256": "6711797c9e1033a38b9d3bfdb96dc0c2f0519b5d3925798187508a07c0a8b75a"
},
"downloads": -1,
"filename": "python_rsync-0.1.1-cp311-cp311-win_amd64.whl",
"has_sig": false,
"md5_digest": "a0a04dc4766e0a694dd8fc7c25b73b42",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": ">=3.6",
"size": 196509,
"upload_time": "2024-02-03T14:24:18",
"upload_time_iso_8601": "2024-02-03T14:24:18.822201Z",
"url": "https://files.pythonhosted.org/packages/9c/a8/2a8473ff9e32404c7bdb2845cdd87e0da0ffeea29a60387daa24554a88fe/python_rsync-0.1.1-cp311-cp311-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "8ff865b3bac0aea18f166d9299346d788426db845b24320917d92b333e3cfefc",
"md5": "a89f08fa104c1fbce35fa826c2ee3cd3",
"sha256": "324be0845430d47f5544ef1be11789fbccf8da981f3122d012a1253a9f4881f8"
},
"downloads": -1,
"filename": "python_rsync-0.1.1-cp312-cp312-macosx_10_9_arm64.whl",
"has_sig": false,
"md5_digest": "a89f08fa104c1fbce35fa826c2ee3cd3",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": ">=3.6",
"size": 289147,
"upload_time": "2024-02-03T14:32:03",
"upload_time_iso_8601": "2024-02-03T14:32:03.573592Z",
"url": "https://files.pythonhosted.org/packages/8f/f8/65b3bac0aea18f166d9299346d788426db845b24320917d92b333e3cfefc/python_rsync-0.1.1-cp312-cp312-macosx_10_9_arm64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "26597031e68da9851cbc145cdb8fa8587fd26201798f5f33dd44d65e7f6e1e62",
"md5": "acec18ae19ac58d89102bf8efa9bb6ba",
"sha256": "254e114a1e5efb712b5201a315eb11b9787fddc12bb857fb5a308b7abb291958"
},
"downloads": -1,
"filename": "python_rsync-0.1.1-cp312-cp312-macosx_10_9_x86_64.whl",
"has_sig": false,
"md5_digest": "acec18ae19ac58d89102bf8efa9bb6ba",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": ">=3.6",
"size": 291265,
"upload_time": "2024-02-03T14:32:00",
"upload_time_iso_8601": "2024-02-03T14:32:00.335466Z",
"url": "https://files.pythonhosted.org/packages/26/59/7031e68da9851cbc145cdb8fa8587fd26201798f5f33dd44d65e7f6e1e62/python_rsync-0.1.1-cp312-cp312-macosx_10_9_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "d71993d5b5d9926ea48f94ad918c4f0edf14012f24ef68d50b3d9d2a9f41512b",
"md5": "78501db1b7a5b3a1ff6946eeb97fcdce",
"sha256": "3d0b2254cb56c22d3be9c3346c5c0e60ca0a7a7ac88147e2f12823ae95a5ad39"
},
"downloads": -1,
"filename": "python_rsync-0.1.1-cp312-cp312-manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "78501db1b7a5b3a1ff6946eeb97fcdce",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": ">=3.6",
"size": 236297,
"upload_time": "2024-02-03T14:22:44",
"upload_time_iso_8601": "2024-02-03T14:22:44.616241Z",
"url": "https://files.pythonhosted.org/packages/d7/19/93d5b5d9926ea48f94ad918c4f0edf14012f24ef68d50b3d9d2a9f41512b/python_rsync-0.1.1-cp312-cp312-manylinux2014_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "776a1a4739bbe2273cac5a763364662a497f59f27bb2c97c43656b4f56c39717",
"md5": "f827bf91c5bb453c1ae9d7802a6b81e7",
"sha256": "5d7c35a0eda93ade6f95ec27f8931b75550db0adfb689a7464ffb7389f3179b9"
},
"downloads": -1,
"filename": "python_rsync-0.1.1-cp312-cp312-win_amd64.whl",
"has_sig": false,
"md5_digest": "f827bf91c5bb453c1ae9d7802a6b81e7",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": ">=3.6",
"size": 196904,
"upload_time": "2024-02-03T14:24:00",
"upload_time_iso_8601": "2024-02-03T14:24:00.553866Z",
"url": "https://files.pythonhosted.org/packages/77/6a/1a4739bbe2273cac5a763364662a497f59f27bb2c97c43656b4f56c39717/python_rsync-0.1.1-cp312-cp312-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "d282ec46687e3a6f0019e60014d9cf19fd4d6df8a9dc5089d794c422406232bf",
"md5": "0e47734f595da7920b2d34347f7a083d",
"sha256": "223e4195a34bc0a5b46ebb82e3b9d71df0f370bf6e035b17714a5e18cf0b2db6"
},
"downloads": -1,
"filename": "python_rsync-0.1.1-cp38-cp38-macosx_11_0_x86_64.whl",
"has_sig": false,
"md5_digest": "0e47734f595da7920b2d34347f7a083d",
"packagetype": "bdist_wheel",
"python_version": "cp38",
"requires_python": ">=3.6",
"size": 198978,
"upload_time": "2024-02-03T14:32:08",
"upload_time_iso_8601": "2024-02-03T14:32:08.323730Z",
"url": "https://files.pythonhosted.org/packages/d2/82/ec46687e3a6f0019e60014d9cf19fd4d6df8a9dc5089d794c422406232bf/python_rsync-0.1.1-cp38-cp38-macosx_11_0_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "be16babef0116153ea4cf0de612844794d32b9dba4775ed2d95ea4320baec377",
"md5": "492c540a88c03631a7905c529229ecd8",
"sha256": "b26ff6f2d6f36cf459800af9519991aad541b890fc2ed3748ae0bc9fb21d6c83"
},
"downloads": -1,
"filename": "python_rsync-0.1.1-cp38-cp38-manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "492c540a88c03631a7905c529229ecd8",
"packagetype": "bdist_wheel",
"python_version": "cp38",
"requires_python": ">=3.6",
"size": 238704,
"upload_time": "2024-02-03T14:22:44",
"upload_time_iso_8601": "2024-02-03T14:22:44.523366Z",
"url": "https://files.pythonhosted.org/packages/be/16/babef0116153ea4cf0de612844794d32b9dba4775ed2d95ea4320baec377/python_rsync-0.1.1-cp38-cp38-manylinux2014_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "e4671742bb3eab33b67e7bf202c908e3f149005b41853951f607123e16c97d68",
"md5": "ee32055b2e1eca164fe1c33c238c8fb2",
"sha256": "7a1e34d61ac9683d625faaf60b9cbc04897115a9315f4e3f7330a1e98ee6d481"
},
"downloads": -1,
"filename": "python_rsync-0.1.1-cp38-cp38-win_amd64.whl",
"has_sig": false,
"md5_digest": "ee32055b2e1eca164fe1c33c238c8fb2",
"packagetype": "bdist_wheel",
"python_version": "cp38",
"requires_python": ">=3.6",
"size": 197213,
"upload_time": "2024-02-03T14:25:40",
"upload_time_iso_8601": "2024-02-03T14:25:40.461728Z",
"url": "https://files.pythonhosted.org/packages/e4/67/1742bb3eab33b67e7bf202c908e3f149005b41853951f607123e16c97d68/python_rsync-0.1.1-cp38-cp38-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "02c7488593bff35184bbfef0c429500f18653c230919544e62edee1c2d6d783d",
"md5": "c76732f436028a70e36438e1ef6d210b",
"sha256": "e36ae8d262cf38878690988c514796bb32b4697bb8b3b2e76cba1794ec4b1814"
},
"downloads": -1,
"filename": "python_rsync-0.1.1-cp39-cp39-macosx_11_0_x86_64.whl",
"has_sig": false,
"md5_digest": "c76732f436028a70e36438e1ef6d210b",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": ">=3.6",
"size": 198561,
"upload_time": "2024-02-03T14:33:11",
"upload_time_iso_8601": "2024-02-03T14:33:11.724815Z",
"url": "https://files.pythonhosted.org/packages/02/c7/488593bff35184bbfef0c429500f18653c230919544e62edee1c2d6d783d/python_rsync-0.1.1-cp39-cp39-macosx_11_0_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "4b583aa12921e6cc847cabfecce166c2f86849069d135c9cf39fe19418924277",
"md5": "d6a4d9efaa7b8c1c7e3a728c13e2302c",
"sha256": "2100575d354b8c0421115138b50440ef72c39963ae2f505515d54ef2f9872ba1"
},
"downloads": -1,
"filename": "python_rsync-0.1.1-cp39-cp39-manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "d6a4d9efaa7b8c1c7e3a728c13e2302c",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": ">=3.6",
"size": 238254,
"upload_time": "2024-02-03T14:22:46",
"upload_time_iso_8601": "2024-02-03T14:22:46.452478Z",
"url": "https://files.pythonhosted.org/packages/4b/58/3aa12921e6cc847cabfecce166c2f86849069d135c9cf39fe19418924277/python_rsync-0.1.1-cp39-cp39-manylinux2014_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "ace5808ea54e2fceb32a4605d6fdc9b02d339c39fa959c1f8a44a60ca61986bd",
"md5": "7728ec6cd37fbab723a76286865b22d2",
"sha256": "45c7ab6a809afe0ac227e438e04ba0739da28b02066b1c5ed85cd9f4981e93e6"
},
"downloads": -1,
"filename": "python_rsync-0.1.1-cp39-cp39-win_amd64.whl",
"has_sig": false,
"md5_digest": "7728ec6cd37fbab723a76286865b22d2",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": ">=3.6",
"size": 196985,
"upload_time": "2024-02-03T14:24:52",
"upload_time_iso_8601": "2024-02-03T14:24:52.071610Z",
"url": "https://files.pythonhosted.org/packages/ac/e5/808ea54e2fceb32a4605d6fdc9b02d339c39fa959c1f8a44a60ca61986bd/python_rsync-0.1.1-cp39-cp39-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "3427891b9627fe15896fccfe3e494b717a00456f84b0a4bade4cf6e480cc8af8",
"md5": "3d514eb00ec652224f385f3e3570ec59",
"sha256": "e271c0a9cf1373318e3c79f864c5f0639cb9a3c2a1ead377261f1bb35ef3f2fb"
},
"downloads": -1,
"filename": "python_rsync-0.1.1-pp310-pypy310_pp73-macosx_10_9_x86_64.whl",
"has_sig": false,
"md5_digest": "3d514eb00ec652224f385f3e3570ec59",
"packagetype": "bdist_wheel",
"python_version": "pp310",
"requires_python": ">=3.6",
"size": 186475,
"upload_time": "2024-02-03T14:34:45",
"upload_time_iso_8601": "2024-02-03T14:34:45.413226Z",
"url": "https://files.pythonhosted.org/packages/34/27/891b9627fe15896fccfe3e494b717a00456f84b0a4bade4cf6e480cc8af8/python_rsync-0.1.1-pp310-pypy310_pp73-macosx_10_9_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "636606623b6bb728b69aef13f28dcc53f1f7fccfea1776861135db3f737c4da8",
"md5": "9aae426fb245950903cb2768f158a187",
"sha256": "bc1623f79800b768db1fe8f32e369f986ab3ef33f4e85178341ced292c2c48ab"
},
"downloads": -1,
"filename": "python_rsync-0.1.1-pp310-pypy310_pp73-macosx_11_0_arm64.whl",
"has_sig": false,
"md5_digest": "9aae426fb245950903cb2768f158a187",
"packagetype": "bdist_wheel",
"python_version": "pp310",
"requires_python": ">=3.6",
"size": 185667,
"upload_time": "2024-02-03T14:33:34",
"upload_time_iso_8601": "2024-02-03T14:33:34.831817Z",
"url": "https://files.pythonhosted.org/packages/63/66/06623b6bb728b69aef13f28dcc53f1f7fccfea1776861135db3f737c4da8/python_rsync-0.1.1-pp310-pypy310_pp73-macosx_11_0_arm64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "d35d008c9e68f7e829680bd2c9034d19116449659db108dbfac01cfaf9e01fbb",
"md5": "7bc48a6c421f2adab01882a242878f48",
"sha256": "00dd8eae8c683f27e958ae529d25db35c2add1c7c433e27175879c00d619aa0e"
},
"downloads": -1,
"filename": "python_rsync-0.1.1-pp310-pypy310_pp73-manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "7bc48a6c421f2adab01882a242878f48",
"packagetype": "bdist_wheel",
"python_version": "pp310",
"requires_python": ">=3.6",
"size": 213494,
"upload_time": "2024-02-03T14:23:08",
"upload_time_iso_8601": "2024-02-03T14:23:08.588638Z",
"url": "https://files.pythonhosted.org/packages/d3/5d/008c9e68f7e829680bd2c9034d19116449659db108dbfac01cfaf9e01fbb/python_rsync-0.1.1-pp310-pypy310_pp73-manylinux2014_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "92d8301e15110d78afa210a8e9a3a197347bbe6a4a2c3c9ac19cbeaef9a73b44",
"md5": "54c722bf93d610a1de1d5fc25c02e8b9",
"sha256": "c6873b99b61f75f6739bc886f22718fd9deab0c298271e496809d5867ccb0e95"
},
"downloads": -1,
"filename": "python_rsync-0.1.1-pp310-pypy310_pp73-win_amd64.whl",
"has_sig": false,
"md5_digest": "54c722bf93d610a1de1d5fc25c02e8b9",
"packagetype": "bdist_wheel",
"python_version": "pp310",
"requires_python": ">=3.6",
"size": 185023,
"upload_time": "2024-02-03T14:25:15",
"upload_time_iso_8601": "2024-02-03T14:25:15.915840Z",
"url": "https://files.pythonhosted.org/packages/92/d8/301e15110d78afa210a8e9a3a197347bbe6a4a2c3c9ac19cbeaef9a73b44/python_rsync-0.1.1-pp310-pypy310_pp73-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "65bf62385278f8da58891f7d8fe2127e6db9f921078b5e13c663abf7cee81d34",
"md5": "dd8f58bcd4305d4629ffa058803118b8",
"sha256": "a2a69fe9c5267b75d7c2d57d635b08731571e866b9de277696dbd8accd077c28"
},
"downloads": -1,
"filename": "python_rsync-0.1.1-pp37-pypy37_pp73-macosx_10_9_x86_64.whl",
"has_sig": false,
"md5_digest": "dd8f58bcd4305d4629ffa058803118b8",
"packagetype": "bdist_wheel",
"python_version": "pp37",
"requires_python": ">=3.6",
"size": 186286,
"upload_time": "2024-02-03T14:34:29",
"upload_time_iso_8601": "2024-02-03T14:34:29.059591Z",
"url": "https://files.pythonhosted.org/packages/65/bf/62385278f8da58891f7d8fe2127e6db9f921078b5e13c663abf7cee81d34/python_rsync-0.1.1-pp37-pypy37_pp73-macosx_10_9_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "b05d70327b9a1d6ed4a53b0b1d083abbe41752219c07bec782447317487760a5",
"md5": "fb5fd02201c735edc7fa6722352d7656",
"sha256": "4967508d3fb96211d38d7d89216bdc03e79b14f70ee96a34f2811687452be256"
},
"downloads": -1,
"filename": "python_rsync-0.1.1-pp37-pypy37_pp73-manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "fb5fd02201c735edc7fa6722352d7656",
"packagetype": "bdist_wheel",
"python_version": "pp37",
"requires_python": ">=3.6",
"size": 215325,
"upload_time": "2024-02-03T14:24:55",
"upload_time_iso_8601": "2024-02-03T14:24:55.685749Z",
"url": "https://files.pythonhosted.org/packages/b0/5d/70327b9a1d6ed4a53b0b1d083abbe41752219c07bec782447317487760a5/python_rsync-0.1.1-pp37-pypy37_pp73-manylinux2014_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "f0211f4abab915de6d4d043fca650d6149e808e161e5690fcd4bb3c236854cc0",
"md5": "8e8b6cdbaa31ba00f9949756c7ddea3b",
"sha256": "05d079bbd639e8bac21a4bc3cbe3f7a86314fa1e10b6fb7343cc557896253716"
},
"downloads": -1,
"filename": "python_rsync-0.1.1-pp37-pypy37_pp73-win_amd64.whl",
"has_sig": false,
"md5_digest": "8e8b6cdbaa31ba00f9949756c7ddea3b",
"packagetype": "bdist_wheel",
"python_version": "pp37",
"requires_python": ">=3.6",
"size": 185010,
"upload_time": "2024-02-03T14:26:36",
"upload_time_iso_8601": "2024-02-03T14:26:36.196567Z",
"url": "https://files.pythonhosted.org/packages/f0/21/1f4abab915de6d4d043fca650d6149e808e161e5690fcd4bb3c236854cc0/python_rsync-0.1.1-pp37-pypy37_pp73-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "76f361eff1d4e41c61a555c2dd1fb3b18f45e82435ee197ab7e4db65279b9ceb",
"md5": "b6ef411a0d33c1119c2f421f77683172",
"sha256": "55bd19d7ee147e3c2484651be335be76b32da64409ef4a1dbca3c37285ecbe00"
},
"downloads": -1,
"filename": "python_rsync-0.1.1-pp38-pypy38_pp73-macosx_10_9_x86_64.whl",
"has_sig": false,
"md5_digest": "b6ef411a0d33c1119c2f421f77683172",
"packagetype": "bdist_wheel",
"python_version": "pp38",
"requires_python": ">=3.6",
"size": 186302,
"upload_time": "2024-02-03T14:36:14",
"upload_time_iso_8601": "2024-02-03T14:36:14.971095Z",
"url": "https://files.pythonhosted.org/packages/76/f3/61eff1d4e41c61a555c2dd1fb3b18f45e82435ee197ab7e4db65279b9ceb/python_rsync-0.1.1-pp38-pypy38_pp73-macosx_10_9_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "355d1088950de340af1b6d46c2fb52c49776a5206c0e74d580aa666ab462bca8",
"md5": "4cff113c556be4611fc47a9b9ef46694",
"sha256": "bd37307b8905f22ac2f64734cb522e58ae04c7dbb20832f233d9e6998e1d8f1a"
},
"downloads": -1,
"filename": "python_rsync-0.1.1-pp38-pypy38_pp73-macosx_11_0_arm64.whl",
"has_sig": false,
"md5_digest": "4cff113c556be4611fc47a9b9ef46694",
"packagetype": "bdist_wheel",
"python_version": "pp38",
"requires_python": ">=3.6",
"size": 185688,
"upload_time": "2024-02-03T14:35:00",
"upload_time_iso_8601": "2024-02-03T14:35:00.301696Z",
"url": "https://files.pythonhosted.org/packages/35/5d/1088950de340af1b6d46c2fb52c49776a5206c0e74d580aa666ab462bca8/python_rsync-0.1.1-pp38-pypy38_pp73-macosx_11_0_arm64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "dbb44c90be04037dabb9c98bbc25585de1500b511caef4f5e69bf629bae98a76",
"md5": "b76a6cf0868d64562c0647491e5394d0",
"sha256": "c175d816e2b42da9cfaf16ce82096b5dc68d5b745be26cbda713acaaf7df5d68"
},
"downloads": -1,
"filename": "python_rsync-0.1.1-pp38-pypy38_pp73-manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "b76a6cf0868d64562c0647491e5394d0",
"packagetype": "bdist_wheel",
"python_version": "pp38",
"requires_python": ">=3.6",
"size": 213251,
"upload_time": "2024-02-03T14:25:42",
"upload_time_iso_8601": "2024-02-03T14:25:42.500659Z",
"url": "https://files.pythonhosted.org/packages/db/b4/4c90be04037dabb9c98bbc25585de1500b511caef4f5e69bf629bae98a76/python_rsync-0.1.1-pp38-pypy38_pp73-manylinux2014_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "f55c8d0c6656295a471cd4fa9ddda964a74384aba7ac6a7e9265613837049368",
"md5": "26bfe88a5a96c31475c8dd2b181548e2",
"sha256": "d6d5e9d8e9bea41a299ec83d53ee04aaad69859f3e5c99a969e77abebb673bd7"
},
"downloads": -1,
"filename": "python_rsync-0.1.1-pp38-pypy38_pp73-win_amd64.whl",
"has_sig": false,
"md5_digest": "26bfe88a5a96c31475c8dd2b181548e2",
"packagetype": "bdist_wheel",
"python_version": "pp38",
"requires_python": ">=3.6",
"size": 185015,
"upload_time": "2024-02-03T14:27:37",
"upload_time_iso_8601": "2024-02-03T14:27:37.884322Z",
"url": "https://files.pythonhosted.org/packages/f5/5c/8d0c6656295a471cd4fa9ddda964a74384aba7ac6a7e9265613837049368/python_rsync-0.1.1-pp38-pypy38_pp73-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "992ceb80e435a8fd417c5473ccfe93aa1b27bfb4c4d4f969ec61920bb26f5cc5",
"md5": "abfefc2bb83a57b072dc28b559ddb4e9",
"sha256": "23f48116c8fc13e71acd47560898ea7487ad4ab3f29987b1a2257d45aab84106"
},
"downloads": -1,
"filename": "python_rsync-0.1.1-pp39-pypy39_pp73-macosx_10_13_x86_64.whl",
"has_sig": false,
"md5_digest": "abfefc2bb83a57b072dc28b559ddb4e9",
"packagetype": "bdist_wheel",
"python_version": "pp39",
"requires_python": ">=3.6",
"size": 186596,
"upload_time": "2024-02-03T14:37:27",
"upload_time_iso_8601": "2024-02-03T14:37:27.956811Z",
"url": "https://files.pythonhosted.org/packages/99/2c/eb80e435a8fd417c5473ccfe93aa1b27bfb4c4d4f969ec61920bb26f5cc5/python_rsync-0.1.1-pp39-pypy39_pp73-macosx_10_13_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "a1c5e86b1ee015ea472fb53e4c902cf8502b2b4eab38c3c85cb1a76c67f03b16",
"md5": "63089f9443723e74011247c1b8b017d0",
"sha256": "754fa53456f9a50e2f35f808b12b62af276e72715d445a01ff9eab058785b873"
},
"downloads": -1,
"filename": "python_rsync-0.1.1-pp39-pypy39_pp73-macosx_11_0_arm64.whl",
"has_sig": false,
"md5_digest": "63089f9443723e74011247c1b8b017d0",
"packagetype": "bdist_wheel",
"python_version": "pp39",
"requires_python": ">=3.6",
"size": 185638,
"upload_time": "2024-02-03T14:36:04",
"upload_time_iso_8601": "2024-02-03T14:36:04.743801Z",
"url": "https://files.pythonhosted.org/packages/a1/c5/e86b1ee015ea472fb53e4c902cf8502b2b4eab38c3c85cb1a76c67f03b16/python_rsync-0.1.1-pp39-pypy39_pp73-macosx_11_0_arm64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "9949ad836efc159010b453d6acedd995bcf3a4a3d539548878a03e817b78dc02",
"md5": "06fe26df5a7c9ae962419b780a155f1b",
"sha256": "a4e678658a2ee3e9ab0240ce92532efa381afbea6887c96a523d49154d2ed26d"
},
"downloads": -1,
"filename": "python_rsync-0.1.1-pp39-pypy39_pp73-manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "06fe26df5a7c9ae962419b780a155f1b",
"packagetype": "bdist_wheel",
"python_version": "pp39",
"requires_python": ">=3.6",
"size": 213505,
"upload_time": "2024-02-03T14:24:15",
"upload_time_iso_8601": "2024-02-03T14:24:15.134107Z",
"url": "https://files.pythonhosted.org/packages/99/49/ad836efc159010b453d6acedd995bcf3a4a3d539548878a03e817b78dc02/python_rsync-0.1.1-pp39-pypy39_pp73-manylinux2014_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "f6267fbf2f2dd20d71e9985ec1c9946e796c719b950af5600ed3b1a0fa3571f0",
"md5": "4423b1c3bf9b009adca301c08df4675d",
"sha256": "506bce184e7601b225d32d068b169601853f59ebdfff5143df11a5a986d29fe7"
},
"downloads": -1,
"filename": "python_rsync-0.1.1-pp39-pypy39_pp73-win_amd64.whl",
"has_sig": false,
"md5_digest": "4423b1c3bf9b009adca301c08df4675d",
"packagetype": "bdist_wheel",
"python_version": "pp39",
"requires_python": ">=3.6",
"size": 185008,
"upload_time": "2024-02-03T14:28:08",
"upload_time_iso_8601": "2024-02-03T14:28:08.315475Z",
"url": "https://files.pythonhosted.org/packages/f6/26/7fbf2f2dd20d71e9985ec1c9946e796c719b950af5600ed3b1a0fa3571f0/python_rsync-0.1.1-pp39-pypy39_pp73-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "a216fd69ac6537af6c56362bfc47758b144d726f3d1076677af2d24378fe9568",
"md5": "3c19b3fc4b71f07a2a38d2c9933e171b",
"sha256": "7dba56070ef379a0d92d8068c83fa99c66ba399fd4e7b7624e10a30ad63ab65f"
},
"downloads": -1,
"filename": "python-rsync-0.1.1.tar.gz",
"has_sig": false,
"md5_digest": "3c19b3fc4b71f07a2a38d2c9933e171b",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.6",
"size": 167980,
"upload_time": "2024-02-03T14:22:37",
"upload_time_iso_8601": "2024-02-03T14:22:37.095398Z",
"url": "https://files.pythonhosted.org/packages/a2/16/fd69ac6537af6c56362bfc47758b144d726f3d1076677af2d24378fe9568/python-rsync-0.1.1.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-02-03 14:22:37",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "synodriver",
"github_project": "pyrsync",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "python-rsync"
}