# Bash Menu Builder
![PyPI - Version](https://img.shields.io/pypi/v/bash-menu-builder?logo=pypi&logoColor=white)
![Python Version](https://img.shields.io/badge/Python-v3.9-orange?logo=python&logoColor=white)
[![Codacy Badge](https://app.codacy.com/project/badge/Grade/c69d7c6784144fb8a4e16150165533e6)](https://app.codacy.com/gh/OleksiiPopovDev/Bash-Menu-Builder/dashboard?utm_source=gh&utm_medium=referral&utm_content=&utm_campaign=Badge_grade)
![PyPI - License](https://img.shields.io/pypi/l/bash-menu-builder)
![PyPI - Downloads](https://img.shields.io/pypi/dm/bash-menu-builder)
![Downloads](https://img.shields.io/github/downloads/OleksiiPopovDev/Bash-Menu-Builder/total")
![GitHub repo size](https://img.shields.io/github/repo-size/OleksiiPopovDev/Bash-Menu-Builder)
<p align="center">
<img src="https://raw.githubusercontent.com/OleksiiPopovDev/Bash-Menu-Builder/main/doc/logo.png" width="50%">
</p>
This package help you build menu for yours console scripts
[Installation](#installation) | [Usage](#usage) | [Draw menu](#draw-menu) | [How it works](#how-it-works)
## Installation
For install package to your project use this command:
```shell
pip3 install bash-menu-builder
```
## Usage
Script give opportunity use two type views of menu:
- [Input Menu](#the-input-type-menu)
- [Select Menu](#the-select-type-menu)
### The Input type Menu
```python
from bash_menu_builder import InputMenu, CommandOptionDto, MenuItemDto
def banner_text() -> str:
return 'I\'m Banner Text'
def function_one() -> None:
print('Script One')
def function_two() -> None:
print('Script Two')
def function_three() -> None:
print('Script Three')
if __name__ == "__main__":
InputMenu(
menu=[
MenuItemDto(
title='Menu Item One',
option=CommandOptionDto(
long_option='one',
short_option='o',
),
handler=function_one,
priority=2
),
MenuItemDto(
title='Menu Item Two',
option=CommandOptionDto(
long_option='two',
short_option='t'
),
handler=function_two
),
MenuItemDto(
title='Menu Item Three',
option=CommandOptionDto(
long_option='three',
short_option='r'
),
handler=function_three
),
],
banner=banner_text()
)
```
#### View Menu
<img src="https://raw.githubusercontent.com/OleksiiPopovDev/Bash-Menu-Builder/main/doc/example-input.gif" alt="How it works" style="width:100%;" />
### The Select type Menu
```python
from bash_menu_builder import SelectMenu, CommandOptionDto, MenuItemDto
def banner_text() -> str:
return 'I\'m Banner Text'
def function_one() -> None:
print('Script One')
def function_two() -> None:
print('Script Two')
def function_three() -> None:
print('Script Three')
if __name__ == "__main__":
SelectMenu(
menu=[
MenuItemDto(
title='Menu Item One',
option=CommandOptionDto(
long_option='one',
short_option='o',
),
handler=function_one,
priority=2
),
MenuItemDto(
title='Menu Item Two',
option=CommandOptionDto(
long_option='two',
short_option='t'
),
handler=function_two
),
MenuItemDto(
title='Menu Item Three',
option=CommandOptionDto(
long_option='three',
short_option='r'
),
handler=function_three
),
],
banner=banner_text()
)
```
#### View Menu
<img src="https://raw.githubusercontent.com/OleksiiPopovDev/Bash-Menu-Builder/main/doc/example-select.gif" alt="How it works" style="width:100%;" />
## Draw menu
The menu draw via class ``View`` which get params of array with DTOs and text of banner (optional)
The MenuItemDto have 3 params ``def __init__(self, title: str, option_name: str, handler: object):``
- `title: str` - the title of menu item
- `option: CommandOptionDto` - add options to command using via ``--`` ex. calling handler of first item menu: ``python3 main.py --three`` or short option ``python3 main.py --r``
- `long_option: str` - full name of option for calling ex ``python3 main.py --three``
- `short_option: str` - short name of option for calling like ``python3 main.py --r``
- `has_value: bool` - is `True` than you can set value in bash command of handler like ``python3 main.py --three some value``
> [!WARNING]
> Unfortunately, you can't use **has_value** param in Select type Menu. **Only for Input type Menu!**
- `handler: object` - the handler of menu item. What exactly script do after select this menu item.
### How it works
After select the menu number and press Enter will run script in function. When script finish process menu will draw again.
Also, you can call script without drawing menu. Just set option when call python script file, ex. ``python3 main.py --three`` or short option ``python3 main.py --r``
In this case will run script for menu **'Menu Item Three'**. When script finish process menu will not draw again and program will close.
<img src="https://github.com/OleksiiPopovDev/Bash-Menu-Builder/blob/main/doc/example-console.png?raw=true" alt="How it works" style="width:100%;" />
## Draw Alerts
You can draw three types od alerts **Error**, **Warning** and **Success**. How use it:
```python
from bash_menu_builder.message import Message
Message.error(
message='Lorem Ipsum is simply dummy text of the printing and typesetting industry.'
'\nLorem Ipsum has been the industry\'s standard dummy text ever since the 1500s,'
'\nwhen an unknown printer took a galley of type and scrambled it to make a type specimen book. '
)
Message.warning(
message='Lorem Ipsum is simply dummy text of the printing and typesetting industry.'
'\nLorem Ipsum has been the industry\'s standard dummy text ever since the 1500s,'
'\nwhen an unknown printer took a galley of type and scrambled it to make a type specimen book. '
)
Message.success(
message='Lorem Ipsum is simply dummy text of the printing and typesetting industry.'
'\nLorem Ipsum has been the industry\'s standard dummy text ever since the 1500s,'
'\nwhen an unknown printer took a galley of type and scrambled it to make a type specimen book. ',
title='Custom Success Title'
)
```
<img src="https://raw.githubusercontent.com/OleksiiPopovDev/Bash-Menu-Builder/main/doc/messages.png" alt="How it works" style="width:100%;" />
### Add tabulation to messages
Using `Message.set_tabs({COUNT_OF_TABS})` you can set tabulation ex.:
```python
from bash_menu_builder.message import Message
Message.error(
message='Lorem Ipsum is simply dummy text of the printing and typesetting industry...'
)
Message.set_tabs(1)
Message.warning(
message='Lorem Ipsum is simply dummy text of the printing and typesetting industry...'
)
Message.set_tabs(2)
Message.success(
message='Lorem Ipsum is simply dummy text of the printing and typesetting industry...',
title='Custom Success Title'
)
```
<img src="https://raw.githubusercontent.com/OleksiiPopovDev/Bash-Menu-Builder/main/doc/messages-tabs.png" alt="How it works" style="width:100%;" />
## Paint Text
Using tags in text allows you to set the color of the text after the tag. Here's how to use it:
```python
from bash_menu_builder import Draw
print(Draw.paint(
'{Red}Lorem Ipsum {Green}is simply {Blue}dummy text of the {Yellow}printing and typesetting industry...'
'\n{Purple}Lorem Ipsum has been the {Cyan}industry\'s standard dummy {White}text ever since the 1500s,'
'\n{BBlue}when an unknown {BBlack}printer took a galley {BRed}of type and scrambled it {BPurple}to make a type specimen book. '
'\n{UGreen}It has survived not only five centuries, {UYellow}but also the leap into electronic typesetting, {UCyan}remaining essentially unchanged.'
'\n{On_Blue}It was popularised {On_Yellow}in the 1960s with {IGreen}the release of Letraset sheets {IWhite}containing Lorem Ipsum passages, and more '
'\n{BIRed}recently with {BIYellow}desktop publishing {ColorOff}software like Aldus PageMaker including versions of Lorem Ipsum.'
))
```
<img src="https://raw.githubusercontent.com/OleksiiPopovDev/Bash-Menu-Builder/main/doc/color-text.png" alt="How it works" style="width:100%;" />
The list of tags you can find in `Color` enum:
```python
class Color(Enum):
# Reset
ColorOff = '\033[0m' # Text Reset
# Regular Colors
Black = '\033[0;30m' # Black
Red = '\033[0;31m' # Red
Green = '\033[0;32m' # Green
Yellow = '\033[0;33m' # Yellow
Blue = '\033[0;34m' # Blue
Purple = '\033[0;35m' # Purple
Cyan = '\033[0;36m' # Cyan
White = '\033[0;37m' # White
# Bold
BBlack = '\033[1;30m' # Black
BRed = '\033[1;31m' # Red
BGreen = '\033[1;32m' # Green
BYellow = '\033[1;33m' # Yellow
BBlue = '\033[1;34m' # Blue
BPurple = '\033[1;35m' # Purple
BCyan = '\033[1;36m' # Cyan
BWhite = '\033[1;37m' # White
# Underline
UBlack = '\033[4;30m' # Black
URed = '\033[4;31m' # Red
UGreen = '\033[4;32m' # Green
UYellow = '\033[4;33m' # Yellow
UBlue = '\033[4;34m' # Blue
UPurple = '\033[4;35m' # Purple
UCyan = '\033[4;36m' # Cyan
UWhite = '\033[4;37m' # White
# Background
On_Black = '\033[40m' # Black
On_Red = '\033[41m' # Red
On_Green = '\033[42m' # Green
On_Yellow = '\033[43m' # Yellow
On_Blue = '\033[44m' # Blue
On_Purple = '\033[45m' # Purple
On_Cyan = '\033[46m' # Cyan
On_White = '\033[47m' # White
# High Intensity
IBlack = '\033[0;90m' # Black
IRed = '\033[0;91m' # Red
IGreen = '\033[0;92m' # Green
IYellow = '\033[0;93m' # Yellow
IBlue = '\033[0;94m' # Blue
IPurple = '\033[0;95m' # Purple
ICyan = '\033[0;96m' # Cyan
IWhite = '\033[0;97m' # White
# Bold High Intensity
BIBlack = '\033[1;90m' # Black
BIRed = '\033[1;91m' # Red
BIGreen = '\033[1;92m' # Green
BIYellow = '\033[1;93m' # Yellow
BIBlue = '\033[1;94m' # Blue
BIPurple = '\033[1;95m' # Purple
BICyan = '\033[1;96m' # Cyan
BIWhite = '\033[1;97m' # White
# High Intensity backgrounds
On_IBlack = '\033[0;100m' # Black
On_IRed = '\033[0;101m' # Red
On_IGreen = '\033[0;102m' # Green
On_IYellow = '\033[0;103m' # Yellow
On_IBlue = '\033[0;104m' # Blue
On_IPurple = '\033[0;105m' # Purple
On_ICyan = '\033[0;106m' # Cyan
On_IWhite = '\033[0;107m' # White
```
Raw data
{
"_id": null,
"home_page": "https://github.com/OleksiiPopovDev/Bash-Menu-Builder",
"name": "bash-menu-builder",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.9",
"maintainer_email": null,
"keywords": "bash menu vizual python",
"author": "Oleksii.Popov",
"author_email": "popovaleksey1991@gmail.com",
"download_url": "https://files.pythonhosted.org/packages/5b/c5/3dd401a17b3a987eaae8c9e2cf770670cb79ee31550a721a26174188f57e/bash_menu_builder-1.1.5.tar.gz",
"platform": null,
"description": "# Bash Menu Builder\n![PyPI - Version](https://img.shields.io/pypi/v/bash-menu-builder?logo=pypi&logoColor=white)\n![Python Version](https://img.shields.io/badge/Python-v3.9-orange?logo=python&logoColor=white)\n[![Codacy Badge](https://app.codacy.com/project/badge/Grade/c69d7c6784144fb8a4e16150165533e6)](https://app.codacy.com/gh/OleksiiPopovDev/Bash-Menu-Builder/dashboard?utm_source=gh&utm_medium=referral&utm_content=&utm_campaign=Badge_grade)\n![PyPI - License](https://img.shields.io/pypi/l/bash-menu-builder)\n![PyPI - Downloads](https://img.shields.io/pypi/dm/bash-menu-builder)\n![Downloads](https://img.shields.io/github/downloads/OleksiiPopovDev/Bash-Menu-Builder/total\")\n![GitHub repo size](https://img.shields.io/github/repo-size/OleksiiPopovDev/Bash-Menu-Builder)\n\n<p align=\"center\">\n<img src=\"https://raw.githubusercontent.com/OleksiiPopovDev/Bash-Menu-Builder/main/doc/logo.png\" width=\"50%\">\n</p>\n\nThis package help you build menu for yours console scripts\n\n[Installation](#installation) | [Usage](#usage) | [Draw menu](#draw-menu) | [How it works](#how-it-works)\n\n## Installation\nFor install package to your project use this command:\n```shell\npip3 install bash-menu-builder\n```\n\n## Usage\nScript give opportunity use two type views of menu:\n - [Input Menu](#the-input-type-menu)\n - [Select Menu](#the-select-type-menu)\n\n### The Input type Menu\n\n```python\nfrom bash_menu_builder import InputMenu, CommandOptionDto, MenuItemDto\n\ndef banner_text() -> str:\n return 'I\\'m Banner Text'\n\ndef function_one() -> None:\n print('Script One')\n\ndef function_two() -> None:\n print('Script Two')\n\ndef function_three() -> None:\n print('Script Three')\n\n \nif __name__ == \"__main__\":\n InputMenu(\n menu=[\n MenuItemDto(\n title='Menu Item One',\n option=CommandOptionDto(\n long_option='one',\n short_option='o',\n ),\n handler=function_one,\n priority=2\n ),\n MenuItemDto(\n title='Menu Item Two',\n option=CommandOptionDto(\n long_option='two',\n short_option='t'\n ),\n handler=function_two\n ),\n MenuItemDto(\n title='Menu Item Three',\n option=CommandOptionDto(\n long_option='three',\n short_option='r'\n ),\n handler=function_three\n ),\n ],\n banner=banner_text()\n )\n```\n#### View Menu\n<img src=\"https://raw.githubusercontent.com/OleksiiPopovDev/Bash-Menu-Builder/main/doc/example-input.gif\" alt=\"How it works\" style=\"width:100%;\" />\n\n### The Select type Menu\n```python\nfrom bash_menu_builder import SelectMenu, CommandOptionDto, MenuItemDto\n\ndef banner_text() -> str:\n return 'I\\'m Banner Text'\n\ndef function_one() -> None:\n print('Script One')\n\ndef function_two() -> None:\n print('Script Two')\n\ndef function_three() -> None:\n print('Script Three')\n\n \nif __name__ == \"__main__\":\n SelectMenu(\n menu=[\n MenuItemDto(\n title='Menu Item One',\n option=CommandOptionDto(\n long_option='one',\n short_option='o',\n ),\n handler=function_one,\n priority=2\n ),\n MenuItemDto(\n title='Menu Item Two',\n option=CommandOptionDto(\n long_option='two',\n short_option='t'\n ),\n handler=function_two\n ),\n MenuItemDto(\n title='Menu Item Three',\n option=CommandOptionDto(\n long_option='three',\n short_option='r'\n ),\n handler=function_three\n ),\n ],\n banner=banner_text()\n )\n```\n#### View Menu\n<img src=\"https://raw.githubusercontent.com/OleksiiPopovDev/Bash-Menu-Builder/main/doc/example-select.gif\" alt=\"How it works\" style=\"width:100%;\" />\n\n## Draw menu\nThe menu draw via class ``View`` which get params of array with DTOs and text of banner (optional)\nThe MenuItemDto have 3 params ``def __init__(self, title: str, option_name: str, handler: object):``\n - `title: str` - the title of menu item\n - `option: CommandOptionDto` - add options to command using via ``--`` ex. calling handler of first item menu: ``python3 main.py --three`` or short option ``python3 main.py --r``\n - `long_option: str` - full name of option for calling ex ``python3 main.py --three``\n - `short_option: str` - short name of option for calling like ``python3 main.py --r``\n - `has_value: bool` - is `True` than you can set value in bash command of handler like ``python3 main.py --three some value``\n > [!WARNING]\n > Unfortunately, you can't use **has_value** param in Select type Menu. **Only for Input type Menu!**\n\n - `handler: object` - the handler of menu item. What exactly script do after select this menu item.\n\n\n\n### How it works\nAfter select the menu number and press Enter will run script in function. When script finish process menu will draw again.\n\nAlso, you can call script without drawing menu. Just set option when call python script file, ex. ``python3 main.py --three`` or short option ``python3 main.py --r``\nIn this case will run script for menu **'Menu Item Three'**. When script finish process menu will not draw again and program will close.\n\n<img src=\"https://github.com/OleksiiPopovDev/Bash-Menu-Builder/blob/main/doc/example-console.png?raw=true\" alt=\"How it works\" style=\"width:100%;\" />\n\n## Draw Alerts\nYou can draw three types od alerts **Error**, **Warning** and **Success**. How use it:\n```python\nfrom bash_menu_builder.message import Message\n\nMessage.error(\n message='Lorem Ipsum is simply dummy text of the printing and typesetting industry.'\n '\\nLorem Ipsum has been the industry\\'s standard dummy text ever since the 1500s,'\n '\\nwhen an unknown printer took a galley of type and scrambled it to make a type specimen book. '\n)\nMessage.warning(\n message='Lorem Ipsum is simply dummy text of the printing and typesetting industry.'\n '\\nLorem Ipsum has been the industry\\'s standard dummy text ever since the 1500s,'\n '\\nwhen an unknown printer took a galley of type and scrambled it to make a type specimen book. '\n)\nMessage.success(\n message='Lorem Ipsum is simply dummy text of the printing and typesetting industry.'\n '\\nLorem Ipsum has been the industry\\'s standard dummy text ever since the 1500s,'\n '\\nwhen an unknown printer took a galley of type and scrambled it to make a type specimen book. ',\n title='Custom Success Title'\n)\n```\n<img src=\"https://raw.githubusercontent.com/OleksiiPopovDev/Bash-Menu-Builder/main/doc/messages.png\" alt=\"How it works\" style=\"width:100%;\" />\n\n### Add tabulation to messages\nUsing `Message.set_tabs({COUNT_OF_TABS})` you can set tabulation ex.:\n```python\nfrom bash_menu_builder.message import Message\n\nMessage.error(\n message='Lorem Ipsum is simply dummy text of the printing and typesetting industry...'\n)\n\nMessage.set_tabs(1)\nMessage.warning(\n message='Lorem Ipsum is simply dummy text of the printing and typesetting industry...'\n)\n\nMessage.set_tabs(2)\nMessage.success(\n message='Lorem Ipsum is simply dummy text of the printing and typesetting industry...',\n title='Custom Success Title'\n)\n```\n<img src=\"https://raw.githubusercontent.com/OleksiiPopovDev/Bash-Menu-Builder/main/doc/messages-tabs.png\" alt=\"How it works\" style=\"width:100%;\" />\n\n## Paint Text\nUsing tags in text allows you to set the color of the text after the tag. Here's how to use it:\n```python\nfrom bash_menu_builder import Draw\n\nprint(Draw.paint(\n '{Red}Lorem Ipsum {Green}is simply {Blue}dummy text of the {Yellow}printing and typesetting industry...'\n '\\n{Purple}Lorem Ipsum has been the {Cyan}industry\\'s standard dummy {White}text ever since the 1500s,'\n '\\n{BBlue}when an unknown {BBlack}printer took a galley {BRed}of type and scrambled it {BPurple}to make a type specimen book. '\n '\\n{UGreen}It has survived not only five centuries, {UYellow}but also the leap into electronic typesetting, {UCyan}remaining essentially unchanged.'\n '\\n{On_Blue}It was popularised {On_Yellow}in the 1960s with {IGreen}the release of Letraset sheets {IWhite}containing Lorem Ipsum passages, and more '\n '\\n{BIRed}recently with {BIYellow}desktop publishing {ColorOff}software like Aldus PageMaker including versions of Lorem Ipsum.'\n))\n```\n<img src=\"https://raw.githubusercontent.com/OleksiiPopovDev/Bash-Menu-Builder/main/doc/color-text.png\" alt=\"How it works\" style=\"width:100%;\" />\n\nThe list of tags you can find in `Color` enum:\n```python\nclass Color(Enum):\n # Reset\n ColorOff = '\\033[0m' # Text Reset\n\n # Regular Colors\n Black = '\\033[0;30m' # Black\n Red = '\\033[0;31m' # Red\n Green = '\\033[0;32m' # Green\n Yellow = '\\033[0;33m' # Yellow\n Blue = '\\033[0;34m' # Blue\n Purple = '\\033[0;35m' # Purple\n Cyan = '\\033[0;36m' # Cyan\n White = '\\033[0;37m' # White\n\n # Bold\n BBlack = '\\033[1;30m' # Black\n BRed = '\\033[1;31m' # Red\n BGreen = '\\033[1;32m' # Green\n BYellow = '\\033[1;33m' # Yellow\n BBlue = '\\033[1;34m' # Blue\n BPurple = '\\033[1;35m' # Purple\n BCyan = '\\033[1;36m' # Cyan\n BWhite = '\\033[1;37m' # White\n\n # Underline\n UBlack = '\\033[4;30m' # Black\n URed = '\\033[4;31m' # Red\n UGreen = '\\033[4;32m' # Green\n UYellow = '\\033[4;33m' # Yellow\n UBlue = '\\033[4;34m' # Blue\n UPurple = '\\033[4;35m' # Purple\n UCyan = '\\033[4;36m' # Cyan\n UWhite = '\\033[4;37m' # White\n\n # Background\n On_Black = '\\033[40m' # Black\n On_Red = '\\033[41m' # Red\n On_Green = '\\033[42m' # Green\n On_Yellow = '\\033[43m' # Yellow\n On_Blue = '\\033[44m' # Blue\n On_Purple = '\\033[45m' # Purple\n On_Cyan = '\\033[46m' # Cyan\n On_White = '\\033[47m' # White\n\n # High Intensity\n IBlack = '\\033[0;90m' # Black\n IRed = '\\033[0;91m' # Red\n IGreen = '\\033[0;92m' # Green\n IYellow = '\\033[0;93m' # Yellow\n IBlue = '\\033[0;94m' # Blue\n IPurple = '\\033[0;95m' # Purple\n ICyan = '\\033[0;96m' # Cyan\n IWhite = '\\033[0;97m' # White\n\n # Bold High Intensity\n BIBlack = '\\033[1;90m' # Black\n BIRed = '\\033[1;91m' # Red\n BIGreen = '\\033[1;92m' # Green\n BIYellow = '\\033[1;93m' # Yellow\n BIBlue = '\\033[1;94m' # Blue\n BIPurple = '\\033[1;95m' # Purple\n BICyan = '\\033[1;96m' # Cyan\n BIWhite = '\\033[1;97m' # White\n\n # High Intensity backgrounds\n On_IBlack = '\\033[0;100m' # Black\n On_IRed = '\\033[0;101m' # Red\n On_IGreen = '\\033[0;102m' # Green\n On_IYellow = '\\033[0;103m' # Yellow\n On_IBlue = '\\033[0;104m' # Blue\n On_IPurple = '\\033[0;105m' # Purple\n On_ICyan = '\\033[0;106m' # Cyan\n On_IWhite = '\\033[0;107m' # White\n```\n",
"bugtrack_url": null,
"license": null,
"summary": "Bash Menu Builder",
"version": "1.1.5",
"project_urls": {
"Documentation": "https://github.com/OleksiiPopovDev/Bash-Menu-Builder",
"Homepage": "https://github.com/OleksiiPopovDev/Bash-Menu-Builder"
},
"split_keywords": [
"bash",
"menu",
"vizual",
"python"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "73e96d5024246ab598f6789e2749bc19c0ebff9e082aad34bbb34da53d6fcbe2",
"md5": "b5ef992d296e91563c3f4910171a7c1b",
"sha256": "61334bd445592aa986bc2af30e95da63bc89e23601dd5e91309d1f6af152b113"
},
"downloads": -1,
"filename": "bash_menu_builder-1.1.5-py3-none-any.whl",
"has_sig": false,
"md5_digest": "b5ef992d296e91563c3f4910171a7c1b",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.9",
"size": 10082,
"upload_time": "2024-11-19T00:24:40",
"upload_time_iso_8601": "2024-11-19T00:24:40.900070Z",
"url": "https://files.pythonhosted.org/packages/73/e9/6d5024246ab598f6789e2749bc19c0ebff9e082aad34bbb34da53d6fcbe2/bash_menu_builder-1.1.5-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "5bc53dd401a17b3a987eaae8c9e2cf770670cb79ee31550a721a26174188f57e",
"md5": "80a4170be7e298d44aa047d47c8a163b",
"sha256": "3679f97cdb21346a89c01b167129befbc9e5ecb4e4f1b5c69d7b335649736fba"
},
"downloads": -1,
"filename": "bash_menu_builder-1.1.5.tar.gz",
"has_sig": false,
"md5_digest": "80a4170be7e298d44aa047d47c8a163b",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.9",
"size": 10108,
"upload_time": "2024-11-19T00:24:42",
"upload_time_iso_8601": "2024-11-19T00:24:42.465566Z",
"url": "https://files.pythonhosted.org/packages/5b/c5/3dd401a17b3a987eaae8c9e2cf770670cb79ee31550a721a26174188f57e/bash_menu_builder-1.1.5.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-11-19 00:24:42",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "OleksiiPopovDev",
"github_project": "Bash-Menu-Builder",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"requirements": [],
"lcname": "bash-menu-builder"
}