From 8047727bedd01b33f31a83ffd6952ebb6ccfe921 Mon Sep 17 00:00:00 2001 From: Iristyle Date: Sat, 3 Nov 2012 20:28:29 -0400 Subject: [PATCH] PyWin32 - Python Extensions for Windows Build 218 --- PyWin32/PyWin32-logo.png | Bin 0 -> 8950 bytes PyWin32/PyWin32.nuspec | 153 ++++++++++++++++++++++++++++ PyWin32/tools/chocolateyInstall.ps1 | 98 ++++++++++++++++++ 3 files changed, 251 insertions(+) create mode 100644 PyWin32/PyWin32-logo.png create mode 100644 PyWin32/PyWin32.nuspec create mode 100644 PyWin32/tools/chocolateyInstall.ps1 diff --git a/PyWin32/PyWin32-logo.png b/PyWin32/PyWin32-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..d42c54f9113718ec1747649767d4c6ae3a7dae67 GIT binary patch literal 8950 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 s78>#V? + + + PyWin32 + Python for Windows Extensions + 218.0 + Mark Hammond + Ethan Brown + Python for Windows Extensions adds a number of extensions allowing interaction with Win32 APIs and COM. This package should work for Python 2.3, 2.4, 2.5, 2.6, 2.7, 3.1, 3.2, 3.3 or 3.4 + Additional documentation can be found at ActiveState + + http://docs.activestate.com/activepython/2.7/pywin32/PyWin32.HTML + + http://sourceforge.net/projects/pywin32/ + Python Windows extensions + http://en.wikipedia.org/wiki/Python_Software_Foundation_License + false + https://github.com/Iristyle/ChocolateyPackages/raw/master/PyWin32/PyWin32-logo.png + Since build 218: +---------------- +* win32com.shell + Add interfaces IFileOperation and IFileOperationProgressSink + +* win32com.propsys + Add interfaces IPropertyChange, IPropertyChangeArray, and IObjectWithPropertyKey + Add functions PSCreateSimplePropertyChange, PSCreatePropertyChangeArray, and SHSetDefaultProperties + +Since build 217: +---------------- +* mapiutil.py GetPropTagName has been modified to return the fully qualified + PT_UNICODE and PT_STRING8 type name. Added optional argument to override + rawType default in GetMapiTypeName. (Nick Czeczulin) + +* Fix the count of replaced terms in Pythonwin's search/replace (rupole). + +* Fix obscure issues in the Pythonwin code browser and other uses of the + "hierlist" widget (rupole). + +* Fix a crash using a COM "record" that holds an array (rupole). + +* Fix error return in win32gui.GetClassName (rupole). + +* Some misc fixed to win32timezone (Jason R. Coombs). + +* Some fixes to win32com gencache for Python 3.x (Tim Golden) + +* Fix ActiveScript exception hresults. + +* RegQueryValueEx now return an empty list for blank REG_MULTI_SZ + (rupole via bug #3531456) + +* Add win32pdh.AddEnglishCounter (rupole via feature request #3529527) + +* Fix post_install script use of the registry (rupole via bug #3536122) + +* Python 3.3 version is built with VS2010. + +* win32com.shell - added function SHCreateStreamOnFileEx and + interfaces IShellItem2, IEnumShellItems, IApplicationDocumentLists, + IApplicationDestinations, ITaskbarList, IEnumObjects, + IKnownFolder, IKnownFolderManager, IObjectArray, IObjectCollection, + ICustomDestinationList, and IShellLibrary; enhance SHAddToRecentDocs. + +* win32com.propsys - Many Property System interfaces and functions added + +* pythoncom - added StgCreateStorageEx + +* win32com.client - + Fix iteration of objects that don't declare an enumerator in their typelib + Validate syntax of constants written to makepy generated files + +* win32file - Add GetFileInformationByHandleEx, ReOpenFile and OpenFileById, + SetFileInformationByHandle. SetFileTime() has an extra param to allow UTC + time to be specified. + +* win32api - Allow UpdateResource to remove a resource + +Since build 216: +---------------- +* ISAPI extension works with Python 3.x + +* Python service module will now have their directory added to the start + of sys.path rather than the end to avoid cryptic error messages if a + module of the same name is already on the path (rvolpe via #3194663) + +* Various Pythonwin autocomplete enhancements (kxroberto via #3468282 and + Oliver Tengler via #3433953) + +* The Pythonwin editor now remembers previous searches made in this session. + (patch #3468280 from kxroberto). + +* The LOGFONT struct implementation (win32util) was extended to support the + full LOGFONT struct as published by Microsoft. This includes changes to + win32util.LogFontToDict and win32util.DictToLogFont. (Feature request + 3433757 by Kris Hardy) + +* Remove some duplicated menu code from pythonwin which should avoid + having py2exe pulling in most of the pythonwin framework in some cases + (patch 3433527 from kxroberto.) + +* A new win32com.client.VARIANT object can be used for advanced control over + the parameter types passed to some COM methods. See the documentation in + win32com/HTML/variant.html (also included in the help file) + +* The win32com.adsi and win32com.mapi packages have been upgraded to work on + Python 3.x and as a result, there is a slight risk that regressions to + these packages have been introduced in the Python 2.x versions. Please + file a bug if any problems are found. + +* Pythonwin now warns, but allows you to continue, when saving a file with + an invalid encoding line (bug 3139486) + +* Fix win32com.client.WithEvents on py3k (bug 3199843) + +* When passing integers/unsigned integers to COM objects which did not fit + into 32bits, OverflowErrors were silently discarded and -1 was silently + passed. This has been fixed for signed integers (an OverflowError is now + raised) and unsigned integers now allow for values with the high-bit set to + be passed correctly. + +* Fix win32com.client.WithEvents() on py3k. + +* makepy may have generated syntax errors if 'helpstring' elements in typelibs + had strange quoting or slashes (bug 3199631) + +* Fixed that in some cases win32file.GetOpenFileName and GetSaveFileName + could have returned trailing garbage after an embedded NULL character. + (bug 3277647) + +* Some functions which accepted a DWORD did not accept long integers which + fit in 32bits with the most signficant bit set (eg, 0x80000000). + +* Source-code management moved from CVS to Mercurual. + +* win32com.shell - Added SHCreateShellItem and fixed some 64bit issues. + +* win32evtlog - Added some of the new event log functions introduced in + Vista/Windows 7 + +* win32service - Added EnumServicesStatusEx, and support startup type + "delayed" for Python services + +* win32net - Fix a problem with NetFileEnum on 64-bit (bug #3376041) + + + + + + + + + + diff --git a/PyWin32/tools/chocolateyInstall.ps1 b/PyWin32/tools/chocolateyInstall.ps1 new file mode 100644 index 0000000..548be12 --- /dev/null +++ b/PyWin32/tools/chocolateyInstall.ps1 @@ -0,0 +1,98 @@ +$package = 'PyWin32' + +try { + # python.exe should be in PATH based on + #simulate the unix command for finding things in path + #http://stackoverflow.com/questions/63805/equivalent-of-nix-which-command-in-powershell + function Which([string]$cmd) + { + Get-Command -ErrorAction "SilentlyContinue" $cmd | + Select -ExpandProperty Definition + } + + + # Use PYTHONHOME if it exists, or fallback to 'Where' to search PATH + if ($Env:PYTHONHOME) { $localPython = Join-Path $Env:PYTHONHOME 'python.exe' } + + if (!$Env:PYTHONHOME -or !(Test-Path $localPython)) + { $localPython = Which python.exe } + + if (!(Test-Path $localPython)) + { + Write-ChocolateyFailure 'PyWin32 requires a Python runtime to install' + return + } + + $pythonRoot = Split-Path $localPython + + $sitePackages = (Join-Path (Join-Path $pythonRoot 'Lib') 'site-packages') + if (!(Test-Path $sitePackages)) + { + Write-ChocolateyFailure 'Could not find Python site-packages directory' + return + } + + $7zip = Which 7z.exe + # guess that a bad install didn't put it in PATH + if (!$7zip) + { + $7zip = $Env:ProgramFiles, ${Env:ProgramFiles(x86)} | + % { Join-Path (Join-Path $_ '7-zip') '7z.exe' } | + ? { Test-Path $_ } | + Select -First 1 + } + if (!(Test-Path $7zip)) + { + Write-ChocolateyFailure 'PyWin32 requires 7zip to silently install' + return + } + + $pythonVersion = &$localPython --version 2>&1 + + $simpleVersion = $pythonVersion | + Select-String -Pattern '^.*\s+(\d\.\d)(\.\d+){0,1}$' | + % { $_.Matches.Groups[1].Value } + + # http://www.jordanrinke.com/2011/06/22/pywin32-silent-install/ + + $destination = Join-Path $Env:Temp "pywin32-218.$simpleVersion.exe" + $params = @{ + packageName = $package; + fileFullPath = $destination; + url = "http://sourceforge.net/projects/pywin32/files/pywin32/Build%20218/pywin32-218.win32-py$simpleVersion.exe/download"; + url64bit = "http://sourceforge.net/projects/pywin32/files/pywin32/Build%20218/pywin32-218.win-amd64-py$simpleVersion.exe/download"; + } + + # no special 64-bit for these python versions + if ('2.5', '2.4', '2.3' -contains $simpleVersion) + { + $params.url64bit = $params.url + } + + Get-ChocolateyWebFile @params + + $pyWin32Temp = Join-Path $Env:Temp 'pywin32-temp' + &$7zip x $destination "-o$pyWin32Temp" + + 'PLATLIB', 'SCRIPTS' | + % { Join-Path $pywin32Temp $_ } | + Get-ChildItem | + Move-Item -Destination $sitePackages + + # some files are copied to c:\windows\system32 + $installPyWin32Script = @" + Push-Location '$sitePackages' + &'$localPython' pywin32_postinstall.py `-install + Remove-Item .\pywin32_postinstall.py +"@ + + Start-ChocolateyProcessAsAdmin $installPyWin32Script + + $pyWin32Temp, $destination | + Remove-Item -Recurse -ErrorAction SilentlyContinue + + Write-ChocolateySuccess $package +} catch { + Write-ChocolateyFailure $package "$($_.Exception.Message)" + throw +}