import typing
import ast


def genConstructAstObj(varName: str, className: str) -> typing.Tuple[ast.Name, ast.Name, ast.Assign]:
	"""
	Returns a tuple of 3 elements
	first is `className` AST node
	second is `varName` AST node
	third is `varName = className()`"""
	clsNameAST = ast.Name(id=className, ctx=ast.Load())
	return (
		clsNameAST,
		ast.Name(id=varName, ctx=ast.Load()),
		ast.Assign(
			targets=[ast.Name(id=varName, ctx=ast.Store())],
			value=ast.Call(func=clsNameAST, args=[], keywords=[]),
			type_comment=None,
		),
	)