yhat / rodeo Goto Github PK
View Code? Open in Web Editor NEWA data science IDE for Python
License: Other
A data science IDE for Python
License: Other
Rodeo installs fine:
N:\>pip install rodeo
Collecting rodeo
Downloading rodeo-0.2.1.tar.gz (3.5MB)
100% |################################| 3.5MB 116kB/s
Requirement already satisfied (use --upgrade to upgrade): ipython>=3.0.0 in c:\anaconda\lib\site-packages (from rodeo)
Requirement already satisfied (use --upgrade to upgrade): Flask>=0.10.1 in c:\anaconda\lib\site-packages (from rodeo)
Requirement already satisfied (use --upgrade to upgrade): jedi in c:\anaconda\lib\site-packages (from rodeo)
Collecting docopt (from rodeo)
Downloading docopt-0.6.2.tar.gz
Requirement already satisfied (use --upgrade to upgrade): pyzmq>=13 in c:\anaconda\lib\site-packages (from rodeo)
Installing collected packages: docopt, rodeo
Running setup.py install for docopt
Running setup.py install for rodeo
Installing rodeo-script.py script to C:\Anaconda\Scripts
Installing rodeo.exe script to C:\Anaconda\Scripts
Successfully installed docopt-0.6.2 rodeo-0.2.1
Command line without options prints help:
N:\>rodeo
rodeo
Usage:
rodeo [--port=<int>] [<directory>]
rodeo (-h | --help)
rodeo --version
Options:
-h --help Show this screen.
--version Show version.
Help:
Rodeo is a data centric IDE for python. It leverages the IPython
Kernel but presents a different user experience than the notebook.
Those of you who use products like SublimeText or Eclipse will
probably find rodeo familiar.
Examples:
To run a rodeo server, just execute the `rodeo` command like so:
$ rodeo . # basic usage
$ rodeo . --port=4567 # run in this directory, but on port 4567
$ rodeo /path/to/a/folder # run in a different directory
$ rodeo /path/to/a/folder --port=4567 # new directory, new port
Running fails:
N:\>rodeo .
Traceback (most recent call last):
File "C:\Anaconda\Scripts\rodeo-script.py", line 9, in <module>
load_entry_point('rodeo==0.2.1', 'console_scripts', 'rodeo')()
File "C:\Anaconda\lib\site-packages\rodeo\cli.py", line 41, in cmd
main(active_dir)
File "C:\Anaconda\lib\site-packages\rodeo\rodeo.py", line 72, in main
kernel = Kernel()
File "C:\Anaconda\lib\site-packages\rodeo\kernel.py", line 91, in __init__
self.client.load_connection_file()
File "C:\Anaconda\lib\site-packages\IPython\kernel\connect.py", line 503, in load_connection_file
with open(self.connection_file) as f:
IOError: [Errno 2] No such file or directory: u'c:\\users\\hb55683\\appdata\\local\\temp\\kernel-5bb3c7e2-6874-4876-a547-b9c80dcad79
4.json'
Error in atexit._run_exitfuncs:
Traceback (most recent call last):
File "C:\Anaconda\lib\atexit.py", line 24, in _run_exitfuncs
func(*targs, **kargs)
File "C:\Anaconda\lib\site-packages\rodeo\kernel.py", line 83, in remove_config
os.remove(config)
WindowsError: [Error 2] The system cannot find the file specified: 'c:\\users\\hb55683\\appdata\\local\\temp\\kernel-5bb3c7e2-6874-4
876-a547-b9c80dcad794.json'
Error in sys.exitfunc:
Traceback (most recent call last):
File "C:\Anaconda\lib\atexit.py", line 24, in _run_exitfuncs
func(*targs, **kargs)
File "C:\Anaconda\lib\site-packages\rodeo\kernel.py", line 83, in remove_config
os.remove(config)
WindowsError: [Error 2] The system cannot find the file specified: 'c:\\users\\hb55683\\appdata\\local\\temp\\kernel-5bb3c7e2-6874-4
876-a547-b9c80dcad794.json'
Something like a heartbeat
Installed rodeo via the pip command on Win 8.1 (64 bit) machine. Ran the command on 'cygwin':
rodeo .
and was returned the following error:
WindowsError: [Error 2] The system cannot find the file specified: 'c:\\cygwin64\\tmp\\kernel-b66e5ff6-2600-4a33-9f83-4889bf4b73f1.json'
Note: Latest Anaconda package was installed
Click Rodeo in the top nav then About. Observe redirect to 500 error Internal Server Error.
When a line is executed from the text editor (command + return) the cursor should drop to the next line so you can run many lines quickly
Hi,
Ipython notebook has a feature to clear the working space. Is that possible in rodeo?
Hi,
this looks very nice, but just after trying it I thought to shamelessly give my 2c:
At least that's my first impression.
Keep up the good work!
Doesn't always take advantage of the real estate available.
I pulled the latest version of the code (at time of writing) and I get the following error when I try to execute any code:
ERROR:rodeo.rodeo:Exception on / [POST]
Traceback (most recent call last):
File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1817, in wsgi_app
response = self.full_dispatch_request()
File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1477, in full_dispatch_request
rv = self.handle_user_exception(e)
File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1381, in handle_user_exception
reraise(exc_type, exc_value, tb)
File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1475, in full_dispatch_request
rv = self.dispatch_request()
File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1461, in dispatch_request
return self.view_functions[rule.endpoint](**req.view_args)
File "/usr/local/lib/python2.7/dist-packages/rodeo-0.2.2-py2.7.egg/rodeo/rodeo.py", line 33, in home
result = kernel.execute(code)
File "/usr/local/lib/python2.7/dist-packages/rodeo-0.2.2-py2.7.egg/rodeo/kernel.py", line 139, in execute
return self._run_code(code)
File "/usr/local/lib/python2.7/dist-packages/rodeo-0.2.2-py2.7.egg/rodeo/kernel.py", line 134, in _run_code
data = reply['content']['text']
KeyError: 'text'
I'm getting a missing file-folder error when trying to run Rodeo on both py2 and py3 environments
(py3k)Christophers-MacBook-Pro:~ chrisralbon$ rodeo .
Traceback (most recent call last):
File "/Users/chrisralbon/anaconda/envs/py3k/bin/rodeo", line 9, in <module>
load_entry_point('rodeo==0.2.1', 'console_scripts', 'rodeo')()
File "/Users/chrisralbon/anaconda/envs/py3k/lib/python3.4/site-packages/rodeo/cli.py", line 41, in cmd
main(active_dir)
File "/Users/chrisralbon/anaconda/envs/py3k/lib/python3.4/site-packages/rodeo/rodeo.py", line 72, in main
kernel = Kernel()
File "/Users/chrisralbon/anaconda/envs/py3k/lib/python3.4/site-packages/rodeo/kernel.py", line 91, in __init__
self.client.load_connection_file()
File "/Users/chrisralbon/anaconda/envs/py3k/lib/python3.4/site-packages/IPython/kernel/connect.py", line 503, in load_connection_file
with open(self.connection_file) as f:
FileNotFoundError: [Errno 2] No such file or directory: '/var/folders/l_/t7xb0srs2vl248mf61063b840000gn/T/kernel-f4f55455-1347-4607-8131-262c14871d33.json'
Error in atexit._run_exitfuncs:
Traceback (most recent call last):
File "/Users/chrisralbon/anaconda/envs/py3k/lib/python3.4/site-packages/rodeo/kernel.py", line 83, in remove_config
os.remove(config)
FileNotFoundError: [Errno 2] No such file or directory: '/var/folders/l_/t7xb0srs2vl248mf61063b840000gn/T/kernel-f4f55455-1347-4607-8131-262c14871d33.json'
(py3k)Christophers-MacBook-Pro:~ chrisralbon$
Ctrl + 1 or Ctrl + 2 switches tabs in Chrome on Linux, it does not shift focus/cursor between editor and console.
When I tryed to install rodeo, I got an error as following:
C:\Documents and Settings\wayangel\desktop\rodeo-master>python setup.py install
Traceback (most recent call last):
File "setup.py", line 44, in <module>
long_description=open("README.rst").read(),
UnicodeDecodeError: 'gbk' codec can't decode byte 0x98 in position 1106: illegal
multibyte sequence
Changing that line to long_description=open("README.rst", encoding='utf8').read()
seems working.
Thanks for the great work! It would nice if the Dataframe list also included subclasses in addition to pandas.DataFrame
It would be nice to have a PyQt-Webkit wrapper to make it a stand-alone app:
#!/usr/bin/env python
import sys
from PyQt4.QtCore import *
from PyQt4.QtGui import *
from PyQt4.QtWebKit import *
app = QApplication(sys.argv)
web = QWebView()
web.load(QUrl("http://localhost:5000"))
web.show()
sys.exit(app.exec_())
Be able to have 4 panes that are resizable.
Really liking the project and current work, it feels really responsive ๐ and I could definitely see myself using this in my job.
Unfortunately, I am using osx (maverick) and dataframes and files don't get added to the UI.
auto completion also doesn't seem to work. I tried in Chrome and FFox to not avail :(
Also would it be possible to have a confirmation box when attempting to close/refresh the page and an autosave (could be only for as long as the server session last) of the changes that were done.
I closed the window a couple of times and was every-time greeted to an empty shell :(
Instead of highlighting code block to execute, maybe add a code block marker/delimiter. Something a la %% for cells in MATLAB.
Running into trouble plotting with the following error:
IOError: [Errno 13] Permission denied: '/Library/Python/2.7/site-packages/rodeo/static/plots/1429821893-f96713d9-3684-44b6-8f44-88ef98f9e592.png'
I had to pip install rodeo with sudo but running rodeo as other than su won't allow writing to the site-package directory. Is it possible to stash tmp files someplace else that has write access by the user? Or cmod the plots directory to allow writing by non-owners?
make it in memory
https://github.com/yhat/rodeo/blob/master/rodeo/kernel.py#L69-L79
It seems that it's not possible to save a file when rodeo is run with Python 3.4 at the moment:
Traceback (most recent call last):
File "/Users/ogrisel/venvs/py34/lib/python3.4/site-packages/flask/app.py", line 1817, in wsgi_app
response = self.full_dispatch_request()
File "/Users/ogrisel/venvs/py34/lib/python3.4/site-packages/flask/app.py", line 1477, in full_dispatch_request
rv = self.handle_user_exception(e)
File "/Users/ogrisel/venvs/py34/lib/python3.4/site-packages/flask/app.py", line 1381, in handle_user_exception
reraise(exc_type, exc_value, tb)
File "/Users/ogrisel/venvs/py34/lib/python3.4/site-packages/flask/_compat.py", line 33, in reraise
raise value
File "/Users/ogrisel/venvs/py34/lib/python3.4/site-packages/flask/app.py", line 1475, in full_dispatch_request
rv = self.dispatch_request()
File "/Users/ogrisel/venvs/py34/lib/python3.4/site-packages/flask/app.py", line 1461, in dispatch_request
return self.view_functions[rule.endpoint](**req.view_args)
File "/Users/ogrisel/venvs/py34/lib/python3.4/site-packages/rodeo/rodeo.py", line 60, in save_file
f.write(request.form['source'])
TypeError: 'str' does not support the buffer interface
To make the code behave consistently under both Python 2 and Python 3, it would be neat to be able to use the http://python-future.org:
http://python-future.org/compatible_idioms.html#strings-and-bytes
http://python-future.org/what_else.html#open
WDYT? Would you accept pull request that would make the future
package a dependency for the rodeo project?
>>> raise Exception("FOO")
---------------------------------------------------------------------------
Exception Traceback (most recent call last)
<ipython-input-47-65402804b38d> in <module>()
----> 1 raise Exception("FOO")
Exception: FOO
$ brew install rodeo
sys.version
'3.4.1 (default, Nov 3 2014, 14:37:43) \n[GCC 4.9.1 20140930 (Red Hat 4.9.1-11)]'
How i can run on Python2?
This is some great stuff! I ran into this bug while using it though.
I know there currently is no autocomplete in the terminal right now, but when I attempted, the line goes blank and I can not delete anything from the current buffer.
Hitting tab in the terminal afterwards
I attempt to delete but to no avail. Seems to only accept further input, not remove any. Pressing enter brings this screen up.
I'm just starting to use rodeo, and pressing tab in the editor simply inserts a tab instead of doing any completion. Tab completion does appear to work in the terminal however. Nominally this is version 0.2.1, python is version 2.7.9 and ipython is at version 3.1.0. I'm running OS X 10.10.3 and the issue happens in safari, firefox and chrome.
Really cool IDE guys!
One issue: I can read .py files when using the File menu dialog. However, if I click in the file name that appears in the file panel in at right-bottom, a new tab with the file name appears but looks empty. I've started the IDE just as explained in the quickstart and the files are those contained in the folder where I run rodeo .
.
Just pip installed rodeo
and, on the first run, it complained the package pyzmq
wasn't installed. I pip installed pyzmq
and everything worked fine. Maybe that should be included as a dependency in the installation process or alike?
Really wonderful work, folks!
Very nice indeed - I agree with you that this fills a gap between the full notebook experience and development using a proper text editor.
Good bindings for vim are a feature that the ipython notebook can't easily provide, and it would be very attractive for us clumsy-in-notebook vim users if these were easy to enable for rodeo.
Hi,
It would be great to have rodeo multiuser, as R Studio does !
Cheers,
Yann
I tested rodeo in Ubuntu 15.04, Chrome 42 and Firefox 37 using an anaconda environment and noticed a few bugs:
1 . Plots are not showing. I get the correct output in the console:
>>> ax.plot(range(10))
[<matplotlib.lines.Line2D at 0x7fdf4f954ed0>]
but the Plots tab is not showing anything and there is an Uncaught SyntaxError: Unexpected token ๏ฟฝ
error in the console.
UPDATE: Now this has been fixed.
2 . The interface is forcing a scrollbar in the window:
3 . As reported previously, the fonts are too small and the name of the panels are very large:
UPDATE: Fixed using preferences->font size.
4 . There is a superfluous scrollbar in the DataFrame and History tabs:
UPDATE: Also fixed.
5 . After saving a file, there is not an indication of the file name in the URL address.
6 . A lot of null values in the console (it would be better not to show that):
UPDATE: Fixed.
7 . DataFrames variables are not being shown in the DataFrames tab.
UPDATE: Also fixed.
8 . Autocompletion seems not to show the correct objects at first:
However, after executing that line, the objects are shown correctly:
UPDATE: Fixed.
When attempting to plot something, a permissions error is given with regards to the ./Python/2.7/site-packages/rodeo/static/plots/ directory.
This might be due to installing rodeo via pip using sudo, but pip fails to install if sudo is not used.
It seems Rodeo does not support Python 3? I get this stack trace, using anaconda for Python3. For Python2 it works fine.
Traceback (most recent call last):
File "/Users/dcoevord/anaconda3/bin/rodeo", line 9, in
load_entry_point('rodeo==0.2.0', 'console_scripts', 'rodeo')()
File "/Users/dcoevord/anaconda3/lib/python3.4/site-packages/setuptools-15.1-py3.4.egg/pkg_resources/init.py", line 546, in load_entry_point
File "/Users/dcoevord/anaconda3/lib/python3.4/site-packages/setuptools-15.1-py3.4.egg/pkg_resources/init.py", line 2666, in load_entry_point
File "/Users/dcoevord/anaconda3/lib/python3.4/site-packages/setuptools-15.1-py3.4.egg/pkg_resources/init.py", line 2339, in load
File "/Users/dcoevord/anaconda3/lib/python3.4/site-packages/setuptools-15.1-py3.4.egg/pkg_resources/init.py", line 2345, in resolve
File "/Users/dcoevord/anaconda3/lib/python3.4/site-packages/rodeo/cli.py", line 26, in
from rodeo import main
ImportError: cannot import name 'main'
This looks like a lovely lightweight IDE for Python. I don't see a license file in the repo, so wasn't sure if you intended it to be open source (hope so!).
I have rodeo installed on a server online and i want access to it remotely
is there a command line otion or configuration file where to set the hostname (instead of just localhost) and to avoid to open a browser from the host machine ?
df.h<ctrl + space>
This looks for vars starting w/ "h" instead of looking for methods for df
that start with "h"
>>> print(3)
3
>>> exit()
null
>>> 1 + 2
>>> print('hello world')
>>>
workuser@testm13:~/kung-foo$ rodeo .
|_ __ \ .' .|_ _
.|_ __ | .' . | |__) | / .-. \ | |
. \ | |_ |/ .-.
| __ / | | | | | | | | | | _ | | | |
| | \ _\ -' /_| |_.' /_| |__/ |\
-' /
|| |**|.**_.'|______.'|________|
.___.'
''''''''''''''''''''''''''''''''''''''''''''''''''
URL: http://localhost:5000/
DIRECTORY: /home/workuser/kung-foo
''''''''''''''''''''''''''''''''''''''''''''''''''
w3m: Can't load http://localhost:5000/.
w3m: Can't load http://localhost:5000/.
So far the only plotting that seems to work for me (using chrome on osx) is ggplot. Trying to directly plot a dataframe does not see to generate anything in the plots tab. Am I missing something? Perhaps some configuration setting?
Would be nice to have for OSX and Windows
x = 10
# x = now hit the tab key
Observe the x = text that you've already inputted now indents 5 spaces which is weird behavior.
readlines
style clear behavior to erase to start and end of the line like it does in a normal ipython / bash shell.NOTE - control + L appears to clear the shell as expected. just k and u that do not work.
ideally rodeo would look for the users ~/.inputrc file and respect whatever behaviors and keybindings / escape sequences are defined in that file if possible.
iPython notebooks have a --no-browser
option, which is helpful for running them on remote servers.
current theme is too white and does not look good for projectors
ability to single click import libraries
ability to single click install libraries
ability to knit /pymarkdown
ISSUE not able to see my file system files in from the rodeo File Tab in left bottom
btw great work guys!!
This doesn't work yet
It will make atom.io's python support very powerful
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.