Anonymous avatar Anonymous committed 89fcc3d

Some refactoring of amov - first steps in breaking the far too deep structure.

Comments (0)

Files changed (3)

rpg_lib/textrpg_1d6/amov/Skripte/Kernskripte/ein_und_ausgabe/tag_zu_datei.py

 
 # Dieses Skript übersetzt tag-IDs zu Dateien. 
 
+
+# Diese Klasse übersetzt tag strings der Form
+# tag:url,yyyy:name
+# zu Objekten der Form (YAML-notiert): 
+
+# tag: 
+#       Jahr: yyyy
+#       URL: url
+#       Name: Name
+
+"""Read a tag and return a dict with the
+tags information."""
+
+class tag_zu_objekt: 
+        """Read a tag and return a dict with the
+tags information."""
+        def __init__(self, tag): 
+                self.tag = tag
+        def tag_objekt(self):
+                
+                # Erstmal definieren wir Grundformate. 
+                FORMAT_JAHR = 'yyyy'
+                FORMAT_TAG = 'tag:'
+                # Und deren Längen. 
+                length_yyyy = len(FORMAT_JAHR)
+                length_tag = len(FORMAT_TAG)
+                
+                # Danach schmeißen wir den Prefix raus:'t ag:'
+                zwischenstring = self.tag[length_tag:]
+                # Dann müssen wir in der Lage sein den String zu teilen. 
+                # Dafür suchen wir erstmal das Komma im String
+                ort_des_kommas = zwischenstring.find(',')
+                # Um Fehler auszuschließen, prüfen wir noch, ob mehr als ein Komma im tag vorkommt. TODO: Sauber schreiben! 
+                anzahl_der_kommata = zwischenstring.count( ',' )
+                if anzahl_der_kommata > 1: 
+                        print 'Meldung: Mehr als ein Komma im Tag! Prüfen!'
+                else: #print 'Meldung: Nur ein Komma im Tag. Alles OK'
+                    pass 
+                # Jetzt definieren wir uns die Funktion, 
+                # die aus dem String ein Objekt macht. 
+                URL = zwischenstring[:ort_des_kommas]
+                Jahr = zwischenstring[ort_des_kommas + 1:ort_des_kommas + length_yyyy + 1] 
+                Name = zwischenstring[ort_des_kommas + length_yyyy + 2:]
+                tag_dict = {}
+                tag_dict['URL'] = URL
+                tag_dict['Jahr'] = Jahr
+                tag_dict['Name'] = Name
+                return tag_dict
+
+# und rufen sie auf. 
+
+
+# Außerdem müssen wir Pfade Plattformunabhängig verbinden können. 
+from os.path import join
+
+# Wir brauchen noch den Nutzerordner. 
+from user import home
+
+BASISORDNER = home
+
+TRENNER_ORDNER = '/'
+TRENNER_VERSION = '-'
+TRENNER_JAHR = '-'
+TRENNER_URL = '-'
+ENDUNG_DATEI = '.yml'
+
+class _Datei(): 
+    def __init__(self, tag="tag:1w6.org,2007:Menschen", kategorie="Vorlagen", version="0.1", speicherordner_rel_zu_home=".amov"):
+        self.tag = tag
+        self.kategorie = kategorie
+        self.version = version
+        self.basisordner = join(BASISORDNER, speicherordner_rel_zu_home)
+        self.tag_zum_objekt = tag_zu_objekt(self.tag)
+        self.tag_objekt = self.tag_zum_objekt.tag_objekt()
+
+    def dateipfad(self): 
+        return join(self.basisordner, self.kategorie)
+    
+    def dateiname_ohne_version_und_pfad(self): 
+        dateiname_ohne_version_und_pfad = self.tag_objekt['Name'] + TRENNER_URL + self.tag_objekt['URL'] + TRENNER_JAHR + self.tag_objekt['Jahr']
+        return dateiname_ohne_version_und_pfad
+
+    def dateiname_ohne_version(self): 
+        dateiname_ohne_version = join(self.dateipfad(), self.dateiname_ohne_version_und_pfad())
+        return dateiname_ohne_version
+
+    def dateiname_ohne_version_mit_trenner(self): 
+        return self.dateiname_ohne_version() + TRENNER_VERSION
+
+    def dateiname_ausgeben(self): 
+        # Mit dem Tag_objekt und dem Eingabe-Wörterbuch können wir nun den Datei-String erzeugen. 
+        datei = self.dateiname_ohne_version_mit_trenner() + str(self.version) + ENDUNG_DATEI
+        return datei
+
+#### Self-Test ####
+
+if __name__ == "__main__": 
+    datei = Datei(tag="tag:1w6.org,2007:Menschen", kategorie="Vorlagen", version="0.1")
+    print datei.dateiname_ausgeben()
+    print datei.dateiname_ohne_version_mit_trenner()
+    print datei.dateiname_ohne_version()
+
+
 # Als Eingabe erhalten wir eine tag-ID im Format
 # tag:url,yyyy:name
 # eine Version und eine Kategorie
 
 """Read an input-object ('ID' supplies the tag) and translate it to a file-path"""
 from os.path import join
-import tag_zu_objekt
-import tag_zu_datei_von_tag
 
 class Datei: 
         """Read a tag and return a
                 self.tag_string = self.Eingabe["ID"]
                 self.version = self.Eingabe["Version"]
                 self.speicherordner_rel_zu_home = speicherordner_rel_zu_home
-                self.basisordner = join(tag_zu_datei_von_tag.BASISORDNER, speicherordner_rel_zu_home)
+                self.basisordner = join(BASISORDNER, speicherordner_rel_zu_home)
                 # wir holen uns das Objekt das dem tag entspricht.
-                self.tag_zum_objekt = tag_zu_objekt.tag_zu_objekt(self.tag_string)
+                self.tag_zum_objekt = tag_zu_objekt(self.tag_string)
                 self.tag_objekt = self.tag_zum_objekt.tag_objekt()
 
         def dateipfad(self): 
         
         def dateiname_ausgeben(self): 
                 # Mit dem Tag_objekt und dem Eingabe-Wörterbuch können wir nun den Datei-String erzeugen. 
-                tag_zu_dat_v_t = tag_zu_datei_von_tag.Datei(tag=self.tag_string, kategorie=self.kategorie_ausgeben(), version=self.version, speicherordner_rel_zu_home=self.speicherordner_rel_zu_home)
+                tag_zu_dat_v_t = _Datei(tag=self.tag_string, kategorie=self.kategorie_ausgeben(), version=self.version, speicherordner_rel_zu_home=self.speicherordner_rel_zu_home)
                 datei = tag_zu_dat_v_t.dateiname_ausgeben()
                 return datei
         

rpg_lib/textrpg_1d6/amov/Skripte/Kernskripte/ein_und_ausgabe/tag_zu_datei_von_tag.py

-#!/usr/bin/env python
-# encoding: utf-8
-
-############################################################################
-#    Copyright (C) 2007 by Achim Zien und Arne Babenhauserheide            #
-#    arne_bab@web.de                                                       #
-#                                                                          #
-#    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.,                                       #
-#    59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.             #
-############################################################################
-
-# Wir müssen tags parsen können. 
-import tag_zu_objekt
-
-# Außerdem müssen wir Pfade Plattformunabhängig verbinden können. 
-from os.path import join
-
-# Wir brauchen noch den Nutzerordner. 
-from user import home
-
-BASISORDNER = home
-
-TRENNER_ORDNER = '/'
-TRENNER_VERSION = '-'
-TRENNER_JAHR = '-'
-TRENNER_URL = '-'
-ENDUNG_DATEI = '.yml'
-
-class Datei(): 
-    def __init__(self, tag="tag:1w6.org,2007:Menschen", kategorie="Vorlagen", version="0.1", speicherordner_rel_zu_home=".amov"):
-        self.tag = tag
-        self.kategorie = kategorie
-        self.version = version
-        self.basisordner = join(BASISORDNER, speicherordner_rel_zu_home)
-        self.tag_zum_objekt = tag_zu_objekt.tag_zu_objekt(self.tag)
-        self.tag_objekt = self.tag_zum_objekt.tag_objekt()
-
-    def dateipfad(self): 
-        return join(self.basisordner, self.kategorie)
-    
-    def dateiname_ohne_version_und_pfad(self): 
-        dateiname_ohne_version_und_pfad = self.tag_objekt['Name'] + TRENNER_URL + self.tag_objekt['URL'] + TRENNER_JAHR + self.tag_objekt['Jahr']
-        return dateiname_ohne_version_und_pfad
-
-    def dateiname_ohne_version(self): 
-        dateiname_ohne_version = join(self.dateipfad(), self.dateiname_ohne_version_und_pfad())
-        return dateiname_ohne_version
-
-    def dateiname_ohne_version_mit_trenner(self): 
-        return self.dateiname_ohne_version() + TRENNER_VERSION
-
-    def dateiname_ausgeben(self): 
-        # Mit dem Tag_objekt und dem Eingabe-Wörterbuch können wir nun den Datei-String erzeugen. 
-        datei = self.dateiname_ohne_version_mit_trenner() + str(self.version) + ENDUNG_DATEI
-        return datei
-
-#### Self-Test ####
-
-if __name__ == "__main__": 
-    datei = Datei(tag="tag:1w6.org,2007:Menschen", kategorie="Vorlagen", version="0.1")
-    print datei.dateiname_ausgeben()
-    print datei.dateiname_ohne_version_mit_trenner()
-    print datei.dateiname_ohne_version()

rpg_lib/textrpg_1d6/amov/Skripte/Kernskripte/ein_und_ausgabe/tag_zu_objekt.py

-#!/bin/env python
-# This Python file uses the following encoding=utf-8
-
-# Amo - Allgemeine Modulare Objektverwaltung im lesbaren YAML Format
-# Copyright © 2007 - 2007 Arne Babenhauserheide
-
-# 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
-
-# Dieses Skript übersetzt tag strings der Form
-
-# tag:url,yyyy:name
-
-# zu Objekten der Form (YAML-notiert): 
-
-# tag: 
-#       Jahr: yyyy
-#       URL: url
-#       Name: Name
-
-"""Read a tag and return a dict with the
-tags information."""
-
-class tag_zu_objekt: 
-        """Read a tag and return a dict with the
-tags information."""
-        def __init__(self, tag): 
-                self.tag = tag
-        def tag_objekt(self):
-                
-                # Erstmal definieren wir Grundformate. 
-                FORMAT_JAHR = 'yyyy'
-                FORMAT_TAG = 'tag:'
-                # Und deren Längen. 
-                length_yyyy = len(FORMAT_JAHR)
-                length_tag = len(FORMAT_TAG)
-                
-                # Danach schmeißen wir den Prefix raus:'t ag:'
-                zwischenstring = self.tag[length_tag:]
-                # Dann müssen wir in der Lage sein den String zu teilen. 
-                # Dafür suchen wir erstmal das Komma im String
-                ort_des_kommas = zwischenstring.find(',')
-                # Um Fehler auszuschließen, prüfen wir noch, ob mehr als ein Komma im tag vorkommt. TODO: Sauber schreiben! 
-                anzahl_der_kommata = zwischenstring.count( ',' )
-                if anzahl_der_kommata > 1: 
-                        print 'Meldung: Mehr als ein Komma im Tag! Prüfen!'
-                else: #print 'Meldung: Nur ein Komma im Tag. Alles OK'
-                    pass 
-                # Jetzt definieren wir uns die Funktion, 
-                # die aus dem String ein Objekt macht. 
-                URL = zwischenstring[:ort_des_kommas]
-                Jahr = zwischenstring[ort_des_kommas + 1:ort_des_kommas + length_yyyy + 1] 
-                Name = zwischenstring[ort_des_kommas + length_yyyy + 2:]
-                tag_dict = {}
-                tag_dict['URL'] = URL
-                tag_dict['Jahr'] = Jahr
-                tag_dict['Name'] = Name
-                return tag_dict
-
-# und rufen sie auf. 
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.