toolstr


Nametoolstr JSON
Version 0.9.5 PyPI version JSON
download
home_pageNone
Summarytoolstr is a suite of str processing tools, including formatting and drawing
upload_time2023-05-19 02:50:22
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/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"
}
        
Elapsed time: 0.10506s