- python (both 2 and 3 are supported)
- virtualenv (only for testing and development)
- Python development package:
python-dev
package (if using Ubuntu)Visual C++ 9.0 for Python
(If using Windows)python-devel
package (If using MacOS/OSX: link)
You can install yoda directly from the github repository using the following commands in shell.
virtualenv yodaenv
./yodaenv/bin/pip install git+https://github.com/yoda-pa/yoda
Clone this repository and create a virtual environment using Python 2 in the cloned directory (virtualenv -p /usr/bin/python2 venv
). Steps after that:
Instead of pip install --editable .
you can use pip install .
if you don't intend to make any changes in the code.
This package contains a chatbot too! The chat
command can be used to chat with it
You can test the chat functionality on api.ai agent website here
This command group contains some sub-commands that may be helpful for developers and tech-geeks.
- speedtest
- url
- hackernews
- horoscope
$ yoda horoscope aries
You may stomp your feet all you like, but you're not going to get your way today. The days of 'me-myself' are over. Also, today you may invite unwanted trouble. It may do you some good, suggests Ganesha, if you change the hub of your activities.
- sitechecker
$ yoda checksite https://manparvesh.com
Connecting...
Yay! The site is up and running! :)
$ yoda checksite https://manparveshs.com
Connecting...
Looks like https://manparveshs.com is not a valid URL, check the URL and try again.
$yoda checksite https://manparvesh
Connecting...
Looks like https://manparvesh is not a valid URL, check the URL and try again.
- grep
$ yoda dev grep PATTERN FILE|FOLDER -r [True] -i [True]
-r is the flag for recursive search. -i enables case insensitive search.
Both are optional parameter and the flags are off if they are not provided.
$ yoda dev grep \d+ modules/ -r True
Will recursively search all files in modules directory for any line containing 1 or more digits.
$ yoda dev grep yOdA modules/ -i True
Will recursively search all files in modules directory for any line containing the word yoda.
This search is case insensitive.
$ yoda dev grep yOdA yoda.py -i True
Will recursively search the file yoda.py for any line containing the word yoda.
This search is case insensitive.
- gif
$ yoda gif from_images --source SOURCE_DIR --output OUTPUT_FILE
Will scan the source directory and generate a gif. File will be located at OUTPUT_FILE.
e.g.
yoda gif from-images --source tests/resources/gif_frames/ --output test.gif
$ yoda gif from_images --source SOURCE_DIR --output OUTPUT_FILE --<param> <value>
Will scan the source directory and generate a gif. File will be located at OUTPUT_FILE.
<param> and <value> can be any keyword argument that imageio's mimsave function takes.
e.g.
yoda gif from-images --source tests/resources/gif_frames/ --output test.gif --fps 9
will create a gif with 9 fps.
- fileshare
$ yoda dev fileshare transport.png
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 379k 100 82 100 379k 14 69962 0:00:05 0:00:05 --:--:-- 78717
File Link : https://file.io/GTd4FH
WARNING: File will be deleted after it is accessed once.
For settings and maintaining your goals, type
# To set a goal (name, description, deadline)
$ yoda goals new
# To show list of ideas
$ yoda goals view
# To set a goal as completed
$ yoda goals complete
# To see number of completed/incomplete goals, missed deadlines etc.
$ yoda goals analyze
# To view tasks assigned to the goal
$ yoda goals tasks
Use this module with diary
module and assign new tasks to the goals by typing
$ yoda diary nt
and adding the goal names to the task when prompted to do so.
This command can be used to maintain a personal diary, roughly based on the concept of Bullet Journal.
For creating and writing new note type
#For writing new note
$yoda diary nn
#First give the title of the note.
#Sencond give the text of the note
#Viewing all notes.
$yoda diary notes
#Updating note
#Choose the date and then the note to update
$yoda diary un
#Deleting Note
#Choose the date and then the note to delete
$yoda diary dn
For writing and viewing tasks.
#Writing new task
$yoda diary nt
#Viewing all tasks
$yoda diary tasks
#Change the status of task to completed
$yoda diary ct
#Update task
#Choose the date and then the task to update
yoda diary ut
#Delete Task
#Choose the date and then the task to delete
yoda diary dt
#Delete all completed tasks for today
yoda diary dct
# type c to confirm the deletion
This command can be used to maintain a profile of someone you love.
For tracking money, this is.
Get your expenses per month
$ yoda money exps_month
$ Sep: spent 75 USD
$ Nov: spent 15 USD
$ Dec: spent 125 USD
Convert currency
$ yoda money convert
Enter currency codes seperated by space:
INR USD
₹ 1 = US$ 0.0136
Enter the amount in INR to be converted to USD
100
100 INR = 1.36 USD
For creating list of ideas, type
# To add idea
$ yoda ideas add --task <task_name> --inside <project_name>
# To show list of ideas
$ yoda ideas show
# To remove a task from idea
$ yoda ideas remove --task <task_name> --inside <project_name>
# To remove an idea completely
$ yoda ideas remove --project <project_name>
Get the geographical location of an IP address.
$ yoda iplookup 23.20.227.213
$ Virginia, United States
This command group contains commands that, helpful in learning new things, will be. Yeesssssss.
-
vocabulary: For enhancing your vocabulary and tracking your progress.
-
flashcards: for learning anything! (inspiration)
# create new set (remember to keep the name to one word) $ yoda flashcards sets new english # modify set $ yoda flashcards sets modify english # list all sets $ yoda flashcards sets list # select a study set $ yoda flashcards select english # create new card in selected set (card name length can be more than 1 word) $ yoda flashcards cards new Oxford comma # Know which set is selected and its information $ yoda flashcards status # study the selected study set. This will show you all the cards in a study set # one by one. $ yoda flashcards study
-
define: to get different meanings of a word. This definition search will be automatically saved, so that while you are working on your vocabulary, you can come through the new word as well.
This command group contains commands to alias cumbersome commands.
# before: shortening a url
$ yoda url shorten google.com
# alias shorten to be s
$ yoda alias new "shorten" "s"
# can now use s in place of shorten
$ yoda url s google.com
# or alias the whole command as us
$ yoda alias new "url shorten" "us"
$ yoda us google.com
# show your current aliases
$ yoda alias show
# delete aliases
$ yoda alias delete "us"
$ yoda alias delete "s"
This command outputs transformed ascii version of a given image.
# give the path of the image you want to transform
$ yoda ascii_transform logo.png
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%.%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%..S%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%..+.?%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%..SSS%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%.+..+..+?%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%..SSSSS%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%..+..+..+..%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%SSSSS++%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%...+.....+...%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%SSS++++%%%%%%%%%%%%%%%%%%%%%%%%%%%..............S%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%S+++++.%%%%%%%%%%..........?%%%................%%%%..........%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%++++...%%%%%%%%%%SSS............+++....+++.............SSS%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%++.....%%%%%%%%%SSSS.........+....+.+....+..+......SSS%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%.....**%%%%%%%%SSSSS...+..+......+.............SSSS%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%...****%%%%%%%SSSSSS...........+......+..+.SSSSS%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%.******%%%%%%SSSSSS......@@.....@@......SSSSS%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%*****%%%%%%SSSS.......@[email protected]%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%******%%%%%%%%SS..........SSS.........%S%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%..******%%%%%%%%%%%......................%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%....****%%%%%%%%%%%%%%.......S.............%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%++.....*%%%%%%%%%%%%%%%%%%.....%%%.S.........%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%++++....%%%%%%%%%%%%%%%%%%%%%?......%%%%%%...%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%S+++++..%%%%%%%%%%%%%%%%%%%%%%%%%............?%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%SSSS++++%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%.........%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%.SSSSS++%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%......?%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%..SSSSS%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%..SSS%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%..%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%.SSSSS++++++......*****%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%.SSSSS++++++......*****%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%.SSSSS++++++......*****%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
This command obtains the weather information of a specified location using wttr as the weather service.
# getting weather for location [CITY COUNTRY]
# country and be omitted if there are no clashes of same named cities
$ yoda weather tokyo japan
Weather report: Tokyo, Japan
\ / Partly cloudy
_ /"".-. 80-84 °F
\_( ). ↑ 24 mph
/(___(__) 10 mi
0.0 in
┌─────────────┐
┌──────────────────────────────┬───────────────────────┤ Sun 07 Oct ├───────────────────────┬──────────────────────────────┐
│ Morning │ Noon └──────┬──────┘ Evening │ Night │
├──────────────────────────────┼──────────────────────────────┼──────────────────────────────┼──────────────────────────────┤
│ \ / Partly cloudy │ \ / Partly cloudy │ \ / Partly cloudy │ \ / Partly cloudy │
│ _ /"".-. 82-87 °F │ _ /"".-. 87-91 °F │ _ /"".-. 86 °F │ _ /"".-. 80-82 °F │
│ \_( ). ↗ 14-17 mph │ \_( ). ↘ 3-4 mph │ \_( ). ↓ 7-10 mph │ \_( ). ↙ 11-15 mph │
│ /(___(__) 11 mi │ /(___(__) 12 mi │ /(___(__) 11 mi │ /(___(__) 11 mi │
│ 0.0 in | 0% │ 0.0 in | 0% │ 0.0 in | 0% │ 0.0 in | 0% │
└──────────────────────────────┴──────────────────────────────┴──────────────────────────────┴──────────────────────────────┘
┌─────────────┐
┌──────────────────────────────┬───────────────────────┤ Mon 08 Oct ├───────────────────────┬──────────────────────────────┐
│ Morning │ Noon └──────┬──────┘ Evening │ Night │
├──────────────────────────────┼──────────────────────────────┼──────────────────────────────┼──────────────────────────────┤
│ .-. Light rain │ .-. Light drizzle │ \ / Partly cloudy │ _`/"".-. Patchy rain po…│
│ ( ). 73-77 °F │ ( ). 73-77 °F │ _ /"".-. 73-77 °F │ ,\_( ). 73-77 °F │
│ (___(__) ↙ 10-13 mph │ (___(__) ↙ 9-12 mph │ \_( ). ← 8-11 mph │ /(___(__) ← 4-6 mph │
│ ‘ ‘ ‘ ‘ 11 mi │ ‘ ‘ ‘ ‘ 11 mi │ /(___(__) 11 mi │ ‘ ‘ ‘ ‘ 10 mi │
│ ‘ ‘ ‘ ‘ 0.0 in | 70% │ ‘ ‘ ‘ ‘ 0.0 in | 89% │ 0.0 in | 0% │ ‘ ‘ ‘ ‘ 0.0 in | 61% │
└──────────────────────────────┴──────────────────────────────┴──────────────────────────────┴──────────────────────────────┘
┌─────────────┐
┌──────────────────────────────┬───────────────────────┤ Tue 09 Oct ├───────────────────────┬──────────────────────────────┐
│ Morning │ Noon └──────┬──────┘ Evening │ Night │
├──────────────────────────────┼──────────────────────────────┼──────────────────────────────┼──────────────────────────────┤
│ _`/"".-. Light rain sho…│ _`/"".-. Light rain sho…│ \ / Partly cloudy │ \ / Partly cloudy │
│ ,\_( ). 75-77 °F │ ,\_( ). 78-80 °F │ _ /"".-. 77-80 °F │ _ /"".-. 75-78 °F │
│ /(___(__) ↙ 8-9 mph │ /(___(__) ↓ 8-9 mph │ \_( ). ↙ 8-11 mph │ \_( ). ↙ 6-9 mph │
│ ‘ ‘ ‘ ‘ 11 mi │ ‘ ‘ ‘ ‘ 10 mi │ /(___(__) 10 mi │ /(___(__) 9 mi │
│ ‘ ‘ ‘ ‘ 0.0 in | 89% │ ‘ ‘ ‘ ‘ 0.0 in | 82% │ 0.0 in | 0% │ 0.0 in | 0% │
└──────────────────────────────┴──────────────────────────────┴──────────────────────────────┴──────────────────────────────┘
Follow @igor_chubin for wttr.in updates
This command can be used to save profiles of people and related information, like their birthdays, likes, and some personalized notes for them.
# To add people(or a friend)
$ yoda people setup
# To show added friends
$ yoda people status
--------------------------------------
Mob | DOB | Name
------------|------------|------------
7503160111 | 1994-06-26 | Joy
7503160112 | 1994-05-26 | Lobo
# To add what people like(or a friend likes)
$ yoda people like
# To add personalized notes for people(or friend)
$ yoda people note
# To view likes of your added people
$ yoda people likes
Joy
Likes:
1: #petry
2: #acting
# To view personalized notes for added people(or friend)
$ yoda people notes
Lobo
Notes:
1: stop saying start doing
2: keep chin up
To create an issue in the github repository simple thing that shows a link. Yeesssssss.
- Click: for building command line application
- pychalk: Colors in terminal
- apiai: api-ai for natural language understanding
- pyyaml: for parsing yaml files
- emoji: emojis!
- lepl: for formatted parsing
- pycrypto: To encrypt / decrypt your password
- pyspeedtest: To test network bandwidth
- forex-python: Foreign exchange rates and currency conversion
- dulwich: for git
- PyGithub: for using Github API v3
- Gravit: for creating the logo
- chardet: universal character encoding detector
- Codecov: code coverage dashboard
- coverage: For code coverage testing
- NumPy: For scientific computation
- requests: For HTTP requests
- nose: For unit testing
- urllib3: HTTP client
- Certifi: Python SSL Certificates
- idna: For the domain name
- GeoIP2-database: For geographical IP lookups
- future: the layer of compatability for Python 2/3
- Google URL Shortener: URL shortener
- News API: Used to get the top headlines from Hacker News
- Forismatic API: Get random quotes that are used in the chat module
- Cocktail DB: Used to search for a drink and to get a random drink
- Words API: Used to get the definition of a word
- Requests: Used for online http requests/services
- wttr: Used for getting weather information
- file.io: Used for fileshare
- Yoda's illustration SVG was taken from here
Please refer to the contributing guidelines for contributing to this project.
- Support for both Python 2 and Python 3
- Command aliasing
- Port scanning
- More features in love module
- Hackernews
- yoda inspire
- Increased test coverage
- Bug fixes
- Idea list
- Reading list
- Automated tests
- Test coverage
- Custom config directory location
- Minor bug fixes
Initial release.