<div align="center">
    <br><img src="https://github.com/ThiagoPanini/gluesnake/blob/feature/repo-first-organization/docs/assets/imgs/header-readme.png?raw=true" alt="gluesnake-logo">
</div>

<div align="center">  
  <br>
  
  [![PyPI](https://img.shields.io/pypi/v/gluesnake?color=purple)](https://pypi.org/project/gluesnake/)
  ![PyPI - Downloads](https://img.shields.io/pypi/dm/gluesnake?color=purple)
  ![PyPI - Status](https://img.shields.io/pypi/status/gluesnake?color=purple)
  ![GitHub commit activity](https://img.shields.io/github/commit-activity/m/ThiagoPanini/gluesnake?color=purple)
  ![GitHub Last Commit](https://img.shields.io/github/last-commit/ThiagoPanini/gluesnake?color=purple)
  <br>

  ![CI workflow](https://img.shields.io/github/actions/workflow/status/ThiagoPanini/gluesnake/ci-main.yml?label=ci)
  [![Documentation Status](https://readthedocs.org/projects/gluesnake/badge/?version=latest)](https://gluesnake.readthedocs.io/pt/latest/?badge=latest)
  [![codecov](https://codecov.io/gh/ThiagoPanini/gluesnake/branch/main/graph/badge.svg?token=zSdFO9jkD8)](https://codecov.io/gh/ThiagoPanini/gluesnake)

</div>

## Table of content

- [Table of content](#table-of-content)
- [O que é a biblioteca gluesnake?](#o-que-é-a-biblioteca-gluesnake)
- [Funcionalidades](#funcionalidades)
- [Contatos](#contatos)
- [Referências](#referências)


## O que é a biblioteca gluesnake?

A biblioteca gluesnake proporciona uma forma fácil, rápida e eficiente para o desenvolvimento de aplicações Spark a serem submetidas como jobs Glue na AWS. Consolidando uma série de funcionalidades envolvendo ambas as ferramentas, gluesnake centraliza classes, métodos e funções codificadas em pyspark que visam simplificar ao máximo a jornada de imersão em jobs Glue.

> **Note**
> Agora a biblioteca *gluesnake* possui uma **documentação oficial** no readthedocs! Acesse o [seguinte link](https://gluesnake.readthedocs.io/pt/latest/) e confira detalhes técnicos de usabilidade, exemplos práticos e muito mais!


## Funcionalidades

- 🤖 Simplificação de construção de aplicações Spark através de classes e métodos já codificados
- 🌟 Consolidação de funcionalidades mais comuns envolvendo processos de ETL em pyspark
- ⚙️ Abstração do todo o processo de *setup* de um *job* Glue através de uma linha de código
- 👁️‍🗨️ Aprimoramento do *observability* da aplicação através de mensagens detalhadas de log no CloudWatch
- 🛠️ Tratamento de exceções já embutidos nos métodos da biblioteca

___

## Contatos

- [Thiago Panini - LinkedIn](https://www.linkedin.com/in/thiago-panini/)
- [paninitechlab @ hashnode](https://panini.hashnode.dev/)

___

## Referências

**Python**

- [Python - Packaging Python Projects](https://packaging.python.org/en/latest/tutorials/packaging-projects/)

**Docs**

- [Eduardo Mendes - Live de Python 189 - MkDocs](https://www.youtube.com/watch?v=GW6nAJ1NHUQ&t=2s&ab_channel=EduardoMendes)
- [MkDocs](https://www.mkdocs.org/)
- [pmdown-extensions](https://facelessuser.github.io/pymdown-extensions/)
- [GitHub - MkDocs Themes](https://github.com/mkdocs/mkdocs/wiki/MkDocs-Themes)
- [GitHub - Material Theme for MkDocs](https://github.com/squidfunk/mkdocs-material)
- [Material for MkDocs - Setup](https://squidfunk.github.io/mkdocs-material/setup/changing-the-colors/)

**Github**

- [GitHub Actions - pypa/gh-action-pypi-publish](https://github.com/marketplace/actions/pypi-publish)
- [Medium - Major, Minor and Patch](https://medium.com/fiverr-engineering/major-minor-patch-a5298e2e1798)
- [Medium - Automate PyPI Releases with GitHub Actions](https://medium.com/@VersuS_/automate-pypi-releases-with-github-actions-4c5a9cfe947d)

**Tests**

- [Codecov - Setting Threshold](https://github.com/codecov/codecov-action/issues/554#issuecomment-1261250304)
- [Codecov - About the Codecov YAML](https://docs.codecov.com/docs/codecov-yaml)
- [Codecov - Status Checks](https://docs.codecov.com/docs/commit-status)
- [Codecov - codecov.yml Reference](https://docs.codecov.com/docs/codecovyml-reference)
- [Codecov - Ignore Paths](https://docs.codecov.com/docs/ignoring-paths)