Skip to main content

Asynchronous library for FTP-based file system operations

Project description

pyftpkit

hooks tests

Asynchronous library for FTP-based file system operations.

Installation

Since this library relies on cURL and PycURL, you are to install the necessary system packages before proceeding with the installation:

# On Ubuntu:
set -ex \
    && sudo apt-get update --yes \
    && sudo apt-get install --yes \
        curl \
        libcurl4-openssl-dev \
        libssl-dev \
    && sudo apt-get clean \
    && sudo rm --recursive --force /var/lib/apt/lists/*

# On Fedora:
set -ex \
    && sudo dnf update --assumeyes \
    && sudo dnf install --assumeyes \
        curl \
        libcurl-devel \
        openssl-devel \
    && sudo dnf clean all

Use pip to install pyftpkit together with its command-line interface by running the following command:

python3 -m pip install --user pyftpkit

Basic usage

Here is a list of examples demonstrating the library's usage across various covered scenarios:

Here is a simple example demonstrating how to upload and download data to and from an FTP server using the command-line interface provided by this library:

# The library provides two main commands -- one for uploading and one for downloading data.
# Since both share the same interface, you can switch between them simply by changing
# the command name in the command-line interface.
docker run \
    --interactive \
    --network host \
    --rm \
    --tty \
    --user "$(id -u):$(id -g)" \  # to avoid permission issues on mounted volumes
    --volume "$(pwd):$(pwd)" \
    --volume /tmp:/tmp \  # this is for the logging system
    --workdir "$(pwd)" \
"docker.io/vladpunko/pyftpkit:${IMAGE_TAG:?err}" upload --src ./examples/* --dst '/'

To simplify configuration, the library automatically loads FTP server settings from a .env file located in the current working directory.

Contributing

Pull requests are welcome. Please open an issue first to discuss what should be changed.

Please make sure to update tests as appropriate.

# Step -- 1.
python3 -m venv .venv && source ./.venv/bin/activate && pip install pre-commit tox

# Step -- 2.
pre-commit install --config .githooks.yml

# Step -- 3.
tox && tox -e lint

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

pyftpkit-0.1.1-cp314-cp314-musllinux_1_2_x86_64.whl (1.2 MB view details)

Uploaded CPython 3.14musllinux: musl 1.2+ x86-64

pyftpkit-0.1.1-cp314-cp314-musllinux_1_2_aarch64.whl (1.1 MB view details)

Uploaded CPython 3.14musllinux: musl 1.2+ ARM64

pyftpkit-0.1.1-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (118.2 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

pyftpkit-0.1.1-cp314-cp314-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl (110.6 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.26+ ARM64manylinux: glibc 2.28+ ARM64

pyftpkit-0.1.1-cp314-cp314-macosx_11_0_arm64.whl (102.4 kB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

pyftpkit-0.1.1-cp313-cp313-musllinux_1_2_x86_64.whl (1.2 MB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ x86-64

pyftpkit-0.1.1-cp313-cp313-musllinux_1_2_aarch64.whl (1.1 MB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ ARM64

pyftpkit-0.1.1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (118.2 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

pyftpkit-0.1.1-cp313-cp313-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl (110.2 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.26+ ARM64manylinux: glibc 2.28+ ARM64

pyftpkit-0.1.1-cp313-cp313-macosx_11_0_arm64.whl (102.2 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

pyftpkit-0.1.1-cp312-cp312-musllinux_1_2_x86_64.whl (1.2 MB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ x86-64

pyftpkit-0.1.1-cp312-cp312-musllinux_1_2_aarch64.whl (1.1 MB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ ARM64

pyftpkit-0.1.1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (117.2 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

pyftpkit-0.1.1-cp312-cp312-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl (109.0 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.26+ ARM64manylinux: glibc 2.28+ ARM64

pyftpkit-0.1.1-cp312-cp312-macosx_11_0_arm64.whl (102.2 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

pyftpkit-0.1.1-cp311-cp311-musllinux_1_2_x86_64.whl (1.2 MB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ x86-64

pyftpkit-0.1.1-cp311-cp311-musllinux_1_2_aarch64.whl (1.1 MB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ ARM64

pyftpkit-0.1.1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (116.2 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

pyftpkit-0.1.1-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl (108.6 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.26+ ARM64manylinux: glibc 2.28+ ARM64

pyftpkit-0.1.1-cp311-cp311-macosx_11_0_arm64.whl (101.2 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

pyftpkit-0.1.1-cp310-cp310-musllinux_1_2_x86_64.whl (1.1 MB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ x86-64

pyftpkit-0.1.1-cp310-cp310-musllinux_1_2_aarch64.whl (1.1 MB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ ARM64

pyftpkit-0.1.1-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (115.0 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

pyftpkit-0.1.1-cp310-cp310-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl (107.4 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.26+ ARM64manylinux: glibc 2.28+ ARM64

pyftpkit-0.1.1-cp310-cp310-macosx_11_0_arm64.whl (99.8 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

File details

Details for the file pyftpkit-0.1.1-cp314-cp314-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for pyftpkit-0.1.1-cp314-cp314-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 0afc3c644e8d108ae8766e98e582580de7b139be17d8c82b7e398ea683bdb846
MD5 b5fcf52dd5e4ad0601a10e44e1c85e00
BLAKE2b-256 e6a5aebba7f6df0f364a566c1b155b2e6a942e1ee2631302a6fa76d9c343ce33

See more details on using hashes here.

File details

Details for the file pyftpkit-0.1.1-cp314-cp314-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for pyftpkit-0.1.1-cp314-cp314-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 ab49eeeeef63ceba8d79e8af132ea381bf35cade43fd48a3e08949505078a722
MD5 6dd315fff41dcb647af8f020d3317e33
BLAKE2b-256 f4360b350a5d6944058a320e9764276b08a2f3a06a4dbcebf034a1fa41b43960

See more details on using hashes here.

File details

Details for the file pyftpkit-0.1.1-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pyftpkit-0.1.1-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 1e903be1ec90c97a20d754b8df83d1e1f3bbf72e48fba68ee05681f0abb9e2f4
MD5 3b82eb5edcf94a2a08ffbccb77001f68
BLAKE2b-256 d13a2faa9e5f5a313ebd4f084d94b3b20527933dc8e87aedc00f9791ffced29c

See more details on using hashes here.

File details

Details for the file pyftpkit-0.1.1-cp314-cp314-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for pyftpkit-0.1.1-cp314-cp314-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 bd6c4ed512cc87d91ad825ad0d0a6a16dc37265eb1c131068c6e4375ac153728
MD5 d5b39bb0fe8d2a98a6fd50285ee1e863
BLAKE2b-256 74f91840eb66315a3edc5138add38150c08d129f6d565d23647fe95d97555ca5

See more details on using hashes here.

File details

Details for the file pyftpkit-0.1.1-cp314-cp314-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyftpkit-0.1.1-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 6a862c2f5405f28648fa39641eaae0e4f20f2b834126ba2f8d410af78a095c1d
MD5 25af81aab38d6d577625fc7f017475a6
BLAKE2b-256 e3d5fcb63ffc460b415c702f1a544b9006defe40bb0a7b51b5d62eac04379959

See more details on using hashes here.

File details

Details for the file pyftpkit-0.1.1-cp313-cp313-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for pyftpkit-0.1.1-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 d2c97897fbd5de3d76cacfd33bed7fa7d62490e52e5c4e3a3397839df3248cb7
MD5 718e561414ca6db0103699d9119726d8
BLAKE2b-256 5c26dd4c9f45884d9277bc65519772fe54e76c5b64dc05188d593fc624d9f957

See more details on using hashes here.

File details

Details for the file pyftpkit-0.1.1-cp313-cp313-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for pyftpkit-0.1.1-cp313-cp313-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 aec4259de9efd09c7ea3db4a8bd6e96fb0439db647fdc3cd9ff509d50e0a94e5
MD5 7c6865561cf0a7f29126766940bb31d8
BLAKE2b-256 6f6fe7a30ac2c372deaaeda1e60aa8f31f12fbadd810bedd905e724519ca2361

See more details on using hashes here.

File details

Details for the file pyftpkit-0.1.1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pyftpkit-0.1.1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 b0f03b25b1370c72e3123f49e1395627d3dedf7b8a274d2f3e49d6d9e223c8db
MD5 cb7e21f7dfe253d21881fd25d912ded8
BLAKE2b-256 48cd52e361ad495d747e635148c2176c462c8b4ecef36c3cbbc638976d0d108a

See more details on using hashes here.

File details

Details for the file pyftpkit-0.1.1-cp313-cp313-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for pyftpkit-0.1.1-cp313-cp313-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 cc1c8efc4549875f171bd8025f75ae6486cfdfb21424162e3f14b1da4204894c
MD5 725d6ed14432fefedc5d58c20adf953a
BLAKE2b-256 1702a4f282044499a87f02d89d212fd8e0c404aeb012ecdb77a6d6ef6394f37e

See more details on using hashes here.

File details

Details for the file pyftpkit-0.1.1-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyftpkit-0.1.1-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 ec4f892b22614dc9b0327e583a71393294ab6a87b18e69d96e382f07f9e0f9a7
MD5 c2d6ee2303029e92eb749ad21c376280
BLAKE2b-256 d3f7c0c9da17975b9f9c883c55dc31e9d75d1036bf1421a2d98be1cdfd9c7fdf

See more details on using hashes here.

File details

Details for the file pyftpkit-0.1.1-cp312-cp312-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for pyftpkit-0.1.1-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 fb0e2e1f95e0e30e5ba236967c862bf64394061bb1058654836e27bb0d3a647a
MD5 6db59bfb4acd2af3a47911ea3b590e5c
BLAKE2b-256 8cc9ba4505a33c76540cd6c72b0ad960514195031e6a858f4ce2a99a7f6a10be

See more details on using hashes here.

File details

Details for the file pyftpkit-0.1.1-cp312-cp312-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for pyftpkit-0.1.1-cp312-cp312-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 8ddc65eef9300dc3973be9183e8b2a281e65f8e6f7dcae3757b39128ae848214
MD5 10395488a417b5eb2641f0103ccd537b
BLAKE2b-256 ef26d6d7233e34befcba115593377b0a5fb24366fc23feb5b53f167e7f47f778

See more details on using hashes here.

File details

Details for the file pyftpkit-0.1.1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pyftpkit-0.1.1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 9b31a3b654febb6560468f2ca630cc84fd1fade8e88b8e626717cfff0c165946
MD5 ea3954fe3ed1acad8ca5cea45264e8b2
BLAKE2b-256 67cf00eb7259dd7db9138a5b3bee28c9f0177a43446d7e9c325d4883abbd6188

See more details on using hashes here.

File details

Details for the file pyftpkit-0.1.1-cp312-cp312-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for pyftpkit-0.1.1-cp312-cp312-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 bf2ab18a6a0a2fd808f6f21618c7122a9d3f9d5668e0d114caebc36cb51601fe
MD5 c4588ffd6e983d4cf317e5c589b1ca89
BLAKE2b-256 7e68623215d2697dbbb24c094b0f719d43b5a5b0d0d70c205205f48a0d0b8aa7

See more details on using hashes here.

File details

Details for the file pyftpkit-0.1.1-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyftpkit-0.1.1-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 725deffd43aeb65654c07bad7e5892306f01b0495224bf251b39dde6150cdb41
MD5 0c920ccd24570f6aacf4b87620467a07
BLAKE2b-256 f421e7b60c51cb4d43107905a9b8ed78c0cf3fb454368955a4e9c54d4aa42007

See more details on using hashes here.

File details

Details for the file pyftpkit-0.1.1-cp311-cp311-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for pyftpkit-0.1.1-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 a2d13ea44c63cd1ee3e62df9dd800cb5f14ffda93b4d7f27c3c534cc0e5013d6
MD5 f3ed0ba38cdf698805fa22c7f6525571
BLAKE2b-256 537676a38c5a2545313c82f7ff7069a18cafc76d539a789b4aeca27d2f7fb5ae

See more details on using hashes here.

File details

Details for the file pyftpkit-0.1.1-cp311-cp311-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for pyftpkit-0.1.1-cp311-cp311-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 3fa16c32a44c737fa9a8f9d6cc7ed95d90299afe30e8ac25379eb0ebb29766bc
MD5 4b646ed8f1b5398a59bc77939f308be7
BLAKE2b-256 6487aafcf67850a24208050b6d186b630d98620aac018b9d1981691d50c9a855

See more details on using hashes here.

File details

Details for the file pyftpkit-0.1.1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pyftpkit-0.1.1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 76138db15e2114038c577415af7cdbd06c1fd60b3dedfaa3569bd976cbce39db
MD5 e97ca406da5ef8b8f87a68f678de1623
BLAKE2b-256 609989f0248afce50f8790e049d2c06ba8f1d9e3eda4517c97e518893c75f276

See more details on using hashes here.

File details

Details for the file pyftpkit-0.1.1-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for pyftpkit-0.1.1-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 fe0d7a55e94b10d06e10fd3e5cfd49e59a2b85926a123aa8ea13905ec47e3983
MD5 91b171f5a32a0e15b5181ff48d50cf87
BLAKE2b-256 02d6ff7f81928fe851360eda0e94ce08ab56f82bfbb683496aa15e5538d56d46

See more details on using hashes here.

File details

Details for the file pyftpkit-0.1.1-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyftpkit-0.1.1-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 3237d6a9c88ed56c8ddf1ae01bdb61312d997c7d40bd86e48f38f10c2485410a
MD5 66c0309887d4e836c6e9f09660cf667c
BLAKE2b-256 5ef85f13709a31ff4c59a5cce18e71ac36f17f321466d1a648a1926ae816580f

See more details on using hashes here.

File details

Details for the file pyftpkit-0.1.1-cp310-cp310-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for pyftpkit-0.1.1-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 6982bc8568a0fcd33f4f545c3bd9576e7c9f8751b484ab00be54f5817518e9ac
MD5 02febda26b66895fde726f1a4d4411b2
BLAKE2b-256 6ffc28279fe0e1ee17d5f3f3deee60c10d90715084a002011dae67c9f6cf1991

See more details on using hashes here.

File details

Details for the file pyftpkit-0.1.1-cp310-cp310-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for pyftpkit-0.1.1-cp310-cp310-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 359f667073b3c7b1a35321edc8595b6a6cf80c6a4dfdb1e53e8405f079c82aa3
MD5 043b37248155485e65eb9a799945a8b8
BLAKE2b-256 6692deacb271b1212d51f28539290bc90c9a40e69e13747b236ece3d1964d556

See more details on using hashes here.

File details

Details for the file pyftpkit-0.1.1-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pyftpkit-0.1.1-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 e3ed4ae95075015bca28855f1bafac1e280b082590f1f7966b84e030b726afec
MD5 31ebba0d503c2eebed9eaf52a7e346fa
BLAKE2b-256 6b575f1f87578826f9edac141a798cf93a0a61079b026069dda05c1a0d2aa8da

See more details on using hashes here.

File details

Details for the file pyftpkit-0.1.1-cp310-cp310-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for pyftpkit-0.1.1-cp310-cp310-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 493228e2cfe087010154fce9e63fea754ed36aeaa0bc68c8314337ae2f2710bd
MD5 3df643c20246f29f8f0a49f9ae4fb78b
BLAKE2b-256 e80510865b923e6619629ead968b3718e35e713cc547414bf8fbbfbccf0e4480

See more details on using hashes here.

File details

Details for the file pyftpkit-0.1.1-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyftpkit-0.1.1-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 be7cb35996d8e7b8c4c47be9d7dcec98e0f225f642dac90f3c4f0da078b3b35f
MD5 36812637b3931b165c8b1a76fe430575
BLAKE2b-256 61fccd97c1a57c1ccf91a5c273fc1906b9dab9e8808fe543bdffaacaa5d3a78b

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page