coriolis/oroshi/python/__init__.py

37 lines
1.0 KiB
Python

from Hurricane import DbU
from Hurricane import DataBase
import oroshi.dtr
rules = None
class Flag ( object ):
StandardRules = 0x0001
MIMRules = 0x0002
AllRules = StandardRules|MIMRules
def getRules ():
global rules
if not rules:
rules = oroshi.dtr.Rules( DataBase.getDB().getTechnology() )
return rules
def toNano ( value ): return DbU.toPhysical( value, DbU.UnitPowerNano )
def toMicro ( value ): return DbU.toPhysical( value, DbU.UnitPowerMicro )
def toUnity ( value ): return DbU.toPhysical( value, DbU.UnitPowerUnity )
def adjustOnGrid ( unit, mode='upper' ):
if mode == 'upper': return DbU.getOnPhysicalGrid(unit, DbU.SnapModeSuperior)
elif mode == 'lower': return DbU.getOnPhysicalGrid(unit, DbU.SnapModeInferior)
elif mode == 'near' : return DbU.getOnPhysicalGrid(unit, DbU.SnapModeNearest )
else:
print( '[ERROR] oroshi.adjustOnGrid(): "{}" is not a valid mode.'.format(mode) )
print( ' ("upper", "lower" or "near")' )
return 0