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.0-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.0-cp314-cp314-musllinux_1_2_aarch64.whl (1.1 MB view details)

Uploaded CPython 3.14musllinux: musl 1.2+ ARM64

pyftpkit-0.1.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (117.6 kB view details)

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

pyftpkit-0.1.0-cp314-cp314-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl (109.9 kB view details)

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

pyftpkit-0.1.0-cp314-cp314-macosx_11_0_arm64.whl (101.7 kB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

pyftpkit-0.1.0-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.0-cp313-cp313-musllinux_1_2_aarch64.whl (1.1 MB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ ARM64

pyftpkit-0.1.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (117.5 kB view details)

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

pyftpkit-0.1.0-cp313-cp313-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl (109.5 kB view details)

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

pyftpkit-0.1.0-cp313-cp313-macosx_11_0_arm64.whl (101.5 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

pyftpkit-0.1.0-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.0-cp312-cp312-musllinux_1_2_aarch64.whl (1.1 MB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ ARM64

pyftpkit-0.1.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (116.5 kB view details)

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

pyftpkit-0.1.0-cp312-cp312-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl (108.3 kB view details)

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

pyftpkit-0.1.0-cp312-cp312-macosx_11_0_arm64.whl (101.5 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

pyftpkit-0.1.0-cp311-cp311-musllinux_1_2_x86_64.whl (1.1 MB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ x86-64

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

Uploaded CPython 3.11musllinux: musl 1.2+ ARM64

pyftpkit-0.1.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (115.5 kB view details)

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

pyftpkit-0.1.0-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl (107.9 kB view details)

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

pyftpkit-0.1.0-cp311-cp311-macosx_11_0_arm64.whl (100.5 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

pyftpkit-0.1.0-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.0-cp310-cp310-musllinux_1_2_aarch64.whl (1.1 MB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ ARM64

pyftpkit-0.1.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (114.3 kB view details)

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

pyftpkit-0.1.0-cp310-cp310-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl (106.8 kB view details)

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

pyftpkit-0.1.0-cp310-cp310-macosx_11_0_arm64.whl (99.1 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

File details

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

File metadata

File hashes

Hashes for pyftpkit-0.1.0-cp314-cp314-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 4720d8a58fa5a1311e77647c108a91c37d6121b13f33da5b116fda8e649dbcdc
MD5 b752233b3daac01f2d1e34ecdbf744e6
BLAKE2b-256 e3a842938158ce10a4704a8377f009be2353715ae73dfb69bdd875a573d71010

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyftpkit-0.1.0-cp314-cp314-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 62d901ef4f6aa04a93a11a18a01cb38e4d2a2545c10ef5b9d095f4f2c88c51f3
MD5 ddeaaa4c4549fe1a278233309fe8b6ca
BLAKE2b-256 48714b05ebed8a5cc4f7498c7b501a7af38e9bd85591acc16de33d3ddb6c5da2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyftpkit-0.1.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 fcd06b4083a92752bbf910d452c0b72552a37dd1e83360fc593276519f4b66d9
MD5 7c7dddbc38ff84d4213e940b595b08bb
BLAKE2b-256 5907c3d055c199c9cc5e9a791604c72259f20878ff5a80adc66cba433c544a12

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyftpkit-0.1.0-cp314-cp314-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 7c4caf9d3d11f52e1a7b1bd49172f345687ecc206d1ad1c5b2b16677ba690665
MD5 72427a979fe499946411b30d0993e309
BLAKE2b-256 046090fb818331e70d706b7aa5e8ff13acd4974e7907ac801c279c47ff73867c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyftpkit-0.1.0-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 5029983c9dcd6297e7687ad3422060c955d0281aaa706e71ce49f8076f3574f1
MD5 86b08c163278de6fb91438b63d44e87f
BLAKE2b-256 612c4a5fb42fdc09adc72d9ff7d4f7ad2fb45205a1b154ba09f11de96b5b267c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyftpkit-0.1.0-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 70749d3b52f3632c78d832c77736210f659c0a31ddfeee4aee0acf12cc6740da
MD5 6389e3f5efeb5695b3d510345dba15ec
BLAKE2b-256 9d8a9f2ce943d88b38bb8edaa2c208547a09259c51aed0a73a4f7f74a37e4ade

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyftpkit-0.1.0-cp313-cp313-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 b74c613ffc0c17d8152f39865971119b2cd06444332937cbffe29f9a895ae3e1
MD5 6e9ea002d31ec3035baa8a3ed5d1edf7
BLAKE2b-256 577a8e419b040813dd151a4b64a7472fddef174354066814fac13e1bcb9ab1d0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyftpkit-0.1.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 f4ac241440bfe2bc359861f292c6533bc8a82174f743c21a4c5f95bd71c16eba
MD5 ae826af8be71841ab9b7e5bfd6e88f94
BLAKE2b-256 949226f1fd116721489ff087aa4a0a81cdbbe29524c10726d1329bb709e0ee00

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyftpkit-0.1.0-cp313-cp313-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 aa8c959b62e87141f40b3c7a68dfb938401965338b5a156ca94b7ea91c16900d
MD5 ec0f85520d49a426b7983640e808573a
BLAKE2b-256 2da1d2395a45e7f99c87221e3233189360f00ecc42e01e8cf87db797e2283770

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyftpkit-0.1.0-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 a0dffde91e62e98d6804084bfe500a4451d3f2acd3b759f47c4e51737e7086dc
MD5 c09ca3b30f38c5530d73c20d475fa28b
BLAKE2b-256 a3fd0e8ed3c7b68b36259eeae07eab7f6fc3b91c1cb60003f5c5df292072788b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyftpkit-0.1.0-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 037d23709057ddf97f5d7da2693c592572e6ae886d06378017d40810e6d0229b
MD5 c85501ac67e1257b1bd617625d68b5c0
BLAKE2b-256 db2b8548969c339971363dbe44cf2ae7410ee11d723ae61dd097caa34409866a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyftpkit-0.1.0-cp312-cp312-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 b12fda635de9986d1019532e32552f1cacc4ac1d6057c1dc1449ef5cfd40d029
MD5 fd9105cb6d4d85d365a1a45618c7e670
BLAKE2b-256 3e6a02906634109dd0908121ee2db21fa6143c3f03f0a83135c578ab0eeae553

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyftpkit-0.1.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 2819aefccba233de4b98342a4d1b7a6de2891cfa59b6c4f5e7fa27e1e7eafbe4
MD5 84a757ef440dc315ac31f2686d5f254e
BLAKE2b-256 aac0b26964505b26df2d875067af71eea5dfff161db3049a0383a5e991777578

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyftpkit-0.1.0-cp312-cp312-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 bc45ee14760420a390d72a6fff67caf6250b7e09c7956ee5142c5f5a4720604e
MD5 809d3c7738ec8d7d37b1c97816fbbaca
BLAKE2b-256 6fe43bd2cfd30c62dee04341be26d7da11012382aeb65b836709f19d2327f4df

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyftpkit-0.1.0-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 d099b91f8633ec2eb75269897e79e02a3879f3ab9fec99c3aa828d3072e69fe2
MD5 03a7d1de51f6726054be5c94805da53f
BLAKE2b-256 a01c8ac6fc1047a5d9439a8538e472a4abd13aecffa9ed816f11ca0144fad4bb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyftpkit-0.1.0-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 4f0ab900b86206b889c5efc8b2f9d4b3f010bf220a7f2ac53e1850f5dc448150
MD5 d8c4a33cc1a270c39a16cc184db55264
BLAKE2b-256 eb6bbaa90ffaedf9894a4c03d7d54e2d3951a049d3c2cc0f0657b26980d967e5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyftpkit-0.1.0-cp311-cp311-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 f8c33f7c8f7445dad72588d5da8cfab82ad4803bc9896628fb7bf5574753f4b9
MD5 c156b6e6e17b8f182d2a17e869a4a583
BLAKE2b-256 04537b5dc9e759e3e7d20feef122519d064dc54039b274eb5577086f461eae1b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyftpkit-0.1.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 7719e11dd014544005a06289212dba6adc99886432c70ea7ab3e37daebb37c57
MD5 c5de3722f430ef8cc2d12abae93d8d66
BLAKE2b-256 e137653b7c9bf1e0142ed90e875ee2737a75dbc537a8c59289d9047bb1cade7a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyftpkit-0.1.0-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 16cabcdfca702efcee0cdc148b958fd010d0a2efbfdbcd90eaeca56ae137add1
MD5 e6baee567b7e22455c4b9be8b9c3d11d
BLAKE2b-256 bab528af96068de417861f817d03d1383a4b3ae40f2b5216881b1793f9c59dff

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyftpkit-0.1.0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 b0d9e9c793b5ab9bf69f7fa71de43dccd6eaaf8d02aadabac77386472190c48c
MD5 71d6a283478d08ed139b84fe64e35822
BLAKE2b-256 67f98ba7c5f6494f9986811c84ced4cbffb8a1cca582ca9da6d976ce876a3ddc

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyftpkit-0.1.0-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 fdeb9443b7fecd45150aca35dca016aa5a8ec6f80b7c9c1f60ef52052767f6f1
MD5 8468ac6f11b994a572c397c5d3ce28f0
BLAKE2b-256 ad6b16018affdcb8332b9d46c5a92c93c8d496e5f28dcdf940c4ecfdd670e608

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyftpkit-0.1.0-cp310-cp310-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 5bcf5c302412d91adf0208b987cc467d74df773abac1863e239bd2d8825ee555
MD5 cdaf8d30f525f12457b404e379e72af9
BLAKE2b-256 1f1795b1de9b2ddf25551b4fb57b0799f95d3e8b3f3d6f98a750741f7e9c6b31

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyftpkit-0.1.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 04f018be0e1eed21ebc96f7b582ca2768caf293dbee3698e50f9b85824d301e6
MD5 8216f19ae6830a1725a9599cde6d5ade
BLAKE2b-256 8618d943847eac97398568c4fa421baaa81f1b526c3fc29cdc45ee1b752d1d57

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyftpkit-0.1.0-cp310-cp310-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 9ce34ebeb3b5d73a6cc8e9f8a5b07021d47e881c3f5f276d590bb4750a3acf6c
MD5 3fcffbb53060baf04891028ad39f7426
BLAKE2b-256 c8e821c5b1ba7b3a3bb487b48f0d2187ca0e52cc0e9137d5a1161796e1b92742

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyftpkit-0.1.0-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 7899eda9190d8f9a50664b8d6577a0d3cc6dde26b2e5de336c1671213b936178
MD5 fed0da3b7bb8518bb40ec83b5f8bd3ca
BLAKE2b-256 a14b70ce6b6b8bcccd00823948a67967451925d7dc0fce07ebb7c0c982d00fa2

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