Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorJean-Christophe Savard <savard.jean.christophe@gmail.com>2009-04-02 20:32:41 (GMT)
committer Jean-Christophe Savard <savard.jean.christophe@gmail.com>2009-04-02 20:32:41 (GMT)
commitcfd8818e1aba9326091aa5d3c3d58506a8cf17de (patch)
tree031eef5229141413384ffce15128703a3ffe24b7 /src
parent92a2332105b8fa693fc37fff585ea4611bee638c (diff)
Core : (LP Bug 341760 and 345394)
Added data bundling interfaces in bundler.py File tutoserialize.py is obsolete
Diffstat (limited to 'src')
-rw-r--r--src/sugar/tutorius/bundler.py102
-rw-r--r--src/sugar/tutorius/temp.py (renamed from src/sugar/tutorius/tutoserialize.py)87
2 files changed, 162 insertions, 27 deletions
diff --git a/src/sugar/tutorius/bundler.py b/src/sugar/tutorius/bundler.py
new file mode 100644
index 0000000..585ba88
--- /dev/null
+++ b/src/sugar/tutorius/bundler.py
@@ -0,0 +1,102 @@
+# 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.
+ """
+ NotImplementedError
+
+
+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
+ """
+ NotImplementedError
+
+
+ def load_fsm(self, guid):
+ """
+ Load fsm from xml file who .ini file guid match argument guid.
+ """
+ NotImplementedError
+
+
+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
diff --git a/src/sugar/tutorius/tutoserialize.py b/src/sugar/tutorius/temp.py
index ebd17c6..f9ca9db 100644
--- a/src/sugar/tutorius/tutoserialize.py
+++ b/src/sugar/tutorius/temp.py
@@ -17,35 +17,24 @@
"""
--Save and load FSM Dictionnary to file in $SUGAR_ACTIVITY_ROOT/data/
+This module contains all the data handling class of Tutorius
"""
import logging
import linecache
import os
-import cPickle as pickle
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 TutoSerializer:
- """
- Serializer is a class that provide serializing and file reading and
- writing to disk services for the FSM Dictionary used in the tutorials.
- """
- def __init__(self):
- """
- TutoSerializer constructor (empty)
- """
- pass
-
+class TutorialStore:
- def load_tuto_list(self):
+ def list_avaible_tutorials(self, activity_name):
"""
- Load the tutorial key/name list for this activity from .tml files.
- Return the key/name dictionary
+ 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
@@ -85,11 +74,35 @@ class TutoSerializer:
return tutoKeyName
- def build_tutorial(self,key):
+
+
+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 the chosen dictionnary from Pickle file on disk, then build and
- return the corresponding tutorial.
- TODO : Decode pickle to prevent broswer corruption
+ 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 : " \
@@ -119,13 +132,9 @@ class TutoSerializer:
return tuto
- def save_tutorial(self, key, name, fsm, filename):
+ def load_fsm(self, guid):
"""
- Save the dictionnary given in parameter to a filename.tml file with a
- key and a name.
-
- TODO : TEST : In developpement, untested.
- TODO : Encode pickle to prevent broswer corruption
+ Load fsm from xml file who .ini file guid match argument guid.
"""
path = os.getenv("SUGAR_ACTIVITY_ROOT") + "/data/"
@@ -140,4 +149,28 @@ class TutoSerializer:
pickle.dumps(fsm,0)
tutoSave.write(str)
tutoSave.close()
- \ No newline at end of file
+
+
+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