r...@zedat.fu-berlin.de (Stefan Ram) writes:

> Hope Rouselle <hrouse...@jevedi.com> writes:
>>Have you guys ever measured something like that in a casual or serious
>
> import ast
> import pathlib
> rootname=r'''<ABSOLUTE PATH TO A DIRECTORY WITH SOURCE CODE>'''
> rootpath=pathlib.Path(rootname)
> rootiterable=rootpath.glob('**/*.py')
> first = True
> WhileCount = 0
> ForCount = 0
> for filepath in rootiterable:
>     try:
>         with filepath.open(encoding="utf-8") as file:
>             source=file.read()
>             parse=ast.parse(source, filename=str(file))
>             for entry in ast.walk(parse):
>                 if isinstance(entry, ast.While):
>                     WhileCount+=1
>                     print( f"{ForCount=}, {WhileCount=}" )
>                 elif isinstance(entry, ast.For):
>                     ForCount+=1
>                     print( f"{ForCount=}, {WhileCount=}" )
>     except SyntaxError as inst:
>        if first:
>            print( f"{sys.exc_info()[ 0 ] =}" )
>            print( f"{type( inst ) =}" )
>            print( f"{inst.args =}" )
>            print( f"{inst =}" )
>        print( f"skipping {filepath}." )
>     first=False

You are so wonderful!  Thanks quite a lot.  Here's what I got:

  ForCount=18703, WhileCount=2505

I have pretty much just the standard libraries and a couple more ---
sympy and some xlsxwriter library.
-- 
https://mail.python.org/mailman/listinfo/python-list

Reply via email to