Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

rdc.etl is an Extract Transform Load (ETL) toolkit for python 2.7+ (no python 3 support yet). It gives you all the tools needed to create complex data integration jobs from simple atomic io-connected transformation blocks.

Build Status

Documentation

Full documentation for rdc.etl on ReadTheDocs.

This is a work in progress, the 1.0 API may change until 1.0 is released.

Example usage

>>> # Sample data extract transformation.
>>> # Use hardcoded data here for sample purpose.
>>> from rdc.etl.transform.extract import Extract
>>> @Extract
... def sample_extract():
...     yield {'first_name': 'John', 'last_name': 'Doe', }
...     yield {'first_name': 'Jane', 'last_name': 'Dae', }
>>> # Sample data transformation.
>>> from rdc.etl.transform import Transform
>>> @Transform
... def sample_transform(hash, channel):
...     hash['last_name'] = hash['last_name'].upper()
...     hash['initials'] = '{0}.{1}.'.format(hash['first_name'][0], hash['last_name'][0]).upper()
...     yield hash
>>> # Sample load. This is only a screen log for sample purpose.
>>> from rdc.etl.transform.util import Log
>>> sample_load_to_screen = Log()
>>> # Tie everything together, then run!
>>> from rdc.etl.harness.threaded import ThreadedHarness
>>> job = ThreadedHarness()
>>> job.add_chain(sample_extract, sample_transform, sample_load_to_screen)
>>> job()

Running the Test Suite

pip install nose
make test

Release Notes

1.0.0a6

  • Database transformations: now present in rdc.etl.extra subpackages, to avoid mixing core API and sugar box.

  • Database transformations: more flexibility in what is allowed (insert/update).

  • Better standard compliance (thanks #python)

  • Harness is now called Job, for simplicity sake. Old name will be kept too (BC).

  • XMLMap enhancements.

  • HTTP status interface (early minimalistic version).

  • Changed examples name to avoid import hell.

  • Less hackish http reader, better unicode support (@jmorel).

  • PasteScript can now be used to generate an empty working ETL project.

  • FileProxy based download manager.

  • Minor fixes.

1.0.0a5

  • Status: console now has amazing ansi, detailed io statistics, overall stats (memory, time) added, experimental http status, db stats for database load.

  • API stabilization, cleanup and simplification towards 1.0.0.

  • Simple handling of KeyboardInterrupt: CTRL-C will now exit the running job instead of making your process stale.

  • Maps simplification.

  • Enhancements to various transform classes: load.database.DatabaseLoad, filter.Filter, map.xml.XmlMap, util.Log, join.database.DatabaseJoin

  • New transforms: util.Limit

  • Various bugfixes.

  • Minor enhancements: custom names in transforms, some more tests.

  • Moved repository to github.com/rdcli/etl.

Contributing

I’m Romain Dorgueil.

rdc.etl is on GitHub.

Get in touch, via GitHub or otherwise, if you’ve got something to contribute, it’d be most welcome!

If you feel overwhelmingly grateful, or want to support the project you can tip me on Gittip.

Metadata

Release files for rdc.etl 1.0.0a6

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for rdc.etl 1.0.0a6
File Size Uploaded Provenance
rdc.etl-1.0.0a6.tar.gz 37.1 kB Without provenance Details

Release files / rdc.etl-1.0.0a6.tar.gz

Download URL rdc.etl-1.0.0a6.tar.gz
Size 37.1 kB
Tags Source
SHA-256 checksum
How to use checksums
e855c2f3d44928f3b19683485c677c4e6ef8f1a0f2d87f444a4db8ad2e8051d6
BLAKE2b-256 checksum
How to use checksums
ebfcdcbd5db525cd16d3e4b9c88a3b2c02654f2140596f0c62e2f6978c39527e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Security for rdc.etl 1.0.0a6

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page