A library of various functions and classes helping to program more efficiently and more intuitively
Project description
Pratik for Python
Overview
It is a library of various functions and classes helping to program more efficiently and more intuitivelySummary
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.