spetlr


Namespetlr JSON
Version 5.1.4 PyPI version JSON
download
home_pagehttps://github.com/spetlr-org/spetlr
SummaryA python ETL libRary (SPETLR) for Databricks powered by Apache SPark.
upload_time2024-04-22 06:44:55
maintainerNone
docs_urlNone
authorSpetlr.Org
requires_python>=3.8
licenseNone
keywords databricks pyspark
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # spetlr

A python ETL libRary (SPETLR) for Databricks powered by Apache SPark.

Visit SPETLR official webpage: [https://spetlr.com/](https://spetlr.com/)

# NEWS

Support for LTS9.1 is ending. [See the issue for discussions.](https://github.com/spetlr-org/spetlr/issues/61)

TransformerNC class will be removed permanently. [Follow the PR.](https://github.com/spetlr-org/spetlr/pull/82)

# Table of Contents

- [Description](#description)
- [Important Notes](#important-notes)
- [Installation](#installation)
- [Development Notes](#development-notes)
- [Testing](#testing)
- [General Project Info](#general-project-info)
- [Contributing](#contributing)
- [Build Status](#build-status)
- [Releases](#releases)
- [Requirements](#requirements-and-dependencies)
- [Contact](#contact)

# Description

SPETLR has a lot of great tools for working with ETL in Databricks. But to make it easy for you to consider why you need
SPETLR here is a list of the core features:

* ETL framework: A common ETL framework that enables reusable transformations in an object-oriented manner. Standardized
  structures facilitate cooperation in large teams.

* Integration testing: A framework for creating test databases and tables before deploying to production in order to
  ensure reliable and stable data platforms. An additional layer of data abstraction allows full integration testing.

* Handlers: Standard connectors with commonly used options reduce boilerplate.

For more information, visit SPETLR official webpage: [https://spetlr.com/](https://spetlr.com/)

# Important Notes

This package can not be run or tested without access to `pyspark`.
However, installing `pyspark` as part of our installer gave issues when
other versions of `pyspark` were needed. Hence we took out the dependency
from our installer.

# Installation

Install SPETLR from PyPI:
[![PyPI version](https://badge.fury.io/py/spetlr.svg)](https://pypi.org/project/spetlr/)
[![PyPI](https://img.shields.io/pypi/dm/spetlr)](https://pypi.org/project/spetlr/)

```    
pip install spetlr
```

# Development Notes

To prepare for development, please install these additional requirements:

- Java 8
- `pip install -r test_requirements.txt`

Then install the package locally

    python setup.py develop

## Testing

### Local tests

After installing the dev-requirements, execute tests by running:

    pytest tests

These tests are located in the `./tests/local` folder and only require a Python interpreter. Pull requests will not be
accepted if these tests do not pass. If you add new features, please include corresponding tests.

### Cluster tests

Tests in the `./tests/cluster` folder are designed to run on a Databricks cluster.
The [Pre-integration Test](https://github.com/spetlr-org/spetlr/blob/main/.github/workflows/pre-integration.yml)
utilizes Azure Resource deployment - and can only be run by the spetlr-org admins.

To deploy the necessary Azure resources to your own Azure Tenant, run the following command:

```powershell
.\.github\deploy\deploy.ps1 -uniqueRunId "yourUniqueId"
```
Be aware that the applied name for *uniqueRunId* should only contain lower case and numbers, and its length should not
exceed 12 characters.

Afterward, execute the following commands:

```powershell 
.\.github\submit\build.ps1
.\.github\submit\submit_test_job.ps1
```

# General Project Info

[![Github top language](https://img.shields.io/github/languages/top/spetlr-org/spetlr)](https://github.com/spetlr-org/spetlr)
[![Github stars](https://img.shields.io/github/stars/spetlr-org/spetlr)](https://github.com/spetlr-org/spetlr)
[![Github forks](https://img.shields.io/github/forks/spetlr-org/spetlr)](https://github.com/spetlr-org/spetlr)
[![Github size](https://img.shields.io/github/repo-size/spetlr-org/spetlr)](https://github.com/spetlr-org/spetlr)
[![Issues Open](https://img.shields.io/github/issues/spetlr-org/spetlr.svg?logo=github)](https://github.com/spetlr-org/spetlr/issues)
[![PyPI spetlr badge](https://img.shields.io/pypi/v/spetlr)](https://pypi.org/project/spetlr/)

# Contributing

Feel free to contribute to SPETLR. Any contributions are appreciated - not only new features, but also if you find a way
to improve SPETLR.

If you have a suggestion that can enhance SPETLR, please fork the repository and create a pull request. Alternatively,
you can open an issue with the "enhancement" tag.

1. Fork the Project
2. Create your Feature Branch (`git checkout -b feature/NewSPETLRFeature`)
3. Commit your Changes (`git commit -m 'Add some SEPTLRFeature'`)
4. Push to the Branch (`git push origin feature/NewSPETLRFeature`)
5. Open a Pull Request

# Build Status

[![Post-Integration](https://github.com/spetlr-org/spetlr/actions/workflows/post-integration.yml/badge.svg)](https://github.com/spetlr-org/spetlr/actions/workflows/post-integration.yml)

# Releases

Releases to PyPI is an Github Action which needs to be manually triggered.

[![Release](https://github.com/spetlr-org/spetlr/actions/workflows/release.yml/badge.svg)](https://github.com/spetlr-org/spetlr/actions/workflows/release.yml)
[![PyPI spetlr badge](https://img.shields.io/pypi/v/spetlr)](https://pypi.org/project/spetlr/)


# Requirements and dependencies
The library has three txt-files at the root of the repo. These files defines three levels of requirements:
- `requirements_install.txt` - this file contains the required libraries to be able to install spetlr.
- `requirements_test.txt` - libraries required to run unit- and integration tests
- `requirements_dev.txt` - libraries required in the development process in order to contribute to the repo

All libraries and their dependencies are added with a fixed version to the configuration file `setup.cfg` using the defined requirements from `requirements_install.txt`.

To __upgrade__ the the dependencies in the `setup.cfg` file do the following:

1. Create a new branch
2. Run `upgrade_requirements.ps1` in your terminal
3. Commit the changes the script has made to the cfg file. If there are no changes, everything is up to date.
4. The PR runs all tests and ensure that the library is compliant with any updates

Note that if it is desired to upgrade a dependency, but not to its newest version, it is possible to set the desired version in the `requirements_install.txt`, then this will be respected by the upgrade script.

# Contact

For any inquiries, please use the [SPETLR Discord Server](https://discord.gg/p9bzqGybVW).



            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/spetlr-org/spetlr",
    "name": "spetlr",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.8",
    "maintainer_email": null,
    "keywords": "databricks, pyspark",
    "author": "Spetlr.Org",
    "author_email": "spetlr.org@gmail.com",
    "download_url": "https://files.pythonhosted.org/packages/5c/c3/2e6f250a619328ad4f13aec1a8fb9948336550a8e9bb85545083d6e02e07/spetlr-5.1.4.tar.gz",
    "platform": null,
    "description": "# spetlr\n\nA python ETL libRary (SPETLR) for Databricks powered by Apache SPark.\n\nVisit SPETLR official webpage: [https://spetlr.com/](https://spetlr.com/)\n\n# NEWS\n\nSupport for LTS9.1 is ending. [See the issue for discussions.](https://github.com/spetlr-org/spetlr/issues/61)\n\nTransformerNC class will be removed permanently. [Follow the PR.](https://github.com/spetlr-org/spetlr/pull/82)\n\n# Table of Contents\n\n- [Description](#description)\n- [Important Notes](#important-notes)\n- [Installation](#installation)\n- [Development Notes](#development-notes)\n- [Testing](#testing)\n- [General Project Info](#general-project-info)\n- [Contributing](#contributing)\n- [Build Status](#build-status)\n- [Releases](#releases)\n- [Requirements](#requirements-and-dependencies)\n- [Contact](#contact)\n\n# Description\n\nSPETLR has a lot of great tools for working with ETL in Databricks. But to make it easy for you to consider why you need\nSPETLR here is a list of the core features:\n\n* ETL framework: A common ETL framework that enables reusable transformations in an object-oriented manner. Standardized\n  structures facilitate cooperation in large teams.\n\n* Integration testing: A framework for creating test databases and tables before deploying to production in order to\n  ensure reliable and stable data platforms. An additional layer of data abstraction allows full integration testing.\n\n* Handlers: Standard connectors with commonly used options reduce boilerplate.\n\nFor more information, visit SPETLR official webpage: [https://spetlr.com/](https://spetlr.com/)\n\n# Important Notes\n\nThis package can not be run or tested without access to `pyspark`.\nHowever, installing `pyspark` as part of our installer gave issues when\nother versions of `pyspark` were needed. Hence we took out the dependency\nfrom our installer.\n\n# Installation\n\nInstall SPETLR from PyPI:\n[![PyPI version](https://badge.fury.io/py/spetlr.svg)](https://pypi.org/project/spetlr/)\n[![PyPI](https://img.shields.io/pypi/dm/spetlr)](https://pypi.org/project/spetlr/)\n\n```    \npip install spetlr\n```\n\n# Development Notes\n\nTo prepare for development, please install these additional requirements:\n\n- Java 8\n- `pip install -r test_requirements.txt`\n\nThen install the package locally\n\n    python setup.py develop\n\n## Testing\n\n### Local tests\n\nAfter installing the dev-requirements, execute tests by running:\n\n    pytest tests\n\nThese tests are located in the `./tests/local` folder and only require a Python interpreter. Pull requests will not be\naccepted if these tests do not pass. If you add new features, please include corresponding tests.\n\n### Cluster tests\n\nTests in the `./tests/cluster` folder are designed to run on a Databricks cluster.\nThe [Pre-integration Test](https://github.com/spetlr-org/spetlr/blob/main/.github/workflows/pre-integration.yml)\nutilizes Azure Resource deployment - and can only be run by the spetlr-org admins.\n\nTo deploy the necessary Azure resources to your own Azure Tenant, run the following command:\n\n```powershell\n.\\.github\\deploy\\deploy.ps1 -uniqueRunId \"yourUniqueId\"\n```\nBe aware that the applied name for *uniqueRunId* should only contain lower case and numbers, and its length should not\nexceed 12 characters.\n\nAfterward, execute the following commands:\n\n```powershell \n.\\.github\\submit\\build.ps1\n.\\.github\\submit\\submit_test_job.ps1\n```\n\n# General Project Info\n\n[![Github top language](https://img.shields.io/github/languages/top/spetlr-org/spetlr)](https://github.com/spetlr-org/spetlr)\n[![Github stars](https://img.shields.io/github/stars/spetlr-org/spetlr)](https://github.com/spetlr-org/spetlr)\n[![Github forks](https://img.shields.io/github/forks/spetlr-org/spetlr)](https://github.com/spetlr-org/spetlr)\n[![Github size](https://img.shields.io/github/repo-size/spetlr-org/spetlr)](https://github.com/spetlr-org/spetlr)\n[![Issues Open](https://img.shields.io/github/issues/spetlr-org/spetlr.svg?logo=github)](https://github.com/spetlr-org/spetlr/issues)\n[![PyPI spetlr badge](https://img.shields.io/pypi/v/spetlr)](https://pypi.org/project/spetlr/)\n\n# Contributing\n\nFeel free to contribute to SPETLR. Any contributions are appreciated - not only new features, but also if you find a way\nto improve SPETLR.\n\nIf you have a suggestion that can enhance SPETLR, please fork the repository and create a pull request. Alternatively,\nyou can open an issue with the \"enhancement\" tag.\n\n1. Fork the Project\n2. Create your Feature Branch (`git checkout -b feature/NewSPETLRFeature`)\n3. Commit your Changes (`git commit -m 'Add some SEPTLRFeature'`)\n4. Push to the Branch (`git push origin feature/NewSPETLRFeature`)\n5. Open a Pull Request\n\n# Build Status\n\n[![Post-Integration](https://github.com/spetlr-org/spetlr/actions/workflows/post-integration.yml/badge.svg)](https://github.com/spetlr-org/spetlr/actions/workflows/post-integration.yml)\n\n# Releases\n\nReleases to PyPI is an Github Action which needs to be manually triggered.\n\n[![Release](https://github.com/spetlr-org/spetlr/actions/workflows/release.yml/badge.svg)](https://github.com/spetlr-org/spetlr/actions/workflows/release.yml)\n[![PyPI spetlr badge](https://img.shields.io/pypi/v/spetlr)](https://pypi.org/project/spetlr/)\n\n\n# Requirements and dependencies\nThe library has three txt-files at the root of the repo. These files defines three levels of requirements:\n- `requirements_install.txt` - this file contains the required libraries to be able to install spetlr.\n- `requirements_test.txt` - libraries required to run unit- and integration tests\n- `requirements_dev.txt` - libraries required in the development process in order to contribute to the repo\n\nAll libraries and their dependencies are added with a fixed version to the configuration file `setup.cfg` using the defined requirements from `requirements_install.txt`.\n\nTo __upgrade__ the the dependencies in the `setup.cfg` file do the following:\n\n1. Create a new branch\n2. Run `upgrade_requirements.ps1` in your terminal\n3. Commit the changes the script has made to the cfg file. If there are no changes, everything is up to date.\n4. The PR runs all tests and ensure that the library is compliant with any updates\n\nNote that if it is desired to upgrade a dependency, but not to its newest version, it is possible to set the desired version in the `requirements_install.txt`, then this will be respected by the upgrade script.\n\n# Contact\n\nFor any inquiries, please use the [SPETLR Discord Server](https://discord.gg/p9bzqGybVW).\n\n\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "A python ETL libRary (SPETLR) for Databricks powered by Apache SPark.",
    "version": "5.1.4",
    "project_urls": {
        "Bug Reports": "https://github.com/spetlr-org/spetlr/issues",
        "Documentation": "https://github.com/spetlr-org/spetlr",
        "Homepage": "https://github.com/spetlr-org/spetlr",
        "Source Code": "https://github.com/spetlr-org/spetlr"
    },
    "split_keywords": [
        "databricks",
        " pyspark"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "f41026a2d9946be4c72b726374a53fe0b3df11aa0246cd710285d2928f919da1",
                "md5": "cb932686df97023bc80a26fe41702351",
                "sha256": "0f17627c3c4750dc79744e6496f336831e65069d4db4345b1947c79bd69e26d6"
            },
            "downloads": -1,
            "filename": "spetlr-5.1.4-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "cb932686df97023bc80a26fe41702351",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.8",
            "size": 157527,
            "upload_time": "2024-04-22T06:44:52",
            "upload_time_iso_8601": "2024-04-22T06:44:52.919479Z",
            "url": "https://files.pythonhosted.org/packages/f4/10/26a2d9946be4c72b726374a53fe0b3df11aa0246cd710285d2928f919da1/spetlr-5.1.4-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "5cc32e6f250a619328ad4f13aec1a8fb9948336550a8e9bb85545083d6e02e07",
                "md5": "0d6986d81fbe75ea2bd146222ae44ac2",
                "sha256": "6bf303cd9bb53d70885977197b2a58441fa1426bcaea085ea793671cfc588077"
            },
            "downloads": -1,
            "filename": "spetlr-5.1.4.tar.gz",
            "has_sig": false,
            "md5_digest": "0d6986d81fbe75ea2bd146222ae44ac2",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.8",
            "size": 171431,
            "upload_time": "2024-04-22T06:44:55",
            "upload_time_iso_8601": "2024-04-22T06:44:55.203657Z",
            "url": "https://files.pythonhosted.org/packages/5c/c3/2e6f250a619328ad4f13aec1a8fb9948336550a8e9bb85545083d6e02e07/spetlr-5.1.4.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-04-22 06:44:55",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "spetlr-org",
    "github_project": "spetlr",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "spetlr"
}
        
Elapsed time: 0.25423s