Name | toolstr JSON |
Version |
0.9.8
JSON |
| download |
home_page | None |
Summary | toolstr is a suite of str processing tools, including formatting and drawing |
upload_time | 2023-12-11 22:59:31 |
maintainer | None |
docs_url | None |
author | None |
requires_python | >=3.7 |
license | None |
keywords |
|
VCS |
|
bugtrack_url |
|
requirements |
No requirements were recorded.
|
Travis-CI |
No Travis.
|
coveralls test coverage |
No coveralls.
|
# toolstr
`toolstr` makes it easy to create precise `str` representations of many different datatypes
`toolstr` has functionality for:
- formatting: convert numbers, timestamps, and bytecounts to str
- charting: create data charts using Unicode and other character sets
- tables: create highly-configurable table representations
`toolstr` uses many Unicode characters, but can also fallback to ascii when needed.
## Install
```bash
pip install toolstr
```
## Contents
- [Formatting Examples](#formatting)
- [Charting Examples](#charting)
- [Tables Examples](#tables)
- [FAQ](#faq)
## Formatting
## Charting
## Tables
Each of the parameters shown below can be mixed and matched to achieve a particular style.
By default numbers in tables are converted to `str` using `toolstr.format_number()`.
There are also some options visible in a terminal but not visible on github, including:
- color cells by column or by value
- separate color control of inner border vs outer border vs header border
- other [rich](https://github.com/Textualize/rich) styles including: bold, italic, and hyperlinks
### Table Examples
`toolstr.print_tables`
#### `{'add_row_index': True}`
```
│ Name │ Era │ Age
─────┼────────────┼──────────────────────────┼─────────────────
1 │ Vaalbara │ Eoarchean-Mesoarchean │ 3,636,000,000
2 │ Gondwana │ Ediacaran-Jurassic │ 550,000,000
3 │ Pangea │ Carboniferous-Jurassic │ 336,000,000
```
#### `{'border': 'thick'}`
```
Name ┃ Era ┃ Age
━━━━━━━━━━━━╋━━━━━━━━━━━━━━━━━━━━━━━━━━╋━━━━━━━━━━━━━━━━━
Vaalbara ┃ Eoarchean-Mesoarchean ┃ 3,636,000,000
Gondwana ┃ Ediacaran-Jurassic ┃ 550,000,000
Pangea ┃ Carboniferous-Jurassic ┃ 336,000,000
```
#### `{'border': 'double'}`
```
Name ║ Era ║ Age
════════════╬══════════════════════════╬═════════════════
Vaalbara ║ Eoarchean-Mesoarchean ║ 3,636,000,000
Gondwana ║ Ediacaran-Jurassic ║ 550,000,000
Pangea ║ Carboniferous-Jurassic ║ 336,000,000
```
#### `{'border': 'ascii'}`
```
Name | Era | Age
------------+--------------------------+-----------------
Vaalbara | Eoarchean-Mesoarchean | 3,636,000,000
Gondwana | Ediacaran-Jurassic | 550,000,000
Pangea | Carboniferous-Jurassic | 336,000,000
```
#### `{'outer_border': True}`
```
┌────────────┬──────────────────────────┬─────────────────┐
│ Name │ Era │ Age │
├────────────┼──────────────────────────┼─────────────────┤
│ Vaalbara │ Eoarchean-Mesoarchean │ 3,636,000,000 │
│ Gondwana │ Ediacaran-Jurassic │ 550,000,000 │
│ Pangea │ Carboniferous-Jurassic │ 336,000,000 │
└────────────┴──────────────────────────┴─────────────────┘
```
#### `{'outer_border': 'thick'}`
```
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ Name │ Era │ Age ┃
┃────────────┼──────────────────────────┼─────────────────┃
┃ Vaalbara │ Eoarchean-Mesoarchean │ 3,636,000,000 ┃
┃ Gondwana │ Ediacaran-Jurassic │ 550,000,000 ┃
┃ Pangea │ Carboniferous-Jurassic │ 336,000,000 ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
```
#### `{'header_location': 'bottom'}`
```
Vaalbara │ Eoarchean-Mesoarchean │ 3,636,000,000
Gondwana │ Ediacaran-Jurassic │ 550,000,000
Pangea │ Carboniferous-Jurassic │ 336,000,000
────────────┼──────────────────────────┼─────────────────
Name │ Era │ Age
```
#### `{'header_location': []}`
```
Vaalbara │ Eoarchean-Mesoarchean │ 3,636,000,000
Gondwana │ Ediacaran-Jurassic │ 550,000,000
Pangea │ Carboniferous-Jurassic │ 336,000,000
```
#### `{'header_location': ['top', 'bottom']}`
```
Name │ Era │ Age
────────────┼──────────────────────────┼─────────────────
Vaalbara │ Eoarchean-Mesoarchean │ 3,636,000,000
Gondwana │ Ediacaran-Jurassic │ 550,000,000
Pangea │ Carboniferous-Jurassic │ 336,000,000
────────────┼──────────────────────────┼─────────────────
Name │ Era │ Age
```
#### `{'separate_all_rows': True}`
```
Name │ Era │ Age
────────────┼──────────────────────────┼─────────────────
Vaalbara │ Eoarchean-Mesoarchean │ 3,636,000,000
────────────┼──────────────────────────┼─────────────────
Gondwana │ Ediacaran-Jurassic │ 550,000,000
────────────┼──────────────────────────┼─────────────────
Pangea │ Carboniferous-Jurassic │ 336,000,000
```
#### `{'compact': True}`
```
Name Era Age
─────────────────────────────────────────────
Vaalbara Eoarchean-Mesoarchean 3,636,000,000
Gondwana Ediacaran-Jurassic 550,000,000
Pangea Carboniferous-Jurassic 336,000,000
```
#### `{'header_border': 'thick'}`
```
Name ┃ Era ┃ Age
━━━━━━━━━━━━┻━━━━━━━━━━━━━━━━━━━━━━━━━━┻━━━━━━━━━━━━━━━━━
Vaalbara │ Eoarchean-Mesoarchean │ 3,636,000,000
Gondwana │ Ediacaran-Jurassic │ 550,000,000
Pangea │ Carboniferous-Jurassic │ 336,000,000
```
#### `{'header_style': 'bold'}`
```
Name │ Era │ Age
────────────┼──────────────────────────┼─────────────────
Vaalbara │ Eoarchean-Mesoarchean │ 3,636,000,000
Gondwana │ Ediacaran-Jurassic │ 550,000,000
Pangea │ Carboniferous-Jurassic │ 336,000,000
```
## FAQ
Raw data
{
"_id": null,
"home_page": null,
"name": "toolstr",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.7",
"maintainer_email": null,
"keywords": null,
"author": null,
"author_email": null,
"download_url": "https://files.pythonhosted.org/packages/7e/1f/70f4cef196737df67aaa9c9d6298c1ee33cbac96ecfa323aed2668e82f01/toolstr-0.9.8.tar.gz",
"platform": null,
"description": "\n# toolstr\n`toolstr` makes it easy to create precise `str` representations of many different datatypes\n\n`toolstr` has functionality for:\n- formatting: convert numbers, timestamps, and bytecounts to str\n- charting: create data charts using Unicode and other character sets\n- tables: create highly-configurable table representations\n\n`toolstr` uses many Unicode characters, but can also fallback to ascii when needed.\n\n\n## Install\n```bash\npip install toolstr\n```\n\n## Contents\n- [Formatting Examples](#formatting)\n- [Charting Examples](#charting)\n- [Tables Examples](#tables)\n- [FAQ](#faq)\n\n## Formatting\n\n## Charting\n\n## Tables\n\nEach of the parameters shown below can be mixed and matched to achieve a particular style.\n\nBy default numbers in tables are converted to `str` using `toolstr.format_number()`.\n\nThere are also some options visible in a terminal but not visible on github, including:\n- color cells by column or by value\n- separate color control of inner border vs outer border vs header border\n- other [rich](https://github.com/Textualize/rich) styles including: bold, italic, and hyperlinks\n\n### Table Examples\n\n`toolstr.print_tables`\n\n#### `{'add_row_index': True}`\n\n```\n \u2502 Name \u2502 Era \u2502 Age \n\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n 1 \u2502 Vaalbara \u2502 Eoarchean-Mesoarchean \u2502 3,636,000,000 \n 2 \u2502 Gondwana \u2502 Ediacaran-Jurassic \u2502 550,000,000 \n 3 \u2502 Pangea \u2502 Carboniferous-Jurassic \u2502 336,000,000 \n```\n\n\n#### `{'border': 'thick'}`\n\n```\n Name \u2503 Era \u2503 Age \n\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u254b\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u254b\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\n Vaalbara \u2503 Eoarchean-Mesoarchean \u2503 3,636,000,000 \n Gondwana \u2503 Ediacaran-Jurassic \u2503 550,000,000 \n Pangea \u2503 Carboniferous-Jurassic \u2503 336,000,000 \n```\n\n\n#### `{'border': 'double'}`\n\n```\n Name \u2551 Era \u2551 Age \n\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u256c\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u256c\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n Vaalbara \u2551 Eoarchean-Mesoarchean \u2551 3,636,000,000 \n Gondwana \u2551 Ediacaran-Jurassic \u2551 550,000,000 \n Pangea \u2551 Carboniferous-Jurassic \u2551 336,000,000 \n```\n\n\n#### `{'border': 'ascii'}`\n\n```\n Name | Era | Age \n------------+--------------------------+-----------------\n Vaalbara | Eoarchean-Mesoarchean | 3,636,000,000 \n Gondwana | Ediacaran-Jurassic | 550,000,000 \n Pangea | Carboniferous-Jurassic | 336,000,000 \n```\n\n\n#### `{'outer_border': True}`\n\n```\n\u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510\n\u2502 Name \u2502 Era \u2502 Age \u2502\n\u251c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524\n\u2502 Vaalbara \u2502 Eoarchean-Mesoarchean \u2502 3,636,000,000 \u2502\n\u2502 Gondwana \u2502 Ediacaran-Jurassic \u2502 550,000,000 \u2502\n\u2502 Pangea \u2502 Carboniferous-Jurassic \u2502 336,000,000 \u2502\n\u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\n```\n\n\n#### `{'outer_border': 'thick'}`\n\n```\n\u250f\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2513\n\u2503 Name \u2502 Era \u2502 Age \u2503\n\u2503\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2503\n\u2503 Vaalbara \u2502 Eoarchean-Mesoarchean \u2502 3,636,000,000 \u2503\n\u2503 Gondwana \u2502 Ediacaran-Jurassic \u2502 550,000,000 \u2503\n\u2503 Pangea \u2502 Carboniferous-Jurassic \u2502 336,000,000 \u2503\n\u2517\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u251b\n```\n\n\n#### `{'header_location': 'bottom'}`\n\n```\n Vaalbara \u2502 Eoarchean-Mesoarchean \u2502 3,636,000,000 \n Gondwana \u2502 Ediacaran-Jurassic \u2502 550,000,000 \n Pangea \u2502 Carboniferous-Jurassic \u2502 336,000,000 \n\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n Name \u2502 Era \u2502 Age \n```\n\n\n#### `{'header_location': []}`\n\n```\n Vaalbara \u2502 Eoarchean-Mesoarchean \u2502 3,636,000,000 \n Gondwana \u2502 Ediacaran-Jurassic \u2502 550,000,000 \n Pangea \u2502 Carboniferous-Jurassic \u2502 336,000,000 \n```\n\n\n#### `{'header_location': ['top', 'bottom']}`\n\n```\n Name \u2502 Era \u2502 Age \n\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n Vaalbara \u2502 Eoarchean-Mesoarchean \u2502 3,636,000,000 \n Gondwana \u2502 Ediacaran-Jurassic \u2502 550,000,000 \n Pangea \u2502 Carboniferous-Jurassic \u2502 336,000,000 \n\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n Name \u2502 Era \u2502 Age \n```\n\n\n#### `{'separate_all_rows': True}`\n\n```\n Name \u2502 Era \u2502 Age \n\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n Vaalbara \u2502 Eoarchean-Mesoarchean \u2502 3,636,000,000 \n\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n Gondwana \u2502 Ediacaran-Jurassic \u2502 550,000,000 \n\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n Pangea \u2502 Carboniferous-Jurassic \u2502 336,000,000 \n```\n\n\n#### `{'compact': True}`\n\n```\n Name Era Age\n\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\nVaalbara Eoarchean-Mesoarchean 3,636,000,000\nGondwana Ediacaran-Jurassic 550,000,000\n Pangea Carboniferous-Jurassic 336,000,000\n```\n\n\n#### `{'header_border': 'thick'}`\n\n```\n Name \u2503 Era \u2503 Age \n\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u253b\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u253b\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\n Vaalbara \u2502 Eoarchean-Mesoarchean \u2502 3,636,000,000 \n Gondwana \u2502 Ediacaran-Jurassic \u2502 550,000,000 \n Pangea \u2502 Carboniferous-Jurassic \u2502 336,000,000 \n```\n\n\n#### `{'header_style': 'bold'}`\n\n```\n Name \u2502 Era \u2502 Age \n\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n Vaalbara \u2502 Eoarchean-Mesoarchean \u2502 3,636,000,000 \n Gondwana \u2502 Ediacaran-Jurassic \u2502 550,000,000 \n Pangea \u2502 Carboniferous-Jurassic \u2502 336,000,000 \n```\n\n## FAQ\n",
"bugtrack_url": null,
"license": null,
"summary": "toolstr is a suite of str processing tools, including formatting and drawing",
"version": "0.9.8",
"project_urls": {
"Source": "https://github.com/sslivkoff/toolstr"
},
"split_keywords": [],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "dac4d3ce8af8be13155e002615819de5acdd2fa9df8c26bc75adc4d3393fbe53",
"md5": "01f5d2ec00c3fc769c77deddcf72d987",
"sha256": "420390bb12762ab989ffef930e31822122baaaff0302c271d9dff4d26e030ae7"
},
"downloads": -1,
"filename": "toolstr-0.9.8-py3-none-any.whl",
"has_sig": false,
"md5_digest": "01f5d2ec00c3fc769c77deddcf72d987",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.7",
"size": 40833,
"upload_time": "2023-12-11T22:59:29",
"upload_time_iso_8601": "2023-12-11T22:59:29.261489Z",
"url": "https://files.pythonhosted.org/packages/da/c4/d3ce8af8be13155e002615819de5acdd2fa9df8c26bc75adc4d3393fbe53/toolstr-0.9.8-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "7e1f70f4cef196737df67aaa9c9d6298c1ee33cbac96ecfa323aed2668e82f01",
"md5": "3e19d2922b3ffd06ab028e3b6a3e8ddb",
"sha256": "f855bd723bd6b4e452712ebeebb5e826e64261797b0150dcf9eea87cb99b6967"
},
"downloads": -1,
"filename": "toolstr-0.9.8.tar.gz",
"has_sig": false,
"md5_digest": "3e19d2922b3ffd06ab028e3b6a3e8ddb",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.7",
"size": 33070,
"upload_time": "2023-12-11T22:59:31",
"upload_time_iso_8601": "2023-12-11T22:59:31.159081Z",
"url": "https://files.pythonhosted.org/packages/7e/1f/70f4cef196737df67aaa9c9d6298c1ee33cbac96ecfa323aed2668e82f01/toolstr-0.9.8.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2023-12-11 22:59:31",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "sslivkoff",
"github_project": "toolstr",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"lcname": "toolstr"
}