| Home | Top | ← | → | Overview | Module | Class | Index | Help |
|
About |
|---|
|
||||
1 # -*- coding: utf-8 -*-
2 """Darwin / OS-X / macOS - "happy marketing" naming releases - map u' all.
3 """
4 from __future__ import absolute_import
5
6 import os
7 import sys
8 import re
9 import platform
10
11
12 from pythonids import PYV35Plus
13 from platformids import RTE_OSX10, RTE_OSX, rte2num, num2rte, num2pretty, decode_version_str_to_segments, \
14 PlatformIDsFileCheck
15
16
17 __author__ = 'Arno-Can Uestuensoez'
18 __license__ = "Artistic-License-2.0 + Forced-Fairplay-Constraints"
19 __copyright__ = "Copyright (C) 2010-2018 Arno-Can Uestuensoez" \
20 " @Ingenieurbuero Arno-Can Uestuensoez"
21 __version__ = '0.1.29'
22 __uuid__ = "7add5ded-c39b-4b6e-8c87-1b3a1c150ee9"
23
24
25 #
26 # The values for Darwin OS-X are represented by sub-bitmasks, which map
27 # a specific release to it's sub releases:
28 #
29 # aaaaaabbb : ...aaaaaaaa: main releases: 8...
30 # bbb: sub releases: 0-7
31 #
32
33 # *********************************
34 #
35 # rebased to RTE_OSX10, because any modern OS-X fom 2001 on is of version 10,
36 # or to say - is OS-X - see documentation
37 #
38 # *********************************
39
40 # # context: RTE_POSIX.RTE_DARWIN
41 # RTE_OSX = RTE_DARWIN + 0x00020000 #: Mac OS-X RTE_OSX is basically the short form of RTE_OSX10
42 # RTE_OSX10 = RTE_DARWIN + 0x00040000 #: Mac OS-X v10.x, as Posix system [POSIX]_, no macpath-legacy.
43
44
45 # Leopard - 2007
46 RTE_OSX105 = RTE_OSX10 + 0x000028a0 #: Leopard - OSX-10.5.0 - DARWIN-9.0
47 RTE_OSX1050 = RTE_OSX105 + 0x000028a0 #: Leopard - OSX-10.5.0 - DARWIN-9.0
48 RTE_OSX1058 = RTE_OSX105 + 0x000028a8 #: Leopard - OSX-10.5.8 - DARWIN-9.8
49
50 # SnowLeopard - 2009
51 RTE_OSX106 = RTE_OSX10 + 0x000028c0 #: SnowLeopard - OSX-10.6.0 - DARWIN-10.0
52 RTE_OSX1060 = RTE_OSX106 + 0x000028c6 #: SnowLeopard - OSX-10.6.0 - DARWIN-10.0
53 RTE_OSX1068 = RTE_OSX106 + 0x000028c8 #: SnowLeopard - OSX-10.6.8 - DARWIN-10.8
54
55 # Lion - 2011
56 RTE_OSX107 = RTE_OSX10 + 0x000028e0 #: Lion - OSX-10.7.0 - DARWIN-11.0.0
57 RTE_OSX1070 = RTE_OSX107 + 0x000028e0 #: Lion - OSX-10.7.0 - DARWIN-11.0.0
58 RTE_OSX1075 = RTE_OSX107 + 0x000028e2 #: Lion - OSX-10.7.5 - DARWIN-11.4.2
59
60 # MountainLion - 2012
61 RTE_OSX108 = RTE_OSX10 + 0x00002900 #: MountainLion - OSX-10.8.0 - DARWIN-12.0.0
62 RTE_OSX1080 = RTE_OSX108 + 0x00002900 #: MountainLion - OSX-10.8.0 - DARWIN-12.0.0
63 RTE_OSX1085 = RTE_OSX108 + 0x00002905 #: MountainLion - OSX-10.8.5 - DARWIN-12.6.0
64
65 # Mavericks - 2013
66 RTE_OSX109 = RTE_OSX10 + 0x00002920 #: Mavericks - OSX-10.9.0 - DARWIN-13.0.0
67 RTE_OSX1090 = RTE_OSX109 + 0x00002920 #: Mavericks - OSX-10.9.0 - DARWIN-13.0.0
68 RTE_OSX1095 = RTE_OSX109 + 0x00002925 #: Mavericks - OSX-10.9.5 - DARWIN-13.4.0
69
70 # Yosemite - 2014
71 RTE_OSX1010 = RTE_OSX10 + 0x00002940 #: Yosemite - OSX-10.10.0 - DARWIN-14.0.0
72 RTE_OSX10100 = RTE_OSX1010 + 0x00002940 #: Yosemite - OSX-10.10.0 - DARWIN-14.0.0
73 RTE_OSX10105 = RTE_OSX1010 + 0x00002945 #: Yosemite - OSX-10.10.5 - DARWIN-14.5.0
74
75 # ElCapitan - 2015
76 RTE_OSX1011 = RTE_OSX10 + 0x00002960 #: ElCapitan - OSX-10.11.0 - DARWIN-15.0.0
77 RTE_OSX10110 = RTE_OSX1011 + 0x00002960 #: ElCapitan - OSX-10.11.0 - DARWIN-15.0.0
78 RTE_OSX10116 = RTE_OSX1011 + 0x00002966 #: ElCapitan - OSX-10.11.6 - DARWIN-15.6.0
79
80 # Sierra - 2016
81 RTE_OSX1012 = RTE_OSX10 + 0x00002980 #: Sierra - OSX-10.12.0 - DARWIN-16.0.0
82 RTE_OSX10124 = RTE_OSX1012 + 0x00002984 #: Sierra - OSX-10.12.4 - DARWIN-16.5.0
83 RTE_OSX10126 = RTE_OSX1012 + 0x00002986 #: Sierra - OSX-10.12.6 - DARWIN-16.6.0
84
85 # HighSierra - 2017
86 RTE_OSX1013 = RTE_OSX10 + 0x000029a0 #: HighSierra - OSX-10.13.0 - DARWIN-17.0.0
87 RTE_OSX10130 = RTE_OSX1013 + 0x000029a0 #: HighSierra - OSX-10.13.0 - DARWIN-17.5.0
88 RTE_OSX10131 = RTE_OSX1013 + 0x000029a1 #: HighSierra - OSX-10.13.1 - DARWIN-17.5.0
89 RTE_OSX10132 = RTE_OSX1013 + 0x000029a2 #: HighSierra - OSX-10.13.2 - DARWIN-17.5.0
90 RTE_OSX10133 = RTE_OSX1013 + 0x000029a3 #: HighSierra - OSX-10.13.3 - DARWIN-17.5.0
91 RTE_OSX10134 = RTE_OSX1013 + 0x000029a4 #: HighSierra - OSX-10.13.4 - DARWIN-17.5.0
92 RTE_OSX10135 = RTE_OSX1013 + 0x000029a5 #: HighSierra - OSX-10.13.5 - DARWIN-17.6.0
93 RTE_OSX10136 = RTE_OSX1013 + 0x000029a6 #: HighSierra - OSX-10.13.6 - DARWIN-17.6.0
94
95 # Mojave - 2018
96 RTE_OSX1014 = RTE_OSX10 + 0x000029c0 #: Mojave - OSX-10.14.0 - DARWIN-18.0.0
97 RTE_OSX10140 = RTE_OSX1014 + 0x000029c0 #: Mojave - OSX-10.14.0 - DARWIN-18.0.0
98 RTE_OSX10141 = RTE_OSX1014 + 0x000029c1 #: Mojave - OSX-10.14.1 - DARWIN-18.0.0
99
100
101 #: mapping of the rte string and numeric representation to the numeric value
102 rte2num.update(
103 {
104 'osx': RTE_OSX,
105 'osx105': RTE_OSX105,
106 'osx106': RTE_OSX106,
107 'osx1060': RTE_OSX1060,
108 'osx10105': RTE_OSX10105,
109 'osx1068': RTE_OSX1068,
110 'osx107': RTE_OSX107,
111 'osx108': RTE_OSX108,
112 'osx1080': RTE_OSX1080,
113 'osx1085': RTE_OSX1085,
114 'osx109': RTE_OSX109,
115 'osx1010': RTE_OSX1010,
116 'osx1011': RTE_OSX1011,
117 'osx1012': RTE_OSX1012,
118 'osx1013': RTE_OSX1013,
119 'osx1014': RTE_OSX1014,
120 'ElCapitan': RTE_OSX1011,
121 'HighSierra': RTE_OSX1013,
122 'Leopard': RTE_OSX105,
123 'Lion': RTE_OSX107,
124 'Mavericks': RTE_OSX109,
125 'Mojave': RTE_OSX1014,
126 'MountainLion': RTE_OSX108,
127 'Sierra': RTE_OSX1012,
128 'SnowLeopard': RTE_OSX106,
129 'Yosemite': RTE_OSX1010,
130
131
132
133 RTE_OSX: RTE_OSX,
134 RTE_OSX105: RTE_OSX105,
135 RTE_OSX106: RTE_OSX106,
136 RTE_OSX1060: RTE_OSX1060,
137 RTE_OSX10105: RTE_OSX10105,
138 RTE_OSX1068: RTE_OSX1068,
139 RTE_OSX107: RTE_OSX107,
140 RTE_OSX108: RTE_OSX108,
141 RTE_OSX1080: RTE_OSX1080,
142 RTE_OSX1085: RTE_OSX1085,
143 RTE_OSX109: RTE_OSX109,
144 RTE_OSX1010: RTE_OSX1010,
145 RTE_OSX1011: RTE_OSX1011,
146 RTE_OSX1012: RTE_OSX1012,
147 RTE_OSX1013: RTE_OSX1013,
148 RTE_OSX1014: RTE_OSX1014,
149 RTE_OSX1011: RTE_OSX1011,
150 RTE_OSX1013: RTE_OSX1013,
151 RTE_OSX105: RTE_OSX105,
152 RTE_OSX107: RTE_OSX107,
153 RTE_OSX109: RTE_OSX109,
154 RTE_OSX1014: RTE_OSX1014,
155 RTE_OSX108: RTE_OSX108,
156 RTE_OSX1012: RTE_OSX1012,
157 RTE_OSX106: RTE_OSX106,
158 RTE_OSX1010: RTE_OSX1010,
159
160 }
161 )
162
163
164 #: mapping of the rte numeric representation to the string value
165 num2rte.update(
166 {
167 RTE_OSX: 'osx',
168 RTE_OSX1050: 'osx1050', #: Leopard - OSX-10.5.0 - DARWIN-9.0
169 RTE_OSX1058: 'osx1058', #: Leopard - OSX-10.5.8 - DARWIN-9.8
170 RTE_OSX106: 'osx106', #: SnowLeopard - OSX-10.6 - DARWIN-10
171 RTE_OSX1060: 'osx1060', #: SnowLeopard - OSX-10.6.0 - DARWIN-10.0
172 RTE_OSX1068: 'osx1068', #: SnowLeopard - OSX-10.6.8 - DARWIN-10.8
173 RTE_OSX1070: 'osx1070', #: Lion - OSX-10.7.0 - DARWIN-11.0.0
174 RTE_OSX1075: 'osx1075', #: Lion - OSX-10.7.5 - DARWIN-11.4.2
175 RTE_OSX108: 'osx108', #: MountainLion - OSX-10.8 - DARWIN-12
176 RTE_OSX1080: 'osx1080', #: MountainLion - OSX-10.8.0 - DARWIN-12.0.0
177 RTE_OSX1085: 'osx1085', #: MountainLion - OSX-10.8.5 - DARWIN-12.6.0
178 RTE_OSX1090: 'osx1090', #: Mavericks - OSX-10.9.0 - DARWIN-13.0.0
179 RTE_OSX1095: 'osx1095', #: Mavericks - OSX-10.9.5 - DARWIN-13.4.0
180 RTE_OSX10100: 'osx10100', #: Yosemite - OSX-10.10.0 - DARWIN-14.0.0
181 RTE_OSX10105: 'osx10105', #: Yosemite - OSX-10.10.5 - DARWIN-14.5.0
182 RTE_OSX10110: 'osx10110', #: ElCapitan - OSX-10.11.0 - DARWIN-15.0.0
183 RTE_OSX10116: 'osx10116', #: ElCapitan - OSX-10.11.6 - DARWIN-15.6.0
184 RTE_OSX10124: 'osx10124', #: Sierra - OSX-10.12.4 - DARWIN-16.5.0
185 RTE_OSX10126: 'osx10126', #: Sierra - OSX-10.12.6 - DARWIN-16.6.0
186 RTE_OSX10130: 'osx10130', #: HighSierra - OSX-10.13.0 - DARWIN-17.0.0
187 RTE_OSX10134: 'osx10134', #: HighSierra - OSX-10.13.4 - DARWIN-17.5.0
188 RTE_OSX10135: 'osx10135', #: HighSierra - OSX-10.13.5 - DARWIN-17.6.0
189 RTE_OSX10136: 'osx10136', #: HighSierra - OSX-10.13.6 - DARWIN-17.6.0
190 RTE_OSX10140: 'osx10140', #: Mojave - OSX-10.14.0 - DARWIN-18.0.0
191 RTE_OSX10140: 'osx10141', #: Mojave - OSX-10.14.1 - DARWIN-18.0.0
192 }
193 )
194
195 #: mapping of the rte numeric representation to the string value
196 num2pretty.update(
197 {
198 RTE_OSX: 'OS-X',
199 RTE_OSX105: 'Leopard',
200 RTE_OSX1058: 'Leopard',
201 RTE_OSX106: 'SnowLeopard',
202 RTE_OSX1060: 'SnowLeopard',
203 RTE_OSX1068: 'SnowLeopard',
204 RTE_OSX107: 'Lion',
205 RTE_OSX1070: 'Lion',
206 RTE_OSX1075: 'Lion',
207 RTE_OSX108: 'MountainLion',
208 RTE_OSX1080: 'MountainLion',
209 RTE_OSX1085: 'MountainLion',
210 RTE_OSX109: 'Mavericks',
211 RTE_OSX1090: 'Mavericks',
212 RTE_OSX1095: 'Mavericks',
213 RTE_OSX1010: 'Yosemite',
214 RTE_OSX10100: 'Yosemite',
215 RTE_OSX10105: 'Yosemite',
216 RTE_OSX1011: 'ElCapitan',
217 RTE_OSX10110: 'ElCapitan',
218 RTE_OSX10116: 'ElCapitan',
219 RTE_OSX1012: 'Sierra',
220 RTE_OSX10124: 'Sierra',
221 RTE_OSX10126: 'Sierra',
222 RTE_OSX1013: 'HighSierra',
223 RTE_OSX10130: 'HighSierra',
224 RTE_OSX10134: 'HighSierra',
225 RTE_OSX10136: 'HighSierra',
226 RTE_OSX1014: 'Mojave',
227 RTE_OSX10140: 'Mojave',
228 }
229 )
230
231 #: official version strings
232 versions = {
233 RTE_OSX1050: '10.5.0', #: Leopard - OSX-10.5.0 - DARWIN-9.0
234 RTE_OSX1058: '10.5.8', #: Leopard - OSX-10.5.8 - DARWIN-9.8
235 RTE_OSX1060: '10.6.0', #: SnowLeopard - OSX-10.6.0 - DARWIN-10.0
236 RTE_OSX1068: '10.6.8', #: SnowLeopard - OSX-10.6.8 - DARWIN-10.8
237 RTE_OSX1070: '10.7.0', #: Lion - OSX-10.7.0 - DARWIN-11.0.0
238 RTE_OSX1075: '10.7.5', #: Lion - OSX-10.7.5 - DARWIN-11.4.2
239 RTE_OSX1080: '10.8.0', #: MountainLion - OSX-10.8.0 - DARWIN-12.0.0
240 RTE_OSX1085: '10.8.5', #: MountainLion - OSX-10.8.5 - DARWIN-12.6.0
241 RTE_OSX1090: '10.9.0', #: Mavericks - OSX-10.9.0 - DARWIN-13.0.0
242 RTE_OSX1095: '10.9.5', #: Mavericks - OSX-10.9.5 - DARWIN-13.4.0
243 RTE_OSX10100: '10.10.0', #: Yosemite - OSX-10.10.0 - DARWIN-14.0.0
244 RTE_OSX10105: '10.10.5', #: Yosemite - OSX-10.10.5 - DARWIN-14.5.0
245 RTE_OSX10110: '10.11.0', #: ElCapitan - OSX-10.11.0 - DARWIN-15.0.0
246 RTE_OSX10116: '10.11.6', #: ElCapitan - OSX-10.11.6 - DARWIN-15.6.0
247 RTE_OSX10124: '10.12.4', #: Sierra - OSX-10.12.4 - DARWIN-16.5.0
248 RTE_OSX10126: '10.12.6', #: Sierra - OSX-10.12.6 - DARWIN-16.6.0
249 RTE_OSX10130: '10.13.0', #: HighSierra - OSX-10.13.0 - DARWIN-17.0.0
250 RTE_OSX10134: '10.13.4', #: HighSierra - OSX-10.13.4 - DARWIN-17.5.0
251 RTE_OSX10135: '10.13.5', #: HighSierra - OSX-10.13.5 - DARWIN-17.6.0
252 RTE_OSX10136: '10.13.6', #: HighSierra - OSX-10.13.6 - DARWIN-17.6.0
253 RTE_OSX10140: '10.14.0', #: Mojave - OSX-10.14.0 - DARWIN-18.0.0
254 RTE_OSX10140: '10.14.1', #: Mojave - OSX-10.14.1 - DARWIN-18.0.0
255 }
256
257
258
259 dist = ['', '', 'OS-X-', 'OS-X', '', '']
260
261 try:
262
263 if sys.platform.startswith('darwin'):
264 # OS-X - CPython, PyPy, IPython
265 dist[1] = platform.release()
266 dist[5] = 'osx'
267
268 elif os.path.exists('/System/Library/Components/AppleScript.component'):
269 # OS-X - match on Jython
270 x = os.popen("sysctl kern.ostype kern.osrelease", mode='r')
271 if x.readline().endswith("Darwin\n") :
272 dist[1] = re.sub(r'[^=]*=([0-9.]*).*$', r'\1', x.readline())
273 dist[5] = 'osx'
274 x.close()
275
276 if dist[5] == 'osx':
277 dist[4] = decode_version_str_to_segments(dist[1])
278 dist[0] = 'osx%d%d%d' % (dist[4][0], dist[4][1], dist[4][2])
279 dist[2] += str(dist[1])
280
281
282 except PlatformIDsFileCheck:
283 # not on OS-X platform, so scan will fail
284 pass
285
286
287 if dist[5] != 'osx':
288 # does not actually match OS-X
289 dist = ['osx', '0.0.0', 'OS-X-0.0.0', 'OS-X', (0, 0, 0,), 'osx']
290
| Home | Top | ← | → | Overview | Module | Class | Index | Help |
|
About |
|---|
| Copyright(C) 2019 Arno-Can Uestuensoez @Ingenieurbuero Arno-Can Uestuensoez | https://arnocan.wordpress.com |
| Generated by Epydoc 4.0.4 / Python-3.8 / fedora27 on Wed Dec 18 15:07:01 2019 | http://epydoc.sourceforge.net |