Socket
Socket
Sign inDemoInstall

mr-streams

Package Overview
Dependencies
0
Maintainers
1
Alerts
File Explorer

Install Socket

Detect and block malicious and high-risk dependencies

Install

    mr-streams

an anti-pythonic map reduce utility


Maintainers
1

Readme

MR Streams

MR Streams is a python utility for composing iterable map reduce filter chains

Goals:

The goals of this library are relatively simple:

  • provide a stream composition syntax that supports chaining map,reduce,filter operations
  • a stream object should still look and feel like a list/iterable
  • a stream should have options for delayed evaluation of the stream
  • to support future changes regarding how composition

Pronunciation:

  • "Mister Streams" for fun
  • "M-R-Streams" to sound professional

Supported operations

  • map - applies functions to values in iterable with a built-in option for partial evaluation.

      from operator import add
    
      [*mr(range(10)).map(add, 1)] 
    
      >>[1,2,3,4,5,6,7,8,9,10]
    
  • filter - applies a boolean function to values emitted in the chain. If the condition is true, the values are emitted further down the chain.

    is_even = lambda x: x % 2 == 0  
    
    [*mr(range(10)).filter(is_even)]  
    
    >>[0, 2,4,6,8]
    
  • reduce - reduce iterates through all objects and reduces them using a reduction function.

    mr(range(10)).reduce(sum) 
    
    >> 45
    
  • take - limits the number of values emitted in the stream.

      [*mr(range(10)).take(3)]  
    
      >>[0,1,2] 
    
  • tap - applies a function passively to the stream without altering emitted values.

    mr(range(4)).tap(print).reduce(sum)
    
    >> 0
    >> 1
    >> 2
    >> 3
    >> 6
    
  • drain - runs a no-op iteration that depletes the stream.

    mr(range(4)).tap(print).drain()  
    
     >> 0
     >> 1
     >> 2
     >> 3    
    
  • chunk - groups items in a stream into groups of size n

    mr(range(4)).chunk(2).tap(print).drain()  
    
    >> [0,1]
    >> [2,3]
    
    

FAQs


Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc