diff options
Diffstat (limited to 'src/sugar/tutorius/temp.py')
-rw-r--r-- | src/sugar/tutorius/temp.py | 177 |
1 files changed, 1 insertions, 176 deletions
diff --git a/src/sugar/tutorius/temp.py b/src/sugar/tutorius/temp.py index f9ca9db..6c7fb85 100644 --- a/src/sugar/tutorius/temp.py +++ b/src/sugar/tutorius/temp.py @@ -1,176 +1 @@ -# Copyright (C) 2009, Tutorius.org -# Copyright (C) 2009, Jean-Christophe Savard <savard.jean.christophe@gmail.com> -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - -""" -This module contains all the data handling class of Tutorius -""" - -import logging -import linecache -import os - -from sugar.tutorius import gtkutils, overlayer -from sugar.tutorius.core import Tutorial, State, FiniteStateMachine -from sugar.tutorius.actions import DialogMessage, OnceWrapper, BubbleMessage -from sugar.tutorius.filters import GtkWidgetEventFilter, TimerEvent - -class TutorialStore: - - def list_avaible_tutorials(self, activity_name): - """ - Recuperate the list of all tutorials present on disk for a - given activity. - """ - # TODO : Temp path; decide how .tml files will be distrribued in file - # architecture - - path = os.getenv("SUGAR_ACTIVITY_ROOT") + "/data/" - logging.debug("*********** Path of /data/ folder of activity : " + path) - - # Create /data/ folder if no exists - if not os.path.exists(path): - os.mkdir(path) - logging.debug("************* Creating data folder") - - tutoKeyName = {} - - # iterate for each .tml file in the activity /data folder - for file_name in os.listdir(path): - - if file_name.endswith(".tml"): - logging.debug("************** .tml file found : " + file_name) - - # TODO : Filter for just current activity files - # (design convention and/or filter xxxxx.yyyyyy key ? ) - - # Get the key line (always 1st line of .tml file) - key_line = linecache.getline(path + file_name, 1) - key_line = key_line.split("\n")[0] - # Get the name line (always 2nd line of .tml file) - name_line = linecache.getline(path + file_name, 2) - name_line = name_line.split("\n")[0] - # Create dictionary - tutoKeyName[key_line.split("--KEY::")[1]] = \ - name_line.split("--NAME::")[1] - - -## tutoKeyName = {} -## tutoKeyName["Writus.CopyPasteStyle"] = "Copy-paste and style" - - return tutoKeyName - - - -class Serializer: - """ - Class that provide serializing and deserializing of the FSM - used in the tutorials to/from disk. - """ - - def save_fsm(self,fsm): - """ - Save fsm to disk. - """ - NotImplementedError - - def load_fsm(self, guid): - """ - Load fsm from disk. - """ - NotImplementedError - -class XMLSerializer(Serializer): - """ - Class that provide serializing and deserializing of the FSM - used in the tutorials to/from a xml file. - """ - - def save_fsm(self,fsm): - """ - Save fsm to .xml file - """ - path = os.getenv("SUGAR_ACTIVITY_ROOT") + "/data/" - logging.debug("************ Path of /data/ folder of activity : " \ - + path) - logging.debug("************ User key = " + key) - - # iterate for each .tml file in the activity /data folder - for file_name in os.listdir(path): - - if file_name.endswith(".tml"): - - logging.debug("************ found .tml file : " + file_name) - key_line = linecache.getline(path + file_name, 1) - key_line = key_line.split("\n")[0] - fileKey = key_line.split("--KEY::")[1] - logging.debug("************ fileKey = " + fileKey) - if key == fileKey: - logging.debug("************ Key : " + key + \ - " = fileKey : " + fileKey) - tml = file(path + file_name, "r") - str = tml.read() - pick = str.split("--PICKLE::")[1] - - fsm = pickle.loads(pick) - tuto = {key:Tutorial(key,fsm)} - - return tuto - - - def load_fsm(self, guid): - """ - Load fsm from xml file who .ini file guid match argument guid. - """ - - path = os.getenv("SUGAR_ACTIVITY_ROOT") + "/data/" - # Create /data/ folder if no exists - if not os.path.exists(path): - os.mkdir(path) - logging.debug("************* Creating data folder") - - # Save the dictionnary to .tml file - tutoSave = file(path + filename + ".tml", 'w') - str = "--KEY::" + key + "\n--NAME::" + name + "\n--PICKLE::" + \ - pickle.dumps(fsm,0) - tutoSave.write(str) - tutoSave.close() - - -class TutorialBundler: - """ - This class provide the various data handling methods useable by the tutorial - editor. - """ - - def write_metadata_file(data): - """ - Write metadata to a .ini file. - """ - NotImplementedError - - def write_fsm(fsm): - """ - Write fsm to disk. - """ - NotImplementedError - - def add_resources(typename, file): - """ - Add ressources to metadata. - """ - NotImplementedError
\ No newline at end of file +Ex GUID : 79521158-22b4-11de-8cfa-000c293a027a
\ No newline at end of file |