summaryrefslogtreecommitdiffstats
path: root/Tools/msi/msilib.py
diff options
context:
space:
mode:
authorMartin v. Löwis <martin@v.loewis.de>2008-07-18 18:40:42 (GMT)
committerMartin v. Löwis <martin@v.loewis.de>2008-07-18 18:40:42 (GMT)
commit3b6cc09509735d4f438b370b26bf9d7560481cff (patch)
tree1f10d6fb05349dd0d91d5300a702ef8fd60e1bb6 /Tools/msi/msilib.py
parent5a722409ee2aed97d18f2646a30178171167c028 (diff)
downloadcpython-3b6cc09509735d4f438b370b26bf9d7560481cff.zip
cpython-3b6cc09509735d4f438b370b26bf9d7560481cff.tar.gz
cpython-3b6cc09509735d4f438b370b26bf9d7560481cff.tar.bz2
Revert r63378. These files need to stay compatible with Python 2.x (until Python 3.0 is actually used to package Python).
Diffstat (limited to 'Tools/msi/msilib.py')
-rw-r--r--Tools/msi/msilib.py49
1 files changed, 27 insertions, 22 deletions
diff --git a/Tools/msi/msilib.py b/Tools/msi/msilib.py
index 6b8a2b5..6f49b4c 100644
--- a/Tools/msi/msilib.py
+++ b/Tools/msi/msilib.py
@@ -5,7 +5,12 @@ import win32com.client.gencache
import win32com.client
import pythoncom, pywintypes
from win32com.client import constants
-import re, string, os, sets, glob, subprocess, sys, winreg, struct
+import re, string, os, sets, glob, subprocess, sys, _winreg, struct
+
+try:
+ basestring
+except NameError:
+ basestring = (str, unicode)
# Partially taken from Wine
datasizemask= 0x00ff
@@ -90,7 +95,7 @@ class Table:
index -= 1
unk = type & ~knownbits
if unk:
- print("%s.%s unknown bits %x" % (self.name, name, unk))
+ print "%s.%s unknown bits %x" % (self.name, name, unk)
size = type & datasizemask
dtype = type & typemask
if dtype == type_string:
@@ -109,7 +114,7 @@ class Table:
tname="OBJECT"
else:
tname="unknown"
- print("%s.%sunknown integer type %d" % (self.name, name, size))
+ print "%s.%sunknown integer type %d" % (self.name, name, size)
if type & type_nullable:
flags = ""
else:
@@ -168,14 +173,14 @@ def gen_schema(destpath, schemapath):
r = v.Fetch()
if not r:break
# Table, Column, Nullable
- f.write("(%r,%r,%r," %
- (r.StringData(1), r.StringData(2), r.StringData(3)))
+ f.write("(%s,%s,%s," %
+ (`r.StringData(1)`, `r.StringData(2)`, `r.StringData(3)`))
def put_int(i):
if r.IsNull(i):f.write("None, ")
else:f.write("%d," % r.IntegerData(i))
def put_str(i):
if r.IsNull(i):f.write("None, ")
- else:f.write("%r," % r.StringData(i))
+ else:f.write("%s," % `r.StringData(i)`)
put_int(4) # MinValue
put_int(5) # MaxValue
put_str(6) # KeyTable
@@ -197,7 +202,7 @@ def gen_sequence(destpath, msipath):
v = seqmsi.OpenView("SELECT * FROM _Tables");
v.Execute(None)
f = open(destpath, "w")
- f.write("import msilib,os;dirname=os.path.dirname(__file__)\n")
+ print >>f, "import msilib,os;dirname=os.path.dirname(__file__)"
tables = []
while 1:
r = v.Fetch()
@@ -230,12 +235,12 @@ def gen_sequence(destpath, msipath):
else:
rec.append(bytes)
else:
- raise ValueError("Unsupported column type", info.StringData(i))
+ raise "Unsupported column type", info.StringData(i)
f.write(repr(tuple(rec))+",\n")
v1.Close()
f.write("]\n\n")
v.Close()
- f.write("tables=%s\n" % repr(list(map(str,tables))))
+ f.write("tables=%s\n" % repr(map(str,tables)))
f.close()
class _Unspecified:pass
@@ -249,7 +254,7 @@ def change_sequence(seq, action, seqno=_Unspecified, cond = _Unspecified):
seqno = seq[i][2]
seq[i] = (action, cond, seqno)
return
- raise ValueError("Action not found in sequence")
+ raise ValueError, "Action not found in sequence"
def add_data(db, table, values):
d = MakeInstaller()
@@ -260,16 +265,16 @@ def add_data(db, table, values):
assert len(value) == count, value
for i in range(count):
field = value[i]
- if isinstance(field, int):
+ if isinstance(field, (int, long)):
r.SetIntegerData(i+1,field)
- elif isinstance(field, str):
+ elif isinstance(field, basestring):
r.SetStringData(i+1,field)
elif field is None:
pass
elif isinstance(field, Binary):
r.SetStream(i+1, field.name)
else:
- raise TypeError("Unsupported type %s" % field.__class__.__name__)
+ raise TypeError, "Unsupported type %s" % field.__class__.__name__
v.Modify(win32com.client.constants.msiViewModifyInsert, r)
r.ClearData()
v.Close()
@@ -365,9 +370,9 @@ class CAB:
logical = self.gen_id(dir, file)
self.index += 1
if full.find(" ")!=-1:
- self.file.write('"%s" %s\n' % (full, logical))
+ print >>self.file, '"%s" %s' % (full, logical)
else:
- self.file.write('%s %s\n' % (full, logical))
+ print >>self.file, '%s %s' % (full, logical)
return self.index, logical
def commit(self, db):
@@ -382,9 +387,9 @@ class CAB:
(r"Software\Microsoft\Win32SDK\Directories", "Install Dir"),
]:
try:
- key = winreg.OpenKey(winreg.HKEY_LOCAL_MACHINE, k)
- dir = winreg.QueryValueEx(key, v)[0]
- winreg.CloseKey(key)
+ key = _winreg.OpenKey(_winreg.HKEY_LOCAL_MACHINE, k)
+ dir = _winreg.QueryValueEx(key, v)[0]
+ _winreg.CloseKey(key)
except (WindowsError, IndexError):
continue
cabarc = os.path.join(dir, r"Bin", "cabarc.exe")
@@ -392,7 +397,7 @@ class CAB:
continue
break
else:
- print("WARNING: cabarc.exe not found in registry")
+ print "WARNING: cabarc.exe not found in registry"
cabarc = "cabarc.exe"
cmd = r'"%s" -m lzx:21 n %s.cab @%s.txt' % (cabarc, self.name, self.name)
p = subprocess.Popen(cmd, shell=True, stdin=subprocess.PIPE,
@@ -404,7 +409,7 @@ class CAB:
sys.stdout.write(line)
sys.stdout.flush()
if not os.path.exists(self.name+".cab"):
- raise IOError("cabarc failed")
+ raise IOError, "cabarc failed"
add_data(db, "Media",
[(1, self.index, None, "#"+self.name, None, None)])
add_stream(db, self.name, self.name+".cab")
@@ -523,7 +528,7 @@ class Directory:
file = os.path.basename(file)
absolute = os.path.join(self.absolute, src)
assert not re.search(r'[\?|><:/*]"', file) # restrictions on long names
- if file in self.keyfiles:
+ if self.keyfiles.has_key(file):
logical = self.keyfiles[file]
else:
logical = None
@@ -683,5 +688,5 @@ def set_arch_from_file(path):
Win64 = 1
arch_ext = '.amd64'
else:
- raise ValueError("Unsupported architecture")
+ raise ValueError, "Unsupported architecture"
msi_type += ";1033"