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
================================================================================
"""