core-ftp#

This project/library provides a comprehensive set of common components and interfaces designed to facilitate and streamline FTP connections, ensuring efficient communication and data transfer…


Python Versions License Pipeline Status Docs Status Security

Documentation Contents#

Features#

SFTP Client

  • Simplified SFTP connection management with context manager support

  • Multiple authentication methods:

    • Password-based authentication

    • SSH private key authentication with optional passphrase

    • Customizable transport and connection parameters

  • Comprehensive file operations:

    • List files and directories with detailed attributes

    • Upload files from local filesystem or file-like objects

    • Download files to local filesystem

    • Delete files and directories

    • Change and retrieve current working directory

  • Built-in error handling with custom exceptions

  • Automatic resource cleanup

ETL Support

  • Abstract base class for SFTP-based ETL tasks

  • Seamless integration with core-etl framework

  • File filtering capabilities:

    • Filter by file extension

    • Filter by filename prefix

    • Time-based filtering with delay options

  • Optional automatic file cleanup after successful processing

Installation#

Install from PyPI using pip:

pip install core-ftp
uv pip install core-ftp     # Or using UV...
pip install -e ".[dev]"     # For development...

Setting Up Environment#

  1. Install required libraries:

pip install --upgrade pip
pip install virtualenv
  1. Create Python virtual environment:

virtualenv --python=python3.12 .venv
  1. Activate the virtual environment:

source .venv/bin/activate

Install packages#

pip install .
pip install -e ".[dev]"

Check tests and coverage#

python manager.py run-tests
python manager.py run-coverage

Contributing#

Contributions are welcome! Please:

  1. Fork the repository

  2. Create a feature branch

  3. Write tests for new functionality

  4. Ensure all tests pass: python manager.py run-tests

  5. Run linting: pylint core_ftp

  6. Run security checks: bandit -r core_ftp

  7. Submit a pull request

License#

This project is licensed under the MIT License. See the LICENSE file for details.

Support#

For questions or support, please open an issue on GitLab or contact the maintainers.

Authors#