Git Product home page Git Product logo

bytewax-elasticsearch's Introduction

Bytewax Connector Template

Bytewax

This project is a template for creating input connectors for Bytewax.

How to use this template

To create a new connector, click "Use this template" and create a new repository. Start creating your connector by customizing pyproject.toml to include any dependencies your connector requires, along with any development dependencies.

For a completed example that uses this template, see https://github.com/bytewax/bytewax-kafka.

Development

This template includes an optional set of development dependencies which can be installed with pip install .[dev]. If you get an error using zsh you may need to quote the path like this - pip install '.[dev]'

This template also contains a configuration for using pre-commit hooks. You can install the pre-commit hooks after running pip install .[dev] with pre-commit install.

Testing

This project comes with an example test directory that uses pytest.

Publishing

Included in this project are GitHub actions that will build and publish your package to PyPI.

Publishing to PyPI using the GitHub Action configured here uses their Trusted Publishing framework. See the docs for configuring your project on PyPI.

This action is triggered when creating a GitHub release from a tagged version.

Documentation

This project contains a GitHub action for building and publishing documentation to GitHub Pages using Sphinx.

To view the documentation locally, run make html from the docs/ folder.

This action is triggered when creating a GitHub release from a tagged version.

Building a connector for Bytewax

Included in this project is a skeleton implementation of PartitionedInput and DynamicInput.

For more information about how to create custom connectors, see our API Docs and the blog post that details building a custom connector for Bytewax.

Important things to keep in mind when building input connectors

Don't call Python's time.sleep

It is important to yield control from your input connector to Bytewax when processing input. Bytewax's runtime is based on a cooperative multitasking model. Unless your code yields execution to Bytewax, no progress will be made in processing items in your dataflow, and important work like storing state for recovery will not take place.

bytewax-elasticsearch's People

Contributors

dependabot[bot] avatar agabel avatar

Watchers

 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.