This file is indexed.

/usr/lib/python2.7/dist-packages/woo/_monkey/aliases.py is in python-woo 1.0+dfsg1-2.

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
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
'''Define various convenience attributes, such as ``Node.dem`` for accessing DEM data of a node (equivalent to ``node->getData<DemData>()`` in c++).'''

from woo import core
from woo.core import Master
import sys, warnings
core.Field.nod=core.Field.nodes

## proxy for attribute-like access to Scene.labels
## http://stackoverflow.com/questions/16061041/proxy-class-for-accessing-other-class-items-as-attributes-getitem-infinite
class LabelMapperProxy(object):
	'Proxy for attribute-like access to :obj:`woo.core.LabelMapper`.'
	def __init__(self,mapper,prefix=''): self.__dict__['_mapper'],self.__dict__['_prefix']=mapper,prefix
	def __getattr__(self,key):
		# some mapper method was requested
		if key=='__dir__': return lambda: self._mapper.__dir__(self._prefix)
		if key.startswith('_'):
			if self._prefix: raise AttributeError('Attributes/methods starting with _ must be obtained from root LabelMapper or proxy (this instance has prefix "'+self._prefix+'")')
			else: return getattr(self._mapper,key)
		# submodule requested, return proxy with new prefix
		if self._mapper._whereIs(self._prefix+key)==core.LabelMapper.inMod:
			return LabelMapperProxy(self._mapper,prefix=self._prefix+key+'.')
		# return object
		return self._mapper[self._prefix+key]
	def __setattr__(self,key,val): self._mapper[self._prefix+key]=val
	def __delattr__(self,key): del self._mapper[self._prefix+key]
	# this is necessary for py3k
	def __dir__(self): return self._mapper.__dir__(prefix=self._prefix)
	# def __len__(self): return self._mapper.__len__(prefix=self._prefix)
	# def _newModule(self,mod): return self._mapper._newModule(self._prefix+mod)
def Scene_lab(scene):
	return LabelMapperProxy(scene.labels,prefix='')
core.Scene.lab=property(Scene_lab)





## deprecated classes
# if old class name is used, the new object is constructed and a warning is issued about old name being used
# keep chronologically ordered, oldest first; script/rename-class.py appends at the end
_deprecated={
	('woo.dem','FlexFacet'):('woo.fem','Membrane'),
	('woo.gl','Gl1_FlexFacet'):('woo.gl','Gl1_Membrane'),
	('woo.dem','In2_FlexFacet_ElastMat'):('woo.fem','In2_Membrane_ElastMat'),
	#
	('woo.dem','ParticleFactory'):('woo.dem','ParticleInlet'),
	('woo.dem','RandomFactory'):('woo.dem','RandomInlet'),
	('woo.dem','BoxFactory'):('woo.dem','BoxInlet'),
	('woo.dem','CylinderFactory'):('woo.dem','CylinderInlet'),
	('woo.dem','BoxFactory2d'):('woo.dem','BoxInlet2d'),
	('woo.dem','ConveyorFactory'):('woo.dem','ConveyorInlet'),
	('woo.dem','BoxDeleter'):('woo.dem','BoxOutlet'),
	#
	('woo.gl','TraceGlRep'):('woo.dem','TraceGlRep'),
	('woo.gl','ScalarRange'):('woo.core','ScalarRange'),
	('woo.gl','NodeGlRep'):('woo.core','NodeVisRep'),
	#
	### END_RENAMED_CLASSES_LIST ### (do not delete this line; scripts/rename-class.py uses it
}

def injectDeprecated():
	''' Inject decprecated classes into woo modules as needed.
	'''
	proxyNamespace={}
	class warnWrap:
		def __init__(self,_old,_new):
			self.old,self.new=_old,_new
		def __call__(self,*args,**kw):
			warnings.warn("%s.%s was renamed to %s.%s; update your code!"%(self.old[0],self.old[1],self.new.__module__,self.new.__name__),DeprecationWarning,stacklevel=2);
			return self.new(*args,**kw)
	# deprecated names
	for deprec,curr in _deprecated.items():
		# try to import both modules
		try: mDep,mCurr=sys.modules[deprec[0]],sys.modules[curr[0]]
		except KeyError: continue
		# new name not found?!
		try: setattr(mDep,deprec[1],warnWrap(deprec,getattr(mCurr,curr[1])))
		except AttributeError: pass

injectDeprecated()

try:
	from woo import dem
	dem.DemField.par=dem.DemField.particles
	dem.DemField.con=dem.DemField.contacts
	dem.Particle.mat=dem.Particle.material
	core.Scene.dem=property(lambda s: dem.DemField.sceneGetField(s))
	core.Scene.hasDem=property(lambda s: dem.DemField.sceneHasField(s))
	# DemData defines those methods, which are used for transparent access to respective data field
	core.Node.dem=property(dem.DemData._getDataOnNode,dem.DemData._setDataOnNode)

	# those are deprecated
	def deprecWrapper(self,_oldName,_newName,_newFunc,*args,**kw):
		warnings.warn('The %s function is deprecated, use %s instead.'%(_oldName,_newName),DeprecationWarning,stacklevel=3)
		return _newFunc(self,*args,**kw)

	dem.ParticleContainer.append=lambda self, *args,**kw: deprecWrapper(self,'dem.ParticleContainer.append','dem.ParticleContainer.add',dem.ParticleContainer.add,*args,**kw)
	dem.ParticleContainer.appendClumped=lambda self, *args,**kw: deprecWrapper(self,'dem.ParticleContainer.appendClumped','dem.ParticleContainer.addClumped',dem.ParticleContainer.addClumped,*args,**kw)

	# nicer names
	import woo.utils
	dem.DemField.minimalEngines=staticmethod(woo.utils.defaultEngines)

	dem.Sphere.make=staticmethod(woo.utils.sphere)
	dem.Ellipsoid.make=staticmethod(woo.utils.ellipsoid)
	dem.Capsule.make=staticmethod(woo.utils.capsule)
	dem.Wall.make=staticmethod(woo.utils.wall)
	dem.Wall.makeBox=staticmethod(woo.utils.wallBox)
	dem.InfCylinder.make=staticmethod(woo.utils.infCylinder)
	dem.Facet.make=staticmethod(woo.utils.facet)
	dem.Rod.make=staticmethod(woo.utils.rod)
	dem.Truss.make=staticmethod(woo.utils.truss)
except ImportError:
	core.Scene.hasDem=lambda o: False

try:
	from woo import fem
	fem.Membrane.make=staticmethod(woo.utils.membrane)
	fem.Tetra.make=staticmethod(woo.utils.tetra)
	fem.Tet4.make=staticmethod(woo.utils.tet4)
except ImportError:
	pass

try:
	from woo import sparc
	core.Scene.sparc=property(lambda s: sparc.SparcField.sceneGetField(s))
	core.Scene.hasSparc=property(lambda s: sparc.SparcField.sceneHasField(s))
	core.Node.sparc=property(sparc.SparcData._getDataOnNode,sparc.SparcData._setDataOnNode)
except ImportError:
	core.Scene.hasSparc=lambda o: False


try:
	import woo.cld
	core.Scene.clDem=property(lambda s: cld.CLDemField.sceneGetField(s))
	core.Scene.hasClDem=property(lambda s: woo.clDem.CLDemField.sceneHasField(s))
	core.Node.clDem=property(woo.cld.CLDemData._getDataOnNode,woo.cld.CLDemData._setDataOnNode)
except ImportError:
	core.Scene.hasClDem=lambda o: False


try:
	from woo import gl
	core.Node.gl=property(gl.GlData._getDataOnNode,gl.GlData._setDataOnNode)
except ImportError: pass

#try:
#	from woo import ancf
#	core.Node.ancf=property(ancf.AncfData._getDataOnNode,ancf.AncfData._setDataOnNode)
#except ImportError: pass