Arbitrium - The Easy Menu System For Python
Project description
# Arbitrium - The Easy Menu System For Python
## Install
`pip install arbitrium`
## Usage
```
from arbitrium import menu
from os import exit
@menu(["Option One", "Option Two", "Final Option"])
def choice_handler(choice):
if choice == 1:
# Option One Selected
pass
if choice == 2:
# Option Two Selected
pass
if choice == 3:
# Final Option Selected
exit(1)
# Calling the choice handler will also print the menu
choice_handler()
```
Will produce:
```
1) Option One
2) Option Two
99) Final Option
Please enter your choice:
```
**NOTE: Final Option will always be 99. It will run the choice handler once and then exit the choice handler function.**
## Authentication
Arbitrium provides an easy system for adding auth to your menu:
```
from arbitrium import menu, requires_auth
def auth_function():
u = input("Enter username: ")
p = input("Enter password: ")
# Check Passwords
if password_correct:
return True
return False
@requires_auth(auth_function, True)
@menu(["Option One", "Option Two", "Exit"])
def choice_handler(choice):
[...]
choice_handler()
```
Will run auth_function before a user can see or select any menu options. If auth_function returns True, the menu will run, if it returns False, it will exit with an error message.
Alternatively,
```
from arbitrium import menu, requires_auth
def auth_function(username, password):
# Check Passwords
if password_correct:
return True
return False
@requires_auth(auth_function(input("Please Enter Username"), input("Please Enter Password")))
@menu(["Option One", "Option Two", "Exit"])
def choice_handler(choice):
[...]
choice_handler()
```
You can supply the first argument with a boolean - if true, the function will run. Else, it won't.
If you supply the first argument with a function, you must supply the second argument with True.
## Install
`pip install arbitrium`
## Usage
```
from arbitrium import menu
from os import exit
@menu(["Option One", "Option Two", "Final Option"])
def choice_handler(choice):
if choice == 1:
# Option One Selected
pass
if choice == 2:
# Option Two Selected
pass
if choice == 3:
# Final Option Selected
exit(1)
# Calling the choice handler will also print the menu
choice_handler()
```
Will produce:
```
1) Option One
2) Option Two
99) Final Option
Please enter your choice:
```
**NOTE: Final Option will always be 99. It will run the choice handler once and then exit the choice handler function.**
## Authentication
Arbitrium provides an easy system for adding auth to your menu:
```
from arbitrium import menu, requires_auth
def auth_function():
u = input("Enter username: ")
p = input("Enter password: ")
# Check Passwords
if password_correct:
return True
return False
@requires_auth(auth_function, True)
@menu(["Option One", "Option Two", "Exit"])
def choice_handler(choice):
[...]
choice_handler()
```
Will run auth_function before a user can see or select any menu options. If auth_function returns True, the menu will run, if it returns False, it will exit with an error message.
Alternatively,
```
from arbitrium import menu, requires_auth
def auth_function(username, password):
# Check Passwords
if password_correct:
return True
return False
@requires_auth(auth_function(input("Please Enter Username"), input("Please Enter Password")))
@menu(["Option One", "Option Two", "Exit"])
def choice_handler(choice):
[...]
choice_handler()
```
You can supply the first argument with a boolean - if true, the function will run. Else, it won't.
If you supply the first argument with a function, you must supply the second argument with True.
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
arbitrium-1.1.4.tar.gz
(3.1 kB
view details)
File details
Details for the file arbitrium-1.1.4.tar.gz
.
File metadata
- Download URL: arbitrium-1.1.4.tar.gz
- Upload date:
- Size: 3.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.12.1 pkginfo/1.4.2 requests/2.18.4 setuptools/38.4.0 requests-toolbelt/0.8.0 tqdm/4.28.0 CPython/3.6.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | d79263a6a11a4268db01e9a786f1a1ca8cccb961e030abd62b38b55422e7caa2 |
|
MD5 | e198d523d9f39c9442a9e07fe3ad6a86 |
|
BLAKE2b-256 | 1637164e3af21c0f067d843ef1576a8bb6a9aa6efbc0e05b174cd3fc2ae29fb0 |