Basic tools for Python
Project description
Py Basic Commands
A package with some basic tools and commands for Python (+3.7)
Author
Installation
Install using pip
pip install py_basic_tools
pip3 install py_baisc_tools
Table of input variables
Variable | Usage | Type |
---|---|---|
text | The text to be printed | str |
nl | Whether to print a newline or not | bool |
flush | Whether to flush the output print or not | bool |
do_print | Whether to print the text or not | bool |
use_end_addon | Whether or not to add a colon to the end of the text | bool |
file_path | The path of the file to be read | str |
create | If True, the file/directory will be created if it does not exist | bool |
force | If True, the file/directory will be created even if it exists | bool |
remove_empty | If True, empty lines will be removed from list | bool |
do | Action for directory or file | 'dir' /'file' |
ret_type | Variable type to return | type |
ret_var | Variable to return | str |
Examples
Links to functions
- fprint()
- finput()
- enter_to_continue()
- choose_from_list()
- read_file()
- create_file_dir()
- remove_file_dir()
- get_dir_path_for_file()
- join_path()
- try_traceback()
- func_timer()
fprint()
- Customizable input function
>>> fprint('Hello World')
Hello World
>>> fprint('Hello World', nl=False)
Hello World
>>> fprint()
>>> fprint('Hello World', do_print=False)
The above fprint() examples are very basic. But you could implement and customise it to your liking.
finput()
- Customizable input function
>>> finput('Enter a number', ret_type=int)
Enter a number: 5
5
>>> finput('Enter a number', ret_type=int)
Enter a number: 5.5
Couldn't return input 5.5 as <class 'int'>
Input type: <class 'str'>
Returning value as string
'5.5'
>>> finput('Enter a number', ret_type=int)
Enter a number: five
Couldn't return input five as <class 'int'>
Input type: <class 'str'>
Returning value as string
'five'
enter_to_continue()
- Wait until user presses enter to continue
- Returns:
True
: No input was given, only enter was pressedFalse
: Something was written before pressing enter
from py_basic_tools import enter_to_continue
>>> enter_to_continue()
Press enter to continue...
>>> enter_to_continue('Waiting')
Waiting (enter to continue)
>>> enter_to_continue('Waiting', nl=False)
Waiting (enter to continue)
>>> enter_to_continue('Waiting', use_help_text=False)
Waiting
>>> enter_to_continue(use_help_text=False)
choose_from_list()
- Choose one or more variables from user given list
- When choosing more than one, add a space between chosen indexes
- Returns:
list of variables
: If variables were chosen correctlyempty list
: If anexception
occured
>>> lst = ['foo', 'bar']
>>> choose_from_list(lst)
---Choose 1 value---
(0) foo
(1) bar
Input index: 0
'foo'
>>> choose_from_list(lst, choose_total=2, start_num=1)
---Choose 2 values---
(1) foo
(2) bar
Input index: 1 2
['foo', 'bar']
>>> choose_from_list(lst, start_num=3, choose_until_correct=True)
---Choose 1 value---
(3) foo
(4) bar
Input index: 0
Given index is out of range
List length: 2 Input index: 0
Input index: 3
foo
>>> choose_from_list(lst, choose_total=2, start_num=1, choose_until_correct=False)
---Choose 2 values---
(1) foo
(2) bar
Input index: 0 1
Given index is out of range
Value has to be between: 1-2
[]
>>> choose_from_list(lst, header_text='Choose what you will', header_nl=True, input_text='Input what you will')
Choose what you will
(0) foo
(1) bar
Input what you will: 0
['foo']
read_file()
- Function tries to read the file, and if it fails, it will create the file if the
create
argument is True. - If the file is read successfully, the function will return a list of lines from the file
>>> read_file('path/to/file.txt')
File not found: path/to/file.txt
None
>>> read_file('path/to/file.txt', do_print=False)
None
>>> read_file('path/to/file.txt', create=True)
File created: path/to/file.txt
>>> read_file('path/to/file.txt')
['hello', 'world', 'foo bar']
>>> read_file('path/to/file.txt', remove_empty_lines=False)
['hello', 'world', '', 'foo bar']
create_file_dir()
- Creates a file or directory to the given path
>>> create_file_dir('file', 'path/to/file.txt')
File created: path/to/file.txt
>>> create_file_dir('file', 'path/to/file.txt')
File already exists: path/to/file.txt
>>> create_file_dir('file', 'path/to/file.txt', do_print=False)
>>> create_file_dir('file', 'path/to/file.txt', force=True)
File created: path/to/file.txt
>>> create_file_dir('dir', 'path/to/new directory')
Directory created: path/to/new directory
remove_file_dir()
- Removes a file or directory to the given path
>>> remove_file_dir('file', 'path/to/file.txt')
File removed: path/to/file.txt
>>> remove_file_dir('file', 'path/to/another_file.txt')
File is not empty, not removing: file.txt
>>> remove_file_dir('file', 'path/to/another_file.txt', force=True)
File removed: path/to/another file.txt
>>> remove_file_dir('file', 'path/to/another_file.txt')
File not found: path/to/another file.txt
>>> remove_file_dir('dir', 'path/to/directory')
Directory path not found: path/to/directory
get_dir_path_for_file()
- Gets the path to the direcotry where given file is
- Returns:
dir_path
: Paht to the directoryfilename
: Name of the file
>>> get_dir_path_for_file('path/to/file.txt')
('path/to', 'file.txt')
>>> get_dir_path_for_file('path/to/file.txt', ret_var='filename')
'file.txt'
>>> get_dir_path_for_file('path/to/file.txt', ret_var='dir')
'path/to'
join_path()
- Joins given paths together
- Like
os.path.join()
- Like
>>> join_path('hello', 'world')
'hello\\world'
>>> join_path('hello', 'world', join_with='/')
'hello/world'
try_traceback()
Code:
@try_traceback()
def foo():
raise Exception('foo')
@try_traceback(skip_traceback=True)
def bar():
raise Exception('bar')
foo()
bar()
Output:
Traceback (most recent call last):
File "test.py", line 13, in wrapper
return func(*args, **kwargs)
File "test.py", line 8, in foo
raise Exception('foo')
bar()
doesn't raise an exception, because traceback was skipped.
func_timer()
- The decorator can be used to time any function, and it will print the time it took to run the function
- Returns:
ret_val
: Values to return from the functiontime_delta
: The time it took for the function to run
Code:
from time import sleep
@func_timer()
def foo(sec_to_sleep):
sleep(sec_to_sleep)
return 'Foo is done'
@func_timer(ret_time=True, do_print=False)
def bar(sec_to_sleep):
sleep(sec_to_sleep)
return 'bar is done'
foo(3)
bar(3)
Output:
Function timer started
Function foo(3,) {} Took 3.0094 seconds to run
Foo is done
('bar is done', 3.0135743618011475)
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
Built Distribution
File details
Details for the file py_basic_commands-0.2.25b3.tar.gz
.
File metadata
- Download URL: py_basic_commands-0.2.25b3.tar.gz
- Upload date:
- Size: 22.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.9.17
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 84a068d1e6f370bc2ec2ae7423c4435035fdb52ad0910e292e702bf984a5c72e |
|
MD5 | a0b87d0bc6b609efdc2dd2ade26dbf85 |
|
BLAKE2b-256 | 0d9399a12bbd372e682f1ae2624bae6bbf7d28811c6c6d4e8c04ad29ffb767e0 |
File details
Details for the file py_basic_commands-0.2.25b3-py3-none-any.whl
.
File metadata
- Download URL: py_basic_commands-0.2.25b3-py3-none-any.whl
- Upload date:
- Size: 31.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.9.17
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | d2a9ad118c140f40c0ef8dffab49079aa0b75a8b4e64bf816cd848208d2357aa |
|
MD5 | 77a22fdeaa8f9ed39dfe91cadb805124 |
|
BLAKE2b-256 | 8b6754c0d56aa9cdace2343d6a9f6a5f6699b027ee3549d712d1df9c974bd740 |