bzr branch
http://gegoxaren.bato24.eu/bzr/brz/remove-bazaar
| 
1821.1.1
by Alexander Belchenko
 win32 installer for bzr.dev.0.9  | 
1  | 
#!/usr/bin/python
 | 
2  | 
||
3  | 
"""Get file version.
 | 
|
4  | 
Written by Alexander Belchenko, 2006
 | 
|
5  | 
"""
 | 
|
6  | 
||
7  | 
import os  | 
|
8  | 
||
9  | 
import pywintypes # from pywin32 (http://pywin32.sf.net)  | 
|
10  | 
import win32api # from pywin32 (http://pywin32.sf.net)  | 
|
11  | 
||
12  | 
||
13  | 
__all__ = ['get_file_version', 'FileNotFound', 'VersionNotAvailable']  | 
|
14  | 
__docformat__ = "restructuredtext"  | 
|
15  | 
||
16  | 
||
17  | 
class FileNotFound(Exception):  | 
|
18  | 
    pass
 | 
|
19  | 
||
20  | 
class VersionNotAvailable(Exception):  | 
|
21  | 
    pass
 | 
|
22  | 
||
23  | 
||
24  | 
def get_file_version(filename):  | 
|
25  | 
"""Get file version (windows properties)  | 
|
26  | 
    :param  filename:   path to file
 | 
|
27  | 
    :return:            4-tuple with 4 version numbers
 | 
|
28  | 
    """
 | 
|
29  | 
if not os.path.isfile(filename):  | 
|
30  | 
raise FileNotFound  | 
|
31  | 
||
32  | 
try:  | 
|
33  | 
version_info = win32api.GetFileVersionInfo(filename, '\\')  | 
|
34  | 
except pywintypes.error:  | 
|
35  | 
raise VersionNotAvailable  | 
|
36  | 
||
37  | 
return (divmod(version_info['FileVersionMS'], 65536) +  | 
|
38  | 
divmod(version_info['FileVersionLS'], 65536))  |