{"id":15687586,"url":"https://github.com/dsblank/picopipe","last_synced_at":"2025-05-07T20:05:46.032Z","repository":{"id":192061158,"uuid":"685964012","full_name":"dsblank/picopipe","owner":"dsblank","description":"A small pipeline framework built on top of functions","archived":false,"fork":false,"pushed_at":"2023-11-29T19:51:17.000Z","size":23,"stargazers_count":10,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-05-07T20:03:20.888Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dsblank.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-09-01T12:15:44.000Z","updated_at":"2024-11-19T15:32:44.000Z","dependencies_parsed_at":"2024-10-23T20:41:18.649Z","dependency_job_id":"a65673d3-b6b9-4010-98c6-f3db41722723","html_url":"https://github.com/dsblank/picopipe","commit_stats":{"total_commits":24,"total_committers":1,"mean_commits":24.0,"dds":0.0,"last_synced_commit":"96ca1d6e2bf113ab3e19e8077839ed10a46e99f4"},"previous_names":["dsblank/picopipe"],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dsblank%2Fpicopipe","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dsblank%2Fpicopipe/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dsblank%2Fpicopipe/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dsblank%2Fpicopipe/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dsblank","download_url":"https://codeload.github.com/dsblank/picopipe/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252949272,"owners_count":21830151,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-03T17:50:14.616Z","updated_at":"2025-05-07T20:05:46.003Z","avatar_url":"https://github.com/dsblank.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# picopipe\nA small pipeline framework built on top of functions\n\nAn article describing development and use of picopipe: \n[Towards Data Science: The Worlds Smallest Data Pipeline Framework](https://medium.com/towards-data-science/the-worlds-smallest-data-pipeline-framework-408eaf1a4ce4)\n\n## Installation\n\n```shell\npip install picopipe\n```\n## Examples\n\n```python\ndef add1(value):\n    return value + 1\n\ndef add2(value):\n    return value + 2\n\ndef add3(value):\n    return value + 3\n\nfrom picopipe import pipeline\n\np = pipeline(add1, add2, add3)\np([10, 20, 30])\n```\n\nSee tests for more examples.\n\n## Visualization\n\n```python\nwith open(\"pipeline.mmd\", \"w\") as fp:\n    fp.write(to_mermaid(p))\n```\n\nMermaid file (renders in github):\n\n```mermaid\nflowchart\nsubgraph pipeline_98e33e0628b546268abb2af5f74e50f1 [\"pipeline\"]\nend\nsubgraph pipeline_205813c806fd4b37b40309497768f7c1 [\"pipeline\"]\n    node0[\"identity\"]\n    node1[\"is_not_none\"]\n    node2[\"identity\"]\nend\nnode0 --\u003e node1\nnode1 --\u003e node2\nclick node0 console.log \"def\u0026#8194;identity(value):\u003cbr/\u003e\u0026#8194;\u0026#8194;\u0026#8194;\u0026#8194;return\u0026#8194;value\u003cbr/\u003e\"\nclick node1 console.log \"@pfilter\u003cbr/\u003edef\u0026#8194;is_not_none(v):\u003cbr/\u003e\u0026#8194;\u0026#8194;\u0026#8194;\u0026#8194;return\u0026#8194;v\u0026#8194;is\u0026#8194;not\u0026#8194;None\u003cbr/\u003e\"\nclick node2 console.log \"def\u0026#8194;identity(value):\u003cbr/\u003e\u0026#8194;\u0026#8194;\u0026#8194;\u0026#8194;return\u0026#8194;value\u003cbr/\u003e\"\nsubgraph pipeline_d2f205ef957a428abbaa208241125819 [\"pipeline\"]\n    node3[\"add1\"]\n    node4[\"[lambda]\"]\nend\nnode3 --\u003e node4\nclick node3 console.log \"def\u0026#8194;add1(value):\u003cbr/\u003e\u0026#8194;\u0026#8194;\u0026#8194;\u0026#8194;return\u0026#8194;value\u0026#8194;+\u0026#8194;1\u003cbr/\u003e\"\nclick node4 console.log \"lambda\u0026#8194;...:\u0026#8194;...\"\npipeline_98e33e0628b546268abb2af5f74e50f1 --\u003e pipeline_205813c806fd4b37b40309497768f7c1\npipeline_205813c806fd4b37b40309497768f7c1 --\u003e pipeline_d2f205ef957a428abbaa208241125819\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdsblank%2Fpicopipe","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdsblank%2Fpicopipe","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdsblank%2Fpicopipe/lists"}