Skip to main content

Custom pipes

Project description

Custom pipes

Description

This pack has some custom pipes to work with the pipe package.

This package is compatible with python 3.

Pipes

reduce

list1 = [1, 2, 3, 4, 5, 6, 7]
result = list1 | reduce(lambda a, b: a + b)

list1 = []
# raises TypeError
_ = list1 | reduce(lambda a, b: a + b)

list1 = [1]
result = list1 | reduce(lambda a, b: a + b)

fold

list1 = [1, 2, 3, 4, 5, 6, 7]
result = list1 | fold(lambda a, b: a + b, 0)

list1 = [1, 2, 3, 4, 5, 6, 7]
result = list1 | fold(lambda a, b: f"{a}/{b}" if a else f"{b}", "")

list1 = []
_ = list1 | fold(lambda a, b: f"{a}/{b}" if a else f"{b}", "")

deep_flatten

list1 = [[1,2], [3,4]]
# result is [1, 2, 3, 4]
result = list(list1 | deep_flatten())

result = list(1 | deep_flatten())
# result is [1]

list1 = [1, 2, 3, 4]
# result is [1, 2, 3, 4]
result = list(list1 | deep_flatten())

list1 = [[1,2], [3, [4, 5]]]
# result is [1, 2, 3, 4, 5]
result = list(list1 | deep_flatten())

list1 = [[1,2], [3, [4, [5, 6]]]]
# result is [1, 2, 3, 4, 5, 6]
result = list(list1 | deep_flatten())

deep_flatmap

list1:list[int] = [1, 2, 3, 4]
# result is [2, 3, 4, 5]
result = list(list1 | deep_flatmap(lambda x: x+1))

list1 = [[1, 2], [3, 4]]
# result is [2, 3, 4, 5]
result = list(list1 | deep_flatmap(lambda x: x+1))

list1 = [[1, 2], [3, [4]]]
# result is [2, 3, 4, 5]
result = list(list1 | deep_flatmap(lambda x: x+1))

result = list(1 | deep_flatmap(lambda x: x))
# result is [1]

flatten

list1 = [[1, 2], [3, 4]]
# result is [1, 2, 3, 4]
result = list(list1 | flatten())

list1 = [1, 2, 3, 4]
# raises TypeError
_ = list(list1 | flatten())

list1 = [[[1, 2]], [[3, 4]]]
# result is [[1, 2], [3, 4]]
result = list(list1 | flatten())

flatmap

list1:list = [1, 2, 3, 4]
# raises TypeError
_ = list(list1 | flatmap(lambda x: x+1))

list1 = [[1, 2], [3, [4]]]
# raises TypeError
_ = list(list1 | flatmap(lambda x: x+1))

# raises TypeError
_ = list(1 | flatmap(lambda x: x+1))

list1:list = [[1, 2], [3, 4]]
# result is [2, 3, 4, 5]
result = list(list1 | flatmap(lambda x: x+1))

as_dict

data = [(1, 2), (3, 4)]
# result {1:2, 3:4}
result = data | as_dict()

as_list

data = range(1, 5)
# result is = [1, 2, 3, 4]
result = data | as_list()

as_set

data = [1, 2, 3, 4]
# result {1, 2, 3, 4}
result = data | as_set()

split

data = [1, 2, 3, 4]
# result is ([2, 4], [1, 3])
result = data | split(lambda x: x%2==0)

invoke

data = [1, 2, 3, 4]
result = data | invoke(len)
# result is 4

foreach

data = [1, 2, 3, 4]
# prints 1, 2, 3, 4
data | foreach(print)

def increment(x):
    print(x + 1)

data = [1, 2, 3, 4]
# prints 2, 3, 4, 5
data | foreach(increment)

sliding_window

list1 = [1, 2, 3, 4, 5]
# result is [(1, 2), (2, 3), (3, 4), (4, 5)]
result = list(list1 | sliding_window(2))

list1 = [1, 2, 3, 4, 5]
# result is [(1, 2, 3), (2, 3, 4), (3, 4, 5)]
result = list(list1 | sliding_window(3))

list1 = [1, 2, 3]
# result is [(1, 2, 3)]
result = list(list1 | sliding_window(3))

list1 = [1, 2]
# result is []
result = list(list1 | sliding_window(3))

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

xi_pipes-0.0.8.tar.gz (4.4 kB view details)

Uploaded Source

Built Distribution

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

xi_pipes-0.0.8-py3-none-any.whl (4.5 kB view details)

Uploaded Python 3

File details

Details for the file xi_pipes-0.0.8.tar.gz.

File metadata

  • Download URL: xi_pipes-0.0.8.tar.gz
  • Upload date:
  • Size: 4.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.5.20

File hashes

Hashes for xi_pipes-0.0.8.tar.gz
Algorithm Hash digest
SHA256 b1ba92645349147572267488d42a59e0f97cd5f1d25b9d9a2119de7730c38ee5
MD5 74c61711ba9682dcf9509ea8c0db6ad4
BLAKE2b-256 7ab9edf75d749b675161b2f9b6b3607fece2dddd094da8b4831a3537610e4f07

See more details on using hashes here.

File details

Details for the file xi_pipes-0.0.8-py3-none-any.whl.

File metadata

  • Download URL: xi_pipes-0.0.8-py3-none-any.whl
  • Upload date:
  • Size: 4.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.5.20

File hashes

Hashes for xi_pipes-0.0.8-py3-none-any.whl
Algorithm Hash digest
SHA256 71c6ce0a309e7eefb40987baf6906efdf84e700b9364285fa2378b7fe7d1e169
MD5 485474330e478e7e00883b0e22797fd6
BLAKE2b-256 f2db813957f4f76c980eb84a90a80233c9067e1749ce5591600870c21a1a4d85

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