A set of made for CLI interfaces in Python
Project description
yodaTools
A group of tools I programmed that I use regularly. Public because why not, exists because I was tired of scrolling through repos to copy/paste the same code again and again. To see examples, check out examples.py in the git repository
Yoda
This is used by me personally to write scripts that require authentication. For example in telegram, I don't want to have my first commits to have the telegram token.
using this as an example, to create a valid json file on the spot with the required keys I just run
>>> yodaObject = Yoda("tokens.json", ["token"])
>>> yodaObject.contents()
to print out the contents of the json file
Menu
This is a menu thing I wrote actually years ago, looking at the code for the menu now it is absolutely disgusting Any unhandled errors that occur will have a traceback tree the size of the distance between here and andromeda.
Like the latest commit I copied the menu code from was in March 2017.
One day I will optimise it and on that day you will get an unhandled ErectionError the size of the distance I mentioned earlier but in microns
Okay so I fixed it slightly Menu is now a class
options = [{"Quit": exit},
{"Menu 2": sample1}]
menu = Menu(options, title="Main menu")
while True:
menu.get()
Since I didn't want to copy git repos into other projects, I made a pip package
$ pip install yodas
Structure
Functions
camelCaseSplit()
snakeCaseSplit()
caseSplit()
Classes
Menu
Yoda
TODO
- In Yoda class, add option to have other variables like a
key: list
, orkey: dict
rather than juststr: str
- In Yoda class, add option to have custom questions, similar to what is implemented in Menu()
- In Menu class, add argument management
- Fix camelCaseSplit() where
thisIsATest
results inThis Is ATest
- Add multiple language support
Changelog
1.1.1
- Added support to create empty Yoda
Yoda("empty.json")
will create a JSON with{}
- Fixed issue where even in empty Yoda files, it will ask for the details
1.1.0
- Added support for string only menus
- Changed Menu.show() to Menu.select()
- Fixed issue where camelCaseSplit() wouldn't detect words with a length of 2
- Fixed issue whereupon creating Yoda, it won't ask for details until contents() is called
- Fixed issue in Yoda where if the path doesn't exist, Yoda will crash
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.