File: pymailgui-products/unzipped/PyMailGui-PP4E/media/__sloc__.py
#!/usr/bin/python3 """ simple source-code line count script, used for dev metrics only [4.0] """ import os, glob, sys srcenc = 'utf8' # allow for Unicode source files def collect(paths): manifest = [] for path in paths: manifest += glob.glob(path.replace('/', os.sep)) return manifest # the basics sources = ('*.py', '*.pyw', # top-level launchers here 'MailConfigs/*.py', # per-account configs here 'PyMailGui-PP4E/*.py', # PyMailGUI's own files ) # imported tools from PP4E, many updated much for 4.0 sources += ( 'PyMailGui-PP4E/PP4E/Internet/Email/mailtools/mailFetcher.py', 'PyMailGui-PP4E/PP4E/Internet/Email/mailtools/mailSender.py', 'PyMailGui-PP4E/PP4E/Internet/Email/mailtools/mailParser.py', 'PyMailGui-PP4E/PP4E/Gui/Tools/threadtools.py', 'PyMailGui-PP4E/PP4E/Gui/Tools/windows.py', 'PyMailGui-PP4E/PP4E/Gui/Tools/guimaker.py', 'PyMailGui-PP4E/PP4E/Gui/TextEditor/textEditor.py', 'PyMailGui-PP4E/PP4E/Gui/TextEditor/textConfig.py', 'PyMailGui-PP4E/PP4E/Gui/ShellGui/formrows.py', 'PyMailGui-PP4E/PP4E/Gui/Tour/scrolledlist.py', 'PyMailGui-PP4E/PP4E/Tools/find.py', 'PyMailGui-PP4E/PP4E/launchmodes.py' ) tally = count = 0 for fname in collect(sources): # used files in this tree if not fname.startswith('__'): # skip self and extras in '.' fobj = open(fname, encoding=srcenc) # else do os.path.basename() lcnt = len(fobj.readlines()) tally += lcnt count += 1 print(fname, '=>', lcnt) print('Total sloc in %d files: %s' % (count, tally)) if sys.platform.startswith('win'): input('Press Enter') # if clicked on Windows """ ================================================================================ example output (current counts/manifest): Launch_PyMailGUI.py => 197 Launch_PyEdit.pyw => 42 MailConfigs/mailconfig_defaultbase.py => 15 MailConfigs/mailconfig_Gmail.py => 104 MailConfigs/mailconfig_LearningPython.py => 84 MailConfigs/mailconfig_LearningPython_ssl.py => 34 MailConfigs/mailconfig_Lutzmv.py => 85 MailConfigs/mailconfig_Lutzmv_ssl.py => 37 MailConfigs/mailconfig_Lutzmv_ssl_mail.py => 32 MailConfigs/mailconfig_Lutzmv_ssl_spam.py => 33 MailConfigs/mailconfig_RmiDotNet.py => 83 MailConfigs/mailconfig_RmiDotNet_ssl.py => 27 MailConfigs/mailconfig_testerrors.py => 30 PyMailGui-PP4E/__init__.py => 12 PyMailGui-PP4E/fixTkBMP.py => 77 PyMailGui-PP4E/html2text.py => 93 PyMailGui-PP4E/ListWindows.py => 1130 PyMailGui-PP4E/mailconfig.py => 469 PyMailGui-PP4E/messagecache.py => 181 PyMailGui-PP4E/popuputil.py => 121 PyMailGui-PP4E/py33patch.py => 179 PyMailGui-PP4E/PyMailGui.py => 202 PyMailGui-PP4E/PyMailGuiHelp.py => 774 PyMailGui-PP4E/SharedNames.py => 77 PyMailGui-PP4E/textConfig.py => 123 PyMailGui-PP4E/ViewWindows.py => 804 PyMailGui-PP4E/wraplines.py => 109 PyMailGui-PP4E/PP4E/Internet/Email/mailtools/mailFetcher.py => 426 PyMailGui-PP4E/PP4E/Internet/Email/mailtools/mailSender.py => 398 PyMailGui-PP4E/PP4E/Internet/Email/mailtools/mailParser.py => 328 PyMailGui-PP4E/PP4E/Gui/Tools/threadtools.py => 163 PyMailGui-PP4E/PP4E/Gui/Tools/windows.py => 144 PyMailGui-PP4E/PP4E/Gui/Tools/guimaker.py => 286 PyMailGui-PP4E/PP4E/Gui/TextEditor/textEditor.py => 2458 PyMailGui-PP4E/PP4E/Gui/TextEditor/textConfig.py => 235 PyMailGui-PP4E/PP4E/Gui/ShellGui/formrows.py => 54 PyMailGui-PP4E/PP4E/Gui/Tour/scrolledlist.py => 50 PyMailGui-PP4E/PP4E/Tools/find.py => 32 PyMailGui-PP4E/PP4E/launchmodes.py => 164 Total sloc in 39 files: 9892 ================================================================================ """