constyle


Nameconstyle JSON
Version 2.0.3 PyPI version JSON
download
home_pagehttps://github.com/abrahammurciano/python-constyle
SummaryA Python library to add style to your console.
upload_time2023-04-24 13:22:50
maintainer
docs_urlNone
authorAbraham Murciano
requires_python>=3.7,<4.0
licenseGPLv3
keywords terminal console style color colors colour colours ansi
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # constyle
A Python library to add style to your console.

The name of the library comes from merging the words **CONSoLE** and **STYLE**. Also "con" means "with" in Spanish.

## Installation

You can install this package with pip or conda.
```sh
$ pip install constyle
```
```sh
$ conda install -c conda-forge constyle
```
```sh
$ conda install -c abrahammurciano constyle
```

## Links

[![Documentation](https://img.shields.io/badge/Documentation-C61C3E?style=for-the-badge&logo=Read+the+Docs&logoColor=%23FFFFFF)](https://abrahammurciano.github.io/python-constyle/constyle)

[![Source Code - GitHub](https://img.shields.io/badge/Source_Code-GitHub-181717?style=for-the-badge&logo=GitHub&logoColor=%23FFFFFF)](https://github.com/abrahammurciano/python-constyle.git)

[![PyPI - constyle](https://img.shields.io/badge/PyPI-constyle-006DAD?style=for-the-badge&logo=PyPI&logoColor=%23FFD242)](https://pypi.org/project/constyle/)

[![Anaconda - constyle](https://img.shields.io/badge/Anaconda-constyle-44A833?style=for-the-badge&logo=Anaconda&logoColor=%23FFFFFF)](https://anaconda.org/abrahammurciano/constyle)

[![Discord - Community](https://img.shields.io/badge/Discord-Community-5865F2?style=for-the-badge&logo=Discord&logoColor=FFFFFF)](https://discord.gg/nUmsrhNDSs)

## Usage

There are a couple of ways to use this library.

### The `style` function

The simplest way is with the `style` function.

```py
from constyle import style, Attributes

print(style('Hello World', Attributes.GREEN, Attributes.BOLD, Attributes.ON_BLUE))
```

### `Style` objects

You can also use `Style` objects to create a reusable style with any number of attributes.

#### Calling a `Style` object

`Style` objects are callable and take a string as input and return a styled string.

```py
warning = Style(Attributes.YELLOW, Attributes.BOLD)
print(warning('You shall not pass!'))
```

#### Adding `Style` objects

Adding together `Style` objects will also create `Style` objects.

```py
whisper = Attributes.GREY + Attributes.DIM + Attributes.SUPERSCRIPT
print(whisper('Fly you fools'))
```

#### Converting `Style` objects to strings

`Style` objects can be converted to strings to obtain the ANSI escape sequence for that style.

```py
warning = Style(Attributes.YELLOW, Attributes.BOLD)
print(f"{warning}You shall not pass!{Attributes.RESET}")
```

### Attributes

The `Attributes` enum contains all the available ANSI attributes. You can read more about them [here](https://en.wikipedia.org/wiki/ANSI_escape_code#SGR_(Select_Graphic_Rendition)_parameters).

`Attributes` are also `Style` objects, and as such, as demonstrated above, they too can be called to style a string, added together and to other `Style` objects, and converted to strings to obtain their ANSI sequence.

You'll find there is limited support for all the ANSI attributes among some consoles.

If you find more attributes that aren't provided in this enum, you can create your own by constructing a `Style` with an integer.

### Nesting

In order to nest styles, you can use the `end=` keyword argument of the `style` function or the `Style` class. Usually when applying a style, the `RESET` attribute is appended to the end. This can be undesirable when nesting (see the example below).

```py
bold = Attributes.BOLD
yellow = Attributes.YELLOW
green = Attributes.GREEN

print(yellow(bold('This is bold and yellow')))
print(green(f"This is green. {yellow('This is yellow.')} This is no longer green"))
```

In order to achieve the desired result in the above example, you would have to use the `end=` keyword argument of the `style` function. You can pass any `Style` to `end`.

```py
print(green(f"This is green. {bold('This is green and bold.', end=Attributes.NO_BOLD)} This is still green but not bold anymore"))
print(green(f"This is green. {yellow('This is yellow.', end=green)} This is now green again"))
```

### Custom colours

The `constyle.custom_colours` module contains a few classes that can be used to create custom colours.

#### RGB colours

You can create a `Style` for a custom RGB colour by using the `RGB` class. This is not well supported by all consoles.

```py
from constyle.custom_colours import RGB

print(style('This is pink', RGB(255, 192, 203)))
```

#### 8-bit colours

Some consoles support 8-bit colours. You can create a `Style` for an 8-bit colour by using the `EightBit` class, passing a single integer to it, or you can use the `EightBitRGB` class to create an 8-bit colour style as close to the RGB values as possible.

## The command line interface

This package also provides a very basic command line interface to print styled strings.

You can pass it any number of strings and it will print them all together (like `echo`). You can pass `--attribute` (or `-a`) with the name of an attribute to apply to the other strings being printed. You can pass `--attribute` as many times as you like.

You can use `constyle --help` to see more specific details, as well as all available attributes.

For example you can use `constyle` from your shell to print some styled text.

```sh
$ constyle Hello World! -a green -a bold -a on_white
```

Or if you're writing a shell script you can make an alias or a function to reuse a certain style.

```sh
#!/bin/bash
alias error="constyle --attribute bold --attribute red" # With an alias
warn() { constyle $@ -a bold -a yellow } # With a function
error You shall not pass!
warn Fly you fools!
```
            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/abrahammurciano/python-constyle",
    "name": "constyle",
    "maintainer": "",
    "docs_url": null,
    "requires_python": ">=3.7,<4.0",
    "maintainer_email": "",
    "keywords": "terminal,console,style,color,colors,colour,colours,ansi",
    "author": "Abraham Murciano",
    "author_email": "abrahammurciano@gmail.com",
    "download_url": "https://files.pythonhosted.org/packages/94/af/b995ce96bb96e3512e48a3e03d9f636823fd004e4307583ed980e7a7d6e2/constyle-2.0.3.tar.gz",
    "platform": null,
    "description": "# constyle\nA Python library to add style to your console.\n\nThe name of the library comes from merging the words **CONSoLE** and **STYLE**. Also \"con\" means \"with\" in Spanish.\n\n## Installation\n\nYou can install this package with pip or conda.\n```sh\n$ pip install constyle\n```\n```sh\n$ conda install -c conda-forge constyle\n```\n```sh\n$ conda install -c abrahammurciano constyle\n```\n\n## Links\n\n[![Documentation](https://img.shields.io/badge/Documentation-C61C3E?style=for-the-badge&logo=Read+the+Docs&logoColor=%23FFFFFF)](https://abrahammurciano.github.io/python-constyle/constyle)\n\n[![Source Code - GitHub](https://img.shields.io/badge/Source_Code-GitHub-181717?style=for-the-badge&logo=GitHub&logoColor=%23FFFFFF)](https://github.com/abrahammurciano/python-constyle.git)\n\n[![PyPI - constyle](https://img.shields.io/badge/PyPI-constyle-006DAD?style=for-the-badge&logo=PyPI&logoColor=%23FFD242)](https://pypi.org/project/constyle/)\n\n[![Anaconda - constyle](https://img.shields.io/badge/Anaconda-constyle-44A833?style=for-the-badge&logo=Anaconda&logoColor=%23FFFFFF)](https://anaconda.org/abrahammurciano/constyle)\n\n[![Discord - Community](https://img.shields.io/badge/Discord-Community-5865F2?style=for-the-badge&logo=Discord&logoColor=FFFFFF)](https://discord.gg/nUmsrhNDSs)\n\n## Usage\n\nThere are a couple of ways to use this library.\n\n### The `style` function\n\nThe simplest way is with the `style` function.\n\n```py\nfrom constyle import style, Attributes\n\nprint(style('Hello World', Attributes.GREEN, Attributes.BOLD, Attributes.ON_BLUE))\n```\n\n### `Style` objects\n\nYou can also use `Style` objects to create a reusable style with any number of attributes.\n\n#### Calling a `Style` object\n\n`Style` objects are callable and take a string as input and return a styled string.\n\n```py\nwarning = Style(Attributes.YELLOW, Attributes.BOLD)\nprint(warning('You shall not pass!'))\n```\n\n#### Adding `Style` objects\n\nAdding together `Style` objects will also create `Style` objects.\n\n```py\nwhisper = Attributes.GREY + Attributes.DIM + Attributes.SUPERSCRIPT\nprint(whisper('Fly you fools'))\n```\n\n#### Converting `Style` objects to strings\n\n`Style` objects can be converted to strings to obtain the ANSI escape sequence for that style.\n\n```py\nwarning = Style(Attributes.YELLOW, Attributes.BOLD)\nprint(f\"{warning}You shall not pass!{Attributes.RESET}\")\n```\n\n### Attributes\n\nThe `Attributes` enum contains all the available ANSI attributes. You can read more about them [here](https://en.wikipedia.org/wiki/ANSI_escape_code#SGR_(Select_Graphic_Rendition)_parameters).\n\n`Attributes` are also `Style` objects, and as such, as demonstrated above, they too can be called to style a string, added together and to other `Style` objects, and converted to strings to obtain their ANSI sequence.\n\nYou'll find there is limited support for all the ANSI attributes among some consoles.\n\nIf you find more attributes that aren't provided in this enum, you can create your own by constructing a `Style` with an integer.\n\n### Nesting\n\nIn order to nest styles, you can use the `end=` keyword argument of the `style` function or the `Style` class. Usually when applying a style, the `RESET` attribute is appended to the end. This can be undesirable when nesting (see the example below).\n\n```py\nbold = Attributes.BOLD\nyellow = Attributes.YELLOW\ngreen = Attributes.GREEN\n\nprint(yellow(bold('This is bold and yellow')))\nprint(green(f\"This is green. {yellow('This is yellow.')} This is no longer green\"))\n```\n\nIn order to achieve the desired result in the above example, you would have to use the `end=` keyword argument of the `style` function. You can pass any `Style` to `end`.\n\n```py\nprint(green(f\"This is green. {bold('This is green and bold.', end=Attributes.NO_BOLD)} This is still green but not bold anymore\"))\nprint(green(f\"This is green. {yellow('This is yellow.', end=green)} This is now green again\"))\n```\n\n### Custom colours\n\nThe `constyle.custom_colours` module contains a few classes that can be used to create custom colours.\n\n#### RGB colours\n\nYou can create a `Style` for a custom RGB colour by using the `RGB` class. This is not well supported by all consoles.\n\n```py\nfrom constyle.custom_colours import RGB\n\nprint(style('This is pink', RGB(255, 192, 203)))\n```\n\n#### 8-bit colours\n\nSome consoles support 8-bit colours. You can create a `Style` for an 8-bit colour by using the `EightBit` class, passing a single integer to it, or you can use the `EightBitRGB` class to create an 8-bit colour style as close to the RGB values as possible.\n\n## The command line interface\n\nThis package also provides a very basic command line interface to print styled strings.\n\nYou can pass it any number of strings and it will print them all together (like `echo`). You can pass `--attribute` (or `-a`) with the name of an attribute to apply to the other strings being printed. You can pass `--attribute` as many times as you like.\n\nYou can use `constyle --help` to see more specific details, as well as all available attributes.\n\nFor example you can use `constyle` from your shell to print some styled text.\n\n```sh\n$ constyle Hello World! -a green -a bold -a on_white\n```\n\nOr if you're writing a shell script you can make an alias or a function to reuse a certain style.\n\n```sh\n#!/bin/bash\nalias error=\"constyle --attribute bold --attribute red\" # With an alias\nwarn() { constyle $@ -a bold -a yellow } # With a function\nerror You shall not pass!\nwarn Fly you fools!\n```",
    "bugtrack_url": null,
    "license": "GPLv3",
    "summary": "A Python library to add style to your console.",
    "version": "2.0.3",
    "split_keywords": [
        "terminal",
        "console",
        "style",
        "color",
        "colors",
        "colour",
        "colours",
        "ansi"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "2e03625882186de2fc8519fbcb067be71c97bc48f7e2a86a81143d9667163144",
                "md5": "f39737126aae7bd9b0fa8bc045f69cba",
                "sha256": "a92f1d166907257c8632e6dcce0548c21a7ca2837463a7f5974642bf4c7585d5"
            },
            "downloads": -1,
            "filename": "constyle-2.0.3-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "f39737126aae7bd9b0fa8bc045f69cba",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.7,<4.0",
            "size": 21489,
            "upload_time": "2023-04-24T13:22:47",
            "upload_time_iso_8601": "2023-04-24T13:22:47.655789Z",
            "url": "https://files.pythonhosted.org/packages/2e/03/625882186de2fc8519fbcb067be71c97bc48f7e2a86a81143d9667163144/constyle-2.0.3-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "94afb995ce96bb96e3512e48a3e03d9f636823fd004e4307583ed980e7a7d6e2",
                "md5": "dcbe38c51323e4e5e48024456f77de20",
                "sha256": "99b975a256ca469e545bee869185bd1d477b88022ddcec6e059c7a74d22ef59e"
            },
            "downloads": -1,
            "filename": "constyle-2.0.3.tar.gz",
            "has_sig": false,
            "md5_digest": "dcbe38c51323e4e5e48024456f77de20",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.7,<4.0",
            "size": 22239,
            "upload_time": "2023-04-24T13:22:50",
            "upload_time_iso_8601": "2023-04-24T13:22:50.021704Z",
            "url": "https://files.pythonhosted.org/packages/94/af/b995ce96bb96e3512e48a3e03d9f636823fd004e4307583ed980e7a7d6e2/constyle-2.0.3.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2023-04-24 13:22:50",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "github_user": "abrahammurciano",
    "github_project": "python-constyle",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "constyle"
}
        
Elapsed time: 0.05734s