toolstr


Nametoolstr JSON
Version 0.9.8 PyPI version JSON
download
home_pageNone
Summarytoolstr is a suite of str processing tools, including formatting and drawing
upload_time2023-12-11 22:59:31
maintainerNone
docs_urlNone
authorNone
requires_python>=3.7
licenseNone
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"
}
        
Elapsed time: 0.22149s