Commits

Arne Babenhauserheide  committed d6c032a

New command: py() starts a python interpreter with the same sys.path as the script.

  • Participants
  • Parent commits 637c264
  • Branches py3

Comments (0)

Files changed (2)

File rpg_lib/textrpg.py

     # AnyRPG function for localizing. 
     from rpg_lib.anyrpg import _
 
+from subprocess import call
+import sys
+
 # Define helper functions. 
 story_helper = Story()
 
     return me.battle(other, *args, **kwds)
 
 
+def py(setup=""):
+    """Call a Python interpreter with the defined setup as commands called beforehand.
+
+    The interpreter inherits the system path of the textrpg."""
+    return call(["python3", "-ic",'import sys;sys.path.extend(eval("' + str(sys.path) + '"));'+setup])
+
 ### Test story lines ###
 
 def greet(char): 

File tutorial_de.py

     print("- http://python.org ")
     exit()
 
-from rpg_lib.textrpg import story, ask
-
-# Idee: Den Nutzer die Möglichkeiten gleich testen lassen. 
-from subprocess import call 
+from rpg_lib.textrpg import story, ask, py
 
 story("""Willkommen im Interaktiven TextRPG Tutorial!
 
 
 Wir wechseln nun in den Python Interpreter. """)
 
-call(["python3", "-ic",'import sys;sys.path.extend(eval("' + str(path) + '"))'])
-# mit call("python -ic 'from rpg_lib.textrpg import *'") kann das TextRPG schon vorgeladen werden. 
+py()
+# mit py("from rpg_lib.textrpg import *") kann das TextRPG schon vorgeladen werden. 
 
 story("""= Lektion 2: Dem Nutzer Fragen stellen und Geschichten weitergeben =
 
 einzugeben. 
 
 Wie üblich können Sie ihn mit exit() verlassen, um mit dem zweiten Teil von Lektion 2 fortzufahren.""")
-    call("python")
+    py()
 
 
 story("""Und hiermit können Sie bereits vollständige interaktive Geschichten erzählen (auch wenn Sie vieles noch mit Handarbeit erledigen müssen), so dass ich nun zum zweiten Teil dieser Lektion komme: Wie Sie Ihre eigenen Geschichten an andere weitergeben können. 
 
 Damit kommen wir zum Ende von Lektion 2. Viel Spaß beim experimentieren! """)
 
-call(["python","-ic","from rpg_lib.textrpg import *"])
+py("from rpg_lib.textrpg import *")
 
 story("""Lektion 3: Charaktere erzeugen und sprechen lassen.
 
     story("""Der Python Interpreter wird gleich gestartet. 
 
 Wie üblich können Sie ihn mit exit() verlassen, um mit dem zweiten Teil von Lektion 3 fortzufahren.""")
-    call(["python","-ic","from rpg_lib.textrpg import *"])
+    py("from rpg_lib.textrpg import *")
 
 story("""Mit diesen einfachen Schritten können Sie nun bereits Charaktere erzeugen und sprechen lassen, aber ich möchte mir noch den Moment Zeit nehmen, Ihnen zu erklären, was sie damit intern tun. 
 
 
 if test_in_interpreter.lower() in ["ja", "j", ""]: 
     story("""Viel Spaß beim Testen!""")
-    call(["python","-ic","from rpg_lib.textrpg import *"])
+    py("from rpg_lib.textrpg import *")
 
 # Ende von Lektion 3.