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.1.0.tar.gz (5.8 kB view details)

Uploaded Source

File details

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

File metadata

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

File hashes

Hashes for xi_pipes-0.1.0.tar.gz
Algorithm Hash digest
SHA256 6f8af9599555c12a85e7a5fae3d52af56e27294412f36ff132c5971f5b1780c5
MD5 48b5caa9fec289a0f33b36c762cb9a04
BLAKE2b-256 f5ed345be6e3a5264a5f7ba0440509fadb936914867b16e86432903e388d19df

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