Skip to main content

It makes easier to build user command-line interface

Project description

EVERON (Python Library)

This module makes easier to write user command-line interfaces.

everon.BaseCommand makes use of the argparse, 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:

# 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.

# 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

# 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

Project details


Release history Release notifications

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for everon, version 0.0.1
Filename, size File type Python version Upload date Hashes
Filename, size everon-0.0.1-py3-none-any.whl (4.2 kB) File type Wheel Python version py3 Upload date Hashes View
Filename, size everon-0.0.1.tar.gz (3.6 kB) File type Source Python version None Upload date Hashes View

Supported by

Pingdom Pingdom Monitoring Google Google Object Storage and Download Analytics Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page