~landscape/zope3/newer-from-ztk

« back to all changes in this revision

Viewing changes to src/twisted/python/runtime.py

  • Committer: Thomas Hervé
  • Date: 2009-07-08 13:52:04 UTC
  • Revision ID: thomas@canonical.com-20090708135204-df5eesrthifpylf8
Remove twisted copy

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
 
2
 
# Copyright (c) 2001-2004 Twisted Matrix Laboratories.
3
 
# See LICENSE for details.
4
 
 
5
 
 
6
 
# System imports
7
 
import os
8
 
import sys
9
 
import time
10
 
import imp
11
 
 
12
 
def shortPythonVersion():
13
 
    hv = sys.hexversion
14
 
    major = (hv & 0xff000000L) >> 24
15
 
    minor = (hv & 0x00ff0000L) >> 16
16
 
    teeny = (hv & 0x0000ff00L) >> 8
17
 
    return "%s.%s.%s" % (major,minor,teeny)
18
 
 
19
 
knownPlatforms = {
20
 
    'nt': 'win32',
21
 
    'ce': 'win32', 
22
 
    'posix': 'posix',
23
 
    'java': 'java',
24
 
    'org.python.modules.os': 'java',
25
 
    }
26
 
 
27
 
_timeFunctions = {
28
 
    #'win32': time.clock,
29
 
    'win32': time.time,
30
 
    }
31
 
 
32
 
class Platform:
33
 
    """Gives us information about the platform we're running on"""
34
 
 
35
 
    type = knownPlatforms.get(os.name)
36
 
    seconds = staticmethod(_timeFunctions.get(type, time.time))
37
 
 
38
 
    def __init__(self, name=None):
39
 
        if name is not None:
40
 
            self.type = knownPlatforms.get(name)
41
 
            self.seconds = _timeFunctions.get(self.type, time.time)
42
 
    
43
 
    def isKnown(self):
44
 
        """Do we know about this platform?"""
45
 
        return self.type != None
46
 
    
47
 
    def getType(self):
48
 
        """Return 'posix', 'win32' or 'java'"""
49
 
        return self.type
50
 
 
51
 
    def isMacOSX(self):
52
 
        """Return if we are runnng on Mac OS X."""
53
 
        return sys.platform == "darwin"
54
 
    
55
 
    def isWinNT(self):
56
 
        """Are we running in Windows NT?"""
57
 
        if self.getType() == 'win32':
58
 
            import _winreg
59
 
            try:
60
 
                k=_winreg.OpenKeyEx(_winreg.HKEY_LOCAL_MACHINE,
61
 
                                    r'Software\Microsoft\Windows NT\CurrentVersion')
62
 
                _winreg.QueryValueEx(k, 'SystemRoot')
63
 
                return 1
64
 
            except WindowsError:
65
 
                return 0
66
 
        # not windows NT
67
 
        return 0
68
 
    
69
 
    def isWindows(self):
70
 
        return self.getType() == 'win32'
71
 
 
72
 
    def supportsThreads(self):
73
 
        """Can threads be created?
74
 
        """
75
 
        try:
76
 
            return imp.find_module('thread')[0] is None
77
 
        except ImportError:
78
 
            return False
79
 
 
80
 
platform = Platform()
81
 
platformType = platform.getType()
82
 
seconds = platform.seconds