diff --git a/.gitignore b/.gitignore index d620f6f..8a805b4 100644 --- a/.gitignore +++ b/.gitignore @@ -3,3 +3,13 @@ ################# shortcuts/*.exe + +# Temp dir +build + +################# +## chm doc index +################# + +tools/nsis/*.chw + diff --git a/build.bat b/build.bat index 86488fc..53c1c3e 100644 --- a/build.bat +++ b/build.bat @@ -39,19 +39,21 @@ if "--clean" == "%2" ( call COMMON :LogMessage call COMMON :LogMessage "Portable Python build script started :: %date% %time%" -call COMMON :LogMessage -call COMMON :LogMessage "Building distribution based on Python %1" - + :: Check can we find config dir -if not exist %1 ( +if not exist config\%1 ( call COMMON :LogMessage "ERROR: Config folder not found for this version !! Aborting..." goto:eof ) :: Load variables for specified version -call .\%1\settings.bat +set PP_TYPE=%1 +call .\config\%PP_TYPE%\settings.bat -set TEMP_FOLDER=%TEMP%PortablePython.v.%PY_VERSION%.%PP_VERSION%.Build +call COMMON :LogMessage +call COMMON :LogMessage "Building distribution %PP_TYPE% based on Python %PY_VERSION%" + +set TEMP_FOLDER=%CD%\build\PortablePython%PP_TYPE%.v.%PY_VERSION%.%PP_VERSION%.Build set BIN_FOLDER=%TEMP_FOLDER%\binaries set UNPACK_FOLDER=%TEMP_FOLDER%\unpacked set OUTPUT_FOLDER=%TEMP_FOLDER%\output @@ -91,12 +93,12 @@ if not exist %TEMP_FOLDER% ( ) :: Extract modules -call .\%1\modules.bat +call .\config\%PP_TYPE%\modules.bat :: Build installer call COMMON :LogMessage -call COMMON :LogMessage "Building Portable Python %PY_VERSION%.%PP_VERSION% installer ..." -tools\nsis\makensis /V0 /DPY_VERSION=%1 /DPP_VERSION=%PP_VERSION% /DOUTPUT_FOLDER="%OUTPUT_FOLDER%" /DSOURCES_FOLDER="%UNPACK_FOLDER%" main.nsi +call COMMON :LogMessage "Building Portable Python %PP_TYPE% %PY_VERSION%.%PP_VERSION% installer ..." +tools\nsis\makensis /V1 /DPP_TYPE=%1 /DPY_VERSION=%PY_VERSION% /DPP_VERSION=%PP_VERSION% /DOUTPUT_FOLDER="%OUTPUT_FOLDER%" /DSOURCES_FOLDER="%UNPACK_FOLDER%" main.nsi call COMMON :LogMessage call COMMON :LogMessage "Portable Python build script completed at :: %date% %time%" -call COMMON :LogMessage "Installer ready at: %OUTPUT_FOLDER%" \ No newline at end of file +call COMMON :LogMessage "Installer ready at: %OUTPUT_FOLDER%" diff --git a/2.7/descriptions.nsh b/config/2.7/descriptions.nsh similarity index 93% rename from 2.7/descriptions.nsh rename to config/2.7/descriptions.nsh index c592255..ef91730 100644 --- a/2.7/descriptions.nsh +++ b/config/2.7/descriptions.nsh @@ -53,6 +53,8 @@ LangString DESC_MODULE_XLRD ${LANG_ENGLISH} "Library for developers to extract d LangString DESC_MODULE_XLWT ${LANG_ENGLISH} "Library to create spreadsheet files compatible with MS Excel 97/2000/XP/2003 XLS files, on any platform, with Python 2.3 to 2.7" LangString DESC_MODULE_XLUTILS ${LANG_ENGLISH} "Utilities for working with Excel files that require both xlrd and xlwt" LangString DESC_MODULE_OPENPYXL ${LANG_ENGLISH} "A Python library to read/write Excel 2007 xlsx/xlsm files" +LangString DESC_PIP_MODULE_IPYTHON ${LANG_ENGLISH} "Alternative pip installation for IPython. IPython provides a rich toolkit to help you make the most out of using Python interactively." +LangString DESC_PIP_MODULE_PYODBC ${LANG_ENGLISH} "pip installation for PyODBC. Allows you to use ODBC to connect to almost any database from Windows, Linux, OS/X, and more." !insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN !insertmacro MUI_DESCRIPTION_TEXT ${PYTHON_CORE} $(DESC_PYTHON_CORE) @@ -82,4 +84,7 @@ LangString DESC_MODULE_OPENPYXL ${LANG_ENGLISH} "A Python library to read/write !insertmacro MUI_DESCRIPTION_TEXT ${MODULE_XLWT} $(DESC_MODULE_XLWT) !insertmacro MUI_DESCRIPTION_TEXT ${MODULE_XLUTILS} $(DESC_MODULE_XLUTILS) !insertmacro MUI_DESCRIPTION_TEXT ${MODULE_OPENPYXL} $(DESC_MODULE_OPENPYXL) -!insertmacro MUI_FUNCTION_DESCRIPTION_END \ No newline at end of file + !insertmacro MUI_DESCRIPTION_TEXT ${PIP_MODULE_IPYTHON} $(DESC_PIP_MODULE_IPYTHON) + !insertmacro MUI_DESCRIPTION_TEXT ${PIP_MODULE_PYODBC} $(DESC_PIP_MODULE_PYODBC) + + !insertmacro MUI_FUNCTION_DESCRIPTION_END \ No newline at end of file diff --git a/2.7/modules.bat b/config/2.7/modules.bat similarity index 95% rename from 2.7/modules.bat rename to config/2.7/modules.bat index 46498c2..c7b2525 100644 --- a/2.7/modules.bat +++ b/config/2.7/modules.bat @@ -25,6 +25,13 @@ :: Include common functions set COMMON=.\..\common.bat +:: CHECK Parameter, maybe only a subset of packages should be build +if [%1]==[] (SET _packagelist=All) ELSE (SET _packagelist=%*) +for %%G in (%_packagelist%) do (call :Unpack%%G) +goto:EOF + +:UnpackAll + call :UnpackPython call :UnpackPyScripter call :UnpackPyCharm @@ -41,7 +48,8 @@ call :UnpackDateutil call :UnpackPyParsing call :UnpackLXML call :UnpackPySerial -call :UnpackPyODBC +:: since pyodbc moved from google to github - installation via pip is required +:: call :UnpackPyODBC call :UnpackPyGame call :UnpackPyGTK call :UnpackPyQT @@ -108,6 +116,7 @@ call COMMON :LogMessage "Copy Python Portable shortcut" copy shortcuts\Python-Portable.exe "%UNPACK_FOLDER%" 1>NUL copy shortcuts\PythonW-Portable.exe "%UNPACK_FOLDER%" 1>NUL copy shortcuts\IDLE-Portable.exe "%UNPACK_FOLDER%" 1>NUL +copy shortcuts\PortablePythonPrompt.cmd "%UNPACK_FOLDER%" 1>NUL :: Fix call COMMON :FixMSCRT %UNPACK_FOLDER%\python-core\ @@ -137,21 +146,12 @@ tools\uniextract16\UniExtract.exe "%BIN_FOLDER%\%PY_SCRIPTER_FILE%" %UNPACK_FOLD :: Copy files to PyScripter folder call COMMON :LogMessage "Copy files to PyScripter folder" mkdir %UNPACK_FOLDER%\PyScripter -mkdir %UNPACK_FOLDER%\PyScripter\App -mkdir %UNPACK_FOLDER%\PyScripter\App\locale -mkdir %UNPACK_FOLDER%\PyScripter\App\Skins -copy %UNPACK_FOLDER%\pyscripter-temp\PyScripter\PyScripter.exe "%UNPACK_FOLDER%\PyScripter\App\" >NUL -copy %UNPACK_FOLDER%\pyscripter-temp\PyScripter\PyScripter.chm "%UNPACK_FOLDER%\PyScripter\App\" >NUL -copy %UNPACK_FOLDER%\pyscripter-temp\PyScripter\PyProject.ico "%UNPACK_FOLDER%\PyScripter\App\" >NUL -xcopy /EY %UNPACK_FOLDER%\pyscripter-temp\PyScripter\locale "%UNPACK_FOLDER%\PyScripter\App\locale" >NUL - -:: Unpack rpyc -call COMMON :LogMessage "Unpack rypc" -tools\uniextract16\UniExtract.exe "%UNPACK_FOLDER%\pyscripter-temp\PyScripter\Lib\rpyc.zip" %UNPACK_FOLDER%\PyScripter\App\Lib\site-packages\ >NUL +ROBOCOPY /NP /E /MOVE "%UNPACK_FOLDER%\pyscripter-temp\PyScripter" "%UNPACK_FOLDER%\PyScripter\App" + :: Patch PyScripter call COMMON :LogMessage "Patch PyScripter" -tools\uniextract16\UniExtract.exe patches\PyScripter.2.5.3.PPpatch %UNPACK_FOLDER%\PyScripter\App >NUL +copy /Y patches\PyScripter26.ini %UNPACK_FOLDER%\PyScripter\App\PyScripter.ini 1>NUL 2>NUL :: Build Shortcut call COMMON :LogMessage "Build PyScripter shortcut" @@ -182,7 +182,7 @@ call COMMON :VerifyFile %NUMPY_FILE% MD5 %NUMPY_ZIP_MD5% :: Unpack files call COMMON :LogMessage "Extracting NumPy files" tools\uniextract16\bin\7z.exe x "%BIN_FOLDER%\%NUMPY_FILE%" -o%UNPACK_FOLDER%\numpy\ -y -tools\uniextract16\UniExtract.exe "%UNPACK_FOLDER%\numpy\%NUMPY_FILE_NOSSE%" %UNPACK_FOLDER%\numpy\ +tools\uniextract16\bin\7z.exe x "%UNPACK_FOLDER%\numpy\%NUMPY_FILE_NOSSE%" -o%UNPACK_FOLDER%\numpy\ -y :: Fix call COMMON :FixMSCRT %UNPACK_FOLDER%\numpy\ @@ -846,7 +846,7 @@ setlocal ENABLEEXTENSIONS call COMMON :DownloadFile %PYCHARM_DOWNLOAD% :: Verify -call COMMON :VerifyFile %PYCHARM_FILE% MD5 %PYCHARM_MD5% +call COMMON :VerifyFile %PYCHARM_FILE% SHA256 %PYCHARM_SHA256% :: Unpack files call COMMON :LogMessage "Extracting PyCharm files" @@ -856,6 +856,7 @@ tools\uniextract16\UniExtract.exe "%BIN_FOLDER%\%PYCHARM_FILE%" %UNPACK_FOLDER%\ call COMMON :LogMessage "Copy files to PyCharm folder" RD %UNPACK_FOLDER%\pycharm-temp\$PLUGINSDIR /S /Q RD %UNPACK_FOLDER%\pycharm-temp\bin\$PLUGINSDIR /S /Q +RD "%UNPACK_FOLDER%\PyCharm" /S /Q mkdir %UNPACK_FOLDER%\PyCharm mkdir %UNPACK_FOLDER%\PyCharm\App move /Y "%UNPACK_FOLDER%\pycharm-temp" "%UNPACK_FOLDER%\PyCharm\App\PyCharm" @@ -863,19 +864,20 @@ move /Y "%UNPACK_FOLDER%\pycharm-temp" "%UNPACK_FOLDER%\PyCharm\App\PyCharm" :: Patch PyCharm call COMMON :LogMessage "Patch PyCharm" del %UNPACK_FOLDER%\PyCharm\App\PyCharm\bin\idea.properties /Q -tools\uniextract16\UniExtract.exe "patches\PyCharm.3.1.x.PPpatch" "%UNPACK_FOLDER%\PyCharm\App\PyCharm" >NUL +tools\uniextract16\bin\7z.exe x patches\PyCharm.4.0.x.PPpatch -o%UNPACK_FOLDER%\PyCharm\App\PyCharm -y >NUL :: Replace @PY_VERSION@ in jdk.table.xml.tmp to %PY_VERSION% jdk.table.xml setlocal ENABLEDELAYEDEXPANSION -set filein="%UNPACK_FOLDER%\PyCharm\App\PyCharm\.PyCharm30\config\options\jdk.table.xml.tmp" -set fileout="%UNPACK_FOLDER%\PyCharm\App\PyCharm\.PyCharm30\config\options\jdk.table.xml" +set filein="%UNPACK_FOLDER%\PyCharm\App\PyCharm\.PyCharm\config\options\jdk.table.xml.tmp" +set fileout="%UNPACK_FOLDER%\PyCharm\App\PyCharm\.PyCharm\config\options\jdk.table.xml" +echo write to "%fileout%"... set old=@PY_VERSION@ set new=%PY_VERSION% -for /f "tokens=* delims=" %%i in ( '"type %filein%"') do ( +(for /f "usebackq tokens=* delims=? " %%i in (`type %filein%`) do ( set str=%%i set str=!str:%old%=%new%! - echo !str! >> %fileout% -) + echo !str! +)) > %fileout% del %filein% :: Build Shortcut diff --git a/2.7/modules.nsh b/config/2.7/modules.nsh similarity index 73% rename from 2.7/modules.nsh rename to config/2.7/modules.nsh index e7431e2..c845dbc 100644 --- a/2.7/modules.nsh +++ b/config/2.7/modules.nsh @@ -26,31 +26,32 @@ InstType "Full" InstType "Minimal" -Section "!Python 2.7.6 core" PYTHON_CORE +Section "!Python 2.7.11 core" PYTHON_CORE SectionIn 1 2 RO SetOutPath "$INSTDIR" File /r "${SOURCESFOLDER}\python-core\*.*" File "${SOURCESFOLDER}\Python-Portable.exe" File "${SOURCESFOLDER}\PythonW-Portable.exe" File "${SOURCESFOLDER}\IDLE-Portable.exe" + File "${SOURCESFOLDER}\PortablePythonPrompt.cmd" SectionEnd SectionGroup "Modules" - Section "NumPy 1.8.1" MODULE_NUMPY + Section "NumPy 1.9.2" MODULE_NUMPY SectionIn 1 SetOutPath "$INSTDIR\App\Lib\site-packages\" File /r "${SOURCESFOLDER}\numpy\PLATLIB\*.*" SectionEnd - Section "SciPy 0.13.3" MODULE_SCIPY + Section "SciPy 0.15.1" MODULE_SCIPY SectionIn 1 SetOutPath "$INSTDIR\App\Lib\site-packages\" File /r "${SOURCESFOLDER}\scipy\PLATLIB\*.*" SectionEnd - Section "PyWin32 218" MODULE_PYWIN32 + Section "PyWin32 220" MODULE_PYWIN32 SectionIn 1 SetOutPath "$INSTDIR\App\" File /r "${SOURCESFOLDER}\pywin32\*.*" SectionEnd - Section "NetworkX 1.7" MODULE_NETWORKX + Section "NetworkX 1.11" MODULE_NETWORKX SectionIn 1 SetOutPath "$INSTDIR\App\Lib\site-packages\networkx\" File /r "${SOURCESFOLDER}\networkx\networkx\*.*" @@ -77,12 +78,12 @@ SectionGroup "Modules" SetOutPath "$INSTDIR\App\" File /r "${SOURCESFOLDER}\wxpython\package\*.*" SectionEnd - Section "matplotlib 1.3.1" MODULE_MATPLOTLIB + Section "matplotlib 1.4.3" MODULE_MATPLOTLIB SectionIn 1 SetOutPath "$INSTDIR\App\Lib\site-packages\" File /r "${SOURCESFOLDER}\matplotlib\PLATLIB\*.*" SectionEnd - Section "lxml 3.3.4" MODULE_LXML + Section "lxml 3.4.3" MODULE_LXML SectionIn 1 SetOutPath "$INSTDIR\App\Lib\site-packages\" File /r "${SOURCESFOLDER}\lxml\PLATLIB\*.*" @@ -92,12 +93,13 @@ SectionGroup "Modules" SetOutPath "$INSTDIR\App\Lib\site-packages\" File /r "${SOURCESFOLDER}\pyserial\PURELIB\*.*" SectionEnd +/* since pyodbc moved from google to github - installation via pip is required Section "PyODBC 3.0.7" MODULE_PYODBC SectionIn 1 SetOutPath "$INSTDIR\App\Lib\site-packages\" File /r "${SOURCESFOLDER}\pyodbc\PLATLIB\*.*" SectionEnd - Section "PyGame 1.9.1" MODULE_PYGAME + */ Section "PyGame 1.9.1" MODULE_PYGAME SectionIn 1 SetOutPath "$INSTDIR\App\" File /r "${SOURCESFOLDER}\pygame\*.*" @@ -109,7 +111,7 @@ SectionGroup "Modules" SetOutPath "$INSTDIR" File "${SOURCESFOLDER}\Glade3-Portable.exe" SectionEnd - Section "PyQT 4.10.4" MODULE_PYQT + Section "PyQT 4.11.3" MODULE_PYQT SectionIn 1 SetOutPath "$INSTDIR\App\Lib\" File /r "${SOURCESFOLDER}\pyqt\Lib\*.*" @@ -129,10 +131,10 @@ SectionGroup "Modules" SetOutPath "$INSTDIR" File "${SOURCESFOLDER}\IPython-Portable.exe" SectionEnd - Section "Pandas 0.13.1" MODULE_PANDAS + Section "Pandas 0.16.0" MODULE_PANDAS SectionIn 1 SetOutPath "$INSTDIR\App\Lib\site-packages\" - File /r "${SOURCESFOLDER}\pandas\PLATLIB\*.*" + File /r "${SOURCESFOLDER}\pandas\*.*" SectionEnd Section "Dateutil 2.2" MODULE_DATEUTIL SectionIn 1 @@ -173,13 +175,13 @@ SectionGroupEnd SectionGroup "Code editors" - Section "PyScripter 2.5.3" IDE_PYSCRIPTER + Section "PyScripter 2.6.0" IDE_PYSCRIPTER SectionIn 1 SetOutPath "$INSTDIR" File /r "${SOURCESFOLDER}\PyScripter\*.*" File "${SOURCESFOLDER}\PyScripter-Portable.exe" SectionEnd - Section "PyCharm Community 3.1.2" IDE_PYCHARM + Section "PyCharm Community 2016.3.1" IDE_PYCHARM SectionIn 1 SetOutPath "$INSTDIR" File /r "${SOURCESFOLDER}\PyCharm\*.*" @@ -187,6 +189,49 @@ SectionGroup "Code editors" SectionEnd SectionGroupEnd +; pip section is an extract from +; https://github.com/wheeler-microfluidics/microdrop_portable_python_base/blob/microdrop/2.7/modules.nsh +; many thanks to Christian Frobel for these piece of work + +SectionGroup "`pip` packages" + Section "Prepare `easy_install` and `pip`" + Var /GLOBAL EasyInstall + Var /GLOBAL Pip + Var /GLOBAL PipInstallFlags + SectionIn 1 2 RO + StrCpy $EasyInstall '$INSTDIR\App\Scripts\easy_install.exe' + StrCpy $Pip '$INSTDIR\App\Scripts\pip.exe' + ; Use `--pre` argument to allow installation of [pre-release][1] + ; package versions. + ; + ; [1]: http://stackoverflow.com/questions/18230956/could-not-find-a-version-that-satisfies-the-requirement-pytz + StrCpy $PipInstallFlags '--no-cache-dir' + SectionEnd + + Section "Install pip" + SectionIn 1 2 RO + nsExec::ExecToLog '$EasyInstall pip' + SectionEnd + + Section "Install ipython" PIP_MODULE_IPYTHON + ;SectionIn 1 + ;not in section 'full', cause IPython 0.13.1 already included + ;this is just an example, how packges could be installed via pip + ;known problem: + ; - with pip installed scripts App\Scripts\iXYZ-script.py incudes "hard coded" python path + ; - if the pp installation moves, these paths must be adapted manually + nsExec::ExecToLog '$Pip install $PipInstallFlags ipython' + SectionEnd + Section "Install PyODBC" PIP_MODULE_PYODBC + SectionIn 1 + ;known problem: + ; - with pip installed scripts App\Scripts\iXYZ-script.py incudes "hard coded" python path + ; - if the pp installation moves, these paths must be adapted manually + nsExec::ExecToLog '$Pip install $PipInstallFlags pyodbc' + SectionEnd + +SectionGroupEnd + ; Section dependencies Function .onSelChange ${Unless} ${SectionIsSelected} ${MODULE_DATEUTIL} @@ -204,4 +249,4 @@ Function .onSelChange ${Unless} ${SectionIsSelected} ${MODULE_XLWT} !insertmacro UnselectSection ${MODULE_XLUTILS} ${EndIf} -FunctionEnd \ No newline at end of file +FunctionEnd diff --git a/2.7/settings.bat b/config/2.7/settings.bat similarity index 69% rename from 2.7/settings.bat rename to config/2.7/settings.bat index b252a06..f3ec3df 100644 --- a/2.7/settings.bat +++ b/config/2.7/settings.bat @@ -23,40 +23,40 @@ ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: set PY_VERSION=2.7 -set PP_VERSION=6.1 +set PP_VERSION=11.0 set PY_SHORT_VERSION=27 :: Core -set PY_MSI_DOWNLOAD="http://python.org/ftp/python/2.7.6/python-2.7.6.msi" -set PY_MSI_FILE=python-2.7.6.msi -set PY_MSI_MD5=ac54e14f7ba180253b9bae6635d822ea +set PY_MSI_DOWNLOAD="http://python.org/ftp/python/2.7.11/python-2.7.11.msi" +set PY_MSI_FILE=python-2.7.11.msi +set PY_MSI_MD5=241bf8e097ab4e1047d9bb4f59602095 :: Modules set PY_SETUPTOOLS_DOWNLOAD="http://pypi.python.org/packages/2.7/s/setuptools/setuptools-0.6c11.win32-py2.7.exe" set PY_SETUPTOOLS_FILE=setuptools-0.6c11.win32-py2.7.exe set PY_SETUPTOOLS_MD5=57e1e64f6b7c7f1d2eddfc9746bbaf20 -set PY_SCRIPTER_DOWNLOAD="http://pyscripter.googlecode.com/files/PyScripter-v2.5.3.zip" -set PY_SCRIPTER_FILE=PyScripter-v2.5.3.zip -set PY_SCRIPTER_SHA1=363226a2dc708bc5dd83eda9ccc36339b79a7345 +set PY_SCRIPTER_DOWNLOAD="http://sourceforge.net/projects/pyscripter/files/PyScripter-v2.6.0.zip" +set PY_SCRIPTER_FILE=PyScripter-v2.6.0.zip +set PY_SCRIPTER_SHA1=03ffbb5eb33ffc1da9a54dae3c9a67243b897fd5 -set NUMPY_DOWNLOAD="http://sourceforge.net/projects/numpy/files/NumPy/1.8.1/numpy-1.8.1-win32-superpack-python2.7.exe" -set NUMPY_FILE=numpy-1.8.1-win32-superpack-python2.7.exe -set NUMPY_FILE_NOSSE=numpy-1.8.1-nosse.exe -set NUMPY_ZIP_MD5=47dcbfaba32a64f1e30927c219853fc1 +set NUMPY_DOWNLOAD="http://sourceforge.net/projects/numpy/files/NumPy/1.9.2/numpy-1.9.2-win32-superpack-python2.7.exe" +set NUMPY_FILE=numpy-1.9.2-win32-superpack-python2.7.exe +set NUMPY_FILE_NOSSE=numpy-1.9.2-sse2.exe +set NUMPY_ZIP_MD5=694e11489cd5340e06d01f19866ecf3b -set SCIPY_DOWNLOAD="http://sourceforge.net/projects/scipy/files/scipy/0.13.3/scipy-0.13.3-win32-superpack-python2.7.exe" -set SCIPY_FILE=scipy-0.13.3-win32-superpack-python2.7.exe -set SCIPY_FILE_NOSSE=scipy-0.13.3-nosse.exe -set SCIPY_ZIP_MD5=ab43e3022aa642bef49a1f92516a6fdf +set SCIPY_DOWNLOAD="http://sourceforge.net/projects/scipy/files/scipy/0.15.1/scipy-0.15.1-win32-superpack-python2.7.exe" +set SCIPY_FILE=scipy-0.15.1-win32-superpack-python2.7.exe +set SCIPY_FILE_NOSSE=scipy-0.15.1-sse2.exe +set SCIPY_ZIP_MD5=8d8ab3c298bf0693e827dc419fa7d6f7 -set PYWIN32_DOWNLOAD="http://sourceforge.net/projects/pywin32/files/pywin32/Build 218/pywin32-218.win32-py2.7.exe" -set PYWIN32_FILE=pywin32-218.win32-py2.7.exe -set PYWIN32_MD5=16e178ac18b49fa0d27ba0be90f460af +set PYWIN32_DOWNLOAD="http://sourceforge.net/projects/pywin32/files/pywin32/Build 220/pywin32-220.win32-py2.7.exe" +set PYWIN32_FILE=pywin32-220.win32-py2.7.exe +set PYWIN32_MD5=59be43a3f010602ce623612ecdf34908 -set NETWORKX_DOWNLOAD="http://networkx.lanl.gov/download/networkx/networkx-1.7-py2.7.egg" -set NETWORKX_FILE=networkx-1.7-py2.7.egg -set NETWORKX_MD5=1d4c59f1e894f39f8928be8718905969 +set NETWORKX_DOWNLOAD="https://pypi.python.org/packages/2.7/n/networkx/networkx-1.11-py2.7.egg" +set NETWORKX_FILE=networkx-1.11-py2.7.egg +set NETWORKX_MD5=314fde21a33ad8f6753d7a06315722cc set DJANGO_DOWNLOAD="https://pypi.python.org/packages/source/D/Django/Django-1.6.2.tar.gz" set DJANGO_FILE=Django-1.6.2.tar.gz @@ -74,9 +74,9 @@ set WXPYTHON_DOWNLOAD="http://sourceforge.net/projects/wxpython/files/wxPython/3 set WXPYTHON_FILE=wxPython3.0-win32-3.0.0.0-py27.exe set WXPYTHON_MD5=37b0b48483cf8f26d05fe152d60c214a -set MATPLOTLIB_DOWNLOAD="http://sourceforge.net/projects/matplotlib/files/matplotlib/matplotlib-1.3.1/matplotlib-1.3.1.win32-py2.7.exe" -set MATPLOTLIB_FILE=matplotlib-1.3.1.win32-py2.7.exe -set MATPLOTLIB_MD5=08953f7c4b2ddd7c233b0e42db51f13a +set MATPLOTLIB_DOWNLOAD="http://sourceforge.net/projects/matplotlib/files/matplotlib/matplotlib-1.4.3/windows/matplotlib-1.4.3.win32-py2.7.exe" +set MATPLOTLIB_FILE=matplotlib-1.4.3.win32-py2.7.exe +set MATPLOTLIB_MD5=f43c20480a1673185afefc7d4848a1d2 set DATEUTIL_DOWNLOAD="https://pypi.python.org/packages/source/p/python-dateutil/python-dateutil-2.2.tar.gz" set DATEUTIL_FILE=python-dateutil-2.2.tar.gz @@ -87,17 +87,18 @@ set PYPARSING_DOWNLOAD="https://pypi.python.org/packages/any/p/pyparsing/pyparsi set PYPARSING_FILE=pyparsing-2.0.1.win32-py2.7.exe set PYPARSING_MD5=e312e220208383c0b87f3c36996cf47a -set LXML_DOWNLOAD="https://pypi.python.org/packages/2.7/l/lxml/lxml-3.3.4.win32-py2.7.exe" -set LXML_FILE=lxml-3.3.4.win32-py2.7.exe -set LXML_MD5=55384beefb503549675f752697c2095f +set LXML_DOWNLOAD="https://pypi.python.org/packages/2.7/l/lxml/lxml-3.4.3.win32-py2.7.exe" +set LXML_FILE=lxml-3.4.3.win32-py2.7.exe +set LXML_MD5=a22fd83608bf1a3127b1c2f233ac1e10 set PY_SERIAL_DOWNLOAD="http://sourceforge.net/projects/pyserial/files/pyserial/2.7/pyserial-2.7.win32.exe" set PY_SERIAL_FILE=pyserial-2.7.win32.exe set PY_SERIAL_MD5=21555387937eeb79126cde25abee4b35 -set PYODBC_DOWNLOAD="http://pyodbc.googlecode.com/files/pyodbc-3.0.7.win32-py2.7.exe" -set PYODBC_FILE=pyodbc-3.0.7.win32-py2.7.exe -set PYODBC_SHA1=e1992fe4d4983f16e33913e8162f89f50fcde2b0 +:: since pyodbc moved from google to github - installation via pip is required +:: set PYODBC_DOWNLOAD="http://pyodbc.googlecode.com/files/pyodbc-3.0.7.win32-py2.7.exe" +:: set PYODBC_FILE=pyodbc-3.0.7.win32-py2.7.exe +:: set PYODBC_SHA1=e1992fe4d4983f16e33913e8162f89f50fcde2b0 set PYGAME_DOWNLOAD="http://pygame.org/ftp/pygame-1.9.1.win32-py2.7.msi" set PYGAME_FILE=pygame-1.9.1.win32-py2.7.msi @@ -106,17 +107,17 @@ set PYGTK_DOWNLOAD="http://ftp.gnome.org/pub/GNOME/binaries/win32/pygtk/2.24/pyg set PYGTK_FILE=pygtk-all-in-one-2.24.2.win32-py2.7.msi set PYGTK_MD5=4bddf847f81d8de2d73048b113da3dd5 -set PYQT_DOWNLOAD="http://sourceforge.net/projects/pyqt/files/PyQt4/PyQt-4.10.4/PyQt4-4.10.4-gpl-Py2.7-Qt4.8.5-x32.exe" -set PYQT_FILE=PyQt4-4.10.4-gpl-Py2.7-Qt4.8.5-x32.exe -set PYQT_MD5=4dbba5c9920a5fa5311c294d5975b65f +set PYQT_DOWNLOAD="http://sourceforge.net/projects/pyqt/files/PyQt4/PyQt-4.11.3/PyQt4-4.11.3-gpl-Py2.7-Qt4.8.6-x32.exe" +set PYQT_FILE=PyQt4-4.11.3-gpl-Py2.7-Qt4.8.6-x32.exe +set PYQT_MD5=bf9e4d934a998ba081f29b065b88e213 set IPYTHON_DOWNLOAD="https://pypi.python.org/packages/source/i/ipython/ipython-1.2.1.zip" set IPYTHON_FILE=ipython-1.2.1.zip set IPYTHON_MD5=a4b36d55e2671c6e821018a63d50b8b1 -set PANDAS_DOWNLOAD="https://pypi.python.org/packages/2.7/p/pandas/pandas-0.11.0.win32-py2.7.exe" -set PANDAS_FILE=pandas-0.11.0.win32-py2.7.exe -set PANDAS_MD5=aaefa25cc5042f0408834f4d1f74ed10 +set PANDAS_DOWNLOAD="https://pypi.python.org/packages/2.7/p/pandas/pandas-0.16.0-cp27-none-win32.whl" +set PANDAS_FILE=pandas-0.16.0-cp27-none-win32.whl +set PANDAS_MD5=81cba8feac97e202dcabb9683d34204d set SIX_DOWNLOAD="https://pypi.python.org/packages/source/s/six/six-1.6.1.tar.gz" set SIX_FILE=six-1.6.1.tar.gz @@ -143,6 +144,6 @@ set OPENPYXL_FILE=openpyxl-1.8.5.tar.gz set OPENPYXL_FILE_TAR=openpyxl-1.8.5.tar set OPENPYXL_MD5=6f2eca608c3129dbfd77982713565709 -set PYCHARM_DOWNLOAD="http://download-cf.jetbrains.com/python/pycharm-community-3.1.2.exe" -set PYCHARM_FILE=pycharm-community-3.1.2.exe -set PYCHARM_MD5=4707668758b044bf5a4214557e7a15fa +set PYCHARM_DOWNLOAD="http://download.jetbrains.com/python/pycharm-community-2016.3.1.exe" +set PYCHARM_FILE=pycharm-community-2016.3.1.exe +set PYCHARM_SHA256=3546c3f68d142d85f6a5283f3a4ee4d1161238b82bc9c8296ad8010c4d8f11c1 diff --git a/2.7/test_imports.py b/config/2.7/test_imports.py similarity index 97% rename from 2.7/test_imports.py rename to config/2.7/test_imports.py index a7746ef..a1778cd 100644 --- a/2.7/test_imports.py +++ b/config/2.7/test_imports.py @@ -4,7 +4,7 @@ class TestCoreSystem(unittest.TestCase): """Test Python core and associated tools""" def test_python(self): import platform - self.assertEqual(platform.python_version(), "2.7.6") + self.assertEqual(platform.python_version(), "2.7.10") def test_setuptools(self): import setuptools diff --git a/3.2/descriptions.nsh b/config/3.2/descriptions.nsh similarity index 100% rename from 3.2/descriptions.nsh rename to config/3.2/descriptions.nsh diff --git a/3.2/modules.bat b/config/3.2/modules.bat similarity index 98% rename from 3.2/modules.bat rename to config/3.2/modules.bat index 459802b..340c829 100644 --- a/3.2/modules.bat +++ b/config/3.2/modules.bat @@ -25,6 +25,13 @@ :: Include common functions set COMMON=.\..\common.bat +:: CHECK Parameter, maybe only a subset of packages should be build +if [%1]==[] (SET _packagelist=All) ELSE (SET _packagelist=%*) +for %%G in (%_packagelist%) do (call :Unpack%%G) +goto:EOF + +:UnpackAll + call :UnpackPython call :UnpackPyScripter call :UnpackPyCharm @@ -35,7 +42,8 @@ call :UnpackNetworkX call :UnpackMatplotlib call :UnpackLXML call :UnpackPySerial -call :UnpackPyODBC +:: since pyodbc moved from google to github - installation via pip is required +:: call :UnpackPyODBC call :UnpackPyQT call :UnpackIPython call :UnpackPandas @@ -484,7 +492,7 @@ setlocal ENABLEEXTENSIONS call COMMON :DownloadFile %PYCHARM_DOWNLOAD% :: Verify -call COMMON :VerifyFile %PYCHARM_FILE% MD5 %PYCHARM_MD5% +call COMMON :VerifyFile %PYCHARM_FILE% SHA256 %PYCHARM_SHA256% :: Unpack files call COMMON :LogMessage "Extracting PyCharm files" diff --git a/3.2/modules.nsh b/config/3.2/modules.nsh similarity index 95% rename from 3.2/modules.nsh rename to config/3.2/modules.nsh index 561470a..1631ad7 100644 --- a/3.2/modules.nsh +++ b/config/3.2/modules.nsh @@ -70,12 +70,13 @@ SectionGroup "Modules" SetOutPath "$INSTDIR\App\Lib\site-packages\" File /r "${SOURCESFOLDER}\pyserial\PURELIB\*.*" SectionEnd +/* since pyodbc moved from google to github - installation via pip is required Section "PyODBC 3.0.2" MODULE_PYODBC SectionIn 1 SetOutPath "$INSTDIR\App\Lib\site-packages\" File /r "${SOURCESFOLDER}\pyodbc\PLATLIB\*.*" SectionEnd - Section "PyQT 4.9.6-1" MODULE_PYQT +*/ Section "PyQT 4.9.6-1" MODULE_PYQT SectionIn 1 SetOutPath "$INSTDIR\App\Lib\" File /r "${SOURCESFOLDER}\pyqt\Lib\*.*" @@ -105,7 +106,7 @@ SectionGroup "Code editors" File /r "${SOURCESFOLDER}\PyScripter\*.*" File "${SOURCESFOLDER}\PyScripter-Portable.exe" SectionEnd - Section "PyCharm Community 3.1.2" IDE_PYCHARM + Section "PyCharm Community 2016.3.1" IDE_PYCHARM SectionIn 1 SetOutPath "$INSTDIR" File /r "${SOURCESFOLDER}\PyCharm\*.*" diff --git a/3.2/settings.bat b/config/3.2/settings.bat similarity index 89% rename from 3.2/settings.bat rename to config/3.2/settings.bat index 1b730b0..c013d33 100644 --- a/3.2/settings.bat +++ b/config/3.2/settings.bat @@ -70,9 +70,10 @@ set PY_SERIAL_DOWNLOAD="http://pypi.python.org/packages/any/p/pyserial/pyserial- set PY_SERIAL_FILE=pyserial-py3k-2.5.win32.exe set PY_SERIAL_MD5=c7d770dede6f6c6197d9652a7658f18e -set PYODBC_DOWNLOAD="http://pyodbc.googlecode.com/files/pyodbc-3.0.2.win32-py3.2.exe" -set PYODBC_FILE=pyodbc-3.0.2.win32-py3.2.exe -set PYODBC_SHA1=9abe8b36be9f3a2dbb427a4a049e9b70cd909c6d +:: since pyodbc moved from google to github - installation via pip is required +:: set PYODBC_DOWNLOAD="http://pyodbc.googlecode.com/files/pyodbc-3.0.2.win32-py3.2.exe" +:: set PYODBC_FILE=pyodbc-3.0.2.win32-py3.2.exe +:: set PYODBC_SHA1=9abe8b36be9f3a2dbb427a4a049e9b70cd909c6d set PYQT_DOWNLOAD="http://sourceforge.net/projects/pyqt/files/PyQt4/PyQt-4.9.6/PyQt-Py3.2-x86-gpl-4.9.6-1.exe" set PYQT_FILE=PyQt-Py3.2-x86-gpl-4.9.6-1.exe @@ -86,6 +87,6 @@ set PANDAS_DOWNLOAD="https://pypi.python.org/packages/3.2/p/pandas/pandas-0.11.0 set PANDAS_FILE=pandas-0.11.0.win32-py3.2.exe set PANDAS_MD5=7f11d2f59284c5ba64e7d781e1023f95 -set PYCHARM_DOWNLOAD="http://download-cf.jetbrains.com/python/pycharm-community-3.1.2.exe" -set PYCHARM_FILE=pycharm-community-3.1.2.exe -set PYCHARM_MD5=4707668758b044bf5a4214557e7a15fa \ No newline at end of file +set PYCHARM_DOWNLOAD="http://download.jetbrains.com/python/pycharm-community-2016.3.1.exe" +set PYCHARM_FILE=pycharm-community-2016.3.1.exe +set PYCHARM_SHA256=3546c3f68d142d85f6a5283f3a4ee4d1161238b82bc9c8296ad8010c4d8f11c1 diff --git a/config/3.4/descriptions.nsh b/config/3.4/descriptions.nsh new file mode 100644 index 0000000..5c6c748 --- /dev/null +++ b/config/3.4/descriptions.nsh @@ -0,0 +1,59 @@ +; ================================================================= +; The MIT License (MIT) +; Copyright (c) 2007 Perica Zivkovic + +; Permission is hereby granted, free of charge, to any person obtaining a copy +; of this software and associated documentation files (the "Software"), to deal +; in the Software without restriction, including without limitation the rights +; to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +; copies of the Software, and to permit persons to whom the Software is furnished +; to do so, subject to the following conditions: + +; The above copyright notice and this permission notice shall be included in all +; copies or substantial portions of the Software. + +; THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +; EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +; MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +; IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +; DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +; ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +; OTHER DEALINGS IN THE SOFTWARE. + +; http://PortablePython.com +; ================================================================= + +; This file keeps generic mofule descriptions. +; Don't use any version numbers here as it is shared between versions. + +LangString DESC_PYTHON_CORE ${LANG_ENGLISH} "Installs Python core engine. This component is required and can not be deselected." +LangString DESC_IDE_PYSCRIPTER ${LANG_ENGLISH} "PyScripter is a free and open-source Python Integrated Development Environment (IDE)." +LangString DESC_IDE_PYCHARM ${LANG_ENGLISH} "PyCharm Community is a free Python Integrated Development Environment (IDE)." +LangString DESC_MODULE_PYWIN32 ${LANG_ENGLISH} "Python Extensions for Windows." +LangString DESC_MODULE_NETWORKX ${LANG_ENGLISH} "Python package for the creation, manipulation, and study of the structure, dynamics, and functions of complex networks." +LangString DESC_MODULE_PY_SERIAL ${LANG_ENGLISH} "This module encapsulates the access for the serial port." +LangString DESC_MODULE_NUMPY ${LANG_ENGLISH} "NumPy is the fundamental package needed for scientific computing with Python." +LangString DESC_MODULE_SCIPY ${LANG_ENGLISH} "SciPy is open-source software for mathematics, science, and engineering" +LangString DESC_MODULE_MATPLOTLIB ${LANG_ENGLISH} "2D plotting library which produces publication quality figures in a variety of hardcopy formats and interactive environments across platforms" +LangString DESC_MODULE_LXML ${LANG_ENGLISH} "Powerful and Pythonic XML processing library combining libxml2/libxslt with the ElementTree API." +LangString DESC_MODULE_PYODBC ${LANG_ENGLISH} "Module that allows you to use ODBC to connect to almost any database from Windows, Linux, OS/X, and more." +LangString DESC_MODULE_PYQT ${LANG_ENGLISH} "PYQT is a set of Python bindings for Nokia's Qt application framework implemented as a set of Python modules and contain over 300 classes and over 6,000 functions and methods." +LangString DESC_MODULE_IPYTHON ${LANG_ENGLISH} "IPython provides a rich toolkit to help you make the most out of using Python interactively." +LangString DESC_MODULE_PANDAS ${LANG_ENGLISH} "Pandas is a Python package providing fast, flexible, and expressive data structures designed to make working with structured (tabular, multidimensional, potentially heterogeneous) and time series data both easy and intuitive." + + +!insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN + !insertmacro MUI_DESCRIPTION_TEXT ${PYTHON_CORE} $(DESC_PYTHON_CORE) + !insertmacro MUI_DESCRIPTION_TEXT ${IDE_PYSCRIPTER} $(DESC_IDE_PYSCRIPTER) + !insertmacro MUI_DESCRIPTION_TEXT ${IDE_PYCHARM} $(DESC_IDE_PYCHARM) +; !insertmacro MUI_DESCRIPTION_TEXT ${MODULE_PYWIN32} $(DESC_MODULE_PYWIN32) +; !insertmacro MUI_DESCRIPTION_TEXT ${MODULE_NETWORKX} $(DESC_MODULE_NETWORKX) +; !insertmacro MUI_DESCRIPTION_TEXT ${MODULE_PY_SERIAL} $(DESC_MODULE_PY_SERIAL) +; !insertmacro MUI_DESCRIPTION_TEXT ${MODULE_NUMPY} $(DESC_MODULE_NUMPY) +; !insertmacro MUI_DESCRIPTION_TEXT ${MODULE_SCIPY} $(DESC_MODULE_SCIPY) +; !insertmacro MUI_DESCRIPTION_TEXT ${MODULE_MATPLOTLIB} $(DESC_MODULE_MATPLOTLIB) +; !insertmacro MUI_DESCRIPTION_TEXT ${MODULE_LXML} $(DESC_MODULE_LXML) +; !insertmacro MUI_DESCRIPTION_TEXT ${MODULE_PYODBC} $(DESC_MODULE_PYODBC) +; !insertmacro MUI_DESCRIPTION_TEXT ${MODULE_PYQT} $(DESC_MODULE_PYQT) +; !insertmacro MUI_DESCRIPTION_TEXT ${MODULE_IPYTHON} $(DESC_MODULE_IPYTHON) +!insertmacro MUI_FUNCTION_DESCRIPTION_END \ No newline at end of file diff --git a/config/3.4/modules.bat b/config/3.4/modules.bat new file mode 100644 index 0000000..c1efab5 --- /dev/null +++ b/config/3.4/modules.bat @@ -0,0 +1,514 @@ +::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: +:: The MIT License (MIT) +:: Copyright (c) 2007 Perica Zivkovic + +:: Permission is hereby granted, free of charge, to any person obtaining a +:: copy of this software and associated documentation files (the "Software"), +:: to deal in the Software without restriction, including without limitation +:: the rights to use, copy, modify, merge, publish, distribute, sublicense, +:: and/or sell copies of the Software, and to permit persons to whom the +:: Software is furnished to do so, subject to the following conditions: + +:: The above copyright notice and this permission notice shall be included +:: in all copies or substantial portions of the Software. + +:: THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +:: OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +:: FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +:: AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +:: WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +:: CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +:: http://PortablePython.com +::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: + +:: Include common functions +set COMMON=.\..\common.bat + +call :UnpackPython +call :UnpackPyScripter +call :UnpackPyCharm +:: call :UnpackNumPy +:: call :UnpackSciPy +:: call :UnpackPyWin32 +:: call :UnpackNetworkX +:: call :UnpackMatplotlib +:: call :UnpackLXML +:: call :UnpackPySerial +:: call :UnpackPyODBC +:: call :UnpackPyQT +:: call :UnpackIPython +:: call :UnpackPandas + +goto:EOF + +::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: +:UnpackPython +:: +:: By: Perica Zivkovic +:: Func: Downloads and extracts Python core files and patches MSCRT +:: Args: none +::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: +setlocal ENABLEEXTENSIONS + +:: Download python +call COMMON :DownloadFile %PY_MSI_DOWNLOAD% + +:: Verify python core +call COMMON :VerifyFile %PY_MSI_FILE% MD5 %PY_MSI_MD5% + +:: Unpack python core +call COMMON :LogMessage "Extracting python core files" +msiexec /quiet /a "%BIN_FOLDER%\%PY_MSI_FILE%" TARGETDIR="%UNPACK_FOLDER%\python-core\App" + +:: Unpack MSCRT patch +call COMMON :LogMessage "Extracting MSCRT patch" +tools\uniextract16\UniExtract.exe patches\Microsoft.VC100.CRT.PPpatch %UNPACK_FOLDER%\python-core\App >NUL + +:: Configure prompt +echo import sys >> "%UNPACK_FOLDER%\python-core\App\Lib\ppp.py" +echo sys.ps1 = "Portable Python >>> " >> "%UNPACK_FOLDER%\python-core\App\Lib\ppp.py" + +:: Build Shortcuts +call COMMON :LogMessage "Build shortcuts" +tools\nsis\makensis.exe /V0 /DSHORTCUTNAME=Python /DPY_VERSION=%PY_VERSION% /DPP_VERSION=%PP_VERSION% shortcuts\shortcut.nsi +tools\nsis\makensis.exe /V0 /DSHORTCUTNAME=IDLE /DPY_VERSION=%PY_VERSION% /DPP_VERSION=%PP_VERSION% shortcuts\shortcut.nsi + +:: Copy shortcut +call COMMON :LogMessage "Copy Python Portable shortcut" +copy shortcuts\Python-Portable.exe "%UNPACK_FOLDER%" 1>NUL +copy shortcuts\IDLE-Portable.exe "%UNPACK_FOLDER%" 1>NUL +copy shortcuts\PortablePythonPrompt.cmd "%UNPACK_FOLDER%" 1>NUL + +:: Fix +call COMMON :FixMSCRT %UNPACK_FOLDER%\python-core\ + +endlocal&goto :EOF +::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: + +::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: +:UnpackPyScripter +:: +:: By: Perica Zivkovic +:: Func: Downloads and extracts pyScripter +:: Args: none +::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: +setlocal ENABLEEXTENSIONS + +:: Download PyScripter +call COMMON :DownloadFile %PY_SCRIPTER_DOWNLOAD% + +:: Verify +call COMMON :VerifyFile %PY_SCRIPTER_FILE% SHA1 %PY_SCRIPTER_SHA1% + +:: Unpack files +call COMMON :LogMessage "Extracting PyScripter files" +tools\uniextract16\UniExtract.exe "%BIN_FOLDER%\%PY_SCRIPTER_FILE%" %UNPACK_FOLDER%\pyscripter-temp >NUL + +:: Copy files to PyScripter folder +call COMMON :LogMessage "Copy files to PyScripter folder" +mkdir %UNPACK_FOLDER%\PyScripter +ROBOCOPY /NP /E /MOVE "%UNPACK_FOLDER%\pyscripter-temp\PyScripter" "%UNPACK_FOLDER%\PyScripter\App" +:: mkdir %UNPACK_FOLDER%\PyScripter\App +:: mkdir %UNPACK_FOLDER%\PyScripter\App\locale +:: mkdir %UNPACK_FOLDER%\PyScripter\App\Skins +:: copy %UNPACK_FOLDER%\pyscripter-temp\PyScripter\PyScripter.exe "%UNPACK_FOLDER%\PyScripter\App\" >NUL +:: copy %UNPACK_FOLDER%\pyscripter-temp\PyScripter\PyScripter.chm "%UNPACK_FOLDER%\PyScripter\App\" >NUL +:: copy %UNPACK_FOLDER%\pyscripter-temp\PyScripter\PyProject.ico "%UNPACK_FOLDER%\PyScripter\App\" >NUL +:: xcopy /QEY %UNPACK_FOLDER%\pyscripter-temp\PyScripter\locale "%UNPACK_FOLDER%\PyScripter\App\locale" >NUL + +:: Unpack rpyc +:: call COMMON :LogMessage "Unpack rypc" +:: tools\uniextract16\UniExtract.exe "%UNPACK_FOLDER%\pyscripter-temp\PyScripter\Lib\rpyc.zip" %UNPACK_FOLDER%\PyScripter\App\Lib\site-packages\ >NUL + +:: Patch PyScripter +call COMMON :LogMessage "Patch PyScripter" +xcopy /QEY patches\PyScripter26.ini %UNPACK_FOLDER%\PyScripter\App\PyScripter.ini 1>NUL 2>NUL + +:: Build Shortcut +call COMMON :LogMessage "Build PyScripter shortcut" +tools\nsis\makensis.exe /V0 /DSHORTCUTNAME=PyScripter /DPY_VERSION=%PY_VERSION% /DPP_VERSION=%PP_VERSION% /DPY_SHORT_VERSION=%PY_SHORT_VERSION% shortcuts\shortcut.nsi + +:: Copy shortcuts +call COMMON :LogMessage "Copy PyScripter shortcut" +copy shortcuts\PyScripter-Portable.exe "%UNPACK_FOLDER%" >NUL + +endlocal&goto :EOF +::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: + +::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: +:UnpackNumPy +:: +:: By: Perica Zivkovic +:: Func: Downloads and extracts numpy +:: Args: none +::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: +setlocal ENABLEEXTENSIONS + +:: Download +call COMMON :DownloadFile %NUMPY_DOWNLOAD% + +:: Verify +call COMMON :VerifyFile %NUMPY_FILE% MD5 %NUMPY_ZIP_MD5% + +:: Unpack files +call COMMON :LogMessage "Extracting NumPy files" +tools\uniextract16\bin\7z.exe x "%BIN_FOLDER%\%NUMPY_FILE%" -o%UNPACK_FOLDER%\numpy\ -y >NUL +tools\uniextract16\UniExtract.exe "%UNPACK_FOLDER%\numpy\%NUMPY_FILE_NOSSE%" %UNPACK_FOLDER%\numpy\ >NUL + +:: Fix +call COMMON :FixMSCRT %UNPACK_FOLDER%\numpy\ + +endlocal&goto :EOF +::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: + +::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: +:UnpackSciPy +:: +:: By: Perica Zivkovic +:: Func: Downloads and extracts scipy +:: Args: none +::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: +setlocal ENABLEEXTENSIONS + +:: Download +call COMMON :DownloadFile %SCIPY_DOWNLOAD% + +:: Verify +call COMMON :VerifyFile %SCIPY_FILE% MD5 %SCIPY_ZIP_MD5% + +:: Unpack files +call COMMON :LogMessage "Extracting SciPy files" +tools\uniextract16\bin\7z.exe x "%BIN_FOLDER%\%SCIPY_FILE%" -o%UNPACK_FOLDER%\scipy\ -y >NUL +tools\uniextract16\bin\7z.exe x "%UNPACK_FOLDER%\scipy\%SCIPY_FILE_NOSSE%" -o%UNPACK_FOLDER%\scipy\ -y >NUL + +:: Fix +call COMMON :FixMSCRT %UNPACK_FOLDER%\scipy\ + +endlocal&goto :EOF +::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: + +::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: +:UnpackPyWin32 +:: +:: By: Perica Zivkovic +:: Func: Downloads and extracts pywin32 +:: Args: none +::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: +setlocal ENABLEEXTENSIONS + +:: Download +call COMMON :DownloadFile %PYWIN32_DOWNLOAD% + +:: Verify +call COMMON :VerifyFile %PYWIN32_FILE% MD5 %PYWIN32_MD5% + +:: Unpack files +call COMMON :LogMessage "Extracting PyWin32 files" +mkdir %UNPACK_FOLDER%\pywin32-temp\ +tools\uniextract16\bin\7z.exe x "%BIN_FOLDER%\%PYWIN32_FILE%" -o%UNPACK_FOLDER%\pywin32-temp\ >NUL + +mkdir %UNPACK_FOLDER%\pywin32\ +mkdir %UNPACK_FOLDER%\pywin32\Lib +mkdir %UNPACK_FOLDER%\pywin32\Lib\site-packages\ + +xcopy /QEY %UNPACK_FOLDER%\pywin32-temp\PLATLIB\pywin32_system32\*.* %UNPACK_FOLDER%\pywin32\ >NUL +rmdir /S /Q %UNPACK_FOLDER%\pywin32-temp\PLATLIB\pywin32_system32 >NUL +xcopy /QEY %UNPACK_FOLDER%\pywin32-temp\PLATLIB\*.* %UNPACK_FOLDER%\pywin32\Lib\site-packages\ >NUL + +:: Fix +call COMMON :FixMSCRT %UNPACK_FOLDER%\pywin32\ + +endlocal&goto :EOF +::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: + +::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: +:UnpackNetworkX +:: +:: By: Perica Zivkovic +:: Func: Downloads and extracts networkx +:: Args: none +::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: +setlocal ENABLEEXTENSIONS + +:: Download +call COMMON :DownloadFile %NETWORKX_DOWNLOAD% + +:: Verify +call COMMON :VerifyFile %NETWORKX_FILE% MD5 %NETWORKX_MD5% >NUL + +:: Unpack files +call COMMON :LogMessage "Extracting networkx files" +tools\uniextract16\UniExtract.exe "%BIN_FOLDER%\%NETWORKX_FILE%" %UNPACK_FOLDER%\networkx\ >NUL + +:: Fix +call COMMON :FixMSCRT %UNPACK_FOLDER%\networkx\ + +endlocal&goto :EOF +::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: + +::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: +:UnpackMatplotlib +:: +:: By: Perica Zivkovic +:: Func: Downloads and extracts Matplotlib +:: Args: none +::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: +setlocal ENABLEEXTENSIONS + +:: Download +call COMMON :DownloadFile %MATPLOTLIB_DOWNLOAD% + +:: Verify +call COMMON :VerifyFile %MATPLOTLIB_FILE% MD5 %MATPLOTLIB_MD5% + +:: Unpack files +call COMMON :LogMessage "Extracting matplotlib files" +tools\uniextract16\bin\7z.exe x "%BIN_FOLDER%\%MATPLOTLIB_FILE%" -o%UNPACK_FOLDER%\matplotlib\ -y >NUL + +:: Fix +call COMMON :FixMSCRT %UNPACK_FOLDER%\matplotlib\ + +endlocal&goto :EOF +::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: + +::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: +:UnpackLXML +:: +:: By: Perica Zivkovic +:: Func: Downloads and extracts LXML +:: Args: none +::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: +setlocal ENABLEEXTENSIONS + +:: Download +call COMMON :DownloadFile %LXML_DOWNLOAD% + +:: Unpack files +call COMMON :LogMessage "Extracting LXML files" +tools\uniextract16\UniExtract.exe "%BIN_FOLDER%\%LXML_FILE%" %UNPACK_FOLDER%\lxml\ 1>NUL 2>NUL + +:: Fix +call COMMON :FixMSCRT %UNPACK_FOLDER%\lxml\ + +endlocal&goto :EOF +::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: + +::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: +:UnpackPySerial +:: +:: By: Perica Zivkovic +:: Func: Downloads and extracts PySerial +:: Args: none +::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: +setlocal ENABLEEXTENSIONS + +:: Download +call COMMON :DownloadFile %PY_SERIAL_DOWNLOAD% %PY_SERIAL_FILE% + +:: Verify +call COMMON :VerifyFile %PY_SERIAL_FILE% MD5 %PY_SERIAL_MD5% + +:: Unpack files +call COMMON :LogMessage "Extracting PySerial files" +tools\uniextract16\UniExtract.exe "%BIN_FOLDER%\%PY_SERIAL_FILE%" %UNPACK_FOLDER%\pyserial\ >NUL + +:: Fix +call COMMON :FixMSCRT %UNPACK_FOLDER%\pyserial\ + +endlocal&goto :EOF +::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: + +::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: +:UnpackPyODBC +:: +:: By: Perica Zivkovic +:: Func: Downloads and extracts PyODBC +:: Args: none +::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: +setlocal ENABLEEXTENSIONS + +:: Download +call COMMON :DownloadFile %PYODBC_DOWNLOAD% + +:: Verify +call COMMON :VerifyFile %PYODBC_FILE% SHA1 %PYODBC_SHA1% + +:: Unpack files +call COMMON :LogMessage "Extracting PyODBC files" +tools\uniextract16\UniExtract.exe "%BIN_FOLDER%\%PYODBC_FILE%" %UNPACK_FOLDER%\pyodbc\ >NUL + +:: Fix +call COMMON :FixMSCRT %UNPACK_FOLDER%\pyodbc\ + +endlocal&goto :EOF +::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: + +::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: +:UnpackPyQT +:: +:: By: Perica Zivkovic +:: Func: Downloads and extracts PyQT +:: Args: none +::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: +setlocal ENABLEEXTENSIONS + +:: Download +call COMMON :DownloadFile %PYQT_DOWNLOAD% + +:: Verify +call COMMON :VerifyFile %PYQT_FILE% MD5 %PYQT_MD5% + +:: Unpack files +call COMMON :LogMessage "Extracting PyQT files" +tools\uniextract16\UniExtract.exe "%BIN_FOLDER%\%PYQT_FILE%" %UNPACK_FOLDER%\pyqt\ >NUL + +:: Patch uic +call COMMON :LogMessage "Patching PyQt4 uic" +echo "#" > "%UNPACK_FOLDER%\pyqt\$[31]\uic\port_v3\__init__.py" +mkdir "%UNPACK_FOLDER%\pyqt\Lib\site-packages\PyQt4\uic" +xcopy /EY "%UNPACK_FOLDER%\pyqt\$[31]\uic" "%UNPACK_FOLDER%\pyqt\Lib\site-packages\PyQt4\uic" >NUL +mkdir "%UNPACK_FOLDER%\pyqt\Lib\site-packages\PyQt4\doc" +xcopy /EY "%UNPACK_FOLDER%\pyqt\$[31]\doc" "%UNPACK_FOLDER%\pyqt\Lib\site-packages\PyQt4\doc" >NUL +xcopy /EY "%UNPACK_FOLDER%\pyqt\$[31]\include" "%UNPACK_FOLDER%\pyqt\Lib\site-packages\PyQt4\include" >NUL + +:: Patch Qt.conf +echo [Paths] >> "%UNPACK_FOLDER%\pyqt\Lib\site-packages\PyQt4\qt.conf" +echo Prefix = . >> "%UNPACK_FOLDER%\pyqt\Lib\site-packages\PyQt4\qt.conf" +echo Binaries = . >> "%UNPACK_FOLDER%\pyqt\Lib\site-packages\PyQt4\qt.conf" + +:: Unpack MSCRT patch +call COMMON :LogMessage "Extracting MSCRT patch" +tools\uniextract16\UniExtract.exe patches\Microsoft.VC90.CRT.PPpatch %UNPACK_FOLDER%\pyqt\Lib\site-packages\PyQt4 >NUL + +:: Build Shortcut +call COMMON :LogMessage "Build QtDesigner shortcut" +tools\nsis\makensis.exe /V0 /DSHORTCUTNAME=QtDesigner /DPY_VERSION=%PY_VERSION% /DPP_VERSION=%PP_VERSION% /DPY_SHORT_VERSION=%PY_SHORT_VERSION% shortcuts\shortcut.nsi + +:: Copy shortcut +call COMMON :LogMessage "Copy QtDesigner Portable shortcut" +copy shortcuts\QtDesigner-Portable.exe "%UNPACK_FOLDER%" 1>NUL + +:: Fix +call COMMON :FixMSCRT %UNPACK_FOLDER%\pyqt\ + +endlocal&goto :EOF +::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: + +::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: +:UnpackIPython +:: +:: By: Perica Zivkovic +:: Func: Downloads and extracts IPython +:: Args: none +::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: +setlocal ENABLEEXTENSIONS + +:: Download +call COMMON :DownloadFile %IPYTHON_DOWNLOAD% + +:: Verify +call COMMON :VerifyFile %IPYTHON_FILE% MD5 %IPYTHON_MD5% + +:: Unpack files +call COMMON :LogMessage "Extracting IPython files" +tools\uniextract16\bin\7z.exe x "%BIN_FOLDER%\%IPYTHON_FILE%" -o%UNPACK_FOLDER%\ipython\ -y >NUL + +:: Fix +call COMMON :FixMSCRT %UNPACK_FOLDER%\ipython\ + +:: Unpack files +call COMMON :LogMessage "Extracting PyReadline files" +tools\uniextract16\bin\7z.exe x patches\pyreadline-2.0-dev1.win32-py3.2.PPpatch -o%UNPACK_FOLDER%\pyreadline\ -y >NUL + +:: Fix +call COMMON :FixMSCRT %UNPACK_FOLDER%\pyreadline\ + +:: Build Shortcuts +call COMMON :LogMessage "Build shortcuts" +tools\nsis\makensis.exe /V0 /DSHORTCUTNAME=IPython /DPY_VERSION=%PY_VERSION% /DPP_VERSION=%PP_VERSION% shortcuts\shortcut.nsi + +:: Copy shortcut +call COMMON :LogMessage "Copy Python Portable shortcut" +copy shortcuts\IPython-Portable.exe "%UNPACK_FOLDER%" 1>NUL + +endlocal&goto :EOF +::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: + +::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: +:UnpackPandas +:: +:: By: Perica Zivkovic +:: Func: Downloads and extracts Pandas +:: Args: none +::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: +setlocal ENABLEEXTENSIONS + +:: Download +call COMMON :DownloadFile %PANDAS_DOWNLOAD% + +:: Unpack files +call COMMON :LogMessage "Extracting Pandas files" +tools\uniextract16\UniExtract.exe "%BIN_FOLDER%\%PANDAS_FILE%" %UNPACK_FOLDER%\pandas\ >NUL + +:: Fix +call COMMON :FixMSCRT %UNPACK_FOLDER%\pandas\ + +endlocal&goto :EOF +::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: + +::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: +:UnpackPyCharm +:: +:: By: Krzysztof Cebulski +:: Func: Downloads and extracts PyCharm Community Edition +:: Args: none +::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: +setlocal ENABLEEXTENSIONS +:: Download PyCharm +call COMMON :DownloadFile %PYCHARM_DOWNLOAD% + +:: Verify +call COMMON :VerifyFile %PYCHARM_FILE% MD5 %PYCHARM_MD5% + +:: Unpack files +call COMMON :LogMessage "Extracting PyCharm files" +tools\uniextract16\UniExtract.exe "%BIN_FOLDER%\%PYCHARM_FILE%" %UNPACK_FOLDER%\pycharm-temp >NUL + +:: Copy files to PyCharm folder +call COMMON :LogMessage "Copy files to PyCharm folder" +RD %UNPACK_FOLDER%\pycharm-temp\$PLUGINSDIR /S /Q +RD %UNPACK_FOLDER%\pycharm-temp\bin\$PLUGINSDIR /S /Q +RD "%UNPACK_FOLDER%\PyCharm" /S /Q +mkdir %UNPACK_FOLDER%\PyCharm +mkdir %UNPACK_FOLDER%\PyCharm\App +move /Y "%UNPACK_FOLDER%\pycharm-temp" "%UNPACK_FOLDER%\PyCharm\App\PyCharm" + +:: Patch PyCharm +call COMMON :LogMessage "Patch PyCharm" +del %UNPACK_FOLDER%\PyCharm\App\PyCharm\bin\idea.properties /Q +tools\uniextract16\bin\7z.exe x patches\PyCharm.4.0.x.PPpatch -o%UNPACK_FOLDER%\PyCharm\App\PyCharm -y >NUL + +:: Replace @PY_VERSION@ in jdk.table.xml.tmp to %PY_VERSION% jdk.table.xml +setlocal ENABLEDELAYEDEXPANSION +set filein="%UNPACK_FOLDER%\PyCharm\App\PyCharm\.PyCharm\config\options\jdk.table.xml.tmp" +set fileout="%UNPACK_FOLDER%\PyCharm\App\PyCharm\.PyCharm\config\options\jdk.table.xml" +set old=@PY_VERSION@ +set new=%PY_VERSION% +(for /f "usebackq tokens=* delims=? " %%i in (`type %filein%`) do ( + set str=%%i + set str=!str:%old%=%new%! + echo !str! +)) > %fileout% +del %filein% + +:: Build Shortcut +call COMMON :LogMessage "Build PyCharm shortcut" +tools\nsis\makensis.exe /V0 /DSHORTCUTNAME=PyCharm /DPY_VERSION=%PY_VERSION% /DPP_VERSION=%PP_VERSION% shortcuts\shortcut.nsi + +:: Copy shortcuts +call COMMON :LogMessage "Copy PyCharm shortcut" +copy shortcuts\PyCharm-Portable.exe "%UNPACK_FOLDER%" >NUL + +endlocal&goto :EOF +::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: \ No newline at end of file diff --git a/config/3.4/modules.nsh b/config/3.4/modules.nsh new file mode 100644 index 0000000..57e481b --- /dev/null +++ b/config/3.4/modules.nsh @@ -0,0 +1,118 @@ +; ================================================================= +; The MIT License (MIT) +; Copyright (c) 2007 Perica Zivkovic + +; Permission is hereby granted, free of charge, to any person obtaining a copy +; of this software and associated documentation files (the "Software"), to deal +; in the Software without restriction, including without limitation the rights +; to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +; copies of the Software, and to permit persons to whom the Software is furnished +; to do so, subject to the following conditions: + +; The above copyright notice and this permission notice shall be included in all +; copies or substantial portions of the Software. + +; THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +; EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +; MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +; IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +; DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +; ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +; OTHER DEALINGS IN THE SOFTWARE. + +; http://PortablePython.com +; ================================================================= + +InstType "Full" +InstType "Minimal" + +Section "!Python 3.4.4 core (x64)" PYTHON_CORE + SectionIn 1 2 RO + SetOutPath "$INSTDIR" + File /r "${SOURCESFOLDER}\python-core\*.*" + File "${SOURCESFOLDER}\Python-Portable.exe" + File "${SOURCESFOLDER}\IDLE-Portable.exe" + File "${SOURCESFOLDER}\PortablePythonPrompt.cmd" +SectionEnd + +;SectionGroup "Modules" +; Section "NumPy 1.7.1" MODULE_NUMPY +; SectionIn 1 +; SetOutPath "$INSTDIR\App\Lib\site-packages\" +; File /r "${SOURCESFOLDER}\numpy\PLATLIB\*.*" +; SectionEnd +; Section "SciPy 0.12.0" MODULE_SCIPY +; SectionIn 1 +; SetOutPath "$INSTDIR\App\Lib\site-packages\" +; File /r "${SOURCESFOLDER}\scipy\PLATLIB\*.*" +; SectionEnd +; Section "PyWin32 218" MODULE_PYWIN32 +; SectionIn 1 +; SetOutPath "$INSTDIR\App\" +; File /r "${SOURCESFOLDER}\pywin32\*.*" +; SectionEnd +; Section "NetworkX 1.7" MODULE_NETWORKX +; SectionIn 1 +; SetOutPath "$INSTDIR\App\Lib\site-packages\networkx\" +; File /r "${SOURCESFOLDER}\networkx\networkx\*.*" +; SectionEnd +; Section "matplotlib 1.2.1" MODULE_MATPLOTLIB +; SectionIn 1 +; SetOutPath "$INSTDIR\App\Lib\site-packages\" +; File /r "${SOURCESFOLDER}\matplotlib\PLATLIB\*.*" +; SectionEnd +; Section "lxml 2.3" MODULE_LXML +; SectionIn 1 +; SetOutPath "$INSTDIR\App\Lib\site-packages\" +; File /r "${SOURCESFOLDER}\lxml\PLATLIB\*.*" +; SectionEnd +; Section "PySerial 2.5" MODULE_PY_SERIAL +; SectionIn 1 +; SetOutPath "$INSTDIR\App\Lib\site-packages\" +; File /r "${SOURCESFOLDER}\pyserial\PURELIB\*.*" +; SectionEnd +; Section "PyODBC 3.0.2" MODULE_PYODBC +; SectionIn 1 +; SetOutPath "$INSTDIR\App\Lib\site-packages\" +; File /r "${SOURCESFOLDER}\pyodbc\PLATLIB\*.*" +; SectionEnd +; Section "PyQT 4.9.6-1" MODULE_PYQT +; SectionIn 1 +; SetOutPath "$INSTDIR\App\Lib\" +; File /r "${SOURCESFOLDER}\pyqt\Lib\*.*" +; SetOutPath "$INSTDIR" +; File "${SOURCESFOLDER}\QtDesigner-Portable.exe" +; SectionEnd +; Section "IPython 0.13.1" MODULE_IPYTHON +; SectionIn 1 +; SetOutPath "$INSTDIR\App\Lib\site-packages\" +; File /r "${SOURCESFOLDER}\ipython\PURELIB\*.*" +; SetOutPath "$INSTDIR\App\Lib\site-packages\" +; File /r "${SOURCESFOLDER}\pyreadline\PURELIB\*.*" +; SetOutPath "$INSTDIR" +; File "${SOURCESFOLDER}\IPython-Portable.exe" +; SectionEnd +; Section "Pandas 0.11.0" MODULE_PANDAS +; SectionIn 1 +; SetOutPath "$INSTDIR\App\Lib\site-packages\" +; File /r "${SOURCESFOLDER}\pandas\PLATLIB\*.*" +; SectionEnd +;SectionGroupEnd +; +SectionGroup "Code editors" + Section "PyScripter 2.6.0" IDE_PYSCRIPTER + SectionIn 1 2 + SetOutPath "$INSTDIR" + File /r "${SOURCESFOLDER}\PyScripter\*.*" + File "${SOURCESFOLDER}\PyScripter-Portable.exe" + SectionEnd + Section "PyCharm Community 2016.3.1" IDE_PYCHARM + SectionIn 1 + SetOutPath "$INSTDIR" + File /r "${SOURCESFOLDER}\PyCharm\*.*" + File "${SOURCESFOLDER}\PyCharm-Portable.exe" + SectionEnd +SectionGroupEnd + + + diff --git a/config/3.4/settings.bat b/config/3.4/settings.bat new file mode 100644 index 0000000..77dfc6b --- /dev/null +++ b/config/3.4/settings.bat @@ -0,0 +1,86 @@ +::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: +:: The MIT License (MIT) +:: Copyright (c) 2007 Perica Zivkovic + +:: Permission is hereby granted, free of charge, to any person obtaining a +:: copy of this software and associated documentation files (the "Software"), +:: to deal in the Software without restriction, including without limitation +:: the rights to use, copy, modify, merge, publish, distribute, sublicense, +:: and/or sell copies of the Software, and to permit persons to whom the +:: Software is furnished to do so, subject to the following conditions: + +:: The above copyright notice and this permission notice shall be included +:: in all copies or substantial portions of the Software. + +:: THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +:: OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +:: FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +:: AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +:: WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +:: CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +:: http://PortablePython.com +::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: + +set PY_VERSION=3.4 +set PP_VERSION=4.1 +set PY_SHORT_VERSION=34 + +:: Modules +set PY_MSI_DOWNLOAD="https://www.python.org/ftp/python/3.4.4/python-3.4.4.amd64.msi" +set PY_MSI_FILE=python-3.4.4.amd64.msi +set PY_MSI_MD5=963f67116935447fad73e09cc561c713 + +set PY_SCRIPTER_DOWNLOAD="http://sourceforge.net/projects/pyscripter/files/PyScripter-v2.6.0-x64.zip" +set PY_SCRIPTER_FILE=PyScripter-v2.6.0-x64.zip +set PY_SCRIPTER_SHA1=ebdf3920a186a00d57a631aaa3aeefcfe099f88d + +set NUMPY_DOWNLOAD="http://sourceforge.net/projects/numpy/files/NumPy/1.7.1/numpy-1.7.1-win32-superpack-python3.2.exe" +set NUMPY_FILE=numpy-1.7.1-win32-superpack-python3.2.exe +set NUMPY_FILE_NOSSE=numpy-1.7.1-nosse.exe +set NUMPY_ZIP_MD5=bb0d30de007d649757a2d6d2e1c59c9a + +set SCIPY_DOWNLOAD="http://sourceforge.net/projects/scipy/files/scipy/0.12.0/scipy-0.12.0-win32-superpack-python3.2.exe" +set SCIPY_FILE=scipy-0.12.0-win32-superpack-python3.2.exe +set SCIPY_FILE_NOSSE=scipy-0.12.0-nosse.exe +set SCIPY_ZIP_MD5=391b306093c43f58d6588cee76bf0c10 + +set PYWIN32_DOWNLOAD="http://sourceforge.net/projects/pywin32/files/pywin32/Build 218/pywin32-218.win32-py3.2.exe" +set PYWIN32_FILE=pywin32-218.win32-py3.2.exe +set PYWIN32_MD5=527c69c12ab817d2d325b378adb32583 + +set NETWORKX_DOWNLOAD="http://pypi.python.org/packages/3.2/n/networkx/networkx-1.7-py3.2.egg" +set NETWORKX_FILE=networkx-1.7-py3.2.egg +set NETWORKX_MD5=5a852d8e2c815dd69ffce22e6056af9e + +set MATPLOTLIB_DOWNLOAD="http://sourceforge.net/projects/matplotlib/files/matplotlib/matplotlib-1.2.1/matplotlib-1.2.1.win32-py3.2.exe" +set MATPLOTLIB_FILE=matplotlib-1.2.1.win32-py3.2.exe +set MATPLOTLIB_MD5=e888b2d1d3e2d914209a1c46532384fc + +set LXML_DOWNLOAD="http://pypi.python.org/packages/3.2/l/lxml/lxml-2.3.win32-py3.2.exe" +set LXML_FILE=lxml-2.3.win32-py3.2.exe + +set PY_SERIAL_DOWNLOAD="http://pypi.python.org/packages/any/p/pyserial/pyserial-py3k-2.5.win32.exe" +set PY_SERIAL_FILE=pyserial-py3k-2.5.win32.exe +set PY_SERIAL_MD5=c7d770dede6f6c6197d9652a7658f18e + +:: since pyodbc moved from google to github - installation via pip is required +:: set PYODBC_DOWNLOAD="http://pyodbc.googlecode.com/files/pyodbc-3.0.2.win32-py3.2.exe" +:: set PYODBC_FILE=pyodbc-3.0.2.win32-py3.2.exe +:: set PYODBC_SHA1=9abe8b36be9f3a2dbb427a4a049e9b70cd909c6d + +set PYQT_DOWNLOAD="http://sourceforge.net/projects/pyqt/files/PyQt4/PyQt-4.9.6/PyQt-Py3.2-x86-gpl-4.9.6-1.exe" +set PYQT_FILE=PyQt-Py3.2-x86-gpl-4.9.6-1.exe +set PYQT_MD5=9c4a1b3b1246e936c3439c0e8a1d5774 + +set IPYTHON_DOWNLOAD="https://pypi.python.org/packages/3.4/i/ipython/ipython-3.1.0-py3-none-any.whl" +set IPYTHON_FILE=ipython-3.1.0-py3-none-any.whl +set IPYTHON_MD5=e149386e11472f9cf730773b2d824253 + +set PANDAS_DOWNLOAD="https://pypi.python.org/packages/3.2/p/pandas/pandas-0.11.0.win32-py3.2.exe" +set PANDAS_FILE=pandas-0.11.0.win32-py3.2.exe +set PANDAS_MD5=7f11d2f59284c5ba64e7d781e1023f95 + +set PYCHARM_DOWNLOAD="http://download.jetbrains.com/python/pycharm-community-2016.3.1.exe" +set PYCHARM_FILE=pycharm-community-2016.3.1.exe +set PYCHARM_SHA256=3546c3f68d142d85f6a5283f3a4ee4d1161238b82bc9c8296ad8010c4d8f11c1 diff --git a/main.nsi b/main.nsi index fc53109..9f0835e 100644 --- a/main.nsi +++ b/main.nsi @@ -28,12 +28,12 @@ !verbose 2 ; Include correct folder -!AddIncludeDir ${PY_VERSION} +!AddIncludeDir config\${PP_TYPE} !define WEBSITE "PortablePython.com" !define VERSION "${PY_VERSION}.${PP_VERSION}" -!define APPNAME "Portable Python ${VERSION}" -!define OUTFILENAME "PortablePython_${VERSION}.exe" +!define APPNAME "Portable Python ${PP_TYPE} ${VERSION}" +!define OUTFILENAME "PortablePython${PP_TYPE}_${VERSION}.exe" !define OUTFOLDER "${OUTPUT_FOLDER}" !define SOURCESFOLDER "${SOURCES_FOLDER}" diff --git a/patches/PyCharm.3.1.x.PPpatch b/patches/PyCharm.3.1.x.PPpatch deleted file mode 100644 index e741b1f..0000000 Binary files a/patches/PyCharm.3.1.x.PPpatch and /dev/null differ diff --git a/patches/PyCharm.4.0.x.PPpatch b/patches/PyCharm.4.0.x.PPpatch new file mode 100644 index 0000000..33b61e6 Binary files /dev/null and b/patches/PyCharm.4.0.x.PPpatch differ diff --git a/patches/PyScripter26.ini b/patches/PyScripter26.ini new file mode 100644 index 0000000..b7015b9 --- /dev/null +++ b/patches/PyScripter26.ini @@ -0,0 +1,3423 @@ +[Factory Toolbar Items v1.0] +Item0=[Items] +Item1=Count=46 +Item2=0=MainToolBar, tbiFileNewModule, Ctrl+N +Item3=1=MainToolBar, tbiFileOpen, Ctrl+O +Item4=2=MainToolBar, tbiFileSave, Ctrl+S +Item5=3=MainToolBar, tbiFileSaveAll, 0 +Item6=4=MainToolBar, TBXSeparatorItem1, 0 +Item7=5=MainToolBar, tbiFilePrint, Ctrl+P +Item8=6=MainToolBar, TBXSeparatorItem2, 0 +Item9=7=MainToolBar, tbiEditCut, Ctrl+X +Item10=8=MainToolBar, tbiEditCopy, Ctrl+C +Item11=9=MainToolBar, tbiEditPaste, Ctrl+V +Item12=10=MainToolBar, TBXSeparatorItem3, 0 +Item13=11=MainToolBar, tbiEditUndo, Ctrl+Z +Item14=12=MainToolBar, tbiEditRedo, Shift+Ctrl+Z +Item15=13=MainToolBar, TBXSeparatorItem4, 0 +Item16=14=MainToolBar, tbiSearchFind, Ctrl+F +Item17=15=MainToolBar, tbiSearchFindNext, F3 +Item18=16=MainToolBar, tbiSearchReplace, Ctrl+H +Item19=17=MainToolBar, tbiFindInFiles, Shift+Ctrl+F +Item20=18=MainToolBar, mnuFindInFilesResults, Ctrl+Alt+F +Item21=19=MainToolBar, TBXSeparatorItem5, 0 +Item22=20=MainToolBar, tbiAbout, 0 +Item23=21=DebugToolbar, tbiRunRun, Ctrl+F9 +Item24=22=DebugToolbar, TBXSeparatorItem6, 0 +Item25=23=DebugToolbar, tbiRunDebug, F9 +Item26=24=DebugToolbar, tbiRunRunToCursor, F4 +Item27=25=DebugToolbar, tbiRunStepInto, F7 +Item28=26=DebugToolbar, tbiRunStepOver, F8 +Item29=27=DebugToolbar, tbiRunStepOut, Shift+F8 +Item30=28=DebugToolbar, tbiRunPause, 0 +Item31=29=DebugToolbar, tbiRunAbort, Ctrl+Alt+F9 +Item32=30=DebugToolbar, TBXSeparatorItem7, 0 +Item33=31=DebugToolbar, tbiRunToggleBreakpoint, F5 +Item34=32=DebugToolbar, tbiRunClearAllBreakpoints, 0 +Item35=33=ViewToolbar, tbiViewThemes, 0 +Item36=34=ViewToolbar, tbiViewLayouts, 0 +Item37=35=EditorToolbar, tbiBrowsePrevious, Alt+Left +Item38=36=EditorToolbar, tbiBrowseNext, Alt+Right +Item39=37=EditorToolbar, TBXSeparatorItem14, 0 +Item40=38=EditorToolbar, tbiEditDedent, Shift+Ctrl+U +Item41=39=EditorToolbar, tbiEditIndent, Shift+Ctrl+I +Item42=40=EditorToolbar, TBXSeparatorItem10, 0 +Item43=41=EditorToolbar, tbiEditToggleComment, Ctrl+' +Item44=42=EditorToolbar, TBXSeparatorItem11, 0 +Item45=43=EditorToolbar, tbiEditLineNumbers, 0 +Item46=44=EditorToolbar, tbiEditWordWrap, 0 +Item47=45=EditorToolbar, tbiEditSpecialCharacters, 0 +Item48= +Count=49 + +[Layouts\Default\Forms] +FormNames=FileExplorerWindow;ProjectExplorerWindow;CodeExplorerWindow;TJvDockTabHostForm_FileExplorerWindow_ProjectExplorerWindow_0000000002A52680;PyIDEMainForm@LeftDockPanel;PyIDEMainForm@LeftDockPanel_PopupPanel;PyIDEMainForm@RightDockPanel;PyIDEMainForm@RightDockPanel_PopupPanel;PyIDEMainForm@TopDockPanel;PyIDEMainForm@TopDockPanel_PopupPanel;CallStackWindow;VariablesWindow;WatchesWindow;BreakPointsWindow;OutputWindow;MessagesWindow;PythonIIForm;TJvDockTabHostForm_CallStackWindow_VariablesWindow_0000000002A52D90;PyIDEMainForm@BottomDockPanel;PyIDEMainForm@BottomDockPanel_PopupPanel;PyIDEMainForm;ToDoWindow;RegExpTesterWindow;UnitTestWindow;FindResultsWindow; + +[Layouts\Default\Forms\FileExplorerWindow] +ParentName=TJvDockTabHostForm_FileExplorerWindow_ProjectExplorerWindow_0000000002A52680 +DockLeft=2 +DockTop=2 +DockRight=198 +DockBottom=258 +LastDockSiteName=Cannot find window +UnDockLeft=398 +UnDockTop=201 +LRDockWidth=220 +TBDockHeight=220 +UnDockWidth=243 +UnDockHeight=478 +DockClientData= + +[Layouts\Default\Forms\ProjectExplorerWindow] +ParentName=TJvDockTabHostForm_FileExplorerWindow_ProjectExplorerWindow_0000000002A52680 +DockLeft=356 +DockTop=263 +DockRight=599 +DockBottom=710 +LastDockSiteName=Cannot find window +UnDockLeft=356 +UnDockTop=263 +LRDockWidth=220 +TBDockHeight=220 +UnDockWidth=243 +UnDockHeight=447 +DockClientData= + +[Layouts\Default\Forms\CodeExplorerWindow] +ParentName=TJvDockTabHostForm_FileExplorerWindow_ProjectExplorerWindow_0000000002A52680 +DockLeft=237 +DockTop=237 +DockRight=502 +DockBottom=582 +LastDockSiteName=Cannot find window +UnDockLeft=237 +UnDockTop=237 +LRDockWidth=220 +TBDockHeight=220 +UnDockWidth=265 +UnDockHeight=345 +DockClientData= + +[Layouts\Default\Forms\TJvDockTabHostForm_FileExplorerWindow_ProjectExplorerWindow_0000000002A52680] +ParentName=PyIDEMainForm@LeftDockPanel +DockTop=23 +DockRight=200 +DockBottom=306 +LastDockSiteName=Cannot find window +UnDockLeft=398 +UnDockTop=201 +LRDockWidth=220 +TBDockHeight=461 +UnDockWidth=243 +UnDockHeight=478 +DockFormStyle=2 +DockClientData=00000400030000001200000046696C654578706C6F72657257696E646F77010000001500000050726F6A6563744578706C6F72657257696E646F770100000012000000436F64654578706C6F72657257696E646F770100000000000000F6FFFFFF + +[Layouts\Default\Forms\PyIDEMainForm@LeftDockPanel] +ParentName=PyIDEMainForm +DockTop=51 +DockRight=200 +DockBottom=357 +LastDockSiteName= +UnDockWidth=200 +UnDockHeight=306 +DockFormStyle=3 +CanDocked=FALSE +EachOtherDocked=FALSE +LeftDocked=FALSE +TopDocked=FALSE +RightDocked=FALSE +BottomDocked=FALSE +CustomDocked=FALSE +DockClientData=0000040000000000000000000000000000010000000000010000000001010000000000000000010100000000014C000000544A76446F636B546162486F7374466F726D5F46696C654578706C6F72657257696E646F775F50726F6A6563744578706C6F72657257696E646F775F3030303030303030303241353236383001FFFFFFFF + +[Layouts\Default\Forms\PyIDEMainForm@LeftDockPanel_PopupPanel] +ParentName=PyIDEMainForm +LastDockSiteName= +Visible=FALSE +DockFormStyle=3 +CanDocked=FALSE +EachOtherDocked=FALSE +LeftDocked=FALSE +TopDocked=FALSE +RightDocked=FALSE +BottomDocked=FALSE +CustomDocked=FALSE +DockClientData=0000040000000000000000000000000000010000000000010000000001FFFFFFFF + +[Layouts\Default\Forms\PyIDEMainForm@RightDockPanel] +ParentName=PyIDEMainForm +DockLeft=779 +DockTop=51 +DockRight=779 +DockBottom=357 +LastDockSiteName= +UnDockHeight=306 +DockFormStyle=3 +CanDocked=FALSE +EachOtherDocked=FALSE +LeftDocked=FALSE +TopDocked=FALSE +RightDocked=FALSE +BottomDocked=FALSE +CustomDocked=FALSE +DockClientData=0000040000000000000000000000000000010000000000010000000001FFFFFFFF + +[Layouts\Default\Forms\PyIDEMainForm@RightDockPanel_PopupPanel] +ParentName=PyIDEMainForm +LastDockSiteName= +Visible=FALSE +DockFormStyle=3 +CanDocked=FALSE +EachOtherDocked=FALSE +LeftDocked=FALSE +TopDocked=FALSE +RightDocked=FALSE +BottomDocked=FALSE +CustomDocked=FALSE +DockClientData=0000040000000000000000000000000000010000000000010000000001FFFFFFFF + +[Layouts\Default\Forms\PyIDEMainForm@TopDockPanel] +ParentName=PyIDEMainForm +DockTop=51 +DockRight=780 +DockBottom=51 +LastDockSiteName= +UnDockWidth=780 +DockFormStyle=3 +CanDocked=FALSE +EachOtherDocked=FALSE +LeftDocked=FALSE +TopDocked=FALSE +RightDocked=FALSE +BottomDocked=FALSE +CustomDocked=FALSE +DockClientData=0000040000000000000000000000000000010000000000010000000001FFFFFFFF + +[Layouts\Default\Forms\PyIDEMainForm@TopDockPanel_PopupPanel] +ParentName=PyIDEMainForm +LastDockSiteName= +Visible=FALSE +DockFormStyle=3 +CanDocked=FALSE +EachOtherDocked=FALSE +LeftDocked=FALSE +TopDocked=FALSE +RightDocked=FALSE +BottomDocked=FALSE +CustomDocked=FALSE +DockClientData=0000040000000000000000000000000000010000000000010000000001FFFFFFFF + +[Layouts\Default\Forms\CallStackWindow] +ParentName=TJvDockTabHostForm_CallStackWindow_VariablesWindow_0000000002A52D90 +DockLeft=569 +DockTop=397 +DockRight=966 +DockBottom=604 +LastDockSiteName=Cannot find window +UnDockLeft=569 +UnDockTop=397 +LRDockWidth=220 +TBDockHeight=220 +UnDockWidth=397 +UnDockHeight=207 +DockClientData= + +[Layouts\Default\Forms\VariablesWindow] +ParentName=TJvDockTabHostForm_CallStackWindow_VariablesWindow_0000000002A52D90 +DockLeft=237 +DockTop=237 +DockRight=832 +DockBottom=523 +LastDockSiteName=Cannot find window +UnDockLeft=237 +UnDockTop=237 +LRDockWidth=220 +TBDockHeight=220 +UnDockWidth=595 +UnDockHeight=286 +LeftDocked=FALSE +RightDocked=FALSE +DockClientData= + +[Layouts\Default\Forms\WatchesWindow] +ParentName=TJvDockTabHostForm_CallStackWindow_VariablesWindow_0000000002A52D90 +DockLeft=331 +DockTop=325 +DockRight=1107 +DockBottom=593 +LastDockSiteName=Cannot find window +UnDockLeft=331 +UnDockTop=325 +LRDockWidth=220 +TBDockHeight=220 +UnDockWidth=776 +UnDockHeight=268 +DockClientData= + +[Layouts\Default\Forms\BreakPointsWindow] +ParentName=TJvDockTabHostForm_CallStackWindow_VariablesWindow_0000000002A52D90 +DockLeft=491 +DockTop=381 +DockRight=886 +DockBottom=664 +LastDockSiteName=Cannot find window +UnDockLeft=491 +UnDockTop=381 +LRDockWidth=220 +TBDockHeight=220 +UnDockWidth=395 +UnDockHeight=283 +DockClientData= + +[Layouts\Default\Forms\OutputWindow] +ParentName=TJvDockTabHostForm_CallStackWindow_VariablesWindow_0000000002A52D90 +DockLeft=319 +DockTop=173 +DockRight=887 +DockBottom=543 +LastDockSiteName=Cannot find window +UnDockLeft=319 +UnDockTop=173 +LRDockWidth=220 +TBDockHeight=220 +UnDockWidth=568 +UnDockHeight=370 +DockClientData= + +[Layouts\Default\Forms\MessagesWindow] +ParentName=TJvDockTabHostForm_CallStackWindow_VariablesWindow_0000000002A52D90 +DockLeft=259 +DockTop=257 +DockRight=968 +DockBottom=482 +LastDockSiteName=Cannot find window +UnDockLeft=259 +UnDockTop=257 +LRDockWidth=220 +TBDockHeight=220 +UnDockWidth=709 +UnDockHeight=225 +DockClientData= + +[Layouts\Default\Forms\PythonIIForm] +ParentName=TJvDockTabHostForm_CallStackWindow_VariablesWindow_0000000002A52D90 +DockLeft=2 +DockTop=2 +DockRight=778 +DockBottom=102 +LastDockSiteName=Cannot find window +UnDockLeft=104 +UnDockTop=104 +LRDockWidth=220 +TBDockHeight=220 +UnDockWidth=960 +UnDockHeight=494 +DockClientData= + +[Layouts\Default\Forms\TJvDockTabHostForm_CallStackWindow_VariablesWindow_0000000002A52D90] +ParentName=PyIDEMainForm@BottomDockPanel +DockTop=23 +DockRight=780 +DockBottom=150 +LastDockSiteName=Cannot find window +UnDockLeft=569 +UnDockTop=397 +LRDockWidth=780 +TBDockHeight=220 +UnDockWidth=397 +UnDockHeight=207 +DockFormStyle=2 +DockClientData=00000400070000000F00000043616C6C537461636B57696E646F77010000000F0000005661726961626C657357696E646F77010000000D0000005761746368657357696E646F770100000011000000427265616B506F696E747357696E646F77010000000C0000004F757470757457696E646F77010000000E0000004D6573736167657357696E646F77010000000C000000507974686F6E4949466F726D0100000006000000F6FFFFFF + +[Layouts\Default\Forms\PyIDEMainForm@BottomDockPanel] +ParentName=PyIDEMainForm +DockTop=388 +DockRight=780 +DockBottom=538 +LastDockSiteName= +UnDockWidth=780 +UnDockHeight=150 +DockFormStyle=3 +CanDocked=FALSE +EachOtherDocked=FALSE +LeftDocked=FALSE +TopDocked=FALSE +RightDocked=FALSE +BottomDocked=FALSE +CustomDocked=FALSE +DockClientData=00000400000000000000000000000000000100000000000100000000010100000000000000000101000000000143000000544A76446F636B546162486F7374466F726D5F43616C6C537461636B57696E646F775F5661726961626C657357696E646F775F3030303030303030303241353244393001FFFFFFFF + +[Layouts\Default\Forms\PyIDEMainForm@BottomDockPanel_PopupPanel] +ParentName=PyIDEMainForm +LastDockSiteName= +Visible=FALSE +DockFormStyle=3 +CanDocked=FALSE +EachOtherDocked=FALSE +LeftDocked=FALSE +TopDocked=FALSE +RightDocked=FALSE +BottomDocked=FALSE +CustomDocked=FALSE +DockClientData=0000040000000000000000000000000000010000000000010000000001FFFFFFFF + +[Layouts\Default\Forms\PyIDEMainForm] +ParentName= +DockLeft=-8 +DockTop=-8 +DockRight=788 +DockBottom=569 +LastDockSiteName= +LRDockWidth=796 +TBDockHeight=577 +UnDockWidth=796 +UnDockHeight=577 +BorderStyle=2 +WindowState=2 +DockClientData= + +[Layouts\Default\Forms\ToDoWindow] +ParentName= +DockLeft=377 +DockTop=226 +DockRight=885 +DockBottom=558 +LastDockSiteName=Cannot find window +LRDockWidth=220 +TBDockHeight=220 +UnDockWidth=508 +UnDockHeight=332 +Visible=FALSE +BorderStyle=5 +DockClientData= + +[Layouts\Default\Forms\RegExpTesterWindow] +ParentName= +DockLeft=356 +DockTop=263 +DockRight=756 +DockBottom=780 +LastDockSiteName=Cannot find window +LRDockWidth=220 +TBDockHeight=220 +UnDockWidth=400 +UnDockHeight=517 +Visible=FALSE +BorderStyle=5 +TopDocked=FALSE +BottomDocked=FALSE +DockClientData= + +[Layouts\Default\Forms\UnitTestWindow] +ParentName= +DockLeft=356 +DockTop=263 +DockRight=634 +DockBottom=753 +LastDockSiteName=Cannot find window +LRDockWidth=220 +TBDockHeight=220 +UnDockWidth=278 +UnDockHeight=490 +Visible=FALSE +BorderStyle=5 +TopDocked=FALSE +BottomDocked=FALSE +DockClientData= + +[Layouts\Default\Forms\FindResultsWindow] +ParentName= +DockLeft=362 +DockTop=146 +DockRight=981 +DockBottom=543 +LastDockSiteName=Cannot find window +LRDockWidth=220 +TBDockHeight=220 +UnDockWidth=619 +UnDockHeight=397 +Visible=FALSE +BorderStyle=5 +DockClientData= + +[Layouts\Default\Toolbars] +Item0=[Layouts] +Item1=Count=1 +Item2=0=Default +Item3= +Item4=[Default @ MainMenu] +Item5=Rev=2000 +Item6=Visible=1 +Item7=DockedTo=TBXDockTop +Item8=LastDock=TBXDockTop +Item9=DockRow=0 +Item10=DockPos=0 +Item11=FloatLeft=0 +Item12=FloatTop=0 +Item13=FloatRightX=0 +Item14=DisplayMode=0 +Item15= +Item16=[Default @ MainToolBar] +Item17=Rev=2000 +Item18=Visible=1 +Item19=DockedTo=TBXDockTop +Item20=LastDock=TBXDockTop +Item21=DockRow=1 +Item22=DockPos=3 +Item23=FloatLeft=0 +Item24=FloatTop=0 +Item25=FloatRightX=0 +Item26=DisplayMode=0 +Item27= +Item28=[Default @ DebugToolbar] +Item29=Rev=2000 +Item30=Visible=1 +Item31=DockedTo=TBXDockTop +Item32=LastDock=TBXDockTop +Item33=DockRow=1 +Item34=DockPos=361 +Item35=FloatLeft=0 +Item36=FloatTop=0 +Item37=FloatRightX=0 +Item38=DisplayMode=0 +Item39= +Item40=[Default @ ViewToolbar] +Item41=Rev=2000 +Item42=Visible=1 +Item43=DockedTo=TBXDockTop +Item44=LastDock=TBXDockTop +Item45=DockRow=1 +Item46=DockPos=728 +Item47=FloatLeft=0 +Item48=FloatTop=0 +Item49=FloatRightX=0 +Item50=DisplayMode=0 +Item51= +Item52=[Default @ EditorToolbar] +Item53=Rev=2000 +Item54=Visible=1 +Item55=DockedTo=TBXDockTop +Item56=LastDock=TBXDockTop +Item57=DockRow=1 +Item58=DockPos=574 +Item59=FloatLeft=0 +Item60=FloatTop=0 +Item61=FloatRightX=0 +Item62=DisplayMode=0 +Item63= +Item64=[Default @ FindToolbar] +Item65=Rev=2000 +Item66=Visible=0 +Item67=DockedTo=TBXDockTop +Item68=LastDock=TBXDockTop +Item69=DockRow=2 +Item70=DockPos=1 +Item71=FloatLeft=0 +Item72=FloatTop=0 +Item73=FloatRightX=0 +Item74=DisplayMode=0 +Item75= +Item76=[Default @ UserToolbar] +Item77=Rev=2000 +Item78=Visible=0 +Item79=DockedTo=TBXDockTop +Item80=LastDock=TBXDockTop +Item81=DockRow=2 +Item82=DockPos=310 +Item83=FloatLeft=0 +Item84=FloatTop=0 +Item85=FloatRightX=0 +Item86=DisplayMode=0 +Item87= +Item88=[Default @ TabSplitter] +Item89=SplitterRestorePos=60 +Item90= +Count=91 + +[Other Settings] +PyScripter Version=2.6.0.0 +Language= +File Explorer Filter=TRUE +File Explorer Path= +Status Bar=TRUE +Theme Name=Office 2003 +Active Project= + +[IDE Options] +TimeOut=0 +UndoAfterSave=TRUE +SaveFilesBeforeRun=TRUE +SaveEnvironmentBeforeRun=FALSE +RestoreOpenFiles=TRUE +CreateBackupFiles=FALSE +ExporerInitiallyExpanded=FALSE +SearchTextAtCaret=TRUE +PythonFileFilter=Python Files (*.py;*.pyw)|*.py;*.pyw +CythonFileFilter=Cython Files (*.pyx*.pxd;*.pxi)|*.pyx;*.pxd;*.pxi +HTMLFileFilter=HTML Documents (*.htm;*.html)|*.htm;*.html +XMLFileFilter=XML Files (*.xml;*.xsd;*.xsl;*.xslt;*.dtd)|*.xml;*.xsd;*.xsl;*.xslt;*.dtd +CSSFileFilter=Cascading Stylesheets (*.css)|*.css +CPPFileFilter=C/C++ Files (*.c;*.cpp;*.cc;*.h;*.hpp;*.hh;*.cxx;*.hxx;*.cu)|*.c;*.cpp;*.cc;*.h;*.hpp;*.hh;*.cxx;*.hxx;*.cu +YAMLFileFilter=Αρχεία YAML (*.yaml)|*.yaml +JSFileFilter=Javascript Files (*.js)|*.js +PHPFileFilter=PHP Files (*.php;*.php3;*.phtml;*.inc)|*.php;*.php3;*.phtml;*.inc +FileExplorerFilter=*.py;*.pyw +DateLastCheckedForUpdates=00E828CC31EC85A40E40 +AutoCheckForUpdates=TRUE +DaysBetweenChecks=7 +MaskFPUExceptions=TRUE +SpecialPackages=os, wx, scipy +UTF8inInterpreter=TRUE +ShowCodeHints=TRUE +ShowDebuggerHints=TRUE +AutoCompleteBrackets=TRUE +CommandLine= +UseCommandLine=FALSE +MarkExecutableLines=TRUE +CheckSyntaxAsYouType=TRUE +FileExplorerContextMenu=TRUE +NewFileLineBreaks=sffDos +NewFileEncoding=sf_Ansi +DetectUTF8Encoding=TRUE +EditorsTabPosition=ttpBottom +PythonEngineType=peRemote +PrettyPrintOutput=TRUE +SmartNextPrevPage=TRUE +AutoReloadChangedFiles=TRUE +ClearOutputBeforeRun=FALSE +AutoHideFindToolbar=FALSE +EditorCodeCompletion=TRUE +InterpreterCodeCompletion=TRUE +CodeCompletionListSize=8 +ShowTabCloseButton=TRUE +PostMortemOnException=FALSE +DockAnimationInterval=20 +DockAnimationMoveWidth=20 +InterpreterHistorySize=50 +SaveInterpreterHistory=TRUE +ReinitializeBeforeRun=TRUE +JumpToErrorOnException=TRUE +FileTemplateForNewScripts=Πηγαίος Κώδικας Python +HighlightSelectedWord=TRUE +UsePythonColorsInIDE=FALSE +FileChangeNotification=fcnNoMappedDrives +CodeCompletionCaseSensitive=TRUE +CompleteKeywords=TRUE +CompleteAsYouType=TRUE +CompleteWithWordBreakChars=FALSE +CompleteWithOneEntry=FALSE +DisplayPackageNames=TRUE +CheckSyntaxLineLimit=1000 + +[IDE Options\AutoCompletionFont] +Charset=DEFAULT_CHARSET +Color=clWindowText +Height=-15 +Name=Segoe UI +Orientation=0 +Pitch=fpDefault +Size=9 +Quality=fqDefault + +[IDE Options\AutoCompletionFont\Style] +fsBold=FALSE +fsItalic=FALSE +fsUnderline=FALSE +fsStrikeOut=FALSE + +[Editor Search Options] +SearchSelectionOnly=FALSE +SearchCaseSensitiveType=scsAuto +SearchFromCaret=TRUE +SearchTextAtCaret=TRUE +SearchWholeWords=FALSE +UseRegExp=FALSE +IncrementalSearch=TRUE + +[Code Templates] +Item0=hdr +Item1=|Python Module header +Item2==#------------------------------------------------------------------------------- +Item3==# Name: $[ActiveDoc-Name] +Item4==# Purpose: | +Item5==# +Item6==# Author: $[UserName] +Item7==# +Item8==# Created: $[DateTime-'DD/MM/YYYY'-DateFormat] +Item9==# Copyright: (c) $[UserName] $[DateTime-'YYYY'-DateFormat] +Item10==# Licence: +Item11==#------------------------------------------------------------------------------- +Item12=cl +Item13=|Comment Line +Item14==#------------------------------------------------------------------------------- +Item15==| +Item16=pyapp +Item17=|Python application +Item18==def main(): +Item19== |pass +Item20== +Item21==if __name__ == '__main__': +Item22== main() +Item23=cls +Item24=|Python class +Item25==class |(object): +Item26== """ +Item27== class comment +Item28== """ +Item29== +Item30== def __init__(self): +Item31== pass +Item32=fec +Item33=|File encoding comment +Item34==# -*- coding: UTF-8 -*- +Item35==| +Count=36 + +[Secondary Tabs] +Visible=FALSE + +[Find in Files Results Options] +ResultsHeight=185 +ShowToolBar=TRUE +ShowStatusBar=TRUE +ShowContext=TRUE + +[Variables Window Options] +DocPanelWidth=375 +Types Visible=TRUE +Names Width=160 +Types Width=100 + +[Call Stack Window Options] +Function Width=100 +Line Width=50 + +[Breakpoints Window Options] +FileName Width=200 +Line Width=50 + +[Messages Window Options] +FileName Width=200 +Line Width=50 +Position Width=60 + +[RegExp Tester Options] +Regular Expression= +Search Text= +DOTALL=TRUE +IGNORECASE=TRUE +LOCALE=TRUE +MULTILINE=TRUE +UNICODE=TRUE +VERBOSE=TRUE +SearchType=1 +AutoExec=FALSE +RegExpHeight=82 +GroupsHeight=138 +SearchHeight=95 + +[File Explorer Favorites] +Count=0 + +[Code Explorer Options] +AlphaSort=FALSE +Show Selection=TRUE +Follow Editor=TRUE + +[Custom Params] +Count=0 + +[Output Window\Font] +Charset=DEFAULT_CHARSET +Color=clWindowText +Height=-12 +Name=Courier New + +[Output Window\Font\Style] +fsBold=FALSE +fsItalic=FALSE +fsUnderline=FALSE +fsStrikeOut=FALSE + +[Output Window] +Color=-16777211 + +[Watches] +Count=0 +WatchesWidth=200 +Types Width=148 + +[Layouts] +Item0=Default +Count=1 + +[Command History] +Count=0 + +[Main Form Placement] +ShowCmd=3 +Flags=2 +PixelsPerInch=120 +MinMaxPos(1920x1080)=-1,-1,-1,-1 +MinMaxPos=-1,-1,-1,-1 +NormPos(1920x1080)=120,120,918,703 +NormPos=120,120,918,703 + +[Open Files] +Count=0 +ActiveEditor= + +[Layouts\Current\Forms] +FormNames=FileExplorerWindow;ProjectExplorerWindow;CodeExplorerWindow;TJvDockTabHostForm_FileExplorerWindow_ProjectExplorerWindow_0000000002A52680;PyIDEMainForm@LeftDockPanel;PyIDEMainForm@LeftDockPanel_PopupPanel;PyIDEMainForm@RightDockPanel;PyIDEMainForm@RightDockPanel_PopupPanel;PyIDEMainForm@TopDockPanel;PyIDEMainForm@TopDockPanel_PopupPanel;CallStackWindow;VariablesWindow;WatchesWindow;BreakPointsWindow;OutputWindow;MessagesWindow;PythonIIForm;TJvDockTabHostForm_CallStackWindow_VariablesWindow_0000000002A52D90;PyIDEMainForm@BottomDockPanel;PyIDEMainForm@BottomDockPanel_PopupPanel;PyIDEMainForm;ToDoWindow;RegExpTesterWindow;UnitTestWindow;FindResultsWindow; + +[Layouts\Current\Forms\FileExplorerWindow] +ParentName=TJvDockTabHostForm_FileExplorerWindow_ProjectExplorerWindow_0000000002A52680 +DockLeft=2 +DockTop=2 +DockRight=198 +DockBottom=703 +LastDockSiteName=Cannot find window +UnDockLeft=398 +UnDockTop=201 +LRDockWidth=220 +TBDockHeight=220 +UnDockWidth=297 +UnDockHeight=580 +DockClientData= + +[Layouts\Current\Forms\ProjectExplorerWindow] +ParentName=TJvDockTabHostForm_FileExplorerWindow_ProjectExplorerWindow_0000000002A52680 +DockLeft=2 +DockTop=2 +DockRight=198 +DockBottom=703 +LastDockSiteName=Cannot find window +UnDockLeft=356 +UnDockTop=263 +LRDockWidth=220 +TBDockHeight=220 +UnDockWidth=297 +UnDockHeight=542 +DockClientData= + +[Layouts\Current\Forms\CodeExplorerWindow] +ParentName=TJvDockTabHostForm_FileExplorerWindow_ProjectExplorerWindow_0000000002A52680 +DockLeft=2 +DockTop=2 +DockRight=198 +DockBottom=703 +LastDockSiteName=Cannot find window +UnDockLeft=237 +UnDockTop=237 +LRDockWidth=220 +TBDockHeight=220 +UnDockWidth=324 +UnDockHeight=417 +DockClientData= + +[Layouts\Current\Forms\TJvDockTabHostForm_FileExplorerWindow_ProjectExplorerWindow_0000000002A52680] +ParentName=PyIDEMainForm@LeftDockPanel +DockTop=25 +DockRight=200 +DockBottom=758 +LastDockSiteName=Cannot find window +UnDockLeft=398 +UnDockTop=201 +LRDockWidth=220 +TBDockHeight=461 +UnDockWidth=272 +UnDockHeight=241 +DockFormStyle=2 +DockClientData=00000400030000001200000046696C654578706C6F72657257696E646F77010000001500000050726F6A6563744578706C6F72657257696E646F770100000012000000436F64654578706C6F72657257696E646F770100000000000000F6FFFFFF + +[Layouts\Current\Forms\PyIDEMainForm@LeftDockPanel] +ParentName=PyIDEMainForm +DockTop=60 +DockRight=200 +DockBottom=818 +LastDockSiteName= +UnDockWidth=200 +UnDockHeight=465 +DockFormStyle=3 +CanDocked=FALSE +EachOtherDocked=FALSE +LeftDocked=FALSE +TopDocked=FALSE +RightDocked=FALSE +BottomDocked=FALSE +CustomDocked=FALSE +DockClientData=0000040000000000000000000000000000010000000000010000000001010000000000000000010100000000014C000000544A76446F636B546162486F7374466F726D5F46696C654578706C6F72657257696E646F775F50726F6A6563744578706C6F72657257696E646F775F3030303030303030303241353236383001FFFFFFFF + +[Layouts\Current\Forms\PyIDEMainForm@LeftDockPanel_PopupPanel] +ParentName=PyIDEMainForm +LastDockSiteName= +Visible=FALSE +DockFormStyle=3 +CanDocked=FALSE +EachOtherDocked=FALSE +LeftDocked=FALSE +TopDocked=FALSE +RightDocked=FALSE +BottomDocked=FALSE +CustomDocked=FALSE +DockClientData=0000040000000000000000000000000000010000000000010000000001FFFFFFFF + +[Layouts\Current\Forms\PyIDEMainForm@RightDockPanel] +ParentName=PyIDEMainForm +DockLeft=1919 +DockTop=60 +DockRight=1919 +DockBottom=818 +LastDockSiteName= +UnDockHeight=465 +DockFormStyle=3 +CanDocked=FALSE +EachOtherDocked=FALSE +LeftDocked=FALSE +TopDocked=FALSE +RightDocked=FALSE +BottomDocked=FALSE +CustomDocked=FALSE +DockClientData=0000040000000000000000000000000000010000000000010000000001FFFFFFFF + +[Layouts\Current\Forms\PyIDEMainForm@RightDockPanel_PopupPanel] +ParentName=PyIDEMainForm +LastDockSiteName= +Visible=FALSE +DockFormStyle=3 +CanDocked=FALSE +EachOtherDocked=FALSE +LeftDocked=FALSE +TopDocked=FALSE +RightDocked=FALSE +BottomDocked=FALSE +CustomDocked=FALSE +DockClientData=0000040000000000000000000000000000010000000000010000000001FFFFFFFF + +[Layouts\Current\Forms\PyIDEMainForm@TopDockPanel] +ParentName=PyIDEMainForm +DockTop=60 +DockRight=1920 +DockBottom=60 +LastDockSiteName= +UnDockWidth=1280 +DockFormStyle=3 +CanDocked=FALSE +EachOtherDocked=FALSE +LeftDocked=FALSE +TopDocked=FALSE +RightDocked=FALSE +BottomDocked=FALSE +CustomDocked=FALSE +DockClientData=0000040000000000000000000000000000010000000000010000000001FFFFFFFF + +[Layouts\Current\Forms\PyIDEMainForm@TopDockPanel_PopupPanel] +ParentName=PyIDEMainForm +LastDockSiteName= +Visible=FALSE +DockFormStyle=3 +CanDocked=FALSE +EachOtherDocked=FALSE +LeftDocked=FALSE +TopDocked=FALSE +RightDocked=FALSE +BottomDocked=FALSE +CustomDocked=FALSE +DockClientData=0000040000000000000000000000000000010000000000010000000001FFFFFFFF + +[Layouts\Current\Forms\CallStackWindow] +ParentName=TJvDockTabHostForm_CallStackWindow_VariablesWindow_0000000002A52D90 +DockLeft=2 +DockTop=2 +DockRight=1918 +DockBottom=95 +LastDockSiteName=Cannot find window +UnDockLeft=569 +UnDockTop=397 +LRDockWidth=220 +TBDockHeight=220 +UnDockWidth=487 +UnDockHeight=247 +DockClientData= + +[Layouts\Current\Forms\VariablesWindow] +ParentName=TJvDockTabHostForm_CallStackWindow_VariablesWindow_0000000002A52D90 +DockLeft=2 +DockTop=2 +DockRight=1918 +DockBottom=95 +LastDockSiteName=Cannot find window +UnDockLeft=237 +UnDockTop=237 +LRDockWidth=220 +TBDockHeight=220 +UnDockWidth=731 +UnDockHeight=344 +LeftDocked=FALSE +RightDocked=FALSE +DockClientData= + +[Layouts\Current\Forms\WatchesWindow] +ParentName=TJvDockTabHostForm_CallStackWindow_VariablesWindow_0000000002A52D90 +DockLeft=2 +DockTop=2 +DockRight=1918 +DockBottom=95 +LastDockSiteName=Cannot find window +UnDockLeft=331 +UnDockTop=325 +LRDockWidth=220 +TBDockHeight=220 +UnDockWidth=953 +UnDockHeight=322 +DockClientData= + +[Layouts\Current\Forms\BreakPointsWindow] +ParentName=TJvDockTabHostForm_CallStackWindow_VariablesWindow_0000000002A52D90 +DockLeft=2 +DockTop=2 +DockRight=1918 +DockBottom=95 +LastDockSiteName=Cannot find window +UnDockLeft=491 +UnDockTop=381 +LRDockWidth=220 +TBDockHeight=220 +UnDockWidth=484 +UnDockHeight=340 +DockClientData= + +[Layouts\Current\Forms\OutputWindow] +ParentName=TJvDockTabHostForm_CallStackWindow_VariablesWindow_0000000002A52D90 +DockLeft=2 +DockTop=2 +DockRight=1918 +DockBottom=95 +LastDockSiteName=Cannot find window +UnDockLeft=319 +UnDockTop=173 +LRDockWidth=220 +TBDockHeight=220 +UnDockWidth=697 +UnDockHeight=447 +DockClientData= + +[Layouts\Current\Forms\MessagesWindow] +ParentName=TJvDockTabHostForm_CallStackWindow_VariablesWindow_0000000002A52D90 +DockLeft=2 +DockTop=2 +DockRight=1918 +DockBottom=95 +LastDockSiteName=Cannot find window +UnDockLeft=259 +UnDockTop=257 +LRDockWidth=220 +TBDockHeight=220 +UnDockWidth=871 +UnDockHeight=269 +DockClientData= + +[Layouts\Current\Forms\PythonIIForm] +ParentName=TJvDockTabHostForm_CallStackWindow_VariablesWindow_0000000002A52D90 +DockLeft=2 +DockTop=2 +DockRight=1918 +DockBottom=95 +LastDockSiteName=Cannot find window +UnDockLeft=104 +UnDockTop=104 +LRDockWidth=220 +TBDockHeight=220 +UnDockWidth=1152 +UnDockHeight=596 +DockClientData= + +[Layouts\Current\Forms\TJvDockTabHostForm_CallStackWindow_VariablesWindow_0000000002A52D90] +ParentName=PyIDEMainForm@BottomDockPanel +DockTop=25 +DockRight=1920 +DockBottom=150 +LastDockSiteName=Cannot find window +UnDockLeft=569 +UnDockTop=397 +LRDockWidth=780 +TBDockHeight=220 +UnDockWidth=272 +UnDockHeight=241 +DockFormStyle=2 +DockClientData=00000400070000000F00000043616C6C537461636B57696E646F77010000000F0000005661726961626C657357696E646F77010000000D0000005761746368657357696E646F770100000011000000427265616B506F696E747357696E646F77010000000C0000004F757470757457696E646F77010000000E0000004D6573736167657357696E646F77010000000C000000507974686F6E4949466F726D0100000006000000F6FFFFFF + +[Layouts\Current\Forms\PyIDEMainForm@BottomDockPanel] +ParentName=PyIDEMainForm +DockTop=825 +DockRight=1920 +DockBottom=975 +LastDockSiteName= +UnDockWidth=1280 +UnDockHeight=150 +DockFormStyle=3 +CanDocked=FALSE +EachOtherDocked=FALSE +LeftDocked=FALSE +TopDocked=FALSE +RightDocked=FALSE +BottomDocked=FALSE +CustomDocked=FALSE +DockClientData=00000400000000000000000000000000000100000000000100000000010100000000000000000101000000000143000000544A76446F636B546162486F7374466F726D5F43616C6C537461636B57696E646F775F5661726961626C657357696E646F775F3030303030303030303241353244393001FFFFFFFF + +[Layouts\Current\Forms\PyIDEMainForm@BottomDockPanel_PopupPanel] +ParentName=PyIDEMainForm +LastDockSiteName= +Visible=FALSE +DockFormStyle=3 +CanDocked=FALSE +EachOtherDocked=FALSE +LeftDocked=FALSE +TopDocked=FALSE +RightDocked=FALSE +BottomDocked=FALSE +CustomDocked=FALSE +DockClientData=0000040000000000000000000000000000010000000000010000000001FFFFFFFF + +[Layouts\Current\Forms\PyIDEMainForm] +ParentName= +DockLeft=-9 +DockTop=-9 +DockRight=1929 +DockBottom=1041 +LastDockSiteName= +LRDockWidth=1296 +TBDockHeight=736 +UnDockWidth=1296 +UnDockHeight=736 +BorderStyle=2 +WindowState=2 +DockClientData= + +[Layouts\Current\Forms\ToDoWindow] +ParentName= +DockLeft=377 +DockTop=226 +DockRight=885 +DockBottom=558 +LastDockSiteName=Cannot find window +LRDockWidth=220 +TBDockHeight=220 +UnDockWidth=508 +UnDockHeight=332 +Visible=FALSE +BorderStyle=5 +DockClientData= + +[Layouts\Current\Forms\RegExpTesterWindow] +ParentName= +DockLeft=356 +DockTop=263 +DockRight=756 +DockBottom=780 +LastDockSiteName=Cannot find window +LRDockWidth=220 +TBDockHeight=220 +UnDockWidth=400 +UnDockHeight=517 +Visible=FALSE +BorderStyle=5 +TopDocked=FALSE +BottomDocked=FALSE +DockClientData= + +[Layouts\Current\Forms\UnitTestWindow] +ParentName= +DockLeft=356 +DockTop=263 +DockRight=634 +DockBottom=753 +LastDockSiteName=Cannot find window +LRDockWidth=220 +TBDockHeight=220 +UnDockWidth=278 +UnDockHeight=490 +Visible=FALSE +BorderStyle=5 +TopDocked=FALSE +BottomDocked=FALSE +DockClientData= + +[Layouts\Current\Forms\FindResultsWindow] +ParentName= +DockLeft=362 +DockTop=146 +DockRight=981 +DockBottom=543 +LastDockSiteName=Cannot find window +LRDockWidth=220 +TBDockHeight=220 +UnDockWidth=619 +UnDockHeight=397 +Visible=FALSE +BorderStyle=5 +DockClientData= + +[Layouts\Current\Toolbars] +Item0=[Layouts] +Item1=Count=1 +Item2=0=Current +Item3= +Item4=[Current @ MainMenu] +Item5=Rev=2000 +Item6=Visible=1 +Item7=DockedTo=TBXDockTop +Item8=LastDock=TBXDockTop +Item9=DockRow=0 +Item10=DockPos=0 +Item11=FloatLeft=0 +Item12=FloatTop=0 +Item13=FloatRightX=0 +Item14=DisplayMode=0 +Item15= +Item16=[Current @ MainToolBar] +Item17=Rev=2000 +Item18=Visible=1 +Item19=DockedTo=TBXDockTop +Item20=LastDock=TBXDockTop +Item21=DockRow=1 +Item22=DockPos=3 +Item23=FloatLeft=0 +Item24=FloatTop=0 +Item25=FloatRightX=0 +Item26=DisplayMode=0 +Item27= +Item28=[Current @ DebugToolbar] +Item29=Rev=2000 +Item30=Visible=1 +Item31=DockedTo=TBXDockTop +Item32=LastDock=TBXDockTop +Item33=DockRow=1 +Item34=DockPos=361 +Item35=FloatLeft=0 +Item36=FloatTop=0 +Item37=FloatRightX=0 +Item38=DisplayMode=0 +Item39= +Item40=[Current @ ViewToolbar] +Item41=Rev=2000 +Item42=Visible=1 +Item43=DockedTo=TBXDockTop +Item44=LastDock=TBXDockTop +Item45=DockRow=1 +Item46=DockPos=728 +Item47=FloatLeft=0 +Item48=FloatTop=0 +Item49=FloatRightX=0 +Item50=DisplayMode=0 +Item51= +Item52=[Current @ EditorToolbar] +Item53=Rev=2000 +Item54=Visible=1 +Item55=DockedTo=TBXDockTop +Item56=LastDock=TBXDockTop +Item57=DockRow=1 +Item58=DockPos=574 +Item59=FloatLeft=0 +Item60=FloatTop=0 +Item61=FloatRightX=0 +Item62=DisplayMode=0 +Item63= +Item64=[Current @ FindToolbar] +Item65=Rev=2000 +Item66=Visible=0 +Item67=DockedTo=TBXDockTop +Item68=LastDock=TBXDockTop +Item69=DockRow=2 +Item70=DockPos=1 +Item71=FloatLeft=0 +Item72=FloatTop=0 +Item73=FloatRightX=0 +Item74=DisplayMode=0 +Item75= +Item76=[Current @ UserToolbar] +Item77=Rev=2000 +Item78=Visible=0 +Item79=DockedTo=TBXDockTop +Item80=LastDock=TBXDockTop +Item81=DockRow=2 +Item82=DockPos=310 +Item83=FloatLeft=0 +Item84=FloatTop=0 +Item85=FloatRightX=0 +Item86=DisplayMode=0 +Item87= +Item88=[Current @ TabSplitter] +Item89=SplitterRestorePos=60 +Item90= +Count=91 + +[Editor Options\Options] +eoAltSetsColumnMode=FALSE +eoAutoIndent=TRUE +eoAutoSizeMaxScrollWidth=FALSE +eoDisableScrollArrows=FALSE +eoDragDropEditing=TRUE +eoDropFiles=FALSE +eoEnhanceHomeKey=TRUE +eoEnhanceEndKey=TRUE +eoGroupUndo=TRUE +eoHalfPageScroll=FALSE +eoHideShowScrollbars=TRUE +eoKeepCaretX=TRUE +eoNoCaret=FALSE +eoNoSelection=FALSE +eoRightMouseMovesCursor=TRUE +eoScrollByOneLess=FALSE +eoScrollHintFollows=FALSE +eoScrollPastEof=FALSE +eoScrollPastEol=FALSE +eoShowScrollHint=TRUE +eoShowSpecialChars=FALSE +eoSmartTabDelete=TRUE +eoSmartTabs=FALSE +eoSpecialLineDefaultFg=FALSE +eoTabIndent=TRUE +eoTabsToSpaces=TRUE +eoTrimTrailingSpaces=TRUE + +[Editor Options] +Color=clWindow +ExtraLineSpacing=0 +RightEdge=80 +RightEdgeColor=clSilver +WantTabs=TRUE +WordWrap=FALSE +InsertCaret=ctVerticalLine +OverwriteCaret=ctBlock +HideSelection=FALSE +MaxScrollWidth=1024 +MaxUndo=1024 +TabWidth=4 +ActiveLineColor=clNone + +[Editor Options\Font] +Charset=DEFAULT_CHARSET +Color=clWindowText +Height=-13 +Name=Consolas + +[Editor Options\Font\Style] +fsBold=FALSE +fsItalic=FALSE +fsUnderline=FALSE +fsStrikeOut=FALSE + +[Editor Options\Gutter] +AutoSize=TRUE +BorderStyle=gbsNone +DigitCount=3 +LeftOffset=25 +RightOffset=1 +Width=27 +Gradient=TRUE +GradientStartColor=clWhite +GradientEndColor=15194057 + +[Editor Options\Gutter\Font] +Charset=DEFAULT_CHARSET +Color=clWindowText +Height=-12 +Name=Courier New + +[Editor Options\Gutter\Font\Style] +fsBold=FALSE +fsItalic=FALSE +fsUnderline=FALSE +fsStrikeOut=FALSE + +[Editor Options\Keystrokes\Item0] +Command=ecUp +ShortCut=38 + +[Editor Options\Keystrokes\Item1] +Command=ecSelUp +ShortCut=8230 + +[Editor Options\Keystrokes\Item2] +Command=ecScrollUp +ShortCut=16422 + +[Editor Options\Keystrokes\Item3] +Command=ecDown +ShortCut=40 + +[Editor Options\Keystrokes\Item4] +Command=ecSelDown +ShortCut=8232 + +[Editor Options\Keystrokes\Item5] +Command=ecScrollDown +ShortCut=16424 + +[Editor Options\Keystrokes\Item6] +Command=ecLeft +ShortCut=37 + +[Editor Options\Keystrokes\Item7] +Command=ecSelLeft +ShortCut=8229 + +[Editor Options\Keystrokes\Item8] +Command=ecWordLeft +ShortCut=16421 + +[Editor Options\Keystrokes\Item9] +Command=ecSelWordLeft +ShortCut=24613 + +[Editor Options\Keystrokes\Item10] +Command=ecRight +ShortCut=39 + +[Editor Options\Keystrokes\Item11] +Command=ecSelRight +ShortCut=8231 + +[Editor Options\Keystrokes\Item12] +Command=ecWordRight +ShortCut=16423 + +[Editor Options\Keystrokes\Item13] +Command=ecSelWordRight +ShortCut=24615 + +[Editor Options\Keystrokes\Item14] +Command=ecPageDown +ShortCut=34 + +[Editor Options\Keystrokes\Item15] +Command=ecSelPageDown +ShortCut=8226 + +[Editor Options\Keystrokes\Item16] +Command=ecPageBottom +ShortCut=16418 + +[Editor Options\Keystrokes\Item17] +Command=ecSelPageBottom +ShortCut=24610 + +[Editor Options\Keystrokes\Item18] +Command=ecPageUp +ShortCut=33 + +[Editor Options\Keystrokes\Item19] +Command=ecSelPageUp +ShortCut=8225 + +[Editor Options\Keystrokes\Item20] +Command=ecPageTop +ShortCut=16417 + +[Editor Options\Keystrokes\Item21] +Command=ecSelPageTop +ShortCut=24609 + +[Editor Options\Keystrokes\Item22] +Command=ecLineStart +ShortCut=36 + +[Editor Options\Keystrokes\Item23] +Command=ecSelLineStart +ShortCut=8228 + +[Editor Options\Keystrokes\Item24] +Command=ecEditorTop +ShortCut=16420 + +[Editor Options\Keystrokes\Item25] +Command=ecSelEditorTop +ShortCut=24612 + +[Editor Options\Keystrokes\Item26] +Command=ecLineEnd +ShortCut=35 + +[Editor Options\Keystrokes\Item27] +Command=ecSelLineEnd +ShortCut=8227 + +[Editor Options\Keystrokes\Item28] +Command=ecEditorBottom +ShortCut=16419 + +[Editor Options\Keystrokes\Item29] +Command=ecSelEditorBottom +ShortCut=24611 + +[Editor Options\Keystrokes\Item30] +Command=ecToggleMode +ShortCut=45 + +[Editor Options\Keystrokes\Item31] +Command=ecCopy +ShortCut=16429 + +[Editor Options\Keystrokes\Item32] +Command=ecCut +ShortCut=8238 + +[Editor Options\Keystrokes\Item33] +Command=ecPaste +ShortCut=8237 + +[Editor Options\Keystrokes\Item34] +Command=ecDeleteChar +ShortCut=46 + +[Editor Options\Keystrokes\Item35] +Command=ecDeleteLastChar +ShortCut=8 + +[Editor Options\Keystrokes\Item36] +Command=ecDeleteLastChar +ShortCut=8200 + +[Editor Options\Keystrokes\Item37] +Command=ecDeleteLastWord +ShortCut=16392 + +[Editor Options\Keystrokes\Item38] +Command=ecUndo +ShortCut=32776 + +[Editor Options\Keystrokes\Item39] +Command=ecRedo +ShortCut=40968 + +[Editor Options\Keystrokes\Item40] +Command=ecLineBreak +ShortCut=13 + +[Editor Options\Keystrokes\Item41] +Command=ecLineBreak +ShortCut=8205 + +[Editor Options\Keystrokes\Item42] +Command=ecTab +ShortCut=9 + +[Editor Options\Keystrokes\Item43] +Command=ecShiftTab +ShortCut=8201 + +[Editor Options\Keystrokes\Item44] +Command=ecContextHelp +ShortCut=112 + +[Editor Options\Keystrokes\Item45] +Command=ecSelectAll +ShortCut=16449 + +[Editor Options\Keystrokes\Item46] +Command=ecCopy +ShortCut=16451 + +[Editor Options\Keystrokes\Item47] +Command=ecPaste +ShortCut=16470 + +[Editor Options\Keystrokes\Item48] +Command=ecCut +ShortCut=16472 + +[Editor Options\Keystrokes\Item49] +Command=ecBlockIndent +ShortCut=24649 + +[Editor Options\Keystrokes\Item50] +Command=ecBlockUnindent +ShortCut=24661 + +[Editor Options\Keystrokes\Item51] +Command=ecLineBreak +ShortCut=16461 + +[Editor Options\Keystrokes\Item52] +Command=ecInsertLine +ShortCut=16462 + +[Editor Options\Keystrokes\Item53] +Command=ecDeleteWord +ShortCut=16468 + +[Editor Options\Keystrokes\Item54] +Command=ecDeleteLine +ShortCut=16473 + +[Editor Options\Keystrokes\Item55] +Command=ecDeleteEOL +ShortCut=24665 + +[Editor Options\Keystrokes\Item56] +Command=ecUndo +ShortCut=16474 + +[Editor Options\Keystrokes\Item57] +Command=ecRedo +ShortCut=24666 + +[Editor Options\Keystrokes\Item58] +Command=ecGotoMarker0 +ShortCut=16432 + +[Editor Options\Keystrokes\Item59] +Command=ecGotoMarker1 +ShortCut=16433 + +[Editor Options\Keystrokes\Item60] +Command=ecGotoMarker2 +ShortCut=16434 + +[Editor Options\Keystrokes\Item61] +Command=ecGotoMarker3 +ShortCut=16435 + +[Editor Options\Keystrokes\Item62] +Command=ecGotoMarker4 +ShortCut=16436 + +[Editor Options\Keystrokes\Item63] +Command=ecGotoMarker5 +ShortCut=16437 + +[Editor Options\Keystrokes\Item64] +Command=ecGotoMarker6 +ShortCut=16438 + +[Editor Options\Keystrokes\Item65] +Command=ecGotoMarker7 +ShortCut=16439 + +[Editor Options\Keystrokes\Item66] +Command=ecGotoMarker8 +ShortCut=16440 + +[Editor Options\Keystrokes\Item67] +Command=ecGotoMarker9 +ShortCut=16441 + +[Editor Options\Keystrokes\Item68] +Command=ecSetMarker0 +ShortCut=24624 + +[Editor Options\Keystrokes\Item69] +Command=ecSetMarker1 +ShortCut=24625 + +[Editor Options\Keystrokes\Item70] +Command=ecSetMarker2 +ShortCut=24626 + +[Editor Options\Keystrokes\Item71] +Command=ecSetMarker3 +ShortCut=24627 + +[Editor Options\Keystrokes\Item72] +Command=ecSetMarker4 +ShortCut=24628 + +[Editor Options\Keystrokes\Item73] +Command=ecSetMarker5 +ShortCut=24629 + +[Editor Options\Keystrokes\Item74] +Command=ecSetMarker6 +ShortCut=24630 + +[Editor Options\Keystrokes\Item75] +Command=ecSetMarker7 +ShortCut=24631 + +[Editor Options\Keystrokes\Item76] +Command=ecSetMarker8 +ShortCut=24632 + +[Editor Options\Keystrokes\Item77] +Command=ecSetMarker9 +ShortCut=24633 + +[Editor Options\Keystrokes\Item78] +Command=ecNormalSelect +ShortCut=24654 + +[Editor Options\Keystrokes\Item79] +Command=ecColumnSelect +ShortCut=24643 + +[Editor Options\Keystrokes\Item80] +Command=ecLineSelect +ShortCut=24652 + +[Editor Options\Keystrokes\Item81] +Command=1104 +ShortCut=16416 + +[Editor Options\Keystrokes\Item82] +Command=1105 +ShortCut=24608 + +[Editor Options\Keystrokes\Item83] +Command=1106 +ShortCut=24797 + +[Editor Options\Keystrokes\Item84] +Command=ecMatchBracket +ShortCut=16605 + +[Editor Options\Keystrokes] +Count=85 + +[Highlighters\Python] +DefaultFilter=Python Files (*.py;*.pyw)|*.py;*.pyw + +[Highlighters\Python\Options] +AutoDetectEnabled=FALSE +AutoDetectLineLimit=0 +Visible=FALSE + +[Highlighters\C/C++\Options] +AutoDetectEnabled=FALSE +AutoDetectLineLimit=0 +Visible=FALSE + +[Highlighters\CSS] +DefaultFilter=Cascading Stylesheets (*.css)|*.css +ActiveHighlighterSwitch=FALSE + +[Highlighters\CSS\Options] +HtmlVersion=shvHtml401Transitional + +[Highlighters\CSS\Engine\Options] +HtmlVersion=shvHtml401Transitional + +[Highlighters\CSS\Engine\PhpHereDocList] +Item0=content +Item1=CONTENT +Item2=eod +Item3=EOD +Item4=eof +Item5=EOF +Item6=eol +Item7=EOL +Item8=eot +Item9=EOT +Item10=heredoc +Item11=HEREDOC +Item12=html +Item13=HTML +Item14=out +Item15=OUT +Item16=string +Item17=STRING +Count=18 + +[Highlighters\HTML] +DefaultFilter=HTML Documents (*.htm;*.html)|*.htm;*.html +ActiveHighlighterSwitch=FALSE + +[Highlighters\HTML\Options] +HtmlVersion=shvHtml401Transitional + +[Highlighters\HTML\Engine\Options] +HtmlVersion=shvHtml401Transitional + +[Highlighters\HTML\Engine\PhpHereDocList] +Item0=content +Item1=CONTENT +Item2=eod +Item3=EOD +Item4=eof +Item5=EOF +Item6=eol +Item7=EOL +Item8=eot +Item9=EOT +Item10=heredoc +Item11=HEREDOC +Item12=html +Item13=HTML +Item14=out +Item15=OUT +Item16=string +Item17=STRING +Count=18 + +[Highlighters\INI\Options] +AutoDetectEnabled=FALSE +AutoDetectLineLimit=0 +Visible=FALSE + +[Highlighters\JavaScript] +DefaultFilter=Javascript Files (*.js)|*.js +ActiveHighlighterSwitch=FALSE + +[Highlighters\JavaScript\Engine\Options] +HtmlVersion=shvHtml401Transitional + +[Highlighters\JavaScript\Engine\PhpHereDocList] +Item0=content +Item1=CONTENT +Item2=eod +Item3=EOD +Item4=eof +Item5=EOF +Item6=eol +Item7=EOL +Item8=eot +Item9=EOT +Item10=heredoc +Item11=HEREDOC +Item12=html +Item13=HTML +Item14=out +Item15=OUT +Item16=string +Item17=STRING +Count=18 + +[Highlighters\PHP] +DefaultFilter=PHP Files (*.php;*.php3;*.phtml;*.inc)|*.php;*.php3;*.phtml;*.inc +ActiveHighlighterSwitch=FALSE + +[Highlighters\PHP\Engine\Options] +HtmlVersion=shvHtml401Transitional + +[Highlighters\PHP\Engine\PhpHereDocList] +Item0=content +Item1=CONTENT +Item2=eod +Item3=EOD +Item4=eof +Item5=EOF +Item6=eol +Item7=EOL +Item8=eot +Item9=EOT +Item10=heredoc +Item11=HEREDOC +Item12=html +Item13=HTML +Item14=out +Item15=OUT +Item16=string +Item17=STRING +Count=18 + +[Highlighters\XML] +DefaultFilter=XML Files (*.xml;*.xsd;*.xsl;*.xslt;*.dtd)|*.xml;*.xsd;*.xsl;*.xslt;*.dtd +ActiveHighlighterSwitch=FALSE + +[Highlighters\XML\Engine\Options] +HtmlVersion=shvHtml401Transitional + +[Highlighters\XML\Engine\PhpHereDocList] +Item0=content +Item1=CONTENT +Item2=eod +Item3=EOD +Item4=eof +Item5=EOF +Item6=eol +Item7=EOL +Item8=eot +Item9=EOT +Item10=heredoc +Item11=HEREDOC +Item12=html +Item13=HTML +Item14=out +Item15=OUT +Item16=string +Item17=STRING +Count=18 + +[Highlighters\YAML\Options] +AutoDetectEnabled=FALSE +AutoDetectLineLimit=0 +Visible=FALSE + +[Highlighters\Cython] +DefaultFilter=Cython Files (*.pyx*.pxd;*.pxi)|*.pyx;*.pxd;*.pxi + +[Highlighters\Cython\Options] +AutoDetectEnabled=FALSE +AutoDetectLineLimit=0 +Visible=FALSE + +[Highlighters\Intepreter] +DefaultFilter=Python Files (*.py;*.pyw)|*.py;*.pyw +PS1=>>> +PS2=... +Dbg=[Dbg] +PM=[PM] + +[Highlighters\Intepreter\Options] +AutoDetectEnabled=FALSE +AutoDetectLineLimit=0 +Visible=FALSE + +[Highlighters\Intepreter\CommentAttri] +Foreground=clGreen + +[Highlighters\Intepreter\KeyAttri] +Foreground=clNavy + +[Highlighters\Intepreter\KeyAttri\Style] +fsBold=FALSE +fsItalic=FALSE +fsUnderline=FALSE +fsStrikeOut=FALSE + +[Highlighters\Intepreter\NonKeyAttri\Style] +fsBold=FALSE +fsItalic=FALSE +fsUnderline=FALSE +fsStrikeOut=FALSE + +[Highlighters\Intepreter\NumberAttri] +Foreground=clTeal + +[Highlighters\Intepreter\HexAttri] +Foreground=clTeal + +[Highlighters\Intepreter\OctalAttri] +Foreground=clTeal + +[Highlighters\Intepreter\FloatAttri] +Foreground=clTeal + +[Highlighters\Intepreter\StringAttri] +Foreground=clOlive + +[Highlighters\Intepreter\SymbolAttri] +Foreground=clMaroon + +[Highlighters\Intepreter\BannerAttri] +Background=clNone +Foreground=clBlue + +[Highlighters\Intepreter\OutputAttri] +Background=clNone +Foreground=clTeal + +[Highlighters\Intepreter\TracebackAttri] +Background=clNone +Foreground=clRed + +[Highlighters\Intepreter\PromptAttri] +Background=clNone +Foreground=clNone + +[Interpreter Editor Options\Options] +eoAltSetsColumnMode=FALSE +eoAutoIndent=TRUE +eoAutoSizeMaxScrollWidth=FALSE +eoDisableScrollArrows=FALSE +eoDragDropEditing=TRUE +eoDropFiles=FALSE +eoEnhanceHomeKey=TRUE +eoEnhanceEndKey=TRUE +eoGroupUndo=TRUE +eoHalfPageScroll=FALSE +eoHideShowScrollbars=TRUE +eoKeepCaretX=TRUE +eoNoCaret=FALSE +eoNoSelection=FALSE +eoRightMouseMovesCursor=TRUE +eoScrollByOneLess=FALSE +eoScrollHintFollows=FALSE +eoScrollPastEof=FALSE +eoScrollPastEol=FALSE +eoShowScrollHint=TRUE +eoShowSpecialChars=FALSE +eoSmartTabDelete=TRUE +eoSmartTabs=FALSE +eoSpecialLineDefaultFg=FALSE +eoTabIndent=TRUE +eoTabsToSpaces=TRUE +eoTrimTrailingSpaces=FALSE + +[Interpreter Editor Options] +Color=clWindow +ExtraLineSpacing=0 +RightEdge=0 +RightEdgeColor=clSilver +WantTabs=TRUE +WordWrap=TRUE +InsertCaret=ctVerticalLine +OverwriteCaret=ctBlock +HideSelection=FALSE +MaxScrollWidth=1024 +MaxUndo=1024 +TabWidth=4 +ActiveLineColor=clNone + +[Interpreter Editor Options\Font] +Charset=DEFAULT_CHARSET +Color=clWindowText +Height=-13 +Name=Consolas + +[Interpreter Editor Options\Font\Style] +fsBold=FALSE +fsItalic=FALSE +fsUnderline=FALSE +fsStrikeOut=FALSE + +[Interpreter Editor Options\Gutter] +AutoSize=TRUE +DigitCount=3 +LeftOffset=25 +RightOffset=1 +Visible=FALSE +Width=0 +Gradient=TRUE + +[Interpreter Editor Options\Gutter\Font] +Charset=DEFAULT_CHARSET +Color=clWindowText +Height=-12 +Name=Courier New + +[Interpreter Editor Options\Gutter\Font\Style] +fsBold=FALSE +fsItalic=FALSE +fsUnderline=FALSE +fsStrikeOut=FALSE + +[Print Options] +Copies=1 +Colors=TRUE +TabWidth=8 +Color=clWhite +HeaderItems=$TITLE$\.1\.0\.-17\.Arial\.0\.120\.10\.0\.1\.2 +FooterItems=$PAGENUM$\\.$PAGECOUNT$\.1\.0\.-17\.Arial\.0\.120\.10\.0\.1\.2 + +[Print Options\Header\DefaultFont] +Charset=DEFAULT_CHARSET +Color=clBlack +Height=-13 +Name=Arial + +[Print Options\Header\DefaultFont\Style] +fsBold=FALSE +fsItalic=FALSE +fsUnderline=FALSE +fsStrikeOut=FALSE + +[Print Options\Footer\DefaultFont] +Charset=DEFAULT_CHARSET +Color=clBlack +Height=-13 +Name=Arial + +[Print Options\Footer\DefaultFont\Style] +fsBold=FALSE +fsItalic=FALSE +fsUnderline=FALSE +fsStrikeOut=FALSE + +[Print Options\Margins] +Left=00000000000000C80340 +Right=00000000000000F00240 +Top=00000000000000C80340 +Bottom=00000000000000C80340 +Header=00000000000000900340 +Footer=00000000000000900340 +LeftHFTextIndent=00000000000000800040 +RightHFTextIndent=00000000000000800040 +HFInternalMargin=0000000000000080FE3F +MirrorMargins=FALSE + +[Print Options\Font] +Charset=DEFAULT_CHARSET +Color=clWindowText +Height=-13 +Name=Courier New + +[Print Options\Font\Style] +fsBold=FALSE +fsItalic=FALSE +fsUnderline=FALSE +fsStrikeOut=FALSE + +[File Templates\Item0] +Name=Πηγαίος Κώδικας Python +Highlighter=Python +Extension=py +Category=Python + +[File Templates\Item0\Template] +Item0=#------------------------------------------------------------------------------- +Item1=# Name: $[ActiveDoc-Name] +Item2="# Purpose: " +Item3=# +Item4=# Author: $[UserName] +Item5=# +Item6=# Created: $[DateTime-'DD/MM/YYYY'-DateFormat] +Item7=# Copyright: (c) $[UserName] $[DateTime-'YYYY'-DateFormat] +Item8=# Licence: +Item9=#------------------------------------------------------------------------------- +Item10= +Item11=def main(): +Item12=" pass" +Item13= +Item14=if __name__ == '__main__': +Item15=" main()" +Count=16 + +[File Templates\Item1] +Name=Cython Script +Highlighter=Cython +Extension=pyx +Category=Python + +[File Templates\Item1\Template] +Item0=#------------------------------------------------------------------------------- +Item1=# Name: $[ActiveDoc-Name] +Item2="# Purpose: " +Item3=# +Item4=# Author: $[UserName] +Item5=# +Item6=# Created: $[DateTime-'DD/MM/YYYY'-DateFormat] +Item7=# Copyright: (c) $[UserName] $[DateTime-'YYYY'-DateFormat] +Item8=# Licence: +Item9=#------------------------------------------------------------------------------- +Item10= +Item11=def main(): +Item12=" pass" +Item13= +Item14=if __name__ == '__main__': +Item15=" main()" +Count=16 + +[File Templates\Item2] +Name=Αρχείο HTML +Highlighter=HTML +Extension=htm +Category=Διαδίκτυο + +[File Templates\Item2\Template] +Item0= +Item1= +Item2= +Item3=" " +Item4=" Untitled" +Item5=" " +Item6=" " +Item7=" " +Item8=" " +Item9= +Item10=" " +Item11= +Count=12 + +[File Templates\Item3] +Name=Αρχείο XML +Highlighter=XML +Extension=xml +Category=Διαδίκτυο + +[File Templates\Item3\Template] +Item0= +Count=1 + +[File Templates\Item4] +Name=Αρχείο CSS +Highlighter=CSS +Extension=css +Category=Διαδίκτυο + +[File Templates\Item4\Template] +Item0=BODY { +Item1= +Item2=} +Count=3 + +[File Templates\Item5] +Name=JavaScript Code +Highlighter=JavaScript +Extension=js +Category=Άλλα + +[File Templates\Item5\Template] +Count=0 + +[File Templates\Item6] +Name=PHP Code +Highlighter=XML +Extension=xml +Category=Άλλα + +[File Templates\Item6\Template] +Count=0 + +[File Templates\Item7] +Name=Αρχείο Κειμένου +Highlighter= +Extension=txt +Category=Άλλα + +[File Templates\Item7\Template] +Count=0 + +[File Templates] +Count=8 + +[ToDo Options] +ShowTokens=FALSE +ScanType=tstOpenFiles +RecurseDirScan=FALSE +FileName Width=200 +Line Width=60 + +[ToDo Options\DirsToScan] +Count=0 + +[ToDo Options\Todo Tokens] +Count=6 + +[ToDo Options\Todo Tokens\Token0] +Token=TODO +Priority=tpMed + +[ToDo Options\Todo Tokens\Token1] +Token=FIXME +Priority=tpMed + +[ToDo Options\Todo Tokens\Token2] +Token=XXX +Priority=tpMed + +[ToDo Options\Todo Tokens\Token3] +Token=ToDo1 +Priority=tpHigh + +[ToDo Options\Todo Tokens\Token4] +Token=ToDo2 +Priority=tpMed + +[ToDo Options\Todo Tokens\Token5] +Token=ToDo3 +Priority=tpLow + +[Find in Files Options] +CaseSensitive=FALSE +NoComments=FALSE +Search=1 +SubDirectories=TRUE +Save=TRUE +ExpandAll=FALSE +BackupModified=FALSE +Whole Word=FALSE +Middle=TRUE +RegEx=FALSE +NumContextLines=2 +ContextMatchColor=-16777203 + +[Find in Files Options\ListFont] +Charset=DEFAULT_CHARSET +Color=clWindowText +Height=-12 +Name=Calibri + +[Find in Files Options\ListFont\Style] +fsBold=FALSE +fsItalic=FALSE +fsUnderline=FALSE +fsStrikeOut=FALSE + +[Find in Files Options\ContextFont] +Charset=DEFAULT_CHARSET +Color=clWindowText +Height=-12 +Name=Calibri + +[Find in Files Options\ContextFont\Style] +fsBold=FALSE +fsItalic=FALSE +fsUnderline=FALSE +fsStrikeOut=FALSE + +[Find in Files Options\DirectoryList] +Item0=C:\Program Files\Python34\Lib +Count=1 + +[Find in Files Options\SearchList] +Count=0 + +[Find in Files Options\ReplaceList] +Count=0 + +[Find in Files Options\MaskList] +Item0=*.py;*.pyw +Count=1 + +[Tools\Tool0\ExternalTool] +Caption=Python &Interpreter +Description=External Python Interpreter +ApplicationName=$[PythonExe-Short] +WorkingDirectory=$[ActiveDoc-Dir] +ShortCut=0 +SaveFiles=sfAll +MessagesFormat=$[FileName] $[LineNumber] +CaptureOutput=FALSE +ConsoleHidden=FALSE +WaitForTerminate=FALSE + +[Tools\Tool1\ExternalTool] +Caption=Python&Win help +Description=Show Python Win Help +ApplicationName=$[PythonExe-Path-Short]Lib\site-packages\PyWin32.chm +ShortCut=0 +MessagesFormat=$[FileName] $[LineNumber] +CaptureOutput=FALSE +ConsoleHidden=FALSE +WaitForTerminate=FALSE + +[Tools\Tool2\ExternalTool] +Caption=Check &Indentation +Description=Check the Indentation of the Python program +ApplicationName=$[PythonExe-Short] +Parameters=$[PythonDir-Short]Lib\tabnanny.py $[ActiveDoc-Short] +WorkingDirectory=$[ActiveDoc-Dir] +ShortCut=24660 +Context=tcActivePythonFile +SaveFiles=sfActive +ParseMessages=TRUE +ParseTraceback=TRUE +MessagesFormat=$[FileName] $[LineNumber] + +[Tools\Tool3\ExternalTool] +Caption=Command Prompt +Description=Start a console at the directory of the active file +ApplicationName=%COMSPEC% +WorkingDirectory=$[ActiveDoc-Dir] +ShortCut=0 +SaveFiles=sfAll +MessagesFormat=$[FileName] $[LineNumber] +CaptureOutput=FALSE +ConsoleHidden=FALSE +WaitForTerminate=FALSE + +[Tools\Tool4\ExternalTool] +Caption=Profile +Description=Profile active file +ApplicationName=$[PythonExe-Short] +Parameters=$[PythonDir-Short]Lib\profile.py $[ActiveDoc-Short] $[CmdLineArgs] +WorkingDirectory=$[ActiveDoc-Dir] +ShortCut=0 +Context=tcActivePythonFile +SaveFiles=sfActive +ParseTraceback=TRUE +MessagesFormat=$[FileName] $[LineNumber] + +[Tools\Tool5\ExternalTool] +Caption=Py&lint +Description=PyLint tool (www.logilab.org/projects/pylint) +ApplicationName=$[PythonExe-Short] +Parameters=$[PythonDir-Short]Lib\site-packages\pylint\lint.py $[ActiveDoc-Short] -f parseable +ShortCut=16460 +Context=tcActivePythonFile +SaveFiles=sfAll +ParseMessages=TRUE +ParseTraceback=TRUE +MessagesFormat=$[FileName]:$[LineNumber]: + +[Tools\Tool6\ExternalTool] +Caption=Advanced Replace +Description=Advanced Search and replace +ApplicationName=$[PythonExe-Short] +Parameters=-c "import sys, re;l=sys.stdin.read();sys.stdout.write(re.sub('$[st?Search Text:]', '$[rt?Replace Text:]', l))" +ShortCut=0 +Context=tcSelectionAvailable +ProcessInput=piSelection +ProcessOutput=poSelection +MessagesFormat=$[FileName] $[LineNumber] +CaptureOutput=FALSE + +[Tools\Tool7\ExternalTool] +Caption=Sort Selection +Description=Sort the selected editor block ("one-liner" demo) +ApplicationName=$[PythonExe-Short] +Parameters=-c "import sys;l=sys.stdin.readlines();l.sort();sys.stdout.writelines(l)" +ShortCut=24659 +Context=tcSelectionAvailable +ProcessInput=piSelection +ProcessOutput=poSelection +MessagesFormat=$[FileName] $[LineNumber] +CaptureOutput=FALSE + +[Tools\Tool8\ExternalTool] +Caption=&Reindent +Description=Reindent the active file +ApplicationName=$[PythonExe-Short] +Parameters=$[PythonDir-Short]Tools\Scripts\reindent.py +ShortCut=0 +Context=tcActivePythonFile +ProcessInput=piActiveFile +ProcessOutput=poActiveFile +MessagesFormat=$[FileName] $[LineNumber] + +[Tools\Tool9\ExternalTool] +Caption=&Upper Case +Description=Change selection to upper case +ApplicationName=$[PythonExe-Short] +Parameters=-c "import sys;sys.stdout.writelines([s.upper() for s in sys.stdin.readlines()])" +ShortCut=0 +Context=tcSelectionAvailable +ProcessInput=piSelection +ProcessOutput=poSelection +MessagesFormat=$[FileName] $[LineNumber] +CaptureOutput=FALSE + +[Tools\Tool10\ExternalTool] +Caption=&Lower Case +Description=Change selection to lower case +ApplicationName=$[PythonExe-Short] +Parameters=-c "import sys;sys.stdout.writelines([s.lower() for s in sys.stdin.readlines()])" +ShortCut=0 +Context=tcSelectionAvailable +ProcessInput=piSelection +ProcessOutput=poSelection +MessagesFormat=$[FileName] $[LineNumber] +CaptureOutput=FALSE + +[Tools] +Count=11 + +[Tools\External Run] +Caption=Python Interpreter +Description=External Python Interpreter +ApplicationName=$[PythonExe-Short] +Parameters=$[ActiveDoc-Short] $[CmdLineArgs] +WorkingDirectory=$[ActiveDoc-Dir] +ShortCut=0 +MessagesFormat=$[FileName] $[LineNumber] + +[Toolbar Items] +Item0=[Items] +Item1=Count=197 +Item2=0=MainToolBar, tbiFileNewModule, Ctrl+N +Item3=1=MainToolBar, tbiFileOpen, Ctrl+O +Item4=2=MainToolBar, tbiFileSave, Ctrl+S +Item5=3=MainToolBar, tbiFileSaveAll, 0 +Item6=4=MainToolBar, TBXSeparatorItem1, 0 +Item7=5=MainToolBar, tbiFilePrint, Ctrl+P +Item8=6=MainToolBar, TBXSeparatorItem2, 0 +Item9=7=MainToolBar, tbiEditCut, Ctrl+X +Item10=8=MainToolBar, tbiEditCopy, Ctrl+C +Item11=9=MainToolBar, tbiEditPaste, Ctrl+V +Item12=10=MainToolBar, TBXSeparatorItem3, 0 +Item13=11=MainToolBar, tbiEditUndo, Ctrl+Z +Item14=12=MainToolBar, tbiEditRedo, Shift+Ctrl+Z +Item15=13=MainToolBar, TBXSeparatorItem4, 0 +Item16=14=MainToolBar, tbiSearchFind, Ctrl+F +Item17=15=MainToolBar, tbiSearchFindNext, F3 +Item18=16=MainToolBar, tbiSearchReplace, Ctrl+H +Item19=17=MainToolBar, tbiFindInFiles, Shift+Ctrl+F +Item20=18=MainToolBar, mnuFindInFilesResults, Ctrl+Alt+F +Item21=19=MainToolBar, TBXSeparatorItem5, 0 +Item22=20=MainToolBar, tbiAbout, 0 +Item23=21=DebugToolbar, tbiRunRun, Ctrl+F9 +Item24=22=DebugToolbar, TBXSeparatorItem6, 0 +Item25=23=DebugToolbar, tbiRunDebug, F9 +Item26=24=DebugToolbar, tbiRunRunToCursor, F4 +Item27=25=DebugToolbar, tbiRunStepInto, F7 +Item28=26=DebugToolbar, tbiRunStepOver, F8 +Item29=27=DebugToolbar, tbiRunStepOut, Shift+F8 +Item30=28=DebugToolbar, tbiRunPause, 0 +Item31=29=DebugToolbar, tbiRunAbort, Ctrl+Alt+F9 +Item32=30=DebugToolbar, TBXSeparatorItem7, 0 +Item33=31=DebugToolbar, tbiRunToggleBreakpoint, F5 +Item34=32=DebugToolbar, tbiRunClearAllBreakpoints, 0 +Item35=33=ViewToolbar, tbiViewThemes, 0 +Item36=34=ViewToolbar, tbiViewLayouts, 0 +Item37=35=EditorToolbar, tbiBrowsePrevious, Alt+Left +Item38=36=EditorToolbar, tbiBrowseNext, Alt+Right +Item39=37=EditorToolbar, TBXSeparatorItem14, 0 +Item40=38=EditorToolbar, tbiEditDedent, Shift+Ctrl+U +Item41=39=EditorToolbar, tbiEditIndent, Shift+Ctrl+I +Item42=40=EditorToolbar, TBXSeparatorItem10, 0 +Item43=41=EditorToolbar, tbiEditToggleComment, Ctrl+' +Item44=42=EditorToolbar, TBXSeparatorItem11, 0 +Item45=43=EditorToolbar, tbiEditLineNumbers, 0 +Item46=44=EditorToolbar, tbiEditWordWrap, 0 +Item47=45=EditorToolbar, tbiEditSpecialCharacters, 0 +Item48=46=SpTBXCustomizer, tbactViewMainMenu, Ctrl+F10 +Item49=47=SpTBXCustomizer, tbactCallStackWin, 0 +Item50=48=SpTBXCustomizer, tbactVariablesWin, 0 +Item51=49=SpTBXCustomizer, tbactSyntaxCheck, 0 +Item52=50=SpTBXCustomizer, tbactCommandLine, 0 +Item53=51=SpTBXCustomizer, tbactImportModule, 0 +Item54=52=SpTBXCustomizer, tbactFileCloseAll, Shift+Ctrl+F4 +Item55=53=SpTBXCustomizer, tbactFileExit, Alt+F4 +Item56=54=SpTBXCustomizer, tbactViewStatusBar, 0 +Item57=55=SpTBXCustomizer, tbactExternalRun, Alt+F9 +Item58=56=SpTBXCustomizer, tbactExternalRunConfigure, 0 +Item59=57=SpTBXCustomizer, tbactRunDebugLastScript, Shift+F9 +Item60=58=SpTBXCustomizer, tbactRestoreEditor, Shift+Alt+Z +Item61=59=SpTBXCustomizer, tbactRunLastScriptExternal, Shift+Alt+F9 +Item62=60=SpTBXCustomizer, tbactRunLastScript, Shift+Ctrl+F9 +Item63=61=SpTBXCustomizer, tbactBreakPointsWin, 0 +Item64=62=SpTBXCustomizer, tbactWatchesWin, 0 +Item65=63=SpTBXCustomizer, tbactMessagesWin, 0 +Item66=64=SpTBXCustomizer, tbactViewII, 0 +Item67=65=SpTBXCustomizer, tbactViewCodeExplorer, 0 +Item68=66=SpTBXCustomizer, tbactViewFileExplorer, 0 +Item69=67=SpTBXCustomizer, tbactViewToDoList, 0 +Item70=68=SpTBXCustomizer, tbactViewOutput, 0 +Item71=69=SpTBXCustomizer, tbactViewUnitTests, 0 +Item72=70=SpTBXCustomizer, tbactFindDefinition, Alt+D +Item73=71=SpTBXCustomizer, tbactFindReferences, 0 +Item74=72=SpTBXCustomizer, tbactBrowseBack, Alt+Left +Item75=73=SpTBXCustomizer, tbactBrowseForward, Alt+Right +Item76=74=SpTBXCustomizer, tbactViewRegExpTester, 0 +Item77=75=SpTBXCustomizer, tbactLayoutSave, 0 +Item78=76=SpTBXCustomizer, tbactLayoutsDelete, 0 +Item79=77=SpTBXCustomizer, tbactLayoutDebug, 0 +Item80=78=SpTBXCustomizer, tbactMaximizeEditor, Alt+Z +Item81=79=SpTBXCustomizer, tbactEditorZoomIn, "Alt+Num +" +Item82=80=SpTBXCustomizer, tbactEditorZoomOut, "Alt+Num -" +Item83=81=SpTBXCustomizer, tbactViewSplitEditorVer, 0 +Item84=82=SpTBXCustomizer, tbactAddWatchAtCursor, Alt+W +Item85=83=SpTBXCustomizer, tbactPythonReinitialize, Ctrl+F2 +Item86=84=SpTBXCustomizer, tbactPythonInternal, 0 +Item87=85=SpTBXCustomizer, tbactPythonRemote, 0 +Item88=86=SpTBXCustomizer, tbactPythonRemoteTk, 0 +Item89=87=SpTBXCustomizer, tbactPythonRemoteWx, 0 +Item90=88=SpTBXCustomizer, tbactNewFile, 0 +Item91=89=SpTBXCustomizer, tbactNavWatches, Ctrl+Alt+W +Item92=90=SpTBXCustomizer, tbactNavBreakpoints, Ctrl+Alt+B +Item93=91=SpTBXCustomizer, tbactNavInterpreter, Ctrl+Alt+I +Item94=92=SpTBXCustomizer, tbactNavVariables, Ctrl+Alt+V +Item95=93=SpTBXCustomizer, tbactNavCallStack, Ctrl+Alt+S +Item96=94=SpTBXCustomizer, tbactNavMessages, Ctrl+Alt+M +Item97=95=SpTBXCustomizer, tbactNavFileExplorer, Ctrl+Alt+X +Item98=96=SpTBXCustomizer, tbactNavCodeExplorer, Ctrl+Alt+C +Item99=97=SpTBXCustomizer, tbactNavTodo, Ctrl+Alt+T +Item100=98=SpTBXCustomizer, tbactNavUnitTests, Ctrl+Alt+U +Item101=99=SpTBXCustomizer, tbactNavOutput, Ctrl+Alt+O +Item102=100=SpTBXCustomizer, tbactNavEditor, F12 +Item103=101=SpTBXCustomizer, tbactExecSelection, Ctrl+F7 +Item104=102=SpTBXCustomizer, tbactViewSplitEditorHor, 0 +Item105=103=SpTBXCustomizer, tbactViewHideSecondEditor, 0 +Item106=104=SpTBXCustomizer, tbactPostMortem, 0 +Item107=105=SpTBXCustomizer, tbactViewCustomizeToolbars, 0 +Item108=106=SpTBXCustomizer, tbactViewProjectExplorer, 0 +Item109=107=SpTBXCustomizer, tbactNavProjectExplorer, Ctrl+Alt+P +Item110=108=SpTBXCustomizer, tbactViewSplitWorkspaceVer, 0 +Item111=109=SpTBXCustomizer, tbactViewSplitWorkspaceHor, 0 +Item112=110=SpTBXCustomizer, tbactViewHideSecondaryWorkspace, 0 +Item113=111=SpTBXCustomizer, tbactToolsPythonInterpreter, 0 +Item114=112=SpTBXCustomizer, tbactToolsPythonWinhelp, 0 +Item115=113=SpTBXCustomizer, tbactToolsCheckIndentation, Shift+Ctrl+T +Item116=114=SpTBXCustomizer, tbactToolsCommandPrompt, 0 +Item117=115=SpTBXCustomizer, tbactToolsProfile, 0 +Item118=116=SpTBXCustomizer, tbactToolsPylint, Ctrl+L +Item119=117=SpTBXCustomizer, tbactToolsAdvancedReplace, 0 +Item120=118=SpTBXCustomizer, tbactToolsSortSelection, Shift+Ctrl+S +Item121=119=SpTBXCustomizer, tbactToolsReindent, 0 +Item122=120=SpTBXCustomizer, tbactToolsUpperCase, 0 +Item123=121=SpTBXCustomizer, tbactToolsLowerCase, 0 +Item124=122=SpTBXCustomizer, tbactFileSaveAs, 0 +Item125=123=SpTBXCustomizer, tbactFileClose, Ctrl+F4 +Item126=124=SpTBXCustomizer, tbactEditDelete, 0 +Item127=125=SpTBXCustomizer, tbactEditSelectAll, Ctrl+A +Item128=126=SpTBXCustomizer, tbactSearchFindPrev, Shift+F3 +Item129=127=SpTBXCustomizer, tbactPrinterSetup, 0 +Item130=128=SpTBXCustomizer, tbactPrintPreview, 0 +Item131=129=SpTBXCustomizer, tbactPageSetup, 0 +Item132=130=SpTBXCustomizer, tbactEditorOptions, 0 +Item133=131=SpTBXCustomizer, tbactIDEOptions, 0 +Item134=132=SpTBXCustomizer, tbactEditCommentOut, Ctrl+Alt+. +Item135=133=SpTBXCustomizer, tbactEditUncomment, Ctrl+Alt+, +Item136=134=SpTBXCustomizer, tbactSearchMatchingBrace, Ctrl+] +Item137=135=SpTBXCustomizer, tbactEditTabify, Alt+' +Item138=136=SpTBXCustomizer, tbactEditUntabify, Shift+Alt+' +Item139=137=SpTBXCustomizer, tbactPythonPath, 0 +Item140=138=SpTBXCustomizer, tbactHelpContents, 0 +Item141=139=SpTBXCustomizer, tbactPythonManuals, 0 +Item142=140=SpTBXCustomizer, tbactSearchGoToLine, Alt+G +Item143=141=SpTBXCustomizer, tbactSearchGoToSyntaxError, Shift+Ctrl+E +Item144=142=SpTBXCustomizer, tbactParameterCompletion, Shift+Ctrl+P +Item145=143=SpTBXCustomizer, tbactModifierCompletion, Shift+Ctrl+M +Item146=144=SpTBXCustomizer, tbactReplaceParameters, Shift+Ctrl+R +Item147=145=SpTBXCustomizer, tbactHelpParameters, 0 +Item148=146=SpTBXCustomizer, tbactInsertTemplate, Ctrl+J +Item149=147=SpTBXCustomizer, tbactCustomizeParameters, 0 +Item150=148=SpTBXCustomizer, tbactIDEShortcuts, 0 +Item151=149=SpTBXCustomizer, tbactCodeTemplates, 0 +Item152=150=SpTBXCustomizer, tbactConfigureTools, 0 +Item153=151=SpTBXCustomizer, tbactHelpExternalTools, 0 +Item154=152=SpTBXCustomizer, tbactFindFunction, Ctrl+G +Item155=153=SpTBXCustomizer, tbactFindPreviousReference, Ctrl+Alt+Up +Item156=154=SpTBXCustomizer, tbactFindNextReference, Ctrl+Alt+Down +Item157=155=SpTBXCustomizer, tbactEditLBDos, 0 +Item158=156=SpTBXCustomizer, tbactEditLBUnix, 0 +Item159=157=SpTBXCustomizer, tbactEditLBMac, 0 +Item160=158=SpTBXCustomizer, tbactEditAnsi, 0 +Item161=159=SpTBXCustomizer, tbactHelpEditorShortcuts, 0 +Item162=160=SpTBXCustomizer, tbactCheckForUpdates, 0 +Item163=161=SpTBXCustomizer, tbactUnitTestWizard, 0 +Item164=162=SpTBXCustomizer, tbactInterpreterEditorOptions, 0 +Item165=163=SpTBXCustomizer, tbactFileTemplates, 0 +Item166=164=SpTBXCustomizer, tbactEditUTF8, 0 +Item167=165=SpTBXCustomizer, tbactEditUTF8NoBOM, 0 +Item168=166=SpTBXCustomizer, tbactEditUTF16LE, 0 +Item169=167=SpTBXCustomizer, tbactEditUTF16BE, 0 +Item170=168=SpTBXCustomizer, tbactFileReload, 0 +Item171=169=SpTBXCustomizer, tbactImportShortcuts, 0 +Item172=170=SpTBXCustomizer, tbactExportShortCuts, 0 +Item173=171=SpTBXCustomizer, tbactImportHighlighters, 0 +Item174=172=SpTBXCustomizer, tbactExportHighlighters, 0 +Item175=173=SpTBXCustomizer, tbactSearchReplaceNow, 0 +Item176=174=SpTBXCustomizer, tbactSearchHighlight, Shift+Ctrl+H +Item177=175=SpTBXCustomizer, tbactSearchGoToDebugLine, 0 +Item178=176=SpTBXCustomizer, tbactHelpWebProjectHome, 0 +Item179=177=SpTBXCustomizer, tbactHelpWebGroupSupport, 0 +Item180=178=SpTBXCustomizer, tbactFileCloseAllOther, 0 +Item181=179=SpTBXCustomizer, tbactEditCopyFileName, 0 +Item182=180=SpTBXCustomizer, tbactToolsEditStartupScripts, 0 +Item183=181=SpTBXCustomizer, tbactHelpWebBlog, 0 +Item184=182=SpTBXCustomizer, tbactCopyHistory, 0 +Item185=183=SpTBXCustomizer, tbactClearContents, 0 +Item186=184=SpTBXCustomizer, tbactCopyWithoutPrompts, Shift+Ctrl+C +Item187=185=SpTBXCustomizer, tbactPasteAndExecute, Shift+Ctrl+V +Item188=186=SpTBXCustomizer, tbactProjectNew, 0 +Item189=187=SpTBXCustomizer, tbactProjectOpen, 0 +Item190=188=SpTBXCustomizer, tbactProjectSave, 0 +Item191=189=SpTBXCustomizer, tbactProjectSaveAs, 0 +Item192=190=SpTBXCustomizer, tbactProjectRelativePaths, 0 +Item193=191=SpTBXCustomizer, tbactProjectShowFileExtensions, 0 +Item194=192=SpTBXCustomizer, tbactProjectExtraPythonPath, 0 +Item195=193=SpTBXCustomizer, tbactProjectExpandAll, 0 +Item196=194=SpTBXCustomizer, tbactProjectCollapseAll, 0 +Item197=195=SpTBXCustomizer, tbactPreviousFrame, F11 +Item198=196=SpTBXCustomizer, tbactNextFrame, Shift+F11 +Item199= +Count=200 + +[IDE Shortcuts\Action0] +ActionListName=actlStandard +ActionName=actViewMainMenu +ShortCut=16505 + +[IDE Shortcuts\Action1] +ActionListName=actlStandard +ActionName=actCallStackWin + +[IDE Shortcuts\Action2] +ActionListName=actlStandard +ActionName=actVariablesWin + +[IDE Shortcuts\Action3] +ActionListName=actlStandard +ActionName=actSyntaxCheck + +[IDE Shortcuts\Action4] +ActionListName=actlStandard +ActionName=actRun +ShortCut=16504 + +[IDE Shortcuts\Action5] +ActionListName=actlStandard +ActionName=actCommandLine + +[IDE Shortcuts\Action6] +ActionListName=actlStandard +ActionName=actImportModule + +[IDE Shortcuts\Action7] +ActionListName=actlStandard +ActionName=actFileNewModule +ShortCut=16462 + +[IDE Shortcuts\Action8] +ActionListName=actlStandard +ActionName=actFileOpen +ShortCut=16463 + +[IDE Shortcuts\Action9] +ActionListName=actlStandard +ActionName=actFileCloseAll +ShortCut=24691 + +[IDE Shortcuts\Action10] +ActionListName=actlStandard +ActionName=actFileExit +ShortCut=32883 + +[IDE Shortcuts\Action11] +ActionListName=actlStandard +ActionName=actViewStatusBar + +[IDE Shortcuts\Action12] +ActionListName=actlStandard +ActionName=actExternalRun +ShortCut=32888 + +[IDE Shortcuts\Action13] +ActionListName=actlStandard +ActionName=actExternalRunConfigure + +[IDE Shortcuts\Action14] +ActionListName=actlStandard +ActionName=actRunDebugLastScript +ShortCut=8312 + +[IDE Shortcuts\Action15] +ActionListName=actlStandard +ActionName=actDebug +ShortCut=120 + +[IDE Shortcuts\Action16] +ActionListName=actlStandard +ActionName=actRestoreEditor +ShortCut=41050 + +[IDE Shortcuts\Action17] +ActionListName=actlStandard +ActionName=actRunToCursor +ShortCut=115 + +[IDE Shortcuts\Action18] +ActionListName=actlStandard +ActionName=actStepInto +ShortCut=118 + +[IDE Shortcuts\Action19] +ActionListName=actlStandard +ActionName=actStepOver +ShortCut=119 + +[IDE Shortcuts\Action20] +ActionListName=actlStandard +ActionName=actStepOut +ShortCut=8311 + +[IDE Shortcuts\Action21] +ActionListName=actlStandard +ActionName=actDebugPause + +[IDE Shortcuts\Action22] +ActionListName=actlStandard +ActionName=actDebugAbort +ShortCut=49272 + +[IDE Shortcuts\Action23] +ActionListName=actlStandard +ActionName=actRunLastScriptExternal +ShortCut=41080 + +[IDE Shortcuts\Action24] +ActionListName=actlStandard +ActionName=actRunLastScript +ShortCut=24696 + +[IDE Shortcuts\Action25] +ActionListName=actlStandard +ActionName=actToggleBreakPoint +ShortCut=116 + +[IDE Shortcuts\Action26] +ActionListName=actlStandard +ActionName=actClearAllBreakpoints + +[IDE Shortcuts\Action27] +ActionListName=actlStandard +ActionName=actBreakPointsWin + +[IDE Shortcuts\Action28] +ActionListName=actlStandard +ActionName=actWatchesWin + +[IDE Shortcuts\Action29] +ActionListName=actlStandard +ActionName=actMessagesWin + +[IDE Shortcuts\Action30] +ActionListName=actlStandard +ActionName=actViewII + +[IDE Shortcuts\Action31] +ActionListName=actlStandard +ActionName=actViewCodeExplorer + +[IDE Shortcuts\Action32] +ActionListName=actlStandard +ActionName=actViewFileExplorer + +[IDE Shortcuts\Action33] +ActionListName=actlStandard +ActionName=actViewToDoList + +[IDE Shortcuts\Action34] +ActionListName=actlStandard +ActionName=actViewFindResults +ShortCut=49222 + +[IDE Shortcuts\Action35] +ActionListName=actlStandard +ActionName=actViewOutput + +[IDE Shortcuts\Action36] +ActionListName=actlStandard +ActionName=actViewUnitTests + +[IDE Shortcuts\Action37] +ActionListName=actlStandard +ActionName=actFindDefinition +ShortCut=32836 + +[IDE Shortcuts\Action38] +ActionListName=actlStandard +ActionName=actFindReferences + +[IDE Shortcuts\Action39] +ActionListName=actlStandard +ActionName=actBrowseBack +ShortCut=32805 + +[IDE Shortcuts\Action40] +ActionListName=actlStandard +ActionName=actBrowseForward +ShortCut=32807 + +[IDE Shortcuts\Action41] +ActionListName=actlStandard +ActionName=actViewRegExpTester + +[IDE Shortcuts\Action42] +ActionListName=actlStandard +ActionName=actLayoutSave + +[IDE Shortcuts\Action43] +ActionListName=actlStandard +ActionName=actLayoutsDelete + +[IDE Shortcuts\Action44] +ActionListName=actlStandard +ActionName=actLayoutDebug + +[IDE Shortcuts\Action45] +ActionListName=actlStandard +ActionName=actMaximizeEditor +ShortCut=32858 + +[IDE Shortcuts\Action46] +ActionListName=actlStandard +ActionName=actEditorZoomIn +ShortCut=32875 + +[IDE Shortcuts\Action47] +ActionListName=actlStandard +ActionName=actEditorZoomOut +ShortCut=32877 + +[IDE Shortcuts\Action48] +ActionListName=actlStandard +ActionName=actViewSplitEditorVer + +[IDE Shortcuts\Action49] +ActionListName=actlStandard +ActionName=actAddWatchAtCursor +ShortCut=32855 + +[IDE Shortcuts\Action50] +ActionListName=actlStandard +ActionName=actPythonReinitialize +ShortCut=16497 + +[IDE Shortcuts\Action51] +ActionListName=actlStandard +ActionName=actPythonInternal + +[IDE Shortcuts\Action52] +ActionListName=actlStandard +ActionName=actPythonRemote + +[IDE Shortcuts\Action53] +ActionListName=actlStandard +ActionName=actPythonRemoteTk + +[IDE Shortcuts\Action54] +ActionListName=actlStandard +ActionName=actPythonRemoteWx + +[IDE Shortcuts\Action55] +ActionListName=actlStandard +ActionName=actNewFile + +[IDE Shortcuts\Action56] +ActionListName=actlStandard +ActionName=actNavWatches +ShortCut=49239 + +[IDE Shortcuts\Action57] +ActionListName=actlStandard +ActionName=actNavBreakpoints +ShortCut=49218 + +[IDE Shortcuts\Action58] +ActionListName=actlStandard +ActionName=actNavInterpreter +ShortCut=49225 + +[IDE Shortcuts\Action59] +ActionListName=actlStandard +ActionName=actNavVariables +ShortCut=49238 + +[IDE Shortcuts\Action60] +ActionListName=actlStandard +ActionName=actNavCallStack +ShortCut=49235 + +[IDE Shortcuts\Action61] +ActionListName=actlStandard +ActionName=actNavMessages +ShortCut=49229 + +[IDE Shortcuts\Action62] +ActionListName=actlStandard +ActionName=actNavFileExplorer +ShortCut=49240 + +[IDE Shortcuts\Action63] +ActionListName=actlStandard +ActionName=actNavCodeExplorer +ShortCut=49219 + +[IDE Shortcuts\Action64] +ActionListName=actlStandard +ActionName=actNavTodo +ShortCut=49236 + +[IDE Shortcuts\Action65] +ActionListName=actlStandard +ActionName=actNavUnitTests +ShortCut=49237 + +[IDE Shortcuts\Action66] +ActionListName=actlStandard +ActionName=actNavOutput +ShortCut=49231 + +[IDE Shortcuts\Action67] +ActionListName=actlStandard +ActionName=actNavEditor +ShortCut=123 + +[IDE Shortcuts\Action68] +ActionListName=actlStandard +ActionName=actExecSelection +ShortCut=16502 + +[IDE Shortcuts\Action69] +ActionListName=actlStandard +ActionName=actViewSplitEditorHor + +[IDE Shortcuts\Action70] +ActionListName=actlStandard +ActionName=actViewHideSecondEditor + +[IDE Shortcuts\Action71] +ActionListName=actlStandard +ActionName=actPostMortem + +[IDE Shortcuts\Action72] +ActionListName=actlStandard +ActionName=actViewCustomizeToolbars + +[IDE Shortcuts\Action73] +ActionListName=actlStandard +ActionName=actViewProjectExplorer + +[IDE Shortcuts\Action74] +ActionListName=actlStandard +ActionName=actNavProjectExplorer +ShortCut=49232 + +[IDE Shortcuts\Action75] +ActionListName=actlStandard +ActionName=actViewSplitWorkspaceVer + +[IDE Shortcuts\Action76] +ActionListName=actlStandard +ActionName=actViewSplitWorkspaceHor + +[IDE Shortcuts\Action77] +ActionListName=actlStandard +ActionName=actViewHideSecondaryWorkspace + +[IDE Shortcuts\Action78] +ActionListName=actlStandard +ActionName=actToolsPythonInterpreter + +[IDE Shortcuts\Action79] +ActionListName=actlStandard +ActionName=actToolsPythonWinhelp + +[IDE Shortcuts\Action80] +ActionListName=actlStandard +ActionName=actToolsCheckIndentation +ShortCut=24660 + +[IDE Shortcuts\Action81] +ActionListName=actlStandard +ActionName=actToolsCommandPrompt + +[IDE Shortcuts\Action82] +ActionListName=actlStandard +ActionName=actToolsProfile + +[IDE Shortcuts\Action83] +ActionListName=actlStandard +ActionName=actToolsPylint +ShortCut=16460 + +[IDE Shortcuts\Action84] +ActionListName=actlStandard +ActionName=actToolsAdvancedReplace + +[IDE Shortcuts\Action85] +ActionListName=actlStandard +ActionName=actToolsSortSelection +ShortCut=24659 + +[IDE Shortcuts\Action86] +ActionListName=actlStandard +ActionName=actToolsReindent + +[IDE Shortcuts\Action87] +ActionListName=actlStandard +ActionName=actToolsUpperCase + +[IDE Shortcuts\Action88] +ActionListName=actlStandard +ActionName=actToolsLowerCase + +[IDE Shortcuts\Action89] +ActionListName=actlMain +ActionName=actFileSave +ShortCut=16467 + +[IDE Shortcuts\Action90] +ActionListName=actlMain +ActionName=actFileSaveAs + +[IDE Shortcuts\Action91] +ActionListName=actlMain +ActionName=actFileClose +ShortCut=16499 + +[IDE Shortcuts\Action92] +ActionListName=actlMain +ActionName=actEditCut +ShortCut=16472 + +[IDE Shortcuts\Action93] +ActionListName=actlMain +ActionName=actEditCopy +ShortCut=16451 + +[IDE Shortcuts\Action94] +ActionListName=actlMain +ActionName=actEditPaste +ShortCut=16470 + +[IDE Shortcuts\Action95] +ActionListName=actlMain +ActionName=actEditDelete + +[IDE Shortcuts\Action96] +ActionListName=actlMain +ActionName=actEditUndo +ShortCut=16474 + +[IDE Shortcuts\Action97] +ActionListName=actlMain +ActionName=actEditRedo +ShortCut=24666 + +[IDE Shortcuts\Action98] +ActionListName=actlMain +ActionName=actEditSelectAll +ShortCut=16449 + +[IDE Shortcuts\Action99] +ActionListName=actlMain +ActionName=actSearchFind +ShortCut=16454 + +[IDE Shortcuts\Action100] +ActionListName=actlMain +ActionName=actSearchFindNext +ShortCut=114 + +[IDE Shortcuts\Action101] +ActionListName=actlMain +ActionName=actSearchFindPrev +ShortCut=8306 + +[IDE Shortcuts\Action102] +ActionListName=actlMain +ActionName=actSearchReplace +ShortCut=16456 + +[IDE Shortcuts\Action103] +ActionListName=actlMain +ActionName=actFileSaveAll + +[IDE Shortcuts\Action104] +ActionListName=actlMain +ActionName=actFilePrint +ShortCut=16464 + +[IDE Shortcuts\Action105] +ActionListName=actlMain +ActionName=actPrinterSetup + +[IDE Shortcuts\Action106] +ActionListName=actlMain +ActionName=actPrintPreview + +[IDE Shortcuts\Action107] +ActionListName=actlMain +ActionName=actPageSetup + +[IDE Shortcuts\Action108] +ActionListName=actlMain +ActionName=actEditorOptions + +[IDE Shortcuts\Action109] +ActionListName=actlMain +ActionName=actIDEOptions + +[IDE Shortcuts\Action110] +ActionListName=actlMain +ActionName=actEditIndent +ShortCut=24649 + +[IDE Shortcuts\Action111] +ActionListName=actlMain +ActionName=actEditDedent +ShortCut=24661 + +[IDE Shortcuts\Action112] +ActionListName=actlMain +ActionName=actEditCommentOut +ShortCut=49342 + +[IDE Shortcuts\Action113] +ActionListName=actlMain +ActionName=actEditUncomment +ShortCut=49340 + +[IDE Shortcuts\Action114] +ActionListName=actlMain +ActionName=actSearchMatchingBrace +ShortCut=16605 + +[IDE Shortcuts\Action115] +ActionListName=actlMain +ActionName=actEditTabify +ShortCut=32990 + +[IDE Shortcuts\Action116] +ActionListName=actlMain +ActionName=actEditUntabify +ShortCut=41182 + +[IDE Shortcuts\Action117] +ActionListName=actlMain +ActionName=actPythonPath + +[IDE Shortcuts\Action118] +ActionListName=actlMain +ActionName=actHelpContents + +[IDE Shortcuts\Action119] +ActionListName=actlMain +ActionName=actPythonManuals + +[IDE Shortcuts\Action120] +ActionListName=actlMain +ActionName=actAbout + +[IDE Shortcuts\Action121] +ActionListName=actlMain +ActionName=actSearchGoToLine +ShortCut=32839 + +[IDE Shortcuts\Action122] +ActionListName=actlMain +ActionName=actSearchGoToSyntaxError +ShortCut=24645 + +[IDE Shortcuts\Action123] +ActionListName=actlMain +ActionName=actFindInFiles +ShortCut=24646 + +[IDE Shortcuts\Action124] +ActionListName=actlMain +ActionName=actParameterCompletion +ShortCut=24656 + +[IDE Shortcuts\Action125] +ActionListName=actlMain +ActionName=actModifierCompletion +ShortCut=24653 + +[IDE Shortcuts\Action126] +ActionListName=actlMain +ActionName=actReplaceParameters +ShortCut=24658 + +[IDE Shortcuts\Action127] +ActionListName=actlMain +ActionName=actHelpParameters + +[IDE Shortcuts\Action128] +ActionListName=actlMain +ActionName=actInsertTemplate +ShortCut=16458 + +[IDE Shortcuts\Action129] +ActionListName=actlMain +ActionName=actCustomizeParameters + +[IDE Shortcuts\Action130] +ActionListName=actlMain +ActionName=actIDEShortcuts + +[IDE Shortcuts\Action131] +ActionListName=actlMain +ActionName=actCodeTemplates + +[IDE Shortcuts\Action132] +ActionListName=actlMain +ActionName=actConfigureTools + +[IDE Shortcuts\Action133] +ActionListName=actlMain +ActionName=actHelpExternalTools + +[IDE Shortcuts\Action134] +ActionListName=actlMain +ActionName=actFindFunction +ShortCut=16455 + +[IDE Shortcuts\Action135] +ActionListName=actlMain +ActionName=actEditLineNumbers + +[IDE Shortcuts\Action136] +ActionListName=actlMain +ActionName=actEditShowSpecialChars + +[IDE Shortcuts\Action137] +ActionListName=actlMain +ActionName=actFindPreviousReference +ShortCut=49190 + +[IDE Shortcuts\Action138] +ActionListName=actlMain +ActionName=actFindNextReference +ShortCut=49192 + +[IDE Shortcuts\Action139] +ActionListName=actlMain +ActionName=actEditLBDos + +[IDE Shortcuts\Action140] +ActionListName=actlMain +ActionName=actEditLBUnix + +[IDE Shortcuts\Action141] +ActionListName=actlMain +ActionName=actEditLBMac + +[IDE Shortcuts\Action142] +ActionListName=actlMain +ActionName=actEditAnsi + +[IDE Shortcuts\Action143] +ActionListName=actlMain +ActionName=actHelpEditorShortcuts + +[IDE Shortcuts\Action144] +ActionListName=actlMain +ActionName=actCheckForUpdates + +[IDE Shortcuts\Action145] +ActionListName=actlMain +ActionName=actUnitTestWizard + +[IDE Shortcuts\Action146] +ActionListName=actlMain +ActionName=actInterpreterEditorOptions + +[IDE Shortcuts\Action147] +ActionListName=actlMain +ActionName=actEditToggleComment +ShortCut=16606 + +[IDE Shortcuts\Action148] +ActionListName=actlMain +ActionName=actFileTemplates + +[IDE Shortcuts\Action149] +ActionListName=actlMain +ActionName=actEditUTF8 + +[IDE Shortcuts\Action150] +ActionListName=actlMain +ActionName=actEditUTF8NoBOM + +[IDE Shortcuts\Action151] +ActionListName=actlMain +ActionName=actEditUTF16LE + +[IDE Shortcuts\Action152] +ActionListName=actlMain +ActionName=actEditUTF16BE + +[IDE Shortcuts\Action153] +ActionListName=actlMain +ActionName=actFileReload + +[IDE Shortcuts\Action154] +ActionListName=actlMain +ActionName=actImportShortcuts + +[IDE Shortcuts\Action155] +ActionListName=actlMain +ActionName=actExportShortCuts + +[IDE Shortcuts\Action156] +ActionListName=actlMain +ActionName=actImportHighlighters + +[IDE Shortcuts\Action157] +ActionListName=actlMain +ActionName=actExportHighlighters + +[IDE Shortcuts\Action158] +ActionListName=actlMain +ActionName=actSearchReplaceNow + +[IDE Shortcuts\Action159] +ActionListName=actlMain +ActionName=actSearchHighlight +ShortCut=24648 + +[IDE Shortcuts\Action160] +ActionListName=actlMain +ActionName=actEditWordWrap + +[IDE Shortcuts\Action161] +ActionListName=actlMain +ActionName=actSearchGoToDebugLine + +[IDE Shortcuts\Action162] +ActionListName=actlMain +ActionName=actHelpWebProjectHome + +[IDE Shortcuts\Action163] +ActionListName=actlMain +ActionName=actHelpWebGroupSupport + +[IDE Shortcuts\Action164] +ActionListName=actlMain +ActionName=actFileCloseAllOther + +[IDE Shortcuts\Action165] +ActionListName=actlMain +ActionName=actEditCopyFileName + +[IDE Shortcuts\Action166] +ActionListName=actlMain +ActionName=actToolsEditStartupScripts + +[IDE Shortcuts\Action167] +ActionListName=actlMain +ActionName=actHelpWebBlog + +[IDE Shortcuts\Action168] +ActionListName=InterpreterActionList +ActionName=actCopyHistory + +[IDE Shortcuts\Action169] +ActionListName=InterpreterActionList +ActionName=actClearContents + +[IDE Shortcuts\Action170] +ActionListName=InterpreterActionList +ActionName=actCopyWithoutPrompts +ShortCut=24643 + +[IDE Shortcuts\Action171] +ActionListName=InterpreterActionList +ActionName=actPasteAndExecute +ShortCut=24662 + +[IDE Shortcuts\Action172] +ActionListName=ProjectActionList +ActionName=actProjectNew + +[IDE Shortcuts\Action173] +ActionListName=ProjectActionList +ActionName=actProjectOpen + +[IDE Shortcuts\Action174] +ActionListName=ProjectActionList +ActionName=actProjectSave + +[IDE Shortcuts\Action175] +ActionListName=ProjectActionList +ActionName=actProjectSaveAs + +[IDE Shortcuts\Action176] +ActionListName=ProjectActionList +ActionName=actProjectRelativePaths + +[IDE Shortcuts\Action177] +ActionListName=ProjectActionList +ActionName=actProjectShowFileExtensions + +[IDE Shortcuts\Action178] +ActionListName=ProjectActionList +ActionName=actProjectExtraPythonPath + +[IDE Shortcuts\Action179] +ActionListName=ProjectActionList +ActionName=actProjectExpandAll + +[IDE Shortcuts\Action180] +ActionListName=ProjectActionList +ActionName=actProjectCollapseAll + +[IDE Shortcuts\Action181] +ActionListName=actlCallStack +ActionName=actPreviousFrame +ShortCut=122 + +[IDE Shortcuts\Action182] +ActionListName=actlCallStack +ActionName=actNextFrame +ShortCut=8314 + +[IDE Shortcuts] +Count=183 + diff --git a/shortcuts/PortablePythonPrompt.cmd b/shortcuts/PortablePythonPrompt.cmd new file mode 100644 index 0000000..67c983d --- /dev/null +++ b/shortcuts/PortablePythonPrompt.cmd @@ -0,0 +1,6 @@ +@ECHO OFF +@set PATH=%~dp0App;%~dp0App\Scripts;%PATH% +@set PYTHONHOME=%~dp0App +@set PYTHONPATH= +@set PYTHONSTARTUP=%~dp0App\Lib\ppp.py +start cmd.exe /k for /f "usebackq tokens=* delims=" %%v in (`python -V`) do @title Portable %%v diff --git a/shortcuts/splash.pdn b/shortcuts/splash.pdn index 0ae52a8..6e2d1d3 100644 Binary files a/shortcuts/splash.pdn and b/shortcuts/splash.pdn differ diff --git a/shortcuts/splash2.7.bmp b/shortcuts/splash2.7.bmp index bc4053b..3c72388 100644 Binary files a/shortcuts/splash2.7.bmp and b/shortcuts/splash2.7.bmp differ diff --git a/shortcuts/splash3.4.bmp b/shortcuts/splash3.4.bmp new file mode 100644 index 0000000..65cc50b Binary files /dev/null and b/shortcuts/splash3.4.bmp differ