Console tools for inputs and outputs in Python
Project description
PyConsoleIOTools
Installation
pip install consoleiotools # install
pip install --upgrade consoleiotools # update
python -m consoleiotools # examples
Get Started
import consoleiotools as cit
print(cit.__version__)
Prints on Screen
>>> cit.start()
# blank line
>>> cit.title('Session Name')
+--------------+
| SESSION NAME |
+--------------+
>>> cit.echo('Hello World')
| Hello World
>>> cit.echo('Hello World', pre='say', bar='!')
! (Say) Hello World
>>> cit.ask('Hello World')
| (?) Hello World
>>> cit.info('Hello World')
| (Info) Hello World
>>> cit.warn('Hello World')
| (Warning) Hello World
>>> cit.err('Hello World')
| (Error) Hello World
>>> cit.mute('Hello World')
| Hello World # muted by dim
>>> cit.print(var) # print variable
...
>>> cit.markdown("# Header") # print markdown
+--------------+
| Header |
+--------------+
>>> cit.rule() # print horizontal rule
----------------------------------------
>>> cit.rule("Title", style="blue", align="center") # print horizontal rule with Title. align = center|left|right
---------------- Title ----------------
>>> cit.panel("Panel", title="Panel Title", subtitle="Panel Subtitle") # print text in a panel
+---------- Panel Title ----------+
| Panel | # full width
+-------- Panel Subtitle ---------+
>>> cit.panel("Panel", title="Panel Title", subtitle="Panel Subtitle", expand=False, style="blue") # fit panel to text
+- Panel Title -+ # blue
| Panel |
+- Panel Subtit-+
>>> cit.end()
`
>>> cit.br()
# blank line
>>> cit.br(2)
# blank line
# blank line
>>> for var in cit.track(iterables, "Progress"): pass
| : Progress ---------------------=================== 52% 0:00:52 - 52/100
>>> cit.__ascii__ = True # use ascii chars only.
Get User Input
>>> cit.get_input() # Get user input from stdin
> Hello World
'Hello World'
>>> cit.get_input("Question?") # With a question
| (?) Question?
> Yes
'Yes'
>>> cit.get_input(prompt="Answer:") # With a customized prompt.
Answer: Apple
'Apple'
>>> cit.get_input("Continue?", default="yes") # With a default answer.
| (?) Continue?
> (yes) # Entered nothing
'yes'
>>> cit.get_choice(['Apple', 'Google']) # Enter number to select.
| 1) Apple
| 2) Google
> 2
'Google'
>>> cit.get_choice(['Apple', 'Google']) # Enter string is ok too.
| 1) Apple
| 2) Google
> Google
'Google'
>>> cit.get_choice(['Apple', 'Google'], exitable=True) # Add a choice of exit in menu.
| 1) Apple
| 2) Google
| 0) ** EXIT **
> 0
None
>>> cit.get_choices(['Apple', 'Google']) # Multiple Selection
| 1) [ ] Apple
| 2) [ ] Google
> 1 # Enter number to check or uncheck selections
| 1) [+] Apple
| 2) [ ] Google
| 0) ** DONE **
> Google # Enter string is ok too.
| 1) [+] Apple
| 2) [+] Google
| 0) ** DONE **
> 0 # Enter 0 when done.
['Apple', 'Google'] # return [] is no selections.
>>> cit.get_choices(['Apple', 'Google'], allable=True) # Add a choice of select all in menu.
| a) ** ALL **
| 1) [ ] Apple
| 2) [ ] Google
> a # Enter `a` to check all. If `a` is in choices, enter `all`.
| a) ** ALL **
| 1) [+] Apple
| 2) [+] Google
| 0) ** DONE **
> 0
['Apple', 'Google']
>>> cit.get_choices(['Apple', 'Google'], exitable=True) # Add a choice of exit in menu.
| 1) [ ] Apple
| 2) [ ] Google
| 0) ** EXIT **
> 0
[] # Empty list returned.
File IO
>>> cit.read_file('/path/to/file')
'File contents'
>>> cit.read_file('/path/to/file', with_encoding=True)
('File contents', 'utf-8')
>>> cit.write_file('/path/to/file', 'Contents') # Append content to file.
8 # writed bytes
>>> cit.write_file('/path/to/file', 'Contents', overwrite=True) # Overwrite if file exists.
8 # writed bytes
Controls
>>> cit.pause()
| Press [Enter] to Continue...
>>> cit.bye()
# exit
>>> cit.bye(0)
# exit with code 0
>>> cit.bye('Seeya')
Seeya
# exit
Decorators
@cit.as_session('Hello')
def my_func():
cit.echo('World')
>>> my_func()
+---------+
| HELLO() |
+---------+
| World
`
@cit.as_session
def underscore_orCamel():
pass
>>> underscore_orCamel()
+-----------------------+
| UNDERSCORE OR CAMEL() |
+-----------------------+
`
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
consoleiotools-4.1.0.tar.gz
(10.0 kB
view hashes)
Built Distribution
Close
Hashes for consoleiotools-4.1.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 333a74ebcd90caef1802a8d01b0192a51b015bfa0a9dc04ec508e39f21ff954b |
|
MD5 | f7fb084ed3f5faacebeb2a3be442a374 |
|
BLAKE2b-256 | f6e73d01ea95ec6a821af359e31f1a2550df3582da9a73e561cee7c6e5acaa04 |