Module universal
[hide private]
[frames] | no frames]

Source Code for Module universal

  1  # -*- coding: utf-8 -*- 
  2  # 
  3  # 
  4  #    filename:  universal.py 
  5  # 
  6  #    version:   see wxvf.py 
  7  # 
  8  # 
  9  # ---------------------------------------------------------------------------------------- 
 10  # 
 11  # 
 12  #    Copyright (C) 2010  Michael Bellair 
 13  # 
 14  #    This file is part of wxvf. 
 15  # 
 16  #    wxvf is free software: you can redistribute it and/or modify 
 17  #    it under the terms of the GNU General Public License as published by 
 18  #    the Free Software Foundation, either version 3 of the License, or 
 19  #    (at your option) any later version. 
 20  # 
 21  #    wxvf is distributed in the hope that it will be useful, 
 22  #    but WITHOUT ANY WARRANTY; without even the implied warranty of 
 23  #    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the 
 24  #    GNU General Public License for more details. 
 25  # 
 26  #    You should have received a copy of the GNU General Public License 
 27  #    along with wxvf.  If not, see <http://www.gnu.org/licenses/>. 
 28  # 
 29  #    Michael Bellair 
 30  #    Sportplatzstrasse 11 
 31  #    01259 Dresden 
 32  # 
 33  #    E-Mail:    bellair@freenet.de 
 34  #    homepage:  http://freenet-homepage.de/bellair/vf/index.html 
 35  # 
 36  # 
 37  # ---------------------------------------------------------------------------------------- 
 38  # 
 39   
 40   
 41  # 
 42  # 
 43  # 
 44  # ---------------------------------------------------------------------------------------- 
 45  # ---------------------------------------------------------------------------------------- 
 46  # --                                    -------------------------------------------------- 
 47  # --    Offene Punkte / Aufgaben        -------------------------------------------------- 
 48  # --                                    -------------------------------------------------- 
 49  # ---------------------------------------------------------------------------------------- 
 50  # ---------------------------------------------------------------------------------------- 
 51  # 
 52  #  
 53  #       -- siehe TODO 'universal.py' -- 
 54  # 
 55  # 
 56  # ---------------------------------------------------------------------------------------- 
 57  # 
 58   
 59   
 60  # 
 61  # 
 62  # 
 63  # ---------------------------------------------------------------------------------------- 
 64  # ---------------------------------------------------------------------------------------- 
 65  # --                                                            -------------------------- 
 66  # --                                                            -------------------------- 
 67  # ---------------------------------------------------------------------------------------- 
 68  # ---------------------------------------------------------------------------------------- 
 69  # 
 70   
 71   
 72  # 
 73  # 
 74  # 
 75  # ---------------------------------------------------------------------------------------- 
 76  # ---------------------------------------------------------------------------------------- 
 77  # --                                    -------------------------------------------------- 
 78  # --    Klasse für Zeichenketten       -------------------------------------------------- 
 79  # --                                    -------------------------------------------------- 
 80  # ---------------------------------------------------------------------------------------- 
 81  # ---------------------------------------------------------------------------------------- 
 82  # 
83 -class Zk:
84 """ 85 Klasse, die Funktionen zur Zeichenkettenbehandlung bereitstellt. 86 """ 87 88 # 89 # ------------------------------------------------------------------------------------ 90 # -- Initialisierungen -------------------------------------------------- 91 # ------------------------------------------------------------------------------------ 92 #
93 - def __init__( self ):
94 95 self.LeerZk = '-- bleibt leer --' 96 """ 97 Leerzeichenketten erhalten den Standardtext C{-- bleibt leer --}. 98 99 @cvar: Leerzeichenkette 100 @type: Zeichenkette 101 """
102 103 104 105 # 106 # ------------------------------------------------------------------------------------ 107 # -- Datum als yyyy-mm-dd zurückgeben ---------------------------------- 108 # ------------------------------------------------------------------------------------ 109 #
110 - def gibDatum( self, zkDatum ):
111 """ 112 Die im Format 'tt.mm.jjjj' vorliegende Datum-Zeichenkette wird im Format 'yyyy-mm-dd' zurückgegeben. 113 114 @param zkDatum: Es ist die Datum-Zeichenkette zu übergeben, die umgewnadelt werden soll. 115 @type zkDatum: Zeichenkette 116 117 @return: Siehe Beschreibung. 118 @rtype: Zeichenkette 119 """ 120 121 # 122 # -- Zeichenkette zurückgeben ------------------------------------------ 123 # 124 return zkDatum[6:10] + '-' + zkDatum[3:5] + '-' + zkDatum[0:2]
125 126 127 128 # 129 # ------------------------------------------------------------------------------------ 130 # -- Werteteilmenge aus verketteter Lister zurückgeben ------------------ 131 # ------------------------------------------------------------------------------------ 132 #
133 - def gibListeTeilmenge( self, liste, spalte = 0 ):
134 """ 135 Es werden die Werte einer 'Spalte' aus der verketteten Liste C{liste} zurückgegeben 136 137 @param liste: Es ist die verkettete Liste zu übergeben. 138 @type liste: Python - Liste 139 140 @param spalte: Es ist die Spalte anzugeben. 141 @type spalte: Python - Liste 142 143 @return: Siehe Beschreibung. 144 @rtype: Zeichenkette 145 """ 146 147 # 148 # -- Werte der Spalte [spalte] zurückgeben ---------------------------------- 149 # 150 erg = [] 151 for i in range( len( liste ) ) : 152 153 erg.append( liste[i][spalte] ) 154 155 156 # 157 # -- Werte der Spalte zurückgeben ------------------------------------------ 158 # 159 return erg
160 161 162 163 # 164 # ------------------------------------------------------------------------------------ 165 # -- Werteteilmenge aus verketteter Lister zurückgeben ------------------ 166 # ------------------------------------------------------------------------------------ 167 #
168 - def gibListeTeilmengeZk( self, liste, spalte = 0 ):
169 """ 170 Es werden die Werte einer 'Spalte' aus der verketteten Liste C{liste} als Zeichenkette zurückgegeben 171 172 @param liste: Es ist die verkettete Liste zu übergeben. 173 @type liste: Python - Liste 174 175 @param spalte: Es ist die Spalte anzugeben. 176 @type spalte: Python - Liste 177 178 @return: Siehe Beschreibung. 179 @rtype: Zeichenkette 180 """ 181 182 # 183 # -- Werte der Spalte zurückgeben ------------------------------------------ 184 # 185 return str( self.gibListeTeilmenge( liste = liste, spalte = spalte ) ).replace('[','').replace(']','')
186 187 188 189 190 # 191 # ------------------------------------------------------------------------------------ 192 # -- Leerzeichenketten besonders kennzeichnen -------------------------- 193 # ------------------------------------------------------------------------------------ 194 #
195 - def gibIdWertNotizen( self, id, zusInfo, wert = None, notizen = None ):
196 """ 197 Identifikationsnummer, Wert und Notizen formatiert ausgeben. 198 199 @param id: Es ist die Identifikationsnummer zu übergeben, die dargestellt werden soll. Sie wird mit führenden Nullen dargestellt. 200 @type id: Ganzzahl 201 202 @param zusInfo: Es ist eine Zusatzinformation zu übergeben, die der C{id} unmittelbar folgt. 203 @type zusInfo: Zeichenkette 204 205 @param wert: Es ist der Wert zu übergeben, der dargestellt werden soll. 206 @type wert: Zeichenkette 207 208 @param notizen: Es isnd die Notizen zu übergeben, die dargestellt werden sollen. 209 @type notizen: Zeichenkette 210 211 @return: Siehe Beschreibung. 212 @rtype: Zeichenkette 213 """ 214 215 # 216 # -- Zeichenkette zurückgeben ------------------------------------------ 217 # 218 zk = str( id ).zfill( 4 ) + zusInfo 219 if( wert is not None ) : zk = zk + '\t' + wert 220 if( notizen is not None ) : zk = zk + '\t|\t' + notizen 221 222 return zk
223 224 225 226 227 # 228 # ------------------------------------------------------------------------------------ 229 # -- Leerzeichenketten besonders kennzeichnen -------------------------- 230 # ------------------------------------------------------------------------------------ 231 #
232 - def gibZk( self, zk, leerZkAlternativ = None ):
233 """ 234 Wenn eine Leerzeichenkette (siehe C{istLeer(...)}) vorliegt, wird der Standardtext aus C{self.LeerZk} zurückgegeben. Liegt keine Leerzeichenkette vor, wird C{zk} zurückgegeben. 235 236 @param zk: Es ist die Zeichenkette zu übergeben, die untersucht werden soll. 237 @type zk: Zeichenkette 238 239 @param leerZkAlternativ: Es ist eine alternative Leerzeichenkette anzugeben 240 @type leerZkAlternativ: Zeichenkette 241 242 @return: Siehe Beschreibung. 243 @rtype: Zeichenkette 244 """ 245 246 # 247 # -- Zeichenkette zurückgeben ------------------------------------------ 248 # 249 if( self.istLeer( zk ) ) : 250 if( leerZkAlternativ is None ) : return self.LeerZk 251 else : return leerZkAlternativ 252 else : return zk
253 254 255 256 # 257 # ------------------------------------------------------------------------------------ 258 # -- Die Zeichenkette ist leer ------------------------------------------ 259 # ------------------------------------------------------------------------------------ 260 #
261 - def istLeer( self, zk ):
262 """ 263 Die Zeichenkette ist leer. Leere Zeichenketten liegen dann vor, wenn C{None} bzw. die Länge der Leichenkette Null ist, nachdem alle C{! ? . - whitespaces} entfernt wurden. 264 265 @param zk: Es ist die Zeichenkette zu übergeben, die geprüft werden soll. 266 @type zk: Zeichenkette 267 268 @return: Es wird C{True} zurückgegeben, wenn die Zeichenkette leer ist. 269 @rtype: Boolean 270 """ 271 272 # 273 # -- Es liegt 'None' vor -------------------------------------------------- 274 # 275 if( zk == None ) : return True 276 277 # 278 # -- Die folgenden Zeichen werden als 'Leer' interpretiert: ------------------ 279 # -- ! ? . - whitespaces ---------- 280 # 281 return ( len( zk.replace( '!', '' ).replace( '?', '' ).replace( '.', '' ).replace( '-', '' ).strip() ) == 0 )
282 283 284 285 286 # 287 # ---------------------------------------------------------------------------------------- 288 # -- Zeichenkettenobjekt anlegen zur direkten Verwendung -------------------------- 289 # ---------------------------------------------------------------------------------------- 290 # 291 zk = Zk() 292