termcolor_dg
============
📦 [pypi/termcolor_dg](https://pypi.python.org/pypi/termcolor_dg) |
📑 [ANSI escape code](https://en.wikipedia.org/wiki/ANSI_escape_code) |
📑 [Color codes cheatsheet](https://delameter.github.io/termcolor)
ANSI Color formatting for terminal output and log coloring. Supports 16 colors, 256 colors and 24-bit color modes.
Python 2 support is present for legacy projects, and because it is not too much work and I have to use it for now.
Example
-------
```python
from termcolor_dg import colored, cprint
print(colored('Hello, World!', 'light_red', 'on_blue'))
cprint('Hello, World!', 'blue', 'on_light_red', ['reverse', 'blink'])
print_red_on_cyan = lambda x: cprint(x, 'red', 'on_cyan')
print_red_on_cyan('Hello, World!')
for i in range(10):
cprint(str(i), 'magenta', end=' ' if i != 9 else '\n')
import sys
cprint("Attention!", 196, attrs='bold', file=sys.stderr) # 256 color mode
cprint("Attention!", (255, 0, 0), attrs='bold', file=sys.stderr) # 24-bit color mode
import logging
from termcolor_dg import logging_basic_color_config
logging_basic_color_config()
logging.log(logging.INFO, 'test')
```
Colors demo screenshot (`python -m termcolor_dg`):
--------------------------------------------------

Colored logs demo screenshot (`python -m termcolor_dg logs`):
-------------------------------------------------------------

Environment variables
---------------------
- **ANSI_COLORS_FORCE**:
If set to anything, even empty string, color escape sequences will be added.
- **ANSI_COLORS_DISABLED**:
If set to anything no coloring will be performed, overrides **ANSI_COLORS_FORCE**.
- **NO_COLOR**:
If set to anything no coloring will be performed, overrides **ANSI_COLORS_FORCE**,
see https://no-color.org/.
If none of the environment variables is set the colors are used
only if the ``stdout`` is attached to a terminal: ``sys.stdout.isatty()``.
Text properties
---------------
| Text colors | Text highlights | Alt Text highlights | Attributes |
|---------------|-----------------|---------------------|------------|
| black | black | on_black | bold |
| red | red | on_red | dark |
| green | green | on_green | underline |
| yellow | yellow | on_yellow | blink |
| blue | blue | on_blue | reverse |
| magenta | magenta | on_magenta | concealed |
| cyan | cyan | on_cyan | |
| light_grey | light_grey | on_light_grey | |
| dark_grey | dark_grey | on_dark_grey | |
| light_red | light_red | on_light_red | |
| light_green | light_green | on_light_green | |
| light_yellow | light_yellow | on_light_yellow | |
| light_blue | light_blue | on_light_blue | |
| light_magenta | light_magenta | on_light_magenta | |
| light_cyan | light_cyan | on_light_cyan | |
| white | white | on_white | |
Functions
---------
### Adding ANSI colors
**always_colored(text, color=None, on_color=None, attrs=None, reset=True)**
: Returns the text with ANSI color code in front and ANSI color reset after. Arguments:
: - **text** is the text to add color to
: - **color** and **on_color** define the character and background color. Each can be a name for 16 color mode, number for the 256 color variant and list/tuple of R, G and B for the 24 bit color support. The following all define light red: **'light_red'**, **9**, **196** and **(255, 0, 0)**.
: - **attrs** attributes, single attribute name, list or tuple of attributes.
: - **reset** if set to **False** will suppress adding of the reset ANSI sequence at the end. Useful if you are joining another colored string, only the last reset is really needed.
**colored(text, color=None, on_color=None, attrs=None, reset=True)**
: same as always_colored but checks if the app is running on a terminal and if the colors have been forced or disabled. The boolean **termcolor_dg.DISABLED** is the variable checked.
### Utility functions
**cprint(text='', color=None, on_color=None, attrs=None, \*\*kwargs)**
: same as colored, but prints the resulting string instead of returning it.
**rainbow_color(n, steps, nmax=255)**
: calculates the color at step **n** needed to produce a rainbow in **steps** steps with intensity up to **nmax**. Ex: **rainbow_color(0, 120)** returns **(255, 0, 0)**, **rainbow_color(30, 120)** returns **(128, 255, 0)**.
**monkey_patch_logging**
: Monkeypatch **logging.Formatter** to add colors to the logs on a terminal, not customizable for now. Monkeypatch **logging.LogRecord.getMessage** to log formatting errors in the log format instead of throwing useless exception.
**logging_basic_color_config(level='DEBUG', fmt='%(asctime)s %(message)s # %(filename)s:%(lineno)d %(name)s', color_on_terminal=True)**
: Basic logging configuration, coloring and report formatting errors (**monkey_patch_logging**). Coloring code relies on ' # ' to determine the section to print in pale dark blue (comment).
**monkey_unpatch_logging**
: Undo the monkeypatching done by **monkey_patch_logging** and remove coloring and error handling.
**COLOR_RESET_STR**
: The color and attribute ANSI reset code.
## Similar projects
You may want to check out:
- 📦 [pypi/termcolor](https://pypi.python.org/pypi/termcolor) - the original project
- 📦 [natmey/termcolor](https://github.com/natmey/termcolor) - fork of the original termcolor that termcolor_dg extends
- 📦 [pypi/colorama](https://pypi.org/project/colorama/) for more advanced options.
## Interesting links
- 📑 [Terminal Colors](https://github.com/termstandard/colors) discussion with examples
- 📑 [ANSI/VT100 Terminal Control Escape Sequences](https://www2.ccs.neu.edu/research/gpc/VonaUtils/vona/terminal/vtansi.htm)
- 📑 [ANSI escape code](https://en.wikipedia.org/wiki/ANSI_escape_code)
- 📑 [Color codes cheatsheet](https://delameter.github.io/termcolor)
- 📑 [MarkdownGuide - Basic Syntax](https://www.markdownguide.org/basic-syntax)
Terminal properties support
---------------------------
Assume this information is outdated.
| Terminal | bold | dark | underline | blink | reverse | concealed | 256 colors | 24-bit color |
|:-----------------|:-------:|:-----:|:---------:|:-------:|:-------:|:---------:|:----------:|:------------:|
| **linux** | ❌[^3] | ❌[^3] | ✅[^3] | ✅[^3] | ✅ | ❌ | ❌ | ❌ |
| **konsole** | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| **terminator** | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| **kitty** | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ |
| **xterm** | ✅ | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| **rxvt** | ✅ | ❌ | ✅ | ✅ | ✅ | ❌ | ✅ | ❌ |
| **dtterm** | ✅ | ✅ | ✅ | reverse | ✅ | ✅ | ❓ | ❓ |
| **teraterm** | reverse | ❌ | ✅ | rev/red | ✅ | ❌ | ❓ | ❓ |
| **aixterm** | normal | ❌ | ✅ | ❌ | ✅ | ✅ | ❓ | ❓ |
| **Windows** | ❌ | ❌ | ❌ | ❌ | ✅ | ✅[^4] | ❓ | ✅ |
| **PuTTY** | ✅[^2] | ✅ | ✅ | ✅[^1] | ✅ | ❌ | ✅ | ✅ |
| **Cygwin SSH** | ✅ | ❌ | color | color | color | ✅ | ❓ | ❓ |
| **Mac Terminal** | ✅ | ❓ | ✅ | ✅ | ✅ | ✅ | ✅ | ❓ |
| **iTerm2** | ✅ | ❓ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
[^1]: Disabled by default
[^2]: Supports color change, bold text or both.
[^3]: See [VGA text mode](https://en.wikipedia.org/wiki/VGA_text_mode)
[^4]: See [Add support for the "concealed" graphic rendition attribute #6876 ](https://github.com/microsoft/terminal/issues/6876)
termcolor_dg changes
====================
1.0.0 (2023-05-25)
------------------
- fix DISABLED detection
- logging.basicConfig has no disable_existing_loggers argument.
- move back to GitHub, workflows does work and is free.
0.9.3.1 (2022-02-14)
--------------------
- Adjust the log color scheme.
- pylint fixes in the color demo.
0.9.3 (2022-02-14)
------------------
- Adjust the log color scheme.
- pylint fixes in the color demo.
0.9.2 (2022-02-07)
------------------
- Combine color, background and attributes in a single escape sequence.
- Minor enhancements.
0.9.1 (2022-02-05)
------------------
- Rename to termcolor_dg (termcolor2 is taken).
0.9.0 (2022-02-05)
------------------
- Fork to termcolor2.
- Add 24-bit colors support.
- Add logging and color demos.
- Add ANSI_COLORS_DISABLED and ANSI_COLORS_FORCE environment variables.
- Add always_colored, rainbow_color.
- Add monkey_patch_logging and logging_basic_color_config utility functions.
- Better cprint and print compatibility (no arguments = new line).
- Drop 'gray' and 'on_gray' (it was an alias for black, bad idea?).
- Make the trailing reset sequence optional for colored.
- Use `python -m build` to build the project.
- Remove regex usage, the following would have not been stripped but works: `echo -e '(\e[01;32mx\e[1;0033mx\e[m)'`.
- Remove PKG-INFO.
- README.md instead of README.rst.
- ... unit tests, INSTALL ...
---
termcolor changes
=================
1.9.1 (2021-12-15)
------------------
- python 2 and 3 compatibility, avoid KeyError
- make pylint happy
- fix character escapes
- better .gitignore
- fix __ALL__ to __all__
1.1.0 (2011-01-13)
------------------
- Added cprint function.
1.0.1 (2011-01-13)
------------------
- Updated README.rst.
1.0.0 (2011-01-13)
------------------
- Changed license to MIT.
- Updated copyright.
- Refactored source code.
0.2 (2010-09-07)
------------------
- Added support for Python 3.x.
0.1.2 (2009-06-04)
------------------
- Fixed bold characters. (Thanks Tibor Fekete)
0.1.1 (2009-03-05)
------------------
- Some refactoring.
- Updated copyright.
- Fixed reset colors.
- Updated documentation.
0.1 (2008-06-09)
----------------
- Initial release.
Raw data
{
"_id": null,
"home_page": "https://github.com/gunchev/termcolor_dg/",
"name": "termcolor-dg",
"maintainer": "Doncho N. Gunchev",
"docs_url": null,
"requires_python": ">=2.7",
"maintainer_email": "dgunchev@gmail.com",
"keywords": null,
"author": "Konstantin Lepa",
"author_email": "konstantin.lepa@gmail.com",
"download_url": "https://files.pythonhosted.org/packages/d2/a2/0c0f1b338dc32b2cc21a64c4022d662712c9ea8b64cf2e3e482c8f92ac50/termcolor_dg-1.0.2.tar.gz",
"platform": "any",
"description": "termcolor_dg\n============\n\n\ud83d\udce6 [pypi/termcolor_dg](https://pypi.python.org/pypi/termcolor_dg) |\n\ud83d\udcd1 [ANSI escape code](https://en.wikipedia.org/wiki/ANSI_escape_code) |\n\ud83d\udcd1 [Color codes cheatsheet](https://delameter.github.io/termcolor)\n\nANSI Color formatting for terminal output and log coloring. Supports 16 colors, 256 colors and 24-bit color modes.\n\nPython 2 support is present for legacy projects, and because it is not too much work and I have to use it for now.\n\n\nExample\n-------\n\n```python\nfrom termcolor_dg import colored, cprint\n\nprint(colored('Hello, World!', 'light_red', 'on_blue'))\ncprint('Hello, World!', 'blue', 'on_light_red', ['reverse', 'blink'])\nprint_red_on_cyan = lambda x: cprint(x, 'red', 'on_cyan')\nprint_red_on_cyan('Hello, World!')\nfor i in range(10):\n cprint(str(i), 'magenta', end=' ' if i != 9 else '\\n')\nimport sys\n\ncprint(\"Attention!\", 196, attrs='bold', file=sys.stderr) # 256 color mode\ncprint(\"Attention!\", (255, 0, 0), attrs='bold', file=sys.stderr) # 24-bit color mode\nimport logging\nfrom termcolor_dg import logging_basic_color_config\n\nlogging_basic_color_config()\nlogging.log(logging.INFO, 'test')\n```\n\n\nColors demo screenshot (`python -m termcolor_dg`):\n--------------------------------------------------\n\n\n\n\nColored logs demo screenshot (`python -m termcolor_dg logs`):\n-------------------------------------------------------------\n\n\n\n\nEnvironment variables\n---------------------\n\n- **ANSI_COLORS_FORCE**:\n If set to anything, even empty string, color escape sequences will be added.\n\n- **ANSI_COLORS_DISABLED**:\n If set to anything no coloring will be performed, overrides **ANSI_COLORS_FORCE**.\n\n- **NO_COLOR**:\n If set to anything no coloring will be performed, overrides **ANSI_COLORS_FORCE**,\n see https://no-color.org/.\n\nIf none of the environment variables is set the colors are used\nonly if the ``stdout`` is attached to a terminal: ``sys.stdout.isatty()``.\n\n\nText properties\n---------------\n\n| Text colors | Text highlights | Alt Text highlights | Attributes |\n|---------------|-----------------|---------------------|------------|\n| black | black | on_black | bold |\n| red | red | on_red | dark |\n| green | green | on_green | underline |\n| yellow | yellow | on_yellow | blink |\n| blue | blue | on_blue | reverse |\n| magenta | magenta | on_magenta | concealed |\n| cyan | cyan | on_cyan | |\n| light_grey | light_grey | on_light_grey | |\n| dark_grey | dark_grey | on_dark_grey | |\n| light_red | light_red | on_light_red | |\n| light_green | light_green | on_light_green | |\n| light_yellow | light_yellow | on_light_yellow | |\n| light_blue | light_blue | on_light_blue | |\n| light_magenta | light_magenta | on_light_magenta | |\n| light_cyan | light_cyan | on_light_cyan | |\n| white | white | on_white | |\n\n\nFunctions\n---------\n\n### Adding ANSI colors\n\n**always_colored(text, color=None, on_color=None, attrs=None, reset=True)**\n: Returns the text with ANSI color code in front and ANSI color reset after. Arguments:\n: - **text** is the text to add color to\n: - **color** and **on_color** define the character and background color. Each can be a name for 16 color mode, number for the 256 color variant and list/tuple of R, G and B for the 24 bit color support. The following all define light red: **'light_red'**, **9**, **196** and **(255, 0, 0)**.\n: - **attrs** attributes, single attribute name, list or tuple of attributes.\n: - **reset** if set to **False** will suppress adding of the reset ANSI sequence at the end. Useful if you are joining another colored string, only the last reset is really needed.\n\n**colored(text, color=None, on_color=None, attrs=None, reset=True)**\n: same as always_colored but checks if the app is running on a terminal and if the colors have been forced or disabled. The boolean **termcolor_dg.DISABLED** is the variable checked.\n\n\n### Utility functions\n\n**cprint(text='', color=None, on_color=None, attrs=None, \\*\\*kwargs)**\n: same as colored, but prints the resulting string instead of returning it.\n\n**rainbow_color(n, steps, nmax=255)**\n: calculates the color at step **n** needed to produce a rainbow in **steps** steps with intensity up to **nmax**. Ex: **rainbow_color(0, 120)** returns **(255, 0, 0)**, **rainbow_color(30, 120)** returns **(128, 255, 0)**.\n\n**monkey_patch_logging**\n: Monkeypatch **logging.Formatter** to add colors to the logs on a terminal, not customizable for now. Monkeypatch **logging.LogRecord.getMessage** to log formatting errors in the log format instead of throwing useless exception.\n\n**logging_basic_color_config(level='DEBUG', fmt='%(asctime)s %(message)s # %(filename)s:%(lineno)d %(name)s', color_on_terminal=True)**\n: Basic logging configuration, coloring and report formatting errors (**monkey_patch_logging**). Coloring code relies on ' # ' to determine the section to print in pale dark blue (comment).\n\n**monkey_unpatch_logging**\n: Undo the monkeypatching done by **monkey_patch_logging** and remove coloring and error handling.\n\n**COLOR_RESET_STR**\n: The color and attribute ANSI reset code.\n\n\n## Similar projects\n\nYou may want to check out:\n\n- \ud83d\udce6 [pypi/termcolor](https://pypi.python.org/pypi/termcolor) - the original project\n- \ud83d\udce6 [natmey/termcolor](https://github.com/natmey/termcolor) - fork of the original termcolor that termcolor_dg extends\n- \ud83d\udce6 [pypi/colorama](https://pypi.org/project/colorama/) for more advanced options.\n\n\n## Interesting links\n\n- \ud83d\udcd1 [Terminal Colors](https://github.com/termstandard/colors) discussion with examples\n- \ud83d\udcd1 [ANSI/VT100 Terminal Control Escape Sequences](https://www2.ccs.neu.edu/research/gpc/VonaUtils/vona/terminal/vtansi.htm)\n- \ud83d\udcd1 [ANSI escape code](https://en.wikipedia.org/wiki/ANSI_escape_code)\n- \ud83d\udcd1 [Color codes cheatsheet](https://delameter.github.io/termcolor)\n- \ud83d\udcd1 [MarkdownGuide - Basic Syntax](https://www.markdownguide.org/basic-syntax)\n\n\nTerminal properties support\n---------------------------\nAssume this information is outdated.\n\n| Terminal | bold | dark | underline | blink | reverse | concealed | 256 colors | 24-bit color |\n|:-----------------|:-------:|:-----:|:---------:|:-------:|:-------:|:---------:|:----------:|:------------:|\n| **linux** | \u274c[^3] | \u274c[^3] | \u2705[^3] | \u2705[^3] | \u2705 | \u274c | \u274c | \u274c |\n| **konsole** | \u2705 | \u2705 | \u2705 | \u2705 | \u2705 | \u2705 | \u2705 | \u2705 |\n| **terminator** | \u2705 | \u2705 | \u2705 | \u2705 | \u2705 | \u2705 | \u2705 | \u2705 |\n| **kitty** | \u2705 | \u2705 | \u2705 | \u2705 | \u2705 | \u274c | \u2705 | \u2705 |\n| **xterm** | \u2705 | \u274c | \u2705 | \u2705 | \u2705 | \u2705 | \u2705 | \u2705 |\n| **rxvt** | \u2705 | \u274c | \u2705 | \u2705 | \u2705 | \u274c | \u2705 | \u274c |\n| **dtterm** | \u2705 | \u2705 | \u2705 | reverse | \u2705 | \u2705 | \u2753 | \u2753 |\n| **teraterm** | reverse | \u274c | \u2705 | rev/red | \u2705 | \u274c | \u2753 | \u2753 |\n| **aixterm** | normal | \u274c | \u2705 | \u274c | \u2705 | \u2705 | \u2753 | \u2753 |\n| **Windows** | \u274c | \u274c | \u274c | \u274c | \u2705 | \u2705[^4] | \u2753 | \u2705 |\n| **PuTTY** | \u2705[^2] | \u2705 | \u2705 | \u2705[^1] | \u2705 | \u274c | \u2705 | \u2705 |\n| **Cygwin SSH** | \u2705 | \u274c | color | color | color | \u2705 | \u2753 | \u2753 |\n| **Mac Terminal** | \u2705 | \u2753 | \u2705 | \u2705 | \u2705 | \u2705 | \u2705 | \u2753 |\n| **iTerm2** | \u2705 | \u2753 | \u2705 | \u2705 | \u2705 | \u2705 | \u2705 | \u2705 |\n\n[^1]: Disabled by default\n\n[^2]: Supports color change, bold text or both.\n\n[^3]: See [VGA text mode](https://en.wikipedia.org/wiki/VGA_text_mode)\n\n[^4]: See [Add support for the \"concealed\" graphic rendition attribute #6876 ](https://github.com/microsoft/terminal/issues/6876)\n\ntermcolor_dg changes\n====================\n\n1.0.0 (2023-05-25)\n------------------\n\n- fix DISABLED detection\n- logging.basicConfig has no disable_existing_loggers argument.\n- move back to GitHub, workflows does work and is free.\n\n0.9.3.1 (2022-02-14)\n--------------------\n\n- Adjust the log color scheme.\n- pylint fixes in the color demo.\n\n0.9.3 (2022-02-14)\n------------------\n\n- Adjust the log color scheme.\n- pylint fixes in the color demo.\n\n0.9.2 (2022-02-07)\n------------------\n\n- Combine color, background and attributes in a single escape sequence.\n- Minor enhancements.\n\n0.9.1 (2022-02-05)\n------------------\n\n- Rename to termcolor_dg (termcolor2 is taken).\n\n0.9.0 (2022-02-05)\n------------------\n\n- Fork to termcolor2.\n- Add 24-bit colors support.\n- Add logging and color demos.\n- Add ANSI_COLORS_DISABLED and ANSI_COLORS_FORCE environment variables.\n- Add always_colored, rainbow_color.\n- Add monkey_patch_logging and logging_basic_color_config utility functions.\n- Better cprint and print compatibility (no arguments = new line).\n- Drop 'gray' and 'on_gray' (it was an alias for black, bad idea?).\n- Make the trailing reset sequence optional for colored.\n- Use `python -m build` to build the project.\n- Remove regex usage, the following would have not been stripped but works: `echo -e '(\\e[01;32mx\\e[1;0033mx\\e[m)'`.\n- Remove PKG-INFO.\n- README.md instead of README.rst.\n- ... unit tests, INSTALL ...\n\n---\n\ntermcolor changes\n=================\n\n1.9.1 (2021-12-15)\n------------------\n\n- python 2 and 3 compatibility, avoid KeyError\n- make pylint happy\n- fix character escapes\n- better .gitignore\n- fix __ALL__ to __all__\n\n1.1.0 (2011-01-13)\n------------------\n\n- Added cprint function.\n\n1.0.1 (2011-01-13)\n------------------\n\n- Updated README.rst.\n\n1.0.0 (2011-01-13)\n------------------\n\n- Changed license to MIT.\n- Updated copyright.\n- Refactored source code.\n\n0.2 (2010-09-07)\n------------------\n\n- Added support for Python 3.x.\n\n0.1.2 (2009-06-04)\n------------------\n\n- Fixed bold characters. (Thanks Tibor Fekete)\n\n0.1.1 (2009-03-05)\n------------------\n\n- Some refactoring.\n- Updated copyright.\n- Fixed reset colors.\n- Updated documentation.\n\n0.1 (2008-06-09)\n----------------\n\n- Initial release.\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "ANSI Color formatting for terminal output and log coloring",
"version": "1.0.2",
"project_urls": {
"Bug Tracker": "https://github.com/gunchev/termcolor_dg/issues/",
"Documentation": "https://github.com/gunchev/termcolor_dg/blob/master/README.md",
"Homepage": "https://github.com/gunchev/termcolor_dg/",
"Source": "https://github.com/gunchev/termcolor_dg/"
},
"split_keywords": [],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "a3596f7753ea9db1dc7b453579ad2327d322a2066956aa0c120288bc321bce9e",
"md5": "e8c94fca16b1bc74fe8e993664fb494e",
"sha256": "3ab777b840cb53680d931a2373bfa921f0479119ebde2366f7baf624c7bece1e"
},
"downloads": -1,
"filename": "termcolor_dg-1.0.2-py2.py3-none-any.whl",
"has_sig": false,
"md5_digest": "e8c94fca16b1bc74fe8e993664fb494e",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": ">=2.7",
"size": 12446,
"upload_time": "2025-01-04T00:42:22",
"upload_time_iso_8601": "2025-01-04T00:42:22.353086Z",
"url": "https://files.pythonhosted.org/packages/a3/59/6f7753ea9db1dc7b453579ad2327d322a2066956aa0c120288bc321bce9e/termcolor_dg-1.0.2-py2.py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "d2a20c0f1b338dc32b2cc21a64c4022d662712c9ea8b64cf2e3e482c8f92ac50",
"md5": "42188c220f84791270521c6ed79650d8",
"sha256": "f28cd9d5f50c991ecbdde49b94eb8407ec04489b0c258718e04bfd90d4a038ff"
},
"downloads": -1,
"filename": "termcolor_dg-1.0.2.tar.gz",
"has_sig": false,
"md5_digest": "42188c220f84791270521c6ed79650d8",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=2.7",
"size": 292447,
"upload_time": "2025-01-04T00:42:25",
"upload_time_iso_8601": "2025-01-04T00:42:25.211143Z",
"url": "https://files.pythonhosted.org/packages/d2/a2/0c0f1b338dc32b2cc21a64c4022d662712c9ea8b64cf2e3e482c8f92ac50/termcolor_dg-1.0.2.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-01-04 00:42:25",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "gunchev",
"github_project": "termcolor_dg",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"tox": true,
"lcname": "termcolor-dg"
}