Skip to main content

Some console tools for inputs and outputs

Project description

PyConsoleIOTools

Build Status PyPI - Downloads GitHub release GitHub license

Installation

pip install consoleiotools  # install
pip install --upgrade consoleiotools  # update
python -m consoleiotools  # show README

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()
> Hello World
'Hello World'

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


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.0.0.tar.gz (7.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

consoleiotools-4.0.0-py3-none-any.whl (7.4 kB view details)

Uploaded Python 3

File details

Details for the file consoleiotools-4.0.0.tar.gz.

File metadata

  • Download URL: consoleiotools-4.0.0.tar.gz
  • Upload date:
  • Size: 7.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.8

File hashes

Hashes for consoleiotools-4.0.0.tar.gz
Algorithm Hash digest
SHA256 c58d40d6a88c3a4d0557951c4bffb48a86ea7715174a8c748df061f1be1f2530
MD5 5e7f58068b463e505b58db7a5e86d493
BLAKE2b-256 c252e016a0542853d11c144ec61e0f08ead92dec250532a3d10deb8580202e45

See more details on using hashes here.

File details

Details for the file consoleiotools-4.0.0-py3-none-any.whl.

File metadata

  • Download URL: consoleiotools-4.0.0-py3-none-any.whl
  • Upload date:
  • Size: 7.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.8

File hashes

Hashes for consoleiotools-4.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 7e9b4be4c60d6136aff7550835977913c1e13b817709ad9210efd6620102ace0
MD5 fc8709e96ec6f25812bcb324ee9853b0
BLAKE2b-256 ec008b794f282352d000ef1ea44b18bfd9ba07c5910ce1e5cadb36b3a94865e5

See more details on using hashes here.

Supported by

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