Skip to main content

Fluent data processing in Python - a chainable stream processing library for expressive data manipulation using method chaining

Project description

flupy

Tests Codestyle Black

Python version PyPI version License Download count


Documentation: https://flupy.readthedocs.io/en/latest/

Source Code: https://github.com/olirice/flupy


Overview

Flupy implements a fluent interface for operating on python iterables. All flupy methods return generators and are evaluated lazily. This allows expressions to transform arbitrary size data in extremely limited memory.

You can think of flupy as a light weight, 0 dependency, pure python alternative to the excellent Apache Spark project.

Setup

Requirements

  • Python 3.10+

Installation

Install flupy with pip:

$ pip install flupy

Library

from itertools import count
from flupy import flu

# Processing an infinite sequence in constant memory
pipeline = (
    flu(count())
    .map(lambda x: x**2)
    .filter(lambda x: x % 517 == 0)
    .chunk(5)
    .take(3)
)

for item in pipeline:
  print(item)

# Returns:
# [0, 267289, 1069156, 2405601, 4276624]
# [6682225, 9622404, 13097161, 17106496, 21650409]
# [26728900, 32341969, 38489616, 45171841, 52388644]

CLI

The flupy command line interface brings the same syntax for lazy piplines to your shell. Inputs to the flu command are auto-populated into a Fluent context named _.

$ flu -h
usage: flu [-h] [-f FILE] [-i [IMPORT [IMPORT ...]]] command

flupy: a fluent interface for python

positional arguments:
  command               flupy command to execute on input

optional arguments:
  -h, --help            show this help message and exit
  -f FILE, --file FILE  path to input file
  -i [IMPORT [IMPORT ...]], --import [IMPORT [IMPORT ...]]
                        modules to import
                        Syntax: <module>:<object>:<alias>
                        Examples:
                                'import os' = '-i os'
                                'import os as op_sys' = '-i os::op_sys'
                                'from os import environ' = '-i os:environ'
                                'from os import environ as env' = '-i os:environ:env'

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

flupy-1.2.4.tar.gz (82.7 kB view details)

Uploaded Source

Built Distribution

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

flupy-1.2.4-py3-none-any.whl (12.7 kB view details)

Uploaded Python 3

File details

Details for the file flupy-1.2.4.tar.gz.

File metadata

  • Download URL: flupy-1.2.4.tar.gz
  • Upload date:
  • Size: 82.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.11

File hashes

Hashes for flupy-1.2.4.tar.gz
Algorithm Hash digest
SHA256 dad657113e4a271a322229dc2926c5154d4a926c6ba8154b604f7e9cdda5c3e6
MD5 8137e9357dab4af76e38450345e0a890
BLAKE2b-256 a1c2b5f13c19d214c1b419aadb1752650caed4f9dc6a978d294213c1d6f776db

See more details on using hashes here.

File details

Details for the file flupy-1.2.4-py3-none-any.whl.

File metadata

  • Download URL: flupy-1.2.4-py3-none-any.whl
  • Upload date:
  • Size: 12.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.11

File hashes

Hashes for flupy-1.2.4-py3-none-any.whl
Algorithm Hash digest
SHA256 231192ded613ebde6d0435e9d1bf0e305cda3a5115be9a142ef368e3f5724f81
MD5 570c00e7cdb20a8a43e5a2860e2b5c86
BLAKE2b-256 f7346014ec505d5ae5183ee51dbb2a00ca1fe4ad3a9dfeef39fc665135df52fb

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