跳转到主要内容

重新连接FTP客户端

项目描述

reonnecting_ftp

Continuous integration https://coveralls.io/repos/github/Parquery/reconnecting-ftp/badge.svg?branch=master PyPI - version PyPI - Python Version

reconnecting_ftp 提供了一个封装 ftplib.FTP 的 FTP 客户端。如果它被断开连接,它会自动重新连接到服务器,并记住最后记录的工作目录。

我们发现对于运行时间较长、需要反复迭代FTP服务器上文件的脚本,重新连接特别重要。

由于结果需要是原子的,我们必须将结果从 ftplib.FTP.mlsd (目录条目的可迭代)转换为目录条目的显式列表。虽然这提供了原子性(您迭代的内容将在单个连接中完成),但所有目录条目都需要存储在内存中。

此外,我们还提供了一个在原始 ftplib.FTP 客户端中缺失的 mlst FTP 命令的实现。

使用方法

import reconnecting_ftp

with reconnecting_ftp.Client(hostname="some-host.com", port=21, user="some-user", password="some-password") as ftp:
    # change working directory
    ftp.cwd(dirname='/some-dir/some-subdir')

    # you can execute here all the commands as provided in ftplib.FTP. If the connection failed, the command will
    # be retried while it succeeds or the maximum number of retries haven been exhausted..

    # MLST the file
    pth, entry = ftp.mlst(filename='some-file.txt')

    # iterate over a directory entries atomically
    for name, entry_dict in ftp.mlsd(path=parent_path):
        # do something
        pass

安装

  • 创建虚拟环境

python3 -m venv venv3
  • 激活它

source venv3/bin/activate
  • 使用pip安装reconnecting_ftp

pip3 install reconnecting_ftp

开发

  • 检出仓库。

  • 在仓库根目录下创建虚拟环境

python3 -m venv venv3
  • 激活虚拟环境

source venv3/bin/activate
  • 安装开发依赖项

pip3 install -e .[dev]
  • 我们提供一组预提交检查,用于代码格式化、代码检查和运行单元测试。请从激活的虚拟环境和开发依赖项中本地运行它们

./precommit.py
  • 预提交脚本还可以自动格式化代码

./precommit.py  --overwrite

版本控制

我们遵循语义版本控制。版本X.Y.Z表示

  • X是主版本(不向后兼容),

  • Y是次版本(向后兼容),

  • Z是修补版本(向后兼容的bug修复)。

项目详情


下载文件

下载适合您平台的应用程序。如果您不确定要选择哪一个,请了解有关安装包的更多信息。

源代码分发

reconnecting_ftp-1.1.2.tar.gz (7.8 kB 查看哈希值)

源代码