本文整理汇总了Python中ufora.native.FORA.prependMemberToCreateObjectExpression方法的典型用法代码示例。如果您正苦于以下问题:Python FORA.prependMemberToCreateObjectExpression方法的具体用法?Python FORA.prependMemberToCreateObjectExpression怎么用?Python FORA.prependMemberToCreateObjectExpression使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ufora.native.FORA
的用法示例。
在下文中一共展示了FORA.prependMemberToCreateObjectExpression方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: _getCreateObjectExpressionAndMemberToObjectIdMap
# 需要导入模块: from ufora.native import FORA [as 别名]
# 或者: from ufora.native.FORA import prependMemberToCreateObjectExpression [as 别名]
def _getCreateObjectExpressionAndMemberToObjectIdMap(self,
objectIdToObjectDefinition,
stronglyConnectedComponent):
naiveConvertedFunctions = dict()
for objectId in stronglyConnectedComponent:
objectDefinition = objectIdToObjectDefinition[objectId]
if isinstance(objectDefinition, TypeDescription.ClassInstanceDescription):
classDesc = objectIdToObjectDefinition[objectDefinition.classId]
sourceFile = objectIdToObjectDefinition[classDesc.sourceFileId]
lineNumber = classDesc.lineNumber
raise pyfora.PythonToForaConversionError(
"Classes and instances cannot be mutually recursive",
trace=[{'path': sourceFile.path, 'line': lineNumber}]
)
assert isinstance(
objectDefinition,
(TypeDescription.FunctionDefinition,
TypeDescription.ClassDefinition)), type(objectDefinition)
naiveConvertedFunctions[objectId] = \
self._convertPyClassOrFunctionDefinitionToForaFunctionExpression(
objectDefinition,
objectIdToObjectDefinition
)
# at this point, naiveConvertedFunctions is a map: objectId -> functionExpr
# renamedObjectMapping is a map: objectId -> varname,
# where varname is (essentially) just the hash of the corresponding functionExpr
renamedObjectMapping = self._computeRenamedObjectMapping(
naiveConvertedFunctions
)
# replace the known free var chains in the strongly connected component
# with the varnames coming from the renamedObjectMapping
convertedFunctions = self._replaceKnownMemberChainsWithRenamedVariables(
naiveConvertedFunctions,
renamedObjectMapping,
objectIdToObjectDefinition,
stronglyConnectedComponent
)
createObjectExpression = empytObjectExpression
for objectId, varname in sorted(renamedObjectMapping.items(), key=lambda p: p[1]):
createObjectExpression = ForaNative.prependMemberToCreateObjectExpression(
createObjectExpression,
varname,
convertedFunctions[objectId]
)
return createObjectExpression, renamedObjectMapping
示例2: getCreateObjectExpressionAndMemberToObjectIdMap
# 需要导入模块: from ufora.native import FORA [as 别名]
# 或者: from ufora.native.FORA import prependMemberToCreateObjectExpression [as 别名]
def getCreateObjectExpressionAndMemberToObjectIdMap(self,
objectIdToObjectDefinition,
stronglyConnectedComponent):
naiveConvertedFunctions = dict()
for objectId in stronglyConnectedComponent:
objectDefinition = objectIdToObjectDefinition[objectId]
if isinstance(objectDefinition, TypeDescription.ClassInstanceDescription):
classDesc = objectIdToObjectDefinition[objectDefinition.classId]
sourceFile = objectIdToObjectDefinition[classDesc.sourceFileId]
lineNumber = classDesc.lineNumber
raise pyfora.PythonToForaConversionError(
"Classes and instances cannot be mutually recursive",
trace=[{'path': sourceFile.path, 'line': lineNumber}]
)
assert isinstance(
objectDefinition,
(TypeDescription.FunctionDefinition,
TypeDescription.ClassDefinition)), type(objectDefinition)
naiveConvertedFunctions[objectId] = \
self.convertPyClassOrFunctionDefinitionToForaFunctionExpression(
objectDefinition,
objectIdToObjectDefinition
)
renamedObjectMapping = self.computeRenamedObjectMapping(
naiveConvertedFunctions
)
convertedFunctions = self.transformFunctions(
naiveConvertedFunctions,
renamedObjectMapping,
objectIdToObjectDefinition,
stronglyConnectedComponent
)
createObjectExpression = empytObjectExpression
for objectId, functionExpression in convertedFunctions.iteritems():
createObjectExpression = ForaNative.prependMemberToCreateObjectExpression(
createObjectExpression,
renamedObjectMapping[objectId],
functionExpression
)
return createObjectExpression, renamedObjectMapping