Skip to main content

Make data processing easy

Project description

pypely Twitter

PyPI GitHub release PyPI download month PyPI download week Lint Code Base GitHub stars GitHub followers PRs Welcome Open in Visual Studio Code codecov

Make your data processing easy - build pipelines in a functional manner. In general this package will not make your code faster or necessarily make you write less code. The purpose of this package is to make you think differently about data processing.

You are encouraged to write your data processing step by step - each step being a function. By naming each step with great awareness and chaining them together you will receive a consise and descriptive scheme of the process. This should give you and your colleagues a nice overview on how the process is structured and makes it easy to understand. Addtionally you can test every small step easily.

Installation

pip install pypely

Usage

Use pypely to chain functions and structure your data processing code in a readable way.

use_pypely = pipeline(
    open_favourite_ide,
    create_new_conda_environment,
    activate_environment,
    install_pypely,
    have_fun_building_pipelines 
)

use_pypely() # -> 🥳

If you want to learn more check out the following links.

Links

Why functional?

Functional programming is a data driven approach to building software - so let's move data to the center of our thinking when building data processing pipelines. To illustrate the idea a little more two analogies will be used.

Railway

The railway analogy used by Scott Wlaschin in this talk is a good way of looking at functional programming. With pypely you can easily build a route from start to finish without caring about the stops in between. :steam_locomotive:

In this analogy you should translate:

  • railway stop to intermediate result
  • railway to tranformative function

Git

git branching might be an even easier analogy:

Our every day work is managed by git and hopefully you don't need to care about special commit hashes etc.. "Shouldn't it be the same for intermediate results in data processing?" :thinking: - "I guess I just care about raw data and processing results".

In this analogy you should translate:

  • git commit to intermediate result
  • you writing & commiting code to tranformative function

Cites by smart people (Who use functional programming)

"Design is separating into things that can be composed." - Rich Hickey

What can I use this for?

This may be the main question that should be answered. This library focuses on structuring data processing, so consider it for dataframes operations. There are two libraries that need to be mentioned:

But :point_up:.. if you want to build your whole application in a functional style, pypely provides you with the basics for this. So get creative 🤩

Contributing

If you want to contribute:

  1. Woohoo! 🥳
  2. Please check out the contribution guide.
  3. See the issues to find a contribution possibility or create one to tell your plan and start a discussion.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pypely-0.2.2.tar.gz (21.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pypely-0.2.2-py3-none-any.whl (22.5 kB view details)

Uploaded Python 3

File details

Details for the file pypely-0.2.2.tar.gz.

File metadata

  • Download URL: pypely-0.2.2.tar.gz
  • Upload date:
  • Size: 21.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.7.1 importlib_metadata/4.8.2 pkginfo/1.8.2 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.9

File hashes

Hashes for pypely-0.2.2.tar.gz
Algorithm Hash digest
SHA256 dd85d116c678a144eb208cc2090dbf1bbf4d8c789f24718bdafc0b58cdc7f808
MD5 5a0de8f766e362b0711c11f12efd3d81
BLAKE2b-256 0636ec76608f392e668adafa003f526062a8f90c9f924b1ea9818946853a822e

See more details on using hashes here.

File details

Details for the file pypely-0.2.2-py3-none-any.whl.

File metadata

  • Download URL: pypely-0.2.2-py3-none-any.whl
  • Upload date:
  • Size: 22.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.7.1 importlib_metadata/4.8.2 pkginfo/1.8.2 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.9

File hashes

Hashes for pypely-0.2.2-py3-none-any.whl
Algorithm Hash digest
SHA256 06eae55626adb09093216e2073a4c8f1d1b8d7ec5973dd920f7cda81c8683586
MD5 be682f731189997442cb219f0de5c76a
BLAKE2b-256 7e783241138fdfa3e53db6c2e949c35e6467e76adc7e922e943566ce3269693b

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page