##// END OF EJS Templates
Merge pull request #1670 from takluyver/pastebin-gist...
Fernando Perez -
r6670:970a0dfa merge
parent child Browse files
Show More
@@ -21,6 +21,7 b' import bdb'
21 21 import inspect
22 22 import imp
23 23 import io
24 import json
24 25 import os
25 26 import sys
26 27 import shutil
@@ -30,7 +31,7 b' import gc'
30 31 from StringIO import StringIO
31 32 from getopt import getopt,GetoptError
32 33 from pprint import pformat
33 from xmlrpclib import ServerProxy
34 from urllib2 import urlopen
34 35
35 36 # cProfile was added in Python2.5
36 37 try:
@@ -2231,15 +2232,40 b' Currently the magic system has the following functions:\\n"""'
2231 2232 print cmds
2232 2233
2233 2234 def magic_pastebin(self, parameter_s = ''):
2234 """Upload code to the 'Lodge it' paste bin, returning the URL."""
2235 """Upload code to Github's Gist paste bin, returning the URL.
2236
2237 Usage:\\
2238 %pastebin [-d "Custom description"] 1-7
2239
2240 The argument can be an input history range, a filename, or the name of a
2241 string or macro.
2242
2243 Options:
2244
2245 -d: Pass a custom description for the gist. The default will say
2246 "Pasted from IPython".
2247 """
2248 opts, args = self.parse_options(parameter_s, 'd:')
2249
2235 2250 try:
2236 code = self.shell.find_user_code(parameter_s)
2251 code = self.shell.find_user_code(args)
2237 2252 except (ValueError, TypeError) as e:
2238 2253 print e.args[0]
2239 2254 return
2240 pbserver = ServerProxy('http://paste.pocoo.org/xmlrpc/')
2241 id = pbserver.pastes.newPaste("python", code)
2242 return "http://paste.pocoo.org/show/" + id
2255
2256 post_data = json.dumps({
2257 "description": opts.get('d', "Pasted from IPython"),
2258 "public": True,
2259 "files": {
2260 "file1.py": {
2261 "content": code
2262 }
2263 }
2264 }).encode('utf-8')
2265
2266 response = urlopen("https://api.github.com/gists", post_data)
2267 response_data = json.loads(response.read().decode('utf-8'))
2268 return response_data['html_url']
2243 2269
2244 2270 def magic_loadpy(self, arg_s):
2245 2271 """Load a .py python script into the GUI console.
General Comments 0
You need to be logged in to leave comments. Login now