1 ; Script generated by the Inno Setup Script Wizard. 2 ; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES! 3 4 ; This is the whole ball of wax for an Inno installer for Python. 5 ; To use, download Inno Setup from http://www.jrsoftware.org/isdl.htm/, 6 ; install it, and double-click on this file. That launches the Inno 7 ; script compiler. The GUI is extemely simple, and has only one button 8 ; you may not recognize instantly: click it. You're done. It builds 9 ; the installer into PCBuild/Python-2.2a1.exe. Size and speed of the 10 ; installer are competitive with the Wise installer; Inno uninstall 11 ; seems much quicker than Wise (but also feebler, and the uninstall 12 ; log is in some un(human)readable binary format). 13 ; 14 ; What's Done 15 ; ----------- 16 ; All the usual Windows Python files are installed by this now. 17 ; All the usual Windows Python Start menu entries are created and 18 ; work fine. 19 ; .py, .pyw, .pyc and .pyo extensions are registered. 20 ; PROBLEM: Inno uninstall does not restore their previous registry 21 ; associations (if any). Wise did. This will make life 22 ; difficult for alpha (etc) testers. 23 ; The Python install is fully functional for "typical" uses. 24 ; 25 ; What's Not Done 26 ; --------------- 27 ; None of "Mark Hammond's" registry entries are written. 28 ; No installation of files is done into the system dir: 29 ; The MS DLLs aren't handled at all by this yet. 30 ; Python22.dll is unpacked into the main Python dir. 31 ; 32 ; Inno can't do different things on NT/2000 depending on whether the user 33 ; has Admin privileges, so I don't know how to "solve" either of those, 34 ; short of building two installers (one *requiring* Admin privs, the 35 ; other not doing anything that needs Admin privs). 36 ; 37 ; Inno has no concept of variables, so lots of lines in this file need 38 ; to be fiddled by hand across releases. Simplest way out: stick this 39 ; file in a giant triple-quoted r-string (note that backslashes are 40 ; required all over the place here -- forward slashes DON'T WORK in 41 ; Inno), and use %(yadda)s string interpolation to do substitutions; i.e., 42 ; write a very simple Python program to *produce* this script. 43 44 [Setup] 45 AppName=Python and combined Win32 Extensions 46 AppVerName=Python 2.2.2 and combined Win32 Extensions 150 47 AppId=Python 2.2.2.150 48 AppVersion=2.2.2.150 49 AppCopyright=Python is Copyright 2001 Python Software Foundation. Win32 Extensions are Copyright 1996-2001 Greg Stein and Mark Hammond. 50 51 ; Default install dir; value of {app} later (unless user overrides). 52 ; {sd} = system root drive, probably "C:". 53 DefaultDirName={sd}\Python22 54 ;DefaultDirName={pf}\Python 55 56 ; Start menu folder name; value of {group} later (unless user overrides). 57 DefaultGroupName=Python 2.2 58 59 ; Point SourceDir to one above PCBuild = src. 60 ; means this script can run unchanged from anyone's CVS tree, no matter 61 ; what they called the top-level directories. 62 SourceDir=. 63 OutputDir=.. 64 OutputBaseFilename=Python-2.2.2-Win32-150-Setup 65 66 AppPublisher=PythonLabs at Digital Creations 67 AppPublisherURL=http://www.python.org 68 AppSupportURL=http://www.python.org 69 AppUpdatesURL=http://www.python.org 70 71 AlwaysCreateUninstallIcon=true 72 ChangesAssociations=true 73 UninstallLogMode=new 74 AllowNoIcons=true 75 AdminPrivilegesRequired=true 76 UninstallDisplayIcon={app}\pyc.ico 77 WizardDebug=false 78 79 ; The fewer screens the better; leave these commented. 80 81 Compression=bzip 82 InfoBeforeFile=LICENSE.txt 83 ;InfoBeforeFile=Misc\NEWS 84 85 ; uncomment the following line if you want your installation to run on NT 3.51 too. 86 ; MinVersion=4,3.51 87 88 [Types] 89 Name: normal; Description: Select desired components; Flags: iscustom 90 91 [Components] 92 Name: main; Description: Python and Win32 Extensions; Types: normal 93 Name: docs; Description: Python documentation (HTML); Types: normal 94 Name: tk; Description: TCL/TK, tkinter, and Idle; Types: normal 95 Name: tools; Description: Python utility scripts (Tools\); Types: normal 96 Name: test; Description: Python test suite (Lib\test\); Types: normal 97 98 [Tasks] 99 Name: extensions; Description: Register file associations (.py, .pyw, .pyc, .pyo); Components: main; Check: IsAdminLoggedOn 100 101 [Files] 102 ; Caution: Using forward slashes instead screws up in amazing ways. 103 ; Unknown: By the time Components (and other attrs) are added to these lines, they're 104 ; going to get awfully long. But don't see a way to continue logical lines across 105 ; physical lines. 106 107 Source: LICENSE.txt; DestDir: {app}; CopyMode: alwaysoverwrite 108 Source: README.txt; DestDir: {app}; CopyMode: alwaysoverwrite 109 Source: News.txt; DestDir: {app}; CopyMode: alwaysoverwrite 110 Source: *.ico; DestDir: {app}; CopyMode: alwaysoverwrite; Components: main 111 112 Source: python.exe; DestDir: {app}; CopyMode: alwaysoverwrite; Components: main 113 Source: pythonw.exe; DestDir: {app}; CopyMode: alwaysoverwrite; Components: main 114 Source: w9xpopen.exe; DestDir: {app}; CopyMode: alwaysoverwrite; Components: main 115 116 117 Source: DLLs\tcl83.dll; DestDir: {app}\DLLs; CopyMode: alwaysoverwrite; Components: tk 118 Source: DLLs\tk83.dll; DestDir: {app}\DLLs; CopyMode: alwaysoverwrite; Components: tk 119 Source: tcl\*.*; DestDir: {app}\tcl; CopyMode: alwaysoverwrite; Components: tk; Flags: recursesubdirs 120 121 Source: sysdir\python22.dll; DestDir: {sys}; CopyMode: alwaysskipifsameorolder; Components: main; Flags: sharedfile restartreplace 122 Source: sysdir\PyWinTypes22.dll; DestDir: {sys}; CopyMode: alwaysskipifsameorolder; Components: main; Flags: restartreplace sharedfile 123 Source: sysdir\pythoncom22.dll; DestDir: {sys}; CopyMode: alwaysskipifsameorolder; Components: main; Flags: restartreplace sharedfile 124 125 Source: DLLs\_socket.pyd; DestDir: {app}\DLLs; CopyMode: alwaysoverwrite; Components: main 126 Source: libs\_socket.lib; DestDir: {app}\libs; CopyMode: alwaysoverwrite; Components: main 127 128 Source: DLLs\_sre.pyd; DestDir: {app}\DLLs; CopyMode: alwaysoverwrite; Components: main 129 Source: libs\_sre.lib; DestDir: {app}\libs; CopyMode: alwaysoverwrite; Components: main 130 131 Source: DLLs\_symtable.pyd; DestDir: {app}\DLLs; CopyMode: alwaysoverwrite; Components: main 132 Source: libs\_symtable.lib; DestDir: {app}\libs; CopyMode: alwaysoverwrite; Components: main 133 134 Source: DLLs\_testcapi.pyd; DestDir: {app}\DLLs; CopyMode: alwaysoverwrite; Components: main 135 Source: libs\_testcapi.lib; DestDir: {app}\libs; CopyMode: alwaysoverwrite; Components: main 136 137 Source: DLLs\_tkinter.pyd; DestDir: {app}\DLLs; CopyMode: alwaysoverwrite; Components: tk 138 Source: libs\_tkinter.lib; DestDir: {app}\libs; CopyMode: alwaysoverwrite; Components: tk 139 140 Source: DLLs\bsddb.pyd; DestDir: {app}\DLLs; CopyMode: alwaysoverwrite; Components: main 141 Source: libs\bsddb.lib; DestDir: {app}\libs; CopyMode: alwaysoverwrite; Components: main 142 143 Source: DLLs\mmap.pyd; DestDir: {app}\DLLs; CopyMode: alwaysoverwrite; Components: main 144 Source: libs\mmap.lib; DestDir: {app}\libs; CopyMode: alwaysoverwrite; Components: main 145 146 Source: DLLs\parser.pyd; DestDir: {app}\DLLs; CopyMode: alwaysoverwrite; Components: main 147 Source: libs\parser.lib; DestDir: {app}\libs; CopyMode: alwaysoverwrite; Components: main 148 149 Source: DLLs\pyexpat.pyd; DestDir: {app}\DLLs; CopyMode: alwaysoverwrite; Components: main 150 Source: libs\pyexpat.lib; DestDir: {app}\libs; CopyMode: alwaysoverwrite; Components: main 151 152 Source: DLLs\select.pyd; DestDir: {app}\DLLs; CopyMode: alwaysoverwrite; Components: main 153 Source: libs\select.lib; DestDir: {app}\libs; CopyMode: alwaysoverwrite; Components: main 154 155 Source: DLLs\unicodedata.pyd; DestDir: {app}\DLLs; CopyMode: alwaysoverwrite; Components: main 156 Source: libs\unicodedata.lib; DestDir: {app}\libs; CopyMode: alwaysoverwrite; Components: main 157 158 Source: DLLs\_winreg.pyd; DestDir: {app}\DLLs; CopyMode: alwaysoverwrite; Components: main 159 Source: libs\_winreg.lib; DestDir: {app}\libs; CopyMode: alwaysoverwrite; Components: main 160 161 Source: DLLs\winsound.pyd; DestDir: {app}\DLLs; CopyMode: alwaysoverwrite; Components: main 162 Source: libs\winsound.lib; DestDir: {app}\libs; CopyMode: alwaysoverwrite; Components: main 163 164 Source: DLLs\zlib.pyd; DestDir: {app}\DLLs; CopyMode: alwaysoverwrite; Components: main 165 Source: libs\zlib.lib; DestDir: {app}\libs; CopyMode: alwaysoverwrite; Components: main 166 167 Source: libs\python22.lib; DestDir: {app}\libs; CopyMode: alwaysoverwrite; Components: main 168 169 Source: DLLs\expat.dll; DestDir: {app}\DLLs; CopyMode: alwaysoverwrite; Components: main 170 171 172 173 Source: Lib\*.py; DestDir: {app}\Lib; CopyMode: alwaysoverwrite; Components: main 174 Source: Lib\compiler\*.*; DestDir: {app}\Lib\compiler; CopyMode: alwaysoverwrite; Components: main; Flags: recursesubdirs 175 Source: Lib\distutils\*.*; DestDir: {app}\Lib\distutils; CopyMode: alwaysoverwrite; Components: main; Flags: recursesubdirs 176 Source: Lib\email\*.*; DestDir: {app}\Lib\email; CopyMode: alwaysoverwrite; Components: main; Flags: recursesubdirs 177 Source: Lib\encodings\*.*; DestDir: {app}\Lib\encodings; CopyMode: alwaysoverwrite; Components: main; Flags: recursesubdirs 178 Source: Lib\hotshot\*.*; DestDir: {app}\Lib\hotshot; CopyMode: alwaysoverwrite; Components: main; Flags: recursesubdirs 179 Source: Lib\lib-old\*.*; DestDir: {app}\Lib\lib-old; CopyMode: alwaysoverwrite; Components: main; Flags: recursesubdirs 180 Source: Lib\xml\*.*; DestDir: {app}\Lib\xml; CopyMode: alwaysoverwrite; Components: main; Flags: recursesubdirs 181 Source: Lib\hotshot\*.*; DestDir: {app}\Lib\hotshot; CopyMode: alwaysoverwrite; Components: main; Flags: recursesubdirs 182 Source: Lib\test\*.*; DestDir: {app}\Lib\test; CopyMode: alwaysoverwrite; Components: test; Flags: recursesubdirs 183 184 Source: Lib\site-packages\README.txt; DestDir: {app}\Lib\site-packages; CopyMode: alwaysoverwrite; Components: main 185 186 Source: Lib\site-packages\PyWin32.chm; DestDir: {app}\Lib\site-packages; CopyMode: alwaysoverwrite; Components: docs 187 Source: Lib\site-packages\win32\*.*; DestDir: {app}\Lib\site-packages\win32; CopyMode: alwaysoverwrite; Components: main; Flags: recursesubdirs 188 Source: Lib\site-packages\win32com\*.*; DestDir: {app}\Lib\site-packages\win32com; CopyMode: alwaysoverwrite; Components: main; Flags: recursesubdirs 189 Source: Lib\site-packages\win32comext\*.*; DestDir: {app}\Lib\site-packages\win32comext; CopyMode: alwaysoverwrite; Components: main; Flags: recursesubdirs 190 191 Source: Lib\lib-tk\*.py; DestDir: {app}\Lib\lib-tk; CopyMode: alwaysoverwrite; Components: tk; Flags: recursesubdirs 192 193 Source: include\*.h; DestDir: {app}\include; CopyMode: alwaysoverwrite; Components: main 194 195 Source: Tools\idle\*.*; DestDir: {app}\Tools\idle; CopyMode: alwaysoverwrite; Components: tk; Flags: recursesubdirs 196 197 Source: Tools\pynche\*.*; DestDir: {app}\Tools\pynche; CopyMode: alwaysoverwrite; Components: tools; Flags: recursesubdirs 198 Source: Tools\scripts\*.*; DestDir: {app}\Tools\Scripts; CopyMode: alwaysoverwrite; Components: tools; Flags: recursesubdirs 199 Source: Tools\webchecker\*.*; DestDir: {app}\Tools\webchecker; CopyMode: alwaysoverwrite; Components: tools; Flags: recursesubdirs 200 Source: Tools\versioncheck\*.*; DestDir: {app}\Tools\versioncheck; CopyMode: alwaysoverwrite; Components: tools; Flags: recursesubdirs 201 202 Source: Doc\*.*; DestDir: {app}\Doc; CopyMode: alwaysoverwrite; Flags: recursesubdirs; Components: docs 203 204 205 [Icons] 206 Name: {group}\Python (command line); Filename: {app}\python.exe; WorkingDir: {app}; Components: main 207 Name: {group}\Python Manuals; Filename: {app}\Doc\index.html; WorkingDir: {app}; Components: docs 208 Name: {group}\Win32 Extensions Help; Filename: {app}\Lib\site-packages\PyWin32.chm; WorkingDir: {app}\Lib\site-packages; Components: docs 209 Name: {group}\Module Docs; Filename: {app}\pythonw.exe; WorkingDir: {app}; Parameters: """{app}\Tools\Scripts\pydoc.pyw"""; Components: tools 210 Name: {group}\IDLE (Python GUI); Filename: {app}\pythonw.exe; WorkingDir: {app}; Parameters: """{app}\Tools\idle\idle.pyw"""; Components: tools 211 212 [Registry] 213 ; Register .py 214 Tasks: extensions; Root: HKCR; Subkey: .py; ValueType: string; ValueName: ; ValueData: Python File; Flags: uninsdeletevalue 215 Tasks: extensions; Root: HKCR; Subkey: .py; ValueType: string; ValueName: Content Type; ValueData: text/plain; Flags: uninsdeletevalue 216 Tasks: extensions; Root: HKCR; Subkey: Python File; ValueType: string; ValueName: ; ValueData: Python File; Flags: uninsdeletekey 217 Tasks: extensions; Root: HKCR; Subkey: Python File\DefaultIcon; ValueType: string; ValueName: ; ValueData: {app}\Py.ico 218 Tasks: extensions; Root: HKCR; Subkey: Python File\shell\open\command; ValueType: string; ValueName: ; ValueData: """{app}\python.exe"" ""%1"" %*" 219 220 ; Register .pyc 221 Tasks: extensions; Root: HKCR; Subkey: .pyc; ValueType: string; ValueName: ; ValueData: Python CompiledFile; Flags: uninsdeletevalue 222 Tasks: extensions; Root: HKCR; Subkey: Python CompiledFile; ValueType: string; ValueName: ; ValueData: Compiled Python File; Flags: uninsdeletekey 223 Tasks: extensions; Root: HKCR; Subkey: Python CompiledFile\DefaultIcon; ValueType: string; ValueName: ; ValueData: {app}\pyc.ico 224 Tasks: extensions; Root: HKCR; Subkey: Python CompiledFile\shell\open\command; ValueType: string; ValueName: ; ValueData: """{app}\python.exe"" ""%1"" %*" 225 226 ; Register .pyo 227 Tasks: extensions; Root: HKCR; Subkey: .pyo; ValueType: string; ValueName: ; ValueData: Python CompiledFile; Flags: uninsdeletevalue 228 229 ; Register .pyw 230 Tasks: extensions; Root: HKCR; Subkey: .pyw; ValueType: string; ValueName: ; ValueData: Python NoConFile; Flags: uninsdeletevalue 231 Tasks: extensions; Root: HKCR; Subkey: .pyw; ValueType: string; ValueName: Content Type; ValueData: text/plain; Flags: uninsdeletevalue 232 Tasks: extensions; Root: HKCR; Subkey: Python NoConFile; ValueType: string; ValueName: ; ValueData: Python File (no console); Flags: uninsdeletekey 233 Tasks: extensions; Root: HKCR; Subkey: Python NoConFile\DefaultIcon; ValueType: string; ValueName: ; ValueData: {app}\Py.ico 234 Tasks: extensions; Root: HKCR; Subkey: Python NoConFile\shell\open\command; ValueType: string; ValueName: ; ValueData: """{app}\pythonw.exe"" ""%1"" %*" 235 236 237 ; Python Registry Keys 238 Root: HKLM; Subkey: SOFTWARE\Python; Flags: uninsdeletekeyifempty; Check: IsAdminLoggedOn 239 Root: HKLM; Subkey: SOFTWARE\Python\PythonCore; Flags: uninsdeletekeyifempty 240 Root: HKLM; Subkey: SOFTWARE\Python\PythonCore\2.2; Flags: uninsdeletekeyifempty 241 Root: HKLM; Subkey: SOFTWARE\Python\PythonCore\2.2\PythonPath; ValueData: "{app}\Lib;{app}\DLLs"; Flags: uninsdeletekeyifempty 242 Root: HKLM; Subkey: SOFTWARE\Python\PythonCore\2.2\PythonPath\tk; ValueData: {app}\Lib\lib-tk; Flags: uninsdeletekey; Components: tk 243 Root: HKLM; Subkey: SOFTWARE\Python\PythonCore\2.2\PythonPath\win32; ValueData: "{app}\lib\site-packages\win32;{app}\lib\site-packages\win32\lib"; Flags: uninsdeletekey 244 Root: HKLM; Subkey: SOFTWARE\Python\PythonCore\2.2\PythonPath\win32com; ValueData: C:\Python\lib\site-packages; Flags: uninsdeletekey 245 Root: HKLM; Subkey: SOFTWARE\Python\PythonCore\2.2\Modules; Flags: uninsdeletekeyifempty 246 Root: HKLM; Subkey: SOFTWARE\Python\PythonCore\2.2\Modules\pythoncom; ValueData: {sys}\pythoncom22.dll; Flags: uninsdeletekey 247 Root: HKLM; Subkey: SOFTWARE\Python\PythonCore\2.2\Modules\pywintypes; ValueData: {sys}\PyWinTypes22.dll; Flags: uninsdeletekey 248 Root: HKLM; Subkey: SOFTWARE\Python\PythonCore\2.2\InstallPath; ValueData: {app}; Flags: uninsdeletekeyifempty; ValueType: string 249 Root: HKLM; Subkey: SOFTWARE\Python\PythonCore\2.2\InstallPath\InstallGroup; ValueData: {group}; Flags: uninsdeletekey 250 Root: HKLM; Subkey: SOFTWARE\Python\PythonCore\2.2\Help; Flags: uninsdeletekeyifempty 251 Root: HKLM; Subkey: SOFTWARE\Python\PythonCore\2.2\Help\Main Python Documentation; ValueType: string; ValueData: {app}\Doc\index.html; Flags: uninsdeletekey; Components: docs 252 Root: HKLM; Subkey: SOFTWARE\Python\PythonCore\2.2\Help\Python Win32 Documentation; ValueType: string; ValueData: {app}\lib\site-packages\PyWin32.chm; Flags: uninsdeletekey; Components: docs 253 254 [_ISTool] 255 EnableISX=true 256 257 258 [Code] 259 Program Setup; 260 261 Function IsAdminNotLoggedOn(): Boolean; 262 begin 263 Result := Not IsAdminLoggedOn(); 264 end; 265 266 begin 267 end. 268 269 270 271 272 [UninstallDelete] 273 Name: {app}\Lib\compiler\*.pyc; Type: files 274 Name: {app}\Lib\compiler\*.pyo; Type: files 275 Name: {app}\Lib\compiler; Type: dirifempty 276 Name: {app}\Lib\distutils\command\*.pyc; Type: files 277 Name: {app}\Lib\distutils\command\*.pyo; Type: files 278 Name: {app}\Lib\distutils\command; Type: dirifempty 279 Name: {app}\Lib\distutils\*.pyc; Type: files 280 Name: {app}\Lib\distutils\*.pyo; Type: files 281 Name: {app}\Lib\distutils; Type: dirifempty 282 Name: {app}\Lib\email\test\*.pyc; Type: files 283 Name: {app}\Lib\email\test\*.pyo; Type: files 284 Name: {app}\Lib\email\test; Type: dirifempty 285 Name: {app}\Lib\email\*.pyc; Type: files 286 Name: {app}\Lib\email\*.pyo; Type: files 287 Name: {app}\Lib\email; Type: dirifempty 288 Name: {app}\Lib\encodings\*.pyc; Type: files 289 Name: {app}\Lib\encodings\*.pyo; Type: files 290 Name: {app}\Lib\encodings; Type: dirifempty 291 Name: {app}\Lib\hotshot\*.pyc; Type: files 292 Name: {app}\Lib\hotshot\*.pyo; Type: files 293 Name: {app}\Lib\hotshot; Type: dirifempty 294 Name: {app}\Lib\lib-old\*.pyc; Type: files 295 Name: {app}\Lib\lib-old\*.pyo; Type: files 296 Name: {app}\Lib\lib-old; Type: dirifempty 297 Name: {app}\Lib\lib-tk\*.pyc; Type: files 298 Name: {app}\Lib\lib-tk\*.pyo; Type: files 299 Name: {app}\Lib\lib-tk; Type: dirifempty 300 Name: {app}\Lib\test\*.pyc; Type: files 301 Name: {app}\Lib\test\*.pyo; Type: files 302 Name: {app}\Lib\test; Type: dirifempty 303 Name: {app}\Lib\xml\dom\*.pyc; Type: files 304 Name: {app}\Lib\xml\dom\*.pyo; Type: files 305 Name: {app}\Lib\xml\dom; Type: dirifempty 306 Name: {app}\Lib\xml\parsers\*.pyc; Type: files 307 Name: {app}\Lib\xml\parsers\*.pyo; Type: files 308 Name: {app}\Lib\xml\parsers; Type: dirifempty 309 Name: {app}\Lib\xml\sax\*.pyc; Type: files 310 Name: {app}\Lib\xml\sax\*.pyo; Type: files 311 Name: {app}\Lib\xml\sax; Type: dirifempty 312 Name: {app}\Lib\xml\*.pyc; Type: files 313 Name: {app}\Lib\xml\*.pyo; Type: files 314 Name: {app}\Lib\xml; Type: dirifempty 315 316 Name: {app}\Lib\site-packages\win32; Type: filesandordirs 317 Name: {app}\Lib\site-packages\win32com; Type: filesandordirs 318 Name: {app}\Lib\site-packages\win32comext; Type: filesandordirs 319 Name: {app}\Lib\site-packages\pythoncom.py*; Type: files 320 Name: {app}\Lib\site-packages; Type: dirifempty 321 322 Name: {app}\Lib\*.pyc; Type: files 323 Name: {app}\Lib; Type: dirifempty 324 325 Name: {app}\Tools\pynche\*.pyc; Type: files 326 Name: {app}\Tools\pynche\*.pyo; Type: files 327 Name: {app}\Tools\pynche; Type: dirifempty 328 329 Name: {app}\Tools\idle\*.pyc; Type: files 330 Name: {app}\Tools\idle\*.pyo; Type: files 331 Name: {app}\Tools\idle; Type: dirifempty 332 333 Name: {app}\Tools\scripts\*.pyc; Type: files 334 Name: {app}\Tools\scripts\*.pyo; Type: files 335 Name: {app}\Tools\scripts; Type: dirifempty 336 337 Name: {app}\Tools\versioncheck\*.pyc; Type: files 338 Name: {app}\Tools\versioncheck\*.pyo; Type: files 339 Name: {app}\Tools\versioncheck; Type: dirifempty 340 341 Name: {app}\Tools\webchecker\*.pyc; Type: files 342 Name: {app}\Tools\webchecker\*.pyo; Type: files 343 Name: {app}\Tools\webchecker; Type: dirifempty 344 345 Name: {app}\Tools; Type: dirifempty 346 347