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://www.michaelbellair.de/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 # ------------------------------------------------------------------------------------ 108 # -- Datum als yyyy-mm-dd zurückgeben ---------------------------------- 109 # ------------------------------------------------------------------------------------ 110 #
111 - def gibDatum( self, zkDatum ):
112 """ 113 Die im Format 'tt.mm.jjjj' vorliegende Datum-Zeichenkette wird im Format 'yyyy-mm-dd' zurückgegeben. 114 115 @param zkDatum: Es ist die Datum-Zeichenkette zu übergeben, die umgewnadelt werden soll. 116 @type zkDatum: Zeichenkette 117 118 @return: Siehe Beschreibung. 119 @rtype: Zeichenkette 120 """ 121 122 # 123 # -- Zeichenkette zurückgeben ------------------------------------------ 124 # 125 return zkDatum[6:10] + '-' + zkDatum[3:5] + '-' + zkDatum[0:2]
126 127 128 129 130 # 131 # ------------------------------------------------------------------------------------ 132 # -- Datum als yyyy-mm-dd zurückgeben ---------------------------------- 133 # ------------------------------------------------------------------------------------ 134 #
135 - def gibDatumNULL( self ):
136 """ 137 Im Format 'tt.mm.jjjj' wird das NULL-Datum C{01.01.1900} zurückgegeben. 138 139 @return: C{01.01.1900} 140 @rtype: Zeichenkette 141 """ 142 143 # 144 # -- Zeichenkette zurückgeben ------------------------------------------ 145 # 146 return '01.01.1900'
147 148 149 150 # 151 # ------------------------------------------------------------------------------------ 152 # -- Werteteilmenge aus verketteter Lister zurückgeben ------------------ 153 # ------------------------------------------------------------------------------------ 154 #
155 - def gibListeTeilmenge( self, liste, spalte = 0 ):
156 """ 157 Es werden die Werte einer 'Spalte' aus der verketteten Liste C{liste} zurückgegeben 158 159 @param liste: Es ist die verkettete Liste zu übergeben. 160 @type liste: Python - Liste 161 162 @param spalte: Es ist die Spalte anzugeben. 163 @type spalte: Python - Liste 164 165 @return: Siehe Beschreibung. 166 @rtype: Zeichenkette 167 """ 168 169 # 170 # -- Werte der Spalte [spalte] zurückgeben ---------------------------------- 171 # 172 erg = [] 173 for i in range( len( liste ) ) : 174 175 erg.append( liste[i][spalte] ) 176 177 178 # 179 # -- Werte der Spalte zurückgeben ------------------------------------------ 180 # 181 return erg
182 183 184 185 # 186 # ------------------------------------------------------------------------------------ 187 # -- Werteteilmenge aus verketteter Lister zurückgeben ------------------ 188 # ------------------------------------------------------------------------------------ 189 #
190 - def gibListeTeilmengeZk( self, liste, spalte = 0 ):
191 """ 192 Es werden die Werte einer 'Spalte' aus der verketteten Liste C{liste} als Zeichenkette zurückgegeben 193 194 @param liste: Es ist die verkettete Liste zu übergeben. 195 @type liste: Python - Liste 196 197 @param spalte: Es ist die Spalte anzugeben. 198 @type spalte: Python - Liste 199 200 @return: Siehe Beschreibung. 201 @rtype: Zeichenkette 202 """ 203 204 # 205 # -- Werte der Spalte zurückgeben ------------------------------------------ 206 # 207 return str( self.gibListeTeilmenge( liste = liste, spalte = spalte ) ).replace('[','').replace(']','')
208 209 210 211 212 # 213 # ------------------------------------------------------------------------------------ 214 # -- Leerzeichenketten besonders kennzeichnen -------------------------- 215 # ------------------------------------------------------------------------------------ 216 #
217 - def gibIdWertNotizen( self, id, zusInfo, wert = None, notizen = None ):
218 """ 219 Identifikationsnummer, Wert und Notizen formatiert ausgeben. 220 221 @param id: Es ist die Identifikationsnummer zu übergeben, die dargestellt werden soll. Sie wird mit führenden Nullen dargestellt. 222 @type id: Ganzzahl 223 224 @param zusInfo: Es ist eine Zusatzinformation zu übergeben, die der C{id} unmittelbar folgt. 225 @type zusInfo: Zeichenkette 226 227 @param wert: Es ist der Wert zu übergeben, der dargestellt werden soll. 228 @type wert: Zeichenkette 229 230 @param notizen: Es isnd die Notizen zu übergeben, die dargestellt werden sollen. 231 @type notizen: Zeichenkette 232 233 @return: Siehe Beschreibung. 234 @rtype: Zeichenkette 235 """ 236 237 # 238 # -- Zeichenkette zurückgeben ------------------------------------------ 239 # 240 zk = str( id ).zfill( 4 ) + zusInfo 241 if( wert is not None ) : zk = zk + '\t' + wert 242 if( notizen is not None ) : zk = zk + '\n[ ' + notizen + ' ]' 243 244 return zk
245 246 247 248 249 # 250 # ------------------------------------------------------------------------------------ 251 # -- Leerzeichenketten besonders kennzeichnen -------------------------- 252 # ------------------------------------------------------------------------------------ 253 #
254 - def gibZk( self, zk, leerZkAlternativ = None ):
255 """ 256 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. 257 258 @param zk: Es ist die Zeichenkette zu übergeben, die untersucht werden soll. 259 @type zk: Zeichenkette 260 261 @param leerZkAlternativ: Es ist eine alternative Leerzeichenkette anzugeben 262 @type leerZkAlternativ: Zeichenkette 263 264 @return: Siehe Beschreibung. 265 @rtype: Zeichenkette 266 """ 267 268 # 269 # -- Zeichenkette zurückgeben ------------------------------------------ 270 # 271 if( self.istLeer( zk ) ) : 272 if( leerZkAlternativ is None ) : return self.LeerZk 273 else : return leerZkAlternativ 274 else : return zk
275 276 277 278 # 279 # ------------------------------------------------------------------------------------ 280 # -- Die Zeichenkette ist leer ------------------------------------------ 281 # ------------------------------------------------------------------------------------ 282 #
283 - def istLeer( self, zk ):
284 """ 285 Die Zeichenkette ist leer. Leere Zeichenketten liegen dann vor, wenn C{None} bzw. die Länge der Zeichenkette Null ist, nachdem alle C{whitespaces} entfernt wurden. 286 287 @param zk: Es ist die Zeichenkette zu übergeben, die geprüft werden soll. 288 @type zk: Zeichenkette 289 290 @return: Es wird C{True} zurückgegeben, wenn die Zeichenkette leer ist. 291 @rtype: Boolean 292 """ 293 294 # 295 # -- Es liegt 'None' vor -------------------------------------------------- 296 # 297 if( zk == None ) : return True 298 299 300 301 # 302 # -- Die Leerzeichenkette liegt vor ------------------------------------------ 303 # 304 if( zk == self.LeerZk ) : return True 305 306 307 308 # 309 # -- Die folgenden Zeichen werden als 'Leer' interpretiert: ------------------ 310 # 311 return ( len( zk.strip() ) == 0 )
312 313 314 315 316 # 317 # ---------------------------------------------------------------------------------------- 318 # -- Zeichenkettenobjekt anlegen zur direkten Verwendung -------------------------- 319 # ---------------------------------------------------------------------------------------- 320 # 321 zk = Zk() 322