- 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.
Clone this repository and build the Docker image (make build
) and then run:
docker run --rm -it --name yoda yoda:latest yoda chat Hello
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.
- whois
$ yoda dev whois google.com
Verifying domain...
Domain: google.com
Registrar: MarkMonitor Inc.
Organization: Google LLC
Country: US
Registered On: 1997-09-15
Expires On: 2020-09-13
Updated On: 2018-02-21
- 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.
- run
$ yoda run tests/resources/test_code.py
Compiling code..
Running code...
Output:
Hello, World!
Link: https://code.hackerearth.com/b21841l
- 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.
- keybindings
# To add(or import) a keybindings file
$ yoda dev keybindings add vim /absolute/path/to/keybinding/file.csv
# To search keybinding action for a software
$ yoda dev keybindings search vim move cusror
Key Bindings:
---------------------------------------
key | action
---------------|-----------------------
h | move cursor left
j | move cursor down
k | move cursor up
l | move cursor right
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
-
dictionary: to get definition, synonym, antonym and example of a word. This definition or synonym search will be automatically saved, so that while you are working on your vocabulary, you can come through the new word as well.
$ yoda dictionary define car A few definitions of the word "car" with their parts of speech are given below: --------------------------------- noun: a motor vehicle with four wheels; usually propelled by an internal combustion engine noun: the compartment that is suspended from an airship and that carries personnel and the cargo and the power plant noun: where passengers ride up and down noun: a wheeled vehicle adapted to the rails of railroad noun: a conveyance for passengers or freight on a cable railway This word already exists in the vocabulary set, so you can practice it while using that $ yoda dictionary synonym car A few synonyms of the word "car" are given below: --------------------------------- auto automobile machine motorcar gondola elevator car railcar railroad car railway car cable car This word already exists in the vocabulary set, so you can practice it while using that $ yoda dictionary antonym car Sorry, no antonyms were found for this word $ yoda dictionary example good A few examples of the word "good" are given below: --------------------------------- weigh the good against the bad among the highest goods of all are happiness and self-realization a good friend
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.......@......@.......SSSS%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%******%%%%%%%%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
This command can be used to get the lyrics of a song.
$ yoda lyrics
Enter the artist name:
imagine dragons
Enter the title name:
thunder
--------Lyrics--------
Just a young gun with a quick fuse
I was uptight, wanna let loose
I was dreaming of bigger things in
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
- 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
- HackerEarthAPI: Used to run code
- lyrics.ovh: Used for lyrics
- Yoda's illustration SVG was taken from here
- WhoIs: Used for getting information about domains.
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.