Skip to main content

Aye Aye

An ETL (Extract, Transform, Load) framework.

Quick install

In the virtual environment for the project you’d like to use Aye Aye in, run:-

pip install ayeaye

Quick start

Use Pipenv to manage a python virtual environment and package management0

pipenv shell
pipenv install ayeaye

Within the environment created by pipenv above, run one of the examples:-

curl "https://raw.githubusercontent.com/Aye-Aye-Dev/AyeAye/master/examples/poisonous_animals.py" \
  --output poisonous_animals.py
mkdir data
curl https://raw.githubusercontent.com/Aye-Aye-Dev/AyeAye/master/examples/data/poisonous_animals.json \
  --output data/poisonous_animals.json
python poisonous_animals.py 

This model takes a small input dataset of animals and collates them by the country they are found. It doesn't write to a dataset, it just outputs a log. The log for this example contains the name of the country and the animals found there.

There are more examples in the Aye-Aye-Recipes git repo.

Overview

An Aye Aye ETL model inherits from ayeaye.Model and uses class level variables to declare connectors to the data it acts on.

Example:-

import ayeaye

class PoisonousAnimals(ayeaye.Model):
    poisonous_animals = ayeaye.Connect(engine_url='json://data/poisonous_animals.json')

When instantiated, self.poisonous_animals will be a dataset that ETL operations can be done with.

The engine_url parameter passed to ayeaye.Connect is specifying the dataset type JSON in this case) and exact location for the data (data/poisonous_animals.json is a relative file path).

Instead of engine_url you could also specify a ref and this uses the data catalogue to look up the engine_url. (TODO this feature is coming soon!). When used this way, ayeaye.Connect is responsible for resolving the ref to an engine_url and passing this to a subclass of ayeaye.connectors.base.DataConnector which can read and maybe write this data type.

Unit tests

Ensure the working directory is the base Aye Aye directory (i.e. the same directory as the Pipfile):

pipenv install --dev
export PYTHONPATH=`pwd`/lib
pipenv run python -m unittest discover

Development version

To use the latest code in editable mode-

pipenv install -e git+https://github.com/Aye-Aye-Dev/AyeAye#egg=ayeaye

When venv is being used, add this line to requirements.txt-

git+https://github.com/Aye-Aye-Dev/AyeAye#egg=ayeaye

Optional extras

Extra dependencies for API usage within Aye-aye models can be installed like this:

pipenv install "ayeaye[api]"
 or multiple
pipenv install "ayeaye[api,aws,compression]"
Label Functionality
api Restful JSON via http(s)
aws File based connectors can use Amazon Web Service S3 file storage
compression On the fly compression for file based connectors

License

Aye Aye is distributed under the terms of the Apache License 2.0 and Copyright Progressive Logic Limit 2021 and onwards.

Metadata

Release files for ayeaye 0.1.7

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

Source distribution (sdist)

Source distribution for ayeaye 0.1.7
File Size Uploaded Provenance
ayeaye-0.1.7.tar.gz 96.3 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for ayeaye 0.1.7
File Interpreter ABI Platform
ayeaye-0.1.7-py3-none-any.whl Python 3 none any Details

Total release size: 192.2 kB

Release files / ayeaye-0.1.7.tar.gz

Download URL ayeaye-0.1.7.tar.gz
Size 96.3 kB
Tags Source
SHA-256 checksum
How to use checksums
5781dce93032aad52bd3522ded7c625ab720e8eb4dcd772767fbcd71f72df355
BLAKE2b-256 checksum
How to use checksums
049b7088e3774b89d8da567aae962c8353114e7868171f7ca44e086b4cc4bcd3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.10.20

Release files / ayeaye-0.1.7-py3-none-any.whl

Download URL ayeaye-0.1.7-py3-none-any.whl
Size 96.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
9eef0679629c056ef53665d76ed4f4916061f61b63eb7b362054df90262bdae2
BLAKE2b-256 checksum
How to use checksums
9718a8d54b63aa333d8a59c23ceb5302c0ce38882362a8aecb42cfc0419f05bc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.10.20

Security for ayeaye 0.1.7

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.

Release history Release notifications | RSS feed

This release

0.1.7 This release

2 release files No provenance

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