# -*- coding: utf-8 -*-
from distutils.core import setup

packages = \
['signalepy']

package_data = \
{'': ['*']}

setup_kwargs = {
    'name': 'signalepy',
    'version': '0.3.7',
    'description': 'Elegant Console Logger For Python Command Line Apps',
    'long_description': '\n<div align="center">\n\t<h1 align="center"><a href="https://signale.netlify.com">Signale.py</a></h1>\n\t<p align="center">Elegant Console Logger For Python Command-Line Apps</p>\n\t<br>\n\t<br>\n\t<img src="./imgs/main.png" alt="example" align="center">\n</div>\n\n<hr>\n\n\n\n## Installation\n**Signale.py** can be installed using pip.\n\n````bash\n\n    [sudo] pip install signalepy\n\n````\n\n\n\n## Usage\nPackage consists of a class `Signale`, it is the main constructor class. The object created has all the logger functions in it.\n\n\n### Using Loggers\nEach logger function takes in three arguments:-\n- `text`\n- `prefix` ( Optional )\n- `suffix` ( Optional )\n\nThey all are available in the logger object. To create one do this:-\n````python\n\nfrom signalepy import Signale\n\nlogger = Signale()\n\n````\n\nNow you can use the default loggers using this object like:-\n````python\n\n...\n\nlogger.success("Started Successfully", prefix="Debugger")\nlogger.warning("`a` function is deprecated", suffix="main.py")\nlogger.complete("Run Complete")\n\n...\n\n````\n\n\nThis will produce the following result:-\n\n<div align="center">\n\t<img align="center" src="./imgs/result.png">\n</div>\n\n<br><br>\n\n<details>\n\t<summary>View All Available Loggers</summary>\n\n- `simple`\n- `success`\n- `error`\n- `warning`\n- `start`\n- `stop`\n- `watch`\n- `important`\n- `pending`\n- `complete`\n- `debug`\n- `pause`\n- `info`\n- `like`\n- `center`\n- `bold`\n- `underline`\n- `reversed`\n- `coloured`\n\n</details>\n\n\n\n----------------------------------------------------------------------------------------------------------\n\n\n\n## Scoped Loggers\nTo create scoped loggers, define the `scope` field in the `options` argument of constructor like:-\n\n````python\n\nfrom signalepy import Signale\n\nlogger = Signale({\n\t"scope": "global scope"\n})\nlogger.success("Scoped Logger Works!")\n\n````\n\nThis will produce the following result:-\n\n<div align="center">\n\t<img src="./imgs/scope_str.png" align="center">\n</div>\n\n<br><br>\n\nYou also create multiple scopes by setting the `scope` field to a list of strings like:-\n\n````python\n\nfrom signalepy import Signale\n\nlogger = Signale({\n\t"scope": ["global scope", "inner scope"]\n})\nlogger.success("Scoped Logger Works!")\n\n````\n\nThis will produce the following result:-\n\n<div align="center">\n\t<img src="./imgs/scope_list.png" align="center">\n</div>\n\n<br><br><br>\n\nYou can also create scoped a logger which is just clone of other by using by using the `scoped` function like this:-\n\n````python\n\nfrom signalepy import Signale\n\nlogger = Signale({\n\t"scope": "global scope"\n})\n\nlogger2 = logger.scoped("inner")\nlogger2.like("I love Signale.py", prefix="Shardul Nalegave", suffix="Creator")\n\n````\n\nThis will produce the following result:-\n\n<div align="center">\n\t<img src="./imgs/scoped_func.png" align="center">\n</div>\n\n<br>\n\n**Note:-** All the configuration will be copied to the new logger just the scope will be extended.\n\n\n----------------------------------------------------------------------------------------------------------\n\n\n\n## Custom Loggers\nCustom loggers can be created by passing a array of custom logger configuration to the field `custom` in the options passed to the constructor. Even clone loggers inherit the parent\'s custom loggers. For example:-\n\n````python\n\nfrom signalepy import Signale\n\nlogger = Signale({\n\t"scope": "global scope",\n\t"custom": [\n\t\t{\n\t\t\t"badge": "!",\n\t\t\t"label": "Attention",\n\t\t\t"color": "red",\n\t\t\t"name": "attention"\n\t\t}\n\t]\n})\n\nlogger2 = logger.scoped("inner")\n\nlogger.attention("It Works!")\nlogger2.attention("With Logger2")\n\n````\n\nThis will produce the following result:-\n\n<div align="center">\n\t<img src="./imgs/custom.png" align="center">\n</div>\n\n----------------------------------------------------------------------------------------------------------\n\n\n\n## Underlined Labels\nYou can set labels to be underlined by setting the `underlined` field to `True` in the options passed to the constructor. For example:-\n\n````python\n\nfrom signalepy import Signale\n\ns = Signale({\n\t"underlined": True\n})\ns.center("Testing Logger")\ns.simple("ABC", prefix="Debugger", suffix="xyz")\ns.info("Starting", prefix="Debugger")\ns.success("Started Successfully", prefix="Debugger", suffix="xyz")\ns.watch("Watching All Files", prefix="Debugger")\ns.error("Something Went Wrong", prefix="Debugger")\ns.warning("Deprecation Warning", prefix="Debugger")\ns.pending("Postponed", prefix="Debugger")\ns.debug("Found A Bug on L55", prefix="Debugger")\ns.start("Started New Process", prefix="Debugger")\ns.pause("Process Paused", prefix="Debugger")\ns.complete("Task Completed", prefix="Debugger")\ns.important("New Update Available. Please Update!", prefix="Debugger")\ns.like("I Love Signale", prefix="Debugger")\ns.stop("Stopping", prefix="Debugger")\n\n````\n\nThis will produce the following result:-\n\n<div align="center">\n\t<img src="./imgs/underlined.png" align="center">\n</div>\n\n\n\n----------------------------------------------------------------------------------------------------------\n\n\n\n## Options\nOptions taken by constructor\n\n1. `scope`\n\n\t<br>\n\t\n\t- Type: `str` or `list`\n\n\tSignale Logger Scope\n\n\t<br><br>\n\n3. `underlined`\n\n\t<br>\n\n\t- Type: `bool`\n\n\tLabels Should Be Underlined Or Not\n\n2. `custom`\n\n\t<br>\n\n\t- Type: `list`\n\n\tList of custom logger configuration.\n\n\t- Configuration Type: `dict`\n\n\t\tCustom Logger Configuration Dictionary\n\n\t\t- Keys\n\n\t\t\t1. `name`\n\n\t\t\t\t- Type: `str`\n\n\t\t\t\tName of the logger\n\n\t\t\t2. `label`\n\n\t\t\t\t- Type: `str`\n\n\t\t\t\tLabel displayed beside the icon ( colored text )\n\n\t\t\t3. `badge`\n\n\t\t\t\t- Type: `str`\n\n\t\t\t\tIcon\n\n\t\t\t4. `color`\n\n\t\t\t\t- Type: `str`\n\n\t\t\t\tColor of the icon and label. Should be from:-\n\n\t\t\t\t- `red`\n\t\t\t\t- `dark`\n\t\t\t\t- `blue`\n\t\t\t\t- `pink`\n\t\t\t\t- `green`\n\t\t\t\t- `grey`\n\t\t\t\t- `purple`\n\t\t\t\t- `yellow`\n\t\t\t\t- `cyan`\n\t\t\t\t- `reset` (color reset code)\n\n\t<br><br>\n\n\n\n----------------------------------------------------------------------------------------------------------\n\n\n\n## API\n\n1. logger = `Signale(<options>)`\n\n\t<br>\n\n\t`Signale`\n\n\t- Type: `class`\n\n\tSignale class imported from `signalepy` module\n\n\t<br>\n\n\t`options`\n\n\t- Type: `dict`\n\n\tOptions Dictionary for logger.\n\n\t<br>\n\n\t- Returns: Signale Logger Object\n\n\tLogger object which can be used for logging\n\n\t<br><br>\n\n2. logger.`<logger>(message="", prefix="", suffix="")`\n\n\t<br>\n\n\t`logger`\n\n\t- Type: `function`\n\n\tCan be any default logger\n\n\t<br>\n\n\t`message`\n\n\t- Type: `str`\n\n\tMessage to be displayed\n\n\t<br>\n\n\t`prefix`\n\n\t- Type: `str`\n\t- Required: False\n\n\tPrefix text\n\n\t<br>\n\n\t`suffix`\n\n\t- Type: `str`\n\t- Required: False\n\n\tSuffix text\n\n\t<br>\n\n\t- Returns: `None`\n\n\t<br><br>\n\n3. logger2 = `logger`.scoped(`<new scope>`)\n\n\t<br>\n\n\t`logger`\n\n\t- Type: Signale Logger Object\n\n\tParent Logger\n\n\t<br>\n\n\t`new scope`\n\n\t- Type: `str`\n\n\tNew Scope Name\n\n\t<br>\n\n\t- Returns: Signale Logger Object\n\n\tClone Logger object with extended scope\n\n\t<br><br>\n\n\n\n----------------------------------------------------------------------------------------------------------\n\n\n\n**Licensed Under [MIT License](https://github.com/ShardulNalegave/signale.py/blob/master/LICENSE)**\n**A Project By [Shardul Nalegave](https://shardul.netlify.com)**\n',
    'author': 'Shardul Nalegave',
    'author_email': 'nalegaveshardul40@gmail.com',
    'url': 'https://github.com/ShardulNalegave/signale.py',
    'packages': packages,
    'package_data': package_data,
    'python_requires': '>=3.0,<4.0',
}


setup(**setup_kwargs)
