The Stream Api in Python
Project description
Classifier: L Classifier: i Classifier: c Classifier: e Classifier: n Classifier: s Classifier: e Classifier: Classifier: : Classifier: : Classifier: Classifier: O Classifier: S Classifier: I Classifier: Classifier: A Classifier: p Classifier: p Classifier: r Classifier: o Classifier: v Classifier: e Classifier: d Classifier: Classifier: : Classifier: : Classifier: Classifier: G Classifier: P Classifier: L Classifier: Classifier: L Classifier: i Classifier: c Classifier: e Classifier: n Classifier: s Classifier: e Classifier:
Classifier: P Classifier: r Classifier: o Classifier: g Classifier: r Classifier: a Classifier: m Classifier: m Classifier: i Classifier: n Classifier: g Classifier: Classifier: L Classifier: a Classifier: n Classifier: g Classifier: u Classifier: a Classifier: g Classifier: e Classifier: Classifier: : Classifier: : Classifier: Classifier: C Classifier:
Classifier: P Classifier: r Classifier: o Classifier: g Classifier: r Classifier: a Classifier: m Classifier: m Classifier: i Classifier: n Classifier: g Classifier: Classifier: L Classifier: a Classifier: n Classifier: g Classifier: u Classifier: a Classifier: g Classifier: e Classifier: Classifier: : Classifier: : Classifier: Classifier: P Classifier: y Classifier: t Classifier: h Classifier: o Classifier: n Classifier:
Classifier: P Classifier: r Classifier: o Classifier: g Classifier: r Classifier: a Classifier: m Classifier: m Classifier: i Classifier: n Classifier: g Classifier: Classifier: L Classifier: a Classifier: n Classifier: g Classifier: u Classifier: a Classifier: g Classifier: e Classifier: Classifier: : Classifier: : Classifier: Classifier: P Classifier: y Classifier: t Classifier: h Classifier: o Classifier: n Classifier: Classifier: : Classifier: : Classifier: Classifier: 3 Classifier:
Classifier: P Classifier: r Classifier: o Classifier: g Classifier: r Classifier: a Classifier: m Classifier: m Classifier: i Classifier: n Classifier: g Classifier: Classifier: L Classifier: a Classifier: n Classifier: g Classifier: u Classifier: a Classifier: g Classifier: e Classifier: Classifier: : Classifier: : Classifier: Classifier: P Classifier: y Classifier: t Classifier: h Classifier: o Classifier: n Classifier: Classifier: : Classifier: : Classifier: Classifier: 3 Classifier: . Classifier: 9 Classifier:
Classifier: P Classifier: r Classifier: o Classifier: g Classifier: r Classifier: a Classifier: m Classifier: m Classifier: i Classifier: n Classifier: g Classifier: Classifier: L Classifier: a Classifier: n Classifier: g Classifier: u Classifier: a Classifier: g Classifier: e Classifier: Classifier: : Classifier: : Classifier: Classifier: P Classifier: y Classifier: t Classifier: h Classifier: o Classifier: n Classifier: Classifier: : Classifier: : Classifier: Classifier: 3 Classifier: . Classifier: 1 Classifier: 0 Classifier:
Classifier: P Classifier: r Classifier: o Classifier: g Classifier: r Classifier: a Classifier: m Classifier: m Classifier: i Classifier: n Classifier: g Classifier: Classifier: L Classifier: a Classifier: n Classifier: g Classifier: u Classifier: a Classifier: g Classifier: e Classifier: Classifier: : Classifier: : Classifier: Classifier: P Classifier: y Classifier: t Classifier: h Classifier: o Classifier: n Classifier: Classifier: : Classifier: : Classifier: Classifier: 3 Classifier: . Classifier: 1 Classifier: 1 Classifier:
Classifier: P Classifier: r Classifier: o Classifier: g Classifier: r Classifier: a Classifier: m Classifier: m Classifier: i Classifier: n Classifier: g Classifier: Classifier: L Classifier: a Classifier: n Classifier: g Classifier: u Classifier: a Classifier: g Classifier: e Classifier: Classifier: : Classifier: : Classifier: Classifier: P Classifier: y Classifier: t Classifier: h Classifier: o Classifier: n Classifier: Classifier: : Classifier: : Classifier: Classifier: 3 Classifier: Classifier: : Classifier: : Classifier: Classifier: O Classifier: n Classifier: l Classifier: y Classifier:
Classifier: P Classifier: r Classifier: o Classifier: g Classifier: r Classifier: a Classifier: m Classifier: m Classifier: i Classifier: n Classifier: g Classifier: Classifier: L Classifier: a Classifier: n Classifier: g Classifier: u Classifier: a Classifier: g Classifier: e Classifier: Classifier: : Classifier: : Classifier: Classifier: P Classifier: y Classifier: t Classifier: h Classifier: o Classifier: n Classifier: Classifier: : Classifier: : Classifier: Classifier: I Classifier: m Classifier: p Classifier: l Classifier: e Classifier: m Classifier: e Classifier: n Classifier: t Classifier: a Classifier: t Classifier: i Classifier: o Classifier: n Classifier: Classifier: : Classifier: : Classifier: Classifier: C Classifier: P Classifier: y Classifier: t Classifier: h Classifier: o Classifier: n Classifier:
Classifier: T Classifier: o Classifier: p Classifier: i Classifier: c Classifier: Classifier: : Classifier: : Classifier: Classifier: S Classifier: o Classifier: f Classifier: t Classifier: w Classifier: a Classifier: r Classifier: e Classifier: Classifier: D Classifier: e Classifier: v Classifier: e Classifier: l Classifier: o Classifier: p Classifier: m Classifier: e Classifier: n Classifier: t Classifier:
Classifier: T Classifier: y Classifier: p Classifier: i Classifier: n Classifier: g Classifier: Classifier: : Classifier: : Classifier: Classifier: T Classifier: y Classifier: p Classifier: e Classifier: d Classifier:
Classifier: O Classifier: p Classifier: e Classifier: r Classifier: a Classifier: t Classifier: i Classifier: n Classifier: g Classifier: Classifier: S Classifier: y Classifier: s Classifier: t Classifier: e Classifier: m Classifier: Classifier: : Classifier: : Classifier: Classifier: M Classifier: i Classifier: c Classifier: r Classifier: o Classifier: s Classifier: o Classifier: f Classifier: t Classifier: Classifier: : Classifier: : Classifier: Classifier: W Classifier: i Classifier: n Classifier: d Classifier: o Classifier: w Classifier: s Classifier:
Classifier: O Classifier: p Classifier: e Classifier: r Classifier: a Classifier: t Classifier: i Classifier: n Classifier: g Classifier: Classifier: S Classifier: y Classifier: s Classifier: t Classifier: e Classifier: m Classifier: Classifier: : Classifier: : Classifier: Classifier: P Classifier: O Classifier: S Classifier: I Classifier: X Classifier:
Classifier: O Classifier: p Classifier: e Classifier: r Classifier: a Classifier: t Classifier: i Classifier: n Classifier: g Classifier: Classifier: S Classifier: y Classifier: s Classifier: t Classifier: e Classifier: m Classifier: Classifier: : Classifier: : Classifier: Classifier: U Classifier: n Classifier: i Classifier: x Classifier:
Classifier: O Classifier: p Classifier: e Classifier: r Classifier: a Classifier: t Classifier: i Classifier: n Classifier: g Classifier: Classifier: S Classifier: y Classifier: s Classifier: t Classifier: e Classifier: m Classifier: Classifier: : Classifier: : Classifier: Classifier: M Classifier: a Classifier: c Classifier: O Classifier: S Classifier:
License-File: LICENSE
streamcpy: The Stream Api in Python
Streamcpy can provide an approach of processing the data in a high-effenciency way. Like in Java, you can use stream-like methods (map, filter, for_each and so on) to do parrallel calculation and lazy calculation, which can accelerating your programs. What’s more, The package is implemented in pure C, which means its runtime speed is even higher!
Currently, the methods bellow is implemented.
☒ filter
☒ map
☒ for_each
☒ collect
☒ distinct
☒ limit
☒ reduce
☒ sorted
☒ max/min
☒ count
☒ any_match/all_match
Installation
(Not Uploaded yet)
Usage
Like Stream Api in Java but slightly different in details
from streampy import *
Stream.of([1, 2, 3])
.map(lambda x: x * x)
.for_each(lambda x: print(x))
This api supports various Iterable object in Python, like list, tuple and generator. As a result, you can call it in these ways:
from streampy import *
Stream.of((1, 2, 3))
.map(lambda x: x * x)
.for_each(lambda x: print(x))
# OR
def gen():
l = [1, 2, 3]
for i in l:
yield i
g = gen()
Stream.of(g)
.map(lambda x: x * x)
.for_each(lambda x: print(x))
# OR
Stream.of(open("foo.txt", 'r'))
.map(lambda x: x * x)
.for_each(lambda x: print(x))
Contribution
Welcome to contribute to the project. The project is written in C. If you cannot understand Python’s C API, you can refer to the code in python package. It is the streamcpy implemented in python but will not be packed in the package. Here is the detailed description for each directory or file:
benchmark: a roughly comparison between Python and C++ (Python wins)
build: the built file of the package (.pyd for Windows and .so for Linux or Mac)
modules: the source code for streamcpy in C
python: the source code for streamcpy in python and only for reference
vs: the project files for Visual Studio
setup.py: the setup file for python
streamcpy.c: the entrance file for streamcpy package
streamcpy.pyi: the .pyi file for streamcpy package
Build on Windows
Download and install the latest Visual Studio
Install Python Development workload. The workload includes the Python native development tools, which bring in the C++ workload and toolsets that are necessary for native extensions
Install Desktop Development with C++ workload. It comes with the default core editor, which includes basic code editing support for C/C++
Double-click the .vcxproj in vs folder and build the .sln file
Run the project!
Build on Linux/Mac
Download the Python interpreter from the offcial website
Download the gcc(>7.5.0)
Run the command below for building
python setup.py build
Run the command below for installing
python setup.py install
NOTE: The method is also suitable for Windows if Visual Studio or Visual Studio Build Tools installed.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file streamcpy-1.0.tar.gz
.
File metadata
- Download URL: streamcpy-1.0.tar.gz
- Upload date:
- Size: 16.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.9.13
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8f4823ec0009d6262fd185d1641d0580d4fde8f33dbda638057d2aee365a98bc |
|
MD5 | 70f0fb6fd6c2087dbce44500d36f7c63 |
|
BLAKE2b-256 | df08e98a2167980f5931eb80bddeff6800683bfd2036892f667c55915e721a22 |
File details
Details for the file streamcpy-1.0-cp39-cp39-win_amd64.whl
.
File metadata
- Download URL: streamcpy-1.0-cp39-cp39-win_amd64.whl
- Upload date:
- Size: 25.8 kB
- Tags: CPython 3.9, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.9.13
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3495387008c37746bd80e58a2b8ef7b32a1fa2052ce667059f7f6abbc8996dd7 |
|
MD5 | 09eec6c2d3b24aad207388bd456779ec |
|
BLAKE2b-256 | 497d238cf49566fbd567aeb137a1afd69bae1eefa2d2a6c1c41cdb3c70bbcadb |