{"id":36656637,"url":"https://github.com/anafvana/groupick","last_synced_at":"2026-01-12T10:20:21.957Z","repository":{"id":59756230,"uuid":"538996163","full_name":"anafvana/groupick","owner":"anafvana","description":"Create a curses-based interactive selection in the terminal and assign options to groups.","archived":false,"fork":false,"pushed_at":"2023-04-03T22:22:25.000Z","size":264,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2024-04-24T15:18:56.937Z","etag":null,"topics":["curses","group","gui","pick","python"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":"wong2/pick","license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/anafvana.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}},"created_at":"2022-09-20T13:12:22.000Z","updated_at":"2022-12-25T18:33:00.000Z","dependencies_parsed_at":"2023-01-14T11:45:38.462Z","dependency_job_id":null,"html_url":"https://github.com/anafvana/groupick","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"purl":"pkg:github/anafvana/groupick","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anafvana%2Fgroupick","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anafvana%2Fgroupick/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anafvana%2Fgroupick/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anafvana%2Fgroupick/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/anafvana","download_url":"https://codeload.github.com/anafvana/groupick/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anafvana%2Fgroupick/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28338157,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-12T06:09:07.588Z","status":"ssl_error","status_checked_at":"2026-01-12T06:05:18.301Z","response_time":98,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["curses","group","gui","pick","python"],"created_at":"2026-01-12T10:20:16.572Z","updated_at":"2026-01-12T10:20:21.945Z","avatar_url":"https://github.com/anafvana.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# groupick\n\n[![image](https://github.com/anafvana/groupick/actions/workflows/ci.yml/badge.svg)](https://github.com/anafvana/groupick/actions/workflows/ci.yml)\n[![PyPI](https://img.shields.io/pypi/v/groupick.svg)](https://pypi.org/project/groupick/)\n[![PyPI](https://img.shields.io/pypi/dm/groupick)](https://pypi.org/project/groupick/)\n\n**groupick** is a small python library based on [wong2's pick](https://github.com/wong2/pick) which allows you to create a curses-based interactive selection in the terminal. With **groupick** you can assign options to groups.\n\n![](example/basic.gif)\n\n## Installation\n\n    $ pip install groupick\n\n## Usage\n\n**groupick** comes with a simple api:\n\n    \u003e\u003e\u003e from groupick import groupick\n\n    \u003e\u003e\u003e instructions = \"Assign languages to groups 'a', 'b' or '1'.\"\n    \u003e\u003e\u003e options = [\"Java\", \"JavaScript\", \"Python\", \"PHP\", \"C++\", \"Erlang\", \"Haskell\"]\n    \u003e\u003e\u003e groups:set = {\"a\", \"b\", 1}\n    \u003e\u003e\u003e selected = groupick(options, groups, instructions, indicator=\"=\u003e\", default_index=2)\n    \u003e\u003e\u003e print(f\"Here is your assignment: {selected}\")\n\n**output**:\n\n    \u003e\u003e\u003e {'1': [], 'a': [(\"JavaScript\", 1)], 'b': []}\n\n## Options\n\n- `options`: a list of options to choose from\n- `groups`: a list of ints and/or characters symbolising groups (max-length per item is 1)\n- `instructions`: (optional) a title above options list\n- `indicator`: (optional) custom the selection indicator, defaults to `*`\n- `default_index`: (optional) index of item where cursor starts at by default\n- `handle_all`: (optional) define whether it is mandatory to assign all options to groups, defaults to `False`\n- `screen`: (optional), if you are using `groupick` within an existing curses application, pass your existing `screen` object. It is assumed this has initialised in the standard way (e.g. via `curses.wrapper()`, or `curses.noecho(); curses.cbreak(); screen.kepad(True)`)\n\n## Community Projects\n\n[wong2's pick](https://github.com/wong2/pick): Original pick project, for selecting one or more options (no grouping)\n\n[pickpack](https://github.com/anafvana/pickpack): A fork of [`pick`](https://github.com/wong2/pick) to select tree data.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fanafvana%2Fgroupick","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fanafvana%2Fgroupick","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fanafvana%2Fgroupick/lists"}