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, 2011  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://vf.michaelbellair.de/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  # --    Allgemeine Funktionen   ---------------------------------------------------------- 
 67  # --                            ---------------------------------------------------------- 
 68  # ---------------------------------------------------------------------------------------- 
 69  # ---------------------------------------------------------------------------------------- 
 70  # 
71 -class Allg:
72 """ 73 Klasse, für allgemeine Funktionen. 74 """ 75 76 77 # 78 # ------------------------------------------------------------------------------------ 79 # -- Listen durchsuchen -------------------------------------------------- 80 # ------------------------------------------------------------------------------------ 81 #
82 - def hatWert__List( self, liste, pos, wert ):
83 """ 84 Die Liste C{liste} enthält in der Spalte C{pos} den Wert C{wert}. 85 86 @param liste: Es ist die zu untersuchende Liste anzugeben 87 @type liste: Python - list 88 89 @param pos: Es ist die Position in der Liste anzugeben 90 @type pos: Ganzzahl 91 92 @param wert: Es ist der Wert anzugeben 93 @type wert: beliebig 94 95 @return: Wenn der Wert enthalten ist, wird C{True} zurückgegebenm sonst C{False} 96 @rtype: Zeichenkette 97 """ 98 99 # 100 # -- Liste ist leer ---------------------------------------------------------- 101 # 102 if( liste is None ) : return False 103 if( len( liste ) == 0 ) : return False 104 105 106 107 # 108 # -- Liste durchlaufen -------------------------------------------------- 109 # 110 for i in liste : 111 112 if( i[pos] == wert ) : return True 113 114 115 116 # 117 # -- Wert nicht gefunden -------------------------------------------------- 118 # 119 return False
120 121 122 123 124 125 # 126 # ---------------------------------------------------------------------------------------- 127 # -- Objekt anlegen zur direkten Verwendung ------------------------------------------ 128 # ---------------------------------------------------------------------------------------- 129 # 130 allg = Allg() 131 132 133 134 # 135 # 136 # 137 # ---------------------------------------------------------------------------------------- 138 # ---------------------------------------------------------------------------------------- 139 # -- -------------------------------------------------- 140 # -- Klasse für Zeichenketten -------------------------------------------------- 141 # -- -------------------------------------------------- 142 # ---------------------------------------------------------------------------------------- 143 # ---------------------------------------------------------------------------------------- 144 #
145 -class Zk:
146 """ 147 Klasse, die Funktionen zur Zeichenkettenbehandlung bereitstellt. 148 """ 149 150 # 151 # ------------------------------------------------------------------------------------ 152 # -- Initialisierungen -------------------------------------------------- 153 # ------------------------------------------------------------------------------------ 154 #
155 - def __init__( self ):
156 157 self.LeerZk = '-- bleibt leer --' 158 """ 159 Leerzeichenketten erhalten den Standardtext C{-- bleibt leer --}. 160 161 @cvar: Leerzeichenkette 162 @type: Zeichenkette 163 """
164 165 166 167 168 # 169 # ------------------------------------------------------------------------------------ 170 # -- Datum als yyyy-mm-dd zurückgeben ---------------------------------- 171 # ------------------------------------------------------------------------------------ 172 #
173 - def gibDatum( self, zkDatum ):
174 """ 175 Die im Format 'tt.mm.jjjj' vorliegende Datum-Zeichenkette wird im Format 'yyyy-mm-dd' zurückgegeben. 176 177 @param zkDatum: Es ist die Datum-Zeichenkette zu übergeben, die umgewnadelt werden soll. 178 @type zkDatum: Zeichenkette 179 180 @return: Siehe Beschreibung. 181 @rtype: Zeichenkette 182 """ 183 184 # 185 # -- Zeichenkette zurückgeben ------------------------------------------ 186 # 187 return zkDatum[6:10] + '-' + zkDatum[3:5] + '-' + zkDatum[0:2]
188 189 190 191 # 192 # ------------------------------------------------------------------------------------ 193 # -- Werteteilmenge aus verketteter Lister zurückgeben ------------------ 194 # ------------------------------------------------------------------------------------ 195 #
196 - def gibListeTeilmenge( self, liste, spalte = 0 ):
197 """ 198 Es werden die Werte einer 'Spalte' aus der verketteten Liste C{liste} zurückgegeben 199 200 @param liste: Es ist die verkettete Liste zu übergeben. 201 @type liste: Python - Liste 202 203 @param spalte: Es ist die Spalte anzugeben. 204 @type spalte: Python - Liste 205 206 @return: Siehe Beschreibung. 207 @rtype: Python - Liste 208 """ 209 210 # 211 # -- Werte der Spalte [spalte] zurückgeben ---------------------------------- 212 # 213 erg = [] 214 for i in range( len( liste ) ) : 215 216 erg.append( liste[i][spalte] ) 217 218 219 # 220 # -- Werte der Spalte zurückgeben ------------------------------------------ 221 # 222 return erg
223 224 225 226 227 # 228 # ------------------------------------------------------------------------------------ 229 # -- Leerzeichenketten besonders kennzeichnen -------------------------- 230 # ------------------------------------------------------------------------------------ 231 #
232 - def gibIdWertNotizen( self, id, zusInfo, wert = None, notizen = None ):
233 """ 234 Identifikationsnummer, Wert und Notizen formatiert ausgeben. 235 236 @param id: Es ist die Identifikationsnummer zu übergeben, die dargestellt werden soll. Sie wird mit führenden Nullen dargestellt. 237 @type id: Ganzzahl 238 239 @param zusInfo: Es ist eine Zusatzinformation zu übergeben, die der C{id} unmittelbar folgt. 240 @type zusInfo: Zeichenkette 241 242 @param wert: Es ist der Wert zu übergeben, der dargestellt werden soll. 243 @type wert: Zeichenkette 244 245 @param notizen: Es isnd die Notizen zu übergeben, die dargestellt werden sollen. 246 @type notizen: Zeichenkette 247 248 @return: Siehe Beschreibung. 249 @rtype: Zeichenkette 250 """ 251 252 # 253 # -- Zeichenkette zurückgeben ------------------------------------------ 254 # 255 zk = str( id ).zfill( 4 ) + zusInfo 256 if( wert is not None ) : zk = zk + '\t' + wert 257 if( notizen is not None ) : zk = zk + '\n[ ' + notizen + ' ]' 258 259 return zk
260 261 262 263 264 # 265 # ------------------------------------------------------------------------------------ 266 # -- Leerzeichenketten besonders kennzeichnen -------------------------- 267 # ------------------------------------------------------------------------------------ 268 #
269 - def gibZk( self, zk, leerZkAlternativ = None ):
270 """ 271 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. 272 UNICODE Zeichenketten werden in ASCII Zeichenketten gewandelt. 273 274 @param zk: Es ist die Zeichenkette zu übergeben, die untersucht werden soll. 275 @type zk: Zeichenkette 276 277 @param leerZkAlternativ: Es ist eine alternative Leerzeichenkette anzugeben 278 @type leerZkAlternativ: Zeichenkette 279 280 @return: Siehe Beschreibung. 281 @rtype: Zeichenkette 282 """ 283 284 # 285 # -- Leerzeichenkette zurückgeben ------------------------------------------ 286 # 287 if( self.istLeer( zk ) ) : 288 289 if( leerZkAlternativ is None ) : 290 291 return self.LeerZk 292 293 else : 294 295 return leerZkAlternativ 296 297 # 298 # -- UNICODE -> ASCII -------------------------------------------------- 299 # 300 else : 301 302 try : 303 304 return zk.encode( 'utf-8' ) 305 306 except UnicodeError: 307 308 return str( zk )
309 310 311 312 # 313 # ------------------------------------------------------------------------------------ 314 # -- Die Zeichenkette ist leer ------------------------------------------ 315 # ------------------------------------------------------------------------------------ 316 #
317 - def istLeer( self, zk ):
318 """ 319 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. 320 321 @param zk: Es ist die Zeichenkette zu übergeben, die geprüft werden soll. 322 @type zk: Zeichenkette 323 324 @return: Es wird C{True} zurückgegeben, wenn die Zeichenkette leer ist. 325 @rtype: Boolean 326 """ 327 328 # 329 # -- Es liegt 'None' vor -------------------------------------------------- 330 # 331 if( zk == None ) : return True 332 333 334 335 # 336 # -- Die Leerzeichenkette liegt vor ------------------------------------------ 337 # 338 if( zk == self.LeerZk ) : return True 339 340 341 342 # 343 # -- Die folgenden Zeichen werden als 'Leer' interpretiert: ------------------ 344 # 345 return ( len( zk.strip() ) == 0 )
346 347 348 349 350 # 351 # ---------------------------------------------------------------------------------------- 352 # -- Zeichenkettenobjekt anlegen zur direkten Verwendung -------------------------- 353 # ---------------------------------------------------------------------------------------- 354 # 355 zk = Zk() 356