Name | toolstr JSON |
Version |
0.9.5
JSON |
| download |
home_page | None |
Summary | toolstr is a suite of str processing tools, including formatting and drawing |
upload_time | 2023-05-19 02:50:22 |
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/4a/52/48a1cae6e2ee7bf40e9b51013aff27367110c187a028d246e7101ccac4a3/toolstr-0.9.5.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.5",
"project_urls": {
"Source": "https://github.com/sslivkoff/toolstr"
},
"split_keywords": [],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "453637e5cbfdb7882176568b13f1242be834913dfd1fde8f066f572614adac6a",
"md5": "251159ce18c217c3d693c428f0078b94",
"sha256": "11c76e1e1dfc369b5c6d6697cba602ec09c9c1d2997e1c56b08c266e080dcf9a"
},
"downloads": -1,
"filename": "toolstr-0.9.5-py3-none-any.whl",
"has_sig": false,
"md5_digest": "251159ce18c217c3d693c428f0078b94",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.7",
"size": 38851,
"upload_time": "2023-05-19T02:50:19",
"upload_time_iso_8601": "2023-05-19T02:50:19.589229Z",
"url": "https://files.pythonhosted.org/packages/45/36/37e5cbfdb7882176568b13f1242be834913dfd1fde8f066f572614adac6a/toolstr-0.9.5-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "4a5248a1cae6e2ee7bf40e9b51013aff27367110c187a028d246e7101ccac4a3",
"md5": "21d346c63995622fdc36c9345bf335a3",
"sha256": "b9f7ef6620eeee9c6c2e503ad2b1bb4c120d015d1441f370d1e0e34f9a6bb442"
},
"downloads": -1,
"filename": "toolstr-0.9.5.tar.gz",
"has_sig": false,
"md5_digest": "21d346c63995622fdc36c9345bf335a3",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.7",
"size": 31486,
"upload_time": "2023-05-19T02:50:22",
"upload_time_iso_8601": "2023-05-19T02:50:22.337264Z",
"url": "https://files.pythonhosted.org/packages/4a/52/48a1cae6e2ee7bf40e9b51013aff27367110c187a028d246e7101ccac4a3/toolstr-0.9.5.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2023-05-19 02:50:22",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "sslivkoff",
"github_project": "toolstr",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"lcname": "toolstr"
}