This file is indexed.

/usr/share/pyshared/asrun/contrib/Ligne.py is in code-aster-run 1.13.1-1.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 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
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
#pylint: disable-msg=W0311

class Ligne:
   def __init__(self,structure,nbspace = 0,sep = ''):
      # On ne prend en entree que de liste
      if not type(structure) == list:
         structure = [structure]
      
      self.espace = nbspace
      self.separateur = sep
      self.contenu = []
      for temp in structure:
         # On ne prend dans la liste que les chaines
         if type(temp) != str: raise NameError('Type incompatible')
         self.contenu.append(temp)
   
   # Definir "print lign"
   def __str__(self):
      ligne = ''
      for temp in self.contenu:
         ligne=ligne+temp
      ligne=ligne+''
      return ligne
   
   def __iter__(self):
      for x in self.contenu:
         yield x
   
   # Test le '=='
   # Si une des chaines est egale a '*' : on ne fait pas de comparaison
   def __cmp__(self, b):
      # Les deux doivent etre des lignes
      if not isinstance(self, Ligne) or not isinstance(b, Ligne):
         raise NameError('Type incompatible')
      
      # Elles doivent etre de meme taille
      # Mais c'est peut etre un peu violent de planter pour ca...
      if len(self) != len(b):
         raise NameError('Taille non concordante')
      
      tailleMax=0
      for num in range(0,len(self)):
         # On prend en compte le cas '*'
         aCmp=self[num]
         tACmp=len(aCmp)
         bCmp=b[num]
         tBCmp=len(bCmp)
         
         if (aCmp=='*') or (bCmp=='*'):
            continue
         
         # Si on a une '*' a la fin d'une des chaines, on coupe
         if aCmp[tACmp-1:tACmp] == '*':
            aCmp=aCmp[0:tACmp-1]
            bCmp=bCmp[0:tACmp-1]
         if bCmp[tBCmp-1:tBCmp] == '*':
            bCmp=bCmp[0:tBCmp-1]
            aCmp=aCmp[0:tBCmp-1]
         
         if aCmp > bCmp: return 1
         if aCmp < bCmp: return -1
      return 0
   
   def __add__(self,b):
      if not b.__class__ == Ligne: raise NameError('Type incompatible')
      ajout=[]
      for cont in self:
         ajout.append(cont)
      for cont in b:
         ajout.append(cont)
      return Ligne(ajout)
   
   # __getitem__ prend en entree un entier
   def __getitem__(self,numero):
      if not type(numero) == int: raise NameError('Type incompatible')
      else:
         if (numero >= len(self.contenu)) or (numero < 0):
            raise NameError('Depassement de tableau')
         else:
            return self.contenu[numero]

   def __setitem__(self,numero,item):
      if not type(numero) == int: raise NameError('Type incompatible')
      if not type(item) == str: raise NameError('Type incompatible')
      
      if (numero >= len(self.contenu)) or (numero < 0):
         raise NameError('Depassement de tableau')
      else:
         self.contenu[numero] = item
   
   def __len__(self):
      return len(self.contenu)
   
   def getNombreEspaces(self):
      return self.espace
   
   def setNombreEspaces(self,nombre):
      if not type(nombre) == int: raise NameError('Type incompatible')
      self.espace = nombre

   def getSeparateur(self):
      return self.separateur

   def setSeparateur(self,sep):
      if not type(sep) == str: raise NameError('Type incompatible')
      self.separateur = sep
   
   def afficher(self):
      ligne = ''
      for temp in self.contenu:
         ligne=ligne+temp+' '
      print ligne
   
   def ajouter(self,numero,texte):
      if not type(texte) == str: raise NameError('Type incompatible')
      if not type(numero) == int: raise NameError('Type incompatible')
      
      self.contenu.insert(numero,texte)
   
   def modifierContenu(self,contenu):
      if not type(contenu) == list:
         contenu = [contenu]
      
      self.contenu = []
      for temp in contenu:
         # On ne prend dans la liste que les chaines
         if type(temp) != str: raise NameError('Type incompatible')
         self.contenu.append(temp)