Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/pysamples/load_file_to_heap.py
diff options
context:
space:
mode:
Diffstat (limited to 'pysamples/load_file_to_heap.py')
-rw-r--r--pysamples/load_file_to_heap.py30
1 files changed, 30 insertions, 0 deletions
diff --git a/pysamples/load_file_to_heap.py b/pysamples/load_file_to_heap.py
new file mode 100644
index 0000000..919d6b5
--- /dev/null
+++ b/pysamples/load_file_to_heap.py
@@ -0,0 +1,30 @@
+#Copyright (c) 2010-11, Walter Bender, Tony Forster
+
+# This procedure is invoked when the user-definable block on the
+# "extras" palette is selected.
+
+# Usage: Import this code into a Python (user-definable) block; when
+# this code is run, the chooser will be opened for selecting a file
+# from the GNU/Linux file system. The contents of that file will be
+# loaded onto the FILO heap. Data is assumed to be json encoded.
+
+
+def myblock(tw, path):
+ ''' Load heap from file (GNOME only) '''
+
+ import os
+ from TurtleArt.tautils import get_load_name, data_from_file
+
+ if type(path) == float:
+ path = ''
+
+ if not os.path.exists(path):
+ path, tw.load_save_folder = get_load_name('.*', tw.load_save_folder)
+ if path is None:
+ return
+
+ data = data_from_file(path)
+ if data is not None:
+ for val in data:
+ tw.lc.heap.append(val)
+ tw.lc.update_label_value('pop', tw.lc.heap[-1])