Skip to main content

A flexible ELT pipeline implementation in Python

Project description

navas-etl

Python Version License PyPI Version

A flexible ELT (Extract, Load, Transform) pipeline implementation in Python with support for multiple data sources and destinations.

Features

  • Extract from multiple sources:

    • REST APIs
    • CSV files
    • Databases (via SQLAlchemy)
  • Transform data with:

    • Cleaning operations
    • Aggregations
    • Formatting
  • Load to various targets:

    • Databases
    • CSV files
    • JSON files

Installation

pip install navas-etl

Quick Start

from navas-etl import ApiExtractor, Cleaner, DbLoader

# 1. Extract data from API
extractor = ApiExtractor("https://api.example.com")
data = extractor.extract_to_dataframe("users")

# 2. Transform/Clean the data
cleaner = Cleaner(data)
cleaned_data = (cleaner
               .drop_duplicates()
               .fill_missing(strategy='mean')
               .get_data())

# 3. Load to database
loader = DbLoader("postgresql://user:password@localhost:5432/mydb")
loader.load(cleaned_data, "users_table")

Documentation

Extractors

API Extractor

from navas-etl import ApiExtractor

extractor = ApiExtractor(base_url="https://api.example.com", auth=("user", "pass"))
data = extractor.extract("endpoint", params={"param": "value"})

CSV Extractor

from navas-etl import CsvExtractor

extractor = CsvExtractor()
df = extractor.extract("data.csv")

Database Extractor

from navas-etl import DbExtractor

extractor = DbExtractor("postgresql://user:pass@localhost:5432/db")
df = extractor.extract("SELECT * FROM table")

Transformers

See full documentation for more examples.

Contributing

Contributions are welcome! Please open an issue or submit a pull request.

License

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

Project details


Download files

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

Source Distribution

navas_etl-0.1.2.tar.gz (11.7 MB view details)

Uploaded Source

Built Distribution

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

navas_etl-0.1.2-py3-none-any.whl (13.6 MB view details)

Uploaded Python 3

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