def test_hidden_whitespace_and_defaults_and_syntax(self) -> None: module = r""" Module( body=[ FunctionDef( name=Name( value='foo', ), params=Parameters( params=[ Param( name=Name( value='a', ), annotation=Annotation( annotation=Name( value='str', ), ), star='', ), ], ), body=IndentedBlock( body=[ SimpleStatementLine( body=[ Pass(), Pass(), ], ), SimpleStatementLine( body=[ Return(), ], ), ], ), returns=Annotation( annotation=Name( value='None', ), ), ), ], ) """ # Compare against a known string representation, as unmangled from # python indent. self.assertEqual( dedent(module[1:])[:-1], dump( parse_module( "def foo(a: str) -> None:\n pass ; pass\n return\n"), show_whitespace=False, show_defaults=False, show_syntax=False, ), )
def test_full_tree(self) -> None: module = r""" Module( body=[ FunctionDef( name=Name( value='foo', lpar=[], rpar=[], ), params=Parameters( params=[ Param( name=Name( value='a', lpar=[], rpar=[], ), annotation=Annotation( annotation=Name( value='str', lpar=[], rpar=[], ), whitespace_before_indicator=SimpleWhitespace( value='', ), whitespace_after_indicator=SimpleWhitespace( value=' ', ), ), equal=MaybeSentinel.DEFAULT, default=None, comma=MaybeSentinel.DEFAULT, star='', whitespace_after_star=SimpleWhitespace( value='', ), whitespace_after_param=SimpleWhitespace( value='', ), ), ], star_arg=MaybeSentinel.DEFAULT, kwonly_params=[], star_kwarg=None, posonly_params=[], posonly_ind=MaybeSentinel.DEFAULT, ), body=IndentedBlock( body=[ SimpleStatementLine( body=[ Pass( semicolon=Semicolon( whitespace_before=SimpleWhitespace( value=' ', ), whitespace_after=SimpleWhitespace( value=' ', ), ), ), Pass( semicolon=MaybeSentinel.DEFAULT, ), ], leading_lines=[], trailing_whitespace=TrailingWhitespace( whitespace=SimpleWhitespace( value='', ), comment=None, newline=Newline( value=None, ), ), ), SimpleStatementLine( body=[ Return( value=None, whitespace_after_return=SimpleWhitespace( value='', ), semicolon=MaybeSentinel.DEFAULT, ), ], leading_lines=[], trailing_whitespace=TrailingWhitespace( whitespace=SimpleWhitespace( value='', ), comment=None, newline=Newline( value=None, ), ), ), ], header=TrailingWhitespace( whitespace=SimpleWhitespace( value='', ), comment=None, newline=Newline( value=None, ), ), indent=None, footer=[], ), decorators=[], returns=Annotation( annotation=Name( value='None', lpar=[], rpar=[], ), whitespace_before_indicator=SimpleWhitespace( value=' ', ), whitespace_after_indicator=SimpleWhitespace( value=' ', ), ), asynchronous=None, leading_lines=[], lines_after_decorators=[], whitespace_after_def=SimpleWhitespace( value=' ', ), whitespace_after_name=SimpleWhitespace( value='', ), whitespace_before_params=SimpleWhitespace( value='', ), whitespace_before_colon=SimpleWhitespace( value='', ), ), ], header=[], footer=[], encoding='utf-8', default_indent=' ', default_newline='\n', has_trailing_newline=True, ) """ # Compare against a known string representation, as unmangled from # python indent. self.assertEqual( dedent(module[1:])[:-1], dump( parse_module( "def foo(a: str) -> None:\n pass ; pass\n return\n"), show_whitespace=True, show_defaults=True, show_syntax=True, ), )
def test_hidden_whitespace_and_syntax(self) -> None: module = r""" Module( body=[ FunctionDef( name=Name( value='foo', lpar=[], rpar=[], ), params=Parameters( params=[ Param( name=Name( value='a', lpar=[], rpar=[], ), annotation=Annotation( annotation=Name( value='str', lpar=[], rpar=[], ), ), default=None, star='', ), ], star_arg=MaybeSentinel.DEFAULT, kwonly_params=[], star_kwarg=None, posonly_params=[], posonly_ind=MaybeSentinel.DEFAULT, ), body=IndentedBlock( body=[ SimpleStatementLine( body=[ Pass(), Pass(), ], ), SimpleStatementLine( body=[ Return( value=None, ), ], ), ], ), decorators=[], returns=Annotation( annotation=Name( value='None', lpar=[], rpar=[], ), ), asynchronous=None, ), ], ) """ # Compare against a known string representation, as unmangled from # python indent. self.assertEqual( dedent(module[1:])[:-1], dump( parse_module( "def foo(a: str) -> None:\n pass ; pass\n return\n"), show_whitespace=False, show_defaults=True, show_syntax=False, ), )
import libcst import inspect import hello from libcst.tool import dump code = inspect.getsource(hello) t = libcst.parse_module(code) print(type(t)) print(t) print("----------------------------------------") print(dump(t))