Skip to main content

A library of various functions and classes helping to program more efficiently and more intuitively

Project description

Pratik for Python

LassaInora - Pratik GitHub tag stars - Pratik forks - Pratik

PyPI version Supported Versions


Overview

It is a library of various functions and classes helping to program more efficiently and more intuitively

Summary

Table of Contents

How to use

Installation

By PyPI:

python -m pip install pratik

Librairies

package functions

Menu

>> from pratik.functions import Menu
>> menu = Menu("to be", "not to be", title="Question", description="That is the question", back_button="to death", description_center=True)
>> print(menu)
     ╔══════════╗     
╔════╣ Question ╠════╗
║    ╚══════════╝    ║
║     That is the    ║
║      question      ║
╟────────────────────╢
║ ┌───┐┌───────────┐ ║
║ │ 1 ├┤ to be     │ ║
║ └───┘└───────────┘ ║
║ ┌───┐┌───────────┐ ║
║ │ 2 ├┤ not to be │ ║
║ └───┘└───────────┘ ║
╟────────────────────╢
║ ╔═══╗╔═══════════╗ ║ 
║ ║ 0 ╠╣ to death  ║ ║ # This button is in red color
║ ╚═══╝╚═══════════╝ ║
╚════════════════════╝
>> menu.select()
?> 1
>> print(menu)
     ╔══════════╗     
╔════╣ Question ╠════╗
║    ╚══════════╝    ║
║     That is the    ║
║      question      ║
╟────────────────────╢
║ ╔═══╗╔═══════════╗ ║
║ ║ 1 ╠╣ to be     ║ ║ # This button is in red color
║ ╚═══╝╚═══════════╝ ║
║ ┌───┐┌───────────┐ ║
║ │ 2 ├┤ not to be │ ║
║ └───┘└───────────┘ ║
╟────────────────────╢
║ ┌───┐┌───────────┐ ║
║ │ 0 ├┤ to death  │ ║
║ └───┘└───────────┘ ║
╚════════════════════╝
>> menu.selected = 2
>> print(menu)
     ╔══════════╗     
╔════╣ Question ╠════╗
║    ╚══════════╝    ║
║     That is the    ║
║      question      ║
╟────────────────────╢
║ ┌───┐┌───────────┐ ║
║ │ 1 ├┤ to be     │ ║
║ └───┘└───────────┘ ║
║ ╔═══╗╔═══════════╗ ║
║ ║ 2 ╠╣ not to be ║ ║ # This button is in red color
║ ╚═══╝╚═══════════╝ ║
╟────────────────────╢
║ ┌───┐┌───────────┐ ║
║ │ 0 ├┤ to death  │ ║
║ └───┘└───────────┘ ║
╚════════════════════╝
>> menu = Menu("to be", "not to be", title="Question", description="That is the question", back_button="to death")
>> print(menu)
     ╔══════════╗     
╔════╣ Question ╠════╗
║    ╚══════════╝    ║
║ That is the        ║
║ question           ║
╟────────────────────╢
║ ┌───┐┌───────────┐ ║
║ │ 1 ├┤ to be     │ ║
║ └───┘└───────────┘ ║
║ ┌───┐┌───────────┐ ║
║ │ 2 ├┤ not to be │ ║
║ └───┘└───────────┘ ║
╟────────────────────╢
║ ╔═══╗╔═══════════╗ ║
║ ║ 0 ╠╣ to death  ║ ║
║ ╚═══╝╚═══════════╝ ║
╚════════════════════╝
>> menu = Menu("to be", "not to be", title="Question", back_button="to death")
>> print(menu)
     ╔══════════╗     
╔════╣ Question ╠════╗
║    ╚══════════╝    ║
║ ┌───┐┌───────────┐ ║
║ │ 1 ├┤ to be     │ ║
║ └───┘└───────────┘ ║
║ ┌───┐┌───────────┐ ║
║ │ 2 ├┤ not to be │ ║
║ └───┘└───────────┘ ║
╟────────────────────╢
║ ╔═══╗╔═══════════╗ ║
║ ║ 0 ╠╣ to death  ║ ║
║ ╚═══╝╚═══════════╝ ║
╚════════════════════╝
>> menu = Menu("to be", "not to be", title="Question")
>> print(menu)
     ╔══════════╗     
╔════╣ Question ╠════╗
║    ╚══════════╝    ║
║ ┌───┐┌───────────┐ ║
║ │ 1 ├┤ to be     │ ║
║ └───┘└───────────┘ ║
║ ┌───┐┌───────────┐ ║
║ │ 2 ├┤ not to be │ ║
║ └───┘└───────────┘ ║
╚════════════════════╝
>> menu = Menu("to be", "not to be")
>> print(menu)
╔════════════════════╗
║ ┌───┐┌───────────┐ ║
║ │ 1 ├┤ to be     │ ║
║ └───┘└───────────┘ ║
║ ┌───┐┌───────────┐ ║
║ │ 2 ├┤ not to be │ ║
║ └───┘└───────────┘ ║
╚════════════════════╝
>> menu = Menu()
>> print(menu)
The menu is empty.

This class simply manages a menu of choice

enter(__prompt='', __type=int)

>> from pratik.functions import enter
>> enter("Your number here: ") # default -> int
?> Your number here: 42
42
>> enter()
?> 5
5
>> enter("Result: ", list)
?> Result: FRANCE
['F', 'R', 'A', 'N', 'C', 'E']
>> ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H'][enter("Where: ", slice)]
?> Where: 2:6:2
['C', 'E']

This function is inspired by the input() function by adding the type of a class in which to return the value

humanize_number(__number, __fill_char='.')

>> from pratik.functions import humanize_number
>> print(humanize_number(1234567))
1.234.567
>> print(humanize_number(1234567, ' '))
1 234 567

This function helps to display numbers in a way that is easier for a human to read.

package singleton

Singleton

from pratik.singleton import Singleton

class Foo(Singleton):
    def singleton_init(self, var1, var2):
        self.var1 = var1
        self.var2 = var2

    @property
    def var(self):
        return self.var1 + self.var2
>> f1 = Foo(2, 5)
>> print(f1.var1)
2
>> f2 = Foo()
>> print(f2.var1)
2
>> f3 = Foo(3, 8)
>> print(f1.var1)
3
>> print(f2.var1)
3
>> print(f3.var1)
3

Singleton is a class allowing the easy creation of a singleton.
To instantiate it like a regular class you can overwrite the singleton_init(self, *args, **kwargs) method.

package text

Color

from pratik.text import Color

print(f"{Color.GREEN}Is good!{Color.STOP}")
print(f"{Color.LIGHT_RED}Is Bad!{Color.STOP}")
print(f"{Color.get_rgb(42, 128, 200)}I don't know!{Color.STOP}")
print(f"{Color.get_hex('#ACAB42')}Meh !{Color.STOP}")

To color text

  • get_rgb(red, green, blue)

    • Get the ANSI escape sequence for an RGB color.
  • get_hex(hexadecimal)

    • Get the ANSI escape sequence for an RGB color.

Highlight

from pratik.text import Highlight

print(f"{Highlight.GREEN}Is good!{Highlight.STOP}")
print(f"{Highlight.LIGHT_RED}Is Bad!{Highlight.STOP}")
print(f"{Highlight.get_rgb(42, 128, 200)}I don't know!{Highlight.STOP}")
print(f"{Highlight.get_hex('#ACAB42')}Meh !{Highlight.STOP}")

To highlight text

  • get_rgb(red, green, blue)

    • Get the ANSI escape sequence for an RGB color.
  • get_hex(hexadecimal)

    • Get the ANSI escape sequence for an RGB color.

Style

To stylize text. (Bold, Italic, ...)

generate(*code)

from pratik.text import generate

print(f"{generate(31, 45)}It's too much!{generate(0)}")

For concat too many codes.

information()

All ANSI code in table

STOP

Reset the ANSI sequence with \033[0m character .

Contributors

Licence

This library is licensed under the GNU GENERAL PUBLIC LICENSE

Project details


Download files

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

Source Distribution

pratik-0.0.3.tar.gz (24.8 kB view hashes)

Uploaded Source

Built Distribution

pratik-0.0.3-py3-none-any.whl (21.8 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page