Metadata-Version: 2.1
Name: everon
Version: 0.0.1
Summary: It makes easier to build user command-line interface
Home-page: https://github.com/wayfar3/everon
Author: Victor Dao
Author-email: daongocthang.vn@gmail.com
License: MIT
Description: # EVERON (Python Library)
        
        This module makes easier to write user command-line interfaces.
        
        `everon.BaseCommand` makes use of the [argparse](https://docs.python.org/3/library/argparse.html), which is part of Python library.
        
        `everon.MixinFontColor` is a mixin class, which allows to render color fonts in terminal.
        
        ## Basic Example
        
        
        
        Below, a basic example of what the custom command should look like:
        
        ```python
        # whats_time.py
        from datetime import datetime
        import everon
        
        
        class WhatsTime(everon.BaseCommand):
            help = 'Display current time'
        
            def handle(self, *args, **kwargs):
                current_time = datetime.now().strftime('%X')
                print("It's now {}".format(current_time))
                
                
        if __name__ == '__main__':
            whatstime = WhatsTime()
            whatstime.run()
        ```
        
        See how we named our module `whatstime.py`.
        
        This command can be executed as:
        
        ```
        python -m whats_time
        ```
        
        Output:
        
        ```
        It's now 11:54:19
        ```
        
        ## Handling Arguments
        
         To handle arguments in command, we should define a method named `add_args`.
        
        ```python
        # rand_str.py
        import argparse
        import random
        import string
        
        from everon import BaseCommand
        
        
        class RandString(BaseCommand):
        
            def add_args(self, parser: argparse.ArgumentParser):
                parser.add_argument('length', type=int, help='Indicates length of string')
                parser.add_argument('-l', '--lowercase', action='store_true', help='Only get lowercase letters')
        
            def handle(self, *args, **kwargs):
                string_length = kwargs.get('length')
                allow_lowercase = kwargs.get('lowercase')
                letters = string.ascii_lowercase if allow_lowercase else string.ascii_letters
                print("Random String is {}".format(
                    ''.join(random.choice(letters) for _ in range(string_length)))
                )
                
                
        if __name__ == '__main__':
            rand_str = RandString()
            rand_str.run()
        ```
        
        
        
        #### Usage:
        
        ```
        python -m rand_str 10 -l
        ```
        
        Or
        
        ```
        python -m rand_str 10 --lower
        ```
        
        Output
        
        ```
        Random String is wjaehxsnxc
        ```
        
        ## Font Color
        
        We could setting an appropriate color to the out message with the example
        
        ```python
        # say_hello.py
        from everon import BaseCommand, MixinFontColor
        
        
        class SayHello(BaseCommand, MixinFontColor):
            def __init__(self):
                MixinFontColor.__init__(self)
        
            def handle(self, *args, **kwargs):
                self.print_ok('Printing text ok')
                self.print_err('Printing text error')
                print(self.text_as_link('Printing text as link'))
                print(self.color.LIGHTMAGENTA_EX + 'Printing text with custom color')
        
        
        if __name__ == '__main__':
            foo = SayHello()
            foo.run()
        ```
        
        Checking with the following command
        
        ```
        python -m say_hello
        ```
        
        Output
        
        
        
        ![](https://github.com/wayfar3/everon/blob/master/res/MixinFontColor.jpg)
Platform: UNKNOWN
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.4
Classifier: Programming Language :: Python :: 3.5
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Description-Content-Type: text/markdown
