Gibt es eine vorhandene Webanwendung, mit der mehrere Benutzer gleichzeitig mit einer interaktiven IDLE-Sitzung arbeiten können?Python: Vernetzte IDLE/Redo IDLE-Front-End bei Verwendung der gleichen Back-End?
Etwas wie:
IDLE 2.6.4
Morgan: >>> letters = list("abcdefg")
Morgan: >>> # now, how would you iterate over letters?
Jack: >>> for char in letters:
print "char %s" % char
char a
char b
char c
char d
char e
char f
char g
Morgan: >>> # nice nice
Wenn nicht, würde Ich mag zu erstellen. Kann ich ein Modul verwenden, das eine interaktive Sitzung simuliert? Ich würde eine Schnittstelle wie diese wollen:
def class InteractiveSession():
''' An interactive Python session '''
def putLine(line):
''' Evaluates line '''
pass
def outputLines():
''' A list of all lines that have been output by the session '''
pass
def currentVars():
''' A dictionary of currently defined variables and their values '''
pass
(Obwohl diese letzte Funktion würde eher ein Extra-Feature sein.)
Zu meinem Problem eine andere Art und Weise zu formulieren: Ich möchte eine neue Front schaffen Ende für IDLE. Wie kann ich das machen?
UPDATE: Oder kann ich IDLE über eval()
simulieren?
UPDATE 2: Was passiert, wenn ich tat etwas wie folgt aus:
Ich habe bereits eine einfache GAE Python Chat-Anwendung einrichten, die Benutzer sich anmelden, stellen Chaträume erlaubt, und chatten Sie mit gegenseitig.
def putLine(line, user, chat_room):
''' Evaluates line for the session used by chat_room '''
# get the interactive session for this chat room
curr_vars = InteractiveSession.objects.where("chatRoom = %s" % chat_room).get()
result = eval(prepared_line, curr_vars.state, {})
curr_vars.state = curr_globals
curr_vars.lines.append((user, line))
if result:
curr_vars.lines.append(('SELF', result.__str__()))
curr_vars.put()
Das InteractiveSession Modell:
def class InteractiveSession(db.Model):
# a dictionary mapping variables to values
# it looks like GAE doesn't actually have a dictionary field, so what would be best to use here?
state = db.DictionaryProperty()
# a transcript of the session
#
# a list of tuples of the form (user, line_entered)
#
# looks something like:
#
# [('Morgan', '# hello'),
# ('Jack', 'x = []'),
# ('Morgan', 'x.append(1)'),
# ('Jack', 'x'),
# ('SELF', '[1]')]
lines = db.ListProperty()
Könnte diese Arbeit,
Statt nur eingehende Nachrichten an den Datenspeicher zu speichern, ich etwas tun könnte oder bin ich weit weg/dieser Ansatz ist undurchführbar/Ich kopiere Arbeit, wenn ich etwas verwenden sollte, das bereits gebaut wurde?
UPDATE 3: Wenn ich alles andere funktioniere, würde ich gerne Syntax-Highlighting machen. Idealerweise hätte ich eine API oder einen Dienst, mit dem ich den Code analysieren und entsprechend formatieren könnte.
for c in "characters":
würde:
<span class="keyword">for</span> <span class="var">c</span> <span class="keyword">in</span> <span class="string>"characters"</span><span class="punctuation">:</span>
Gibt es ein gutes vorhandenes Python-Tool, dies zu tun?
Sehr interessante Idee, obwohl ich überrascht wäre, wenn so etwas schon existiert hätte. –