Giter Site home page Giter Site logo

abhishekbhakat / astronomer-providers Goto Github PK

View Code? Open in Web Editor NEW

This project forked from astronomer/astronomer-providers

0.0 0.0 0.0 2.14 MB

Airflow Providers containing Deferrable Operators & Sensors from Astronomer

Home Page: https://astronomer-providers.rtfd.io/

License: Apache License 2.0

Shell 1.14% Python 98.42% Makefile 0.40% Dockerfile 0.05%

astronomer-providers's Introduction

Astronomer Providers

PyPI Version

PyPI - Python Version

PyPI - License

Code style: black

CodeCov

Documentation Status

Security: bandit

Apache Airflow Providers containing Deferrable Operators & Sensors from Astronomer.

Installation

Install and update using pip:

pip install astronomer-providers

This only installs dependencies for core provider. To install all dependencies, run:

pip install 'astronomer-providers[all]'

To only install the dependencies for a specific provider, specify the integration name as extra argument, example to install Kubernetes provider dependencies, run:

pip install 'astronomer-providers[cncf.kubernetes]'

Extras

Extra Name Installation Command Dependencies
all pip install 'astronomer-providers[all]' All
amazon pip install 'astronomer-providers[amazon]' Amazon
apache.hive pip install 'astronomer-providers[apache.hive]' Apache Hive
apache.livy pip install 'astronomer-providers[apache.livy]' Apache Livy
cncf.kubernetes pip install 'astronomer-providers[cncf.kubernetes]' Cncf Kubernetes
databricks pip install 'astronomer-providers[databricks]' Databricks
dbt.cloud pip install 'astronomer-providers[dbt.cloud]' Dbt Cloud
google pip install 'astronomer-providers[google]' Google
http pip install 'astronomer-providers[http]' Http
microsoft.azure pip install 'astronomer-providers[microsoft.azure]' Microsoft Azure
openlineage pip install 'astronomer-providers[openlineage]' Openlineage
sftp pip install 'astronomer-providers[sftp]' Sftp
snowflake pip install 'astronomer-providers[snowflake]' Snowflake

Example Usage

This repo is structured same as the Apache Airflow's source code, so for example if you want to import Async operators, you can import it as follows:

from astronomer.providers.amazon.aws.sensors.s3 import S3KeySensorAsync as S3KeySensor

waiting_for_s3_key = S3KeySensor(
    task_id="waiting_for_s3_key",
    bucket_key="sample_key.txt",
    wildcard_match=False,
    bucket_name="sample-bucket",
)

Example DAGs for each provider is within the respective provider's folder. For example, the Kubernetes provider's DAGs are within the astronomer/providers/cncf/kubernetes/example_dags folder.

Principle

We will only create Async operators for the "sync-version" of operators that do some level of polling (take more than a few seconds to complete).

For example, we won’t create an async Operator for a BigQueryCreateEmptyTableOperator but will create one for BigQueryInsertJobOperator that actually runs queries and can take hours in the worst case for task completion.

To create async operators, we need to inherit from the corresponding airflow sync operators. If sync version isn't available, then inherit from airflow BaseOperator.

To create async sensors, we need to inherit from the corresponding sync sensors. If sync version isn't available, then inherit from airflow BaseSensorOperator.

Changelog

We follow Semantic Versioning for releases. Check CHANGELOG.rst for the latest changes.

Contributing Guide

All contributions, bug reports, bug fixes, documentation improvements, enhancements, and ideas are welcome.

A detailed overview on how to contribute can be found in the Contributing Guide.

As contributors and maintainers to this project, you are expected to abide by the Contributor Code of Conduct.

Goals for the project

  • Our focus is on the speed of iteration and development in this stage of the project and so we want to be able to quickly iterate with our community members and customers and cut releases as necessary
  • Airflow Providers are separate packages from the core apache-airflow package and we would like to avoid further bloating the Airflow repo
  • We want users and the community to be able to easily track features and the roadmap for individual providers that we develop
  • We would love to see the Airflow community members create, maintain and share their providers to build an Ecosystem of Providers.

Limitations

  • In Airflow sensors have a param mode which can be poke and reschedule. In async sensors, this param has no usage since tasks gets deferred to Triggerer.

License

Apache License 2.0

astronomer-providers's People

Contributors

pankajastro avatar pankajkoti avatar kaxil avatar lee-w avatar rajaths010494 avatar bharanidharan14 avatar phanikumv avatar pre-commit-ci[bot] avatar vatsrahul1001 avatar sunank200 avatar andrewgodwin avatar github-actions[bot] avatar jarfgit avatar dstandish avatar josh-fell avatar park-peter avatar abhishekbhakat avatar basph avatar thecodyrich avatar shr3kst3r avatar feluelle avatar erdos2n avatar tanelk avatar tseruga avatar raphaelauv avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.