Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
39 commits
Select commit Hold shift + click to select a range
760751b
Mark a concurrency test as requiring fork.
freakboy3742 Mar 16, 2024
b41f9a4
Lower the marshalling stack depth for iOS.
freakboy3742 Mar 16, 2024
0f3e9bc
Add iOS webbrowser support.
freakboy3742 Mar 19, 2024
1a9d965
Updates to site and sysconfig modules for iOS support.
freakboy3742 Mar 19, 2024
c7fe185
Update platform module to provide ios_ver.
freakboy3742 Mar 19, 2024
732c4da
Add changenote.
freakboy3742 Mar 19, 2024
97a081d
Correct some consistency issues.
freakboy3742 Mar 19, 2024
95c367d
Modify testios Makefile target to output failures once.
freakboy3742 Mar 19, 2024
3d6d875
Avoid calling iOS APIs on tvOS/watchOS.
freakboy3742 Mar 19, 2024
d12cfa0
Add a record for the new stdlib module.
freakboy3742 Mar 20, 2024
95d11fb
Add protection against running platform.ios_ver on macOS/Linux, which…
freakboy3742 Mar 20, 2024
48f4c1a
Improve markup in the description of ios_ver()
freakboy3742 Mar 20, 2024
f584d29
Use a namedtuple for ios_ver().
freakboy3742 Mar 20, 2024
9515f75
Ensure the minimum iOS version is used in sysconfig.get_platform()
freakboy3742 Mar 20, 2024
cf0b5ff
Apply suggestions from code review
freakboy3742 Mar 21, 2024
96aa042
Correct the documentation of ios_ver()
freakboy3742 Mar 22, 2024
24b3662
Clarified some discrepancies in the platform module.
freakboy3742 Mar 22, 2024
a4e09c9
Simplify getpath handling.
freakboy3742 Mar 22, 2024
41a3c1a
Modify webbrowser module to use _ios_support as a helper.
freakboy3742 Mar 22, 2024
84ba760
Simplify sysconfig schemes for iOS.
freakboy3742 Mar 22, 2024
4194849
Apply suggestions from code review
freakboy3742 Mar 24, 2024
9a91933
More documentation tweaks.
freakboy3742 Mar 24, 2024
e6550b7
Add protection for missing ctypes to webbrowser module.
freakboy3742 Mar 24, 2024
8654376
Simplifications and clarifications to sysconfig.
freakboy3742 Mar 25, 2024
7a4dcaf
Merge branch 'main' into ios-platform-changes
freakboy3742 Mar 25, 2024
4451326
Correct the naming of the IPHONEOS_DEPLOYMENT_TARGET variable.
freakboy3742 Mar 25, 2024
4386a7a
Added clarifying comment around IPHONEOS_DEPLOYMENT_TARGET
freakboy3742 Mar 25, 2024
c1a1f0b
Merge branch 'main' into ios-platform-changes
freakboy3742 Mar 27, 2024
61559ac
Removed the hard-coded development team.
freakboy3742 Mar 27, 2024
abc2034
Account for some testing edge cases picked up in review.
freakboy3742 Mar 27, 2024
096078a
Disable --with-ensurepip for iOS.
freakboy3742 Mar 27, 2024
44bbf79
Merge branch 'main' into ios-platform-changes
freakboy3742 Mar 27, 2024
7419002
Correct merge of test_platform.
freakboy3742 Mar 27, 2024
c121d5f
Always display iOS test output.
freakboy3742 Mar 28, 2024
1ac4b26
Make test suite resilient to the absence of ctypes.
freakboy3742 Mar 28, 2024
857a0c3
Make webbrowser skip resilient across platforms.
freakboy3742 Mar 28, 2024
aa65dc2
Account for ABI suffix in header directory
ned-deily Mar 28, 2024
61e51ff
test_refcount_errors requires subprocess
ned-deily Mar 28, 2024
2ee4aba
Merge branch 'main' into ios-platform-changes
ned-deily Mar 28, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Use a namedtuple for ios_ver().
  • Loading branch information
freakboy3742 committed Mar 20, 2024
commit f584d29e1a006fa47215c8b18748ef0fcb16d2bf
14 changes: 11 additions & 3 deletions Lib/platform.py
Original file line number Diff line number Diff line change
Expand Up @@ -496,8 +496,16 @@ def mac_ver(release='', versioninfo=('', '', ''), machine=''):
# If that also doesn't work return the default values
return release, versioninfo, machine


# A namedtuple for iOS version information.
IOSVersionInfo = collections.namedtuple(
"IOSVersionInfo",
["system", "release", "model", "is_simulator"]
)


def ios_ver(system="", release="", model="", is_simulator=False):
"""Get iOS version information, and return it as a tuple:
"""Get iOS version information, and return it as a namedtuple:
(system, release, model, is_simulator).

If values can't be determined, they are set to values provided as
Expand All @@ -507,9 +515,9 @@ def ios_ver(system="", release="", model="", is_simulator=False):
import _ios_support
result = _ios_support.get_platform_ios()
if result is not None:
return result
return IOSVersionInfo(*result)

return system, release, model, is_simulator
return IOSVersionInfo(system, release, model, is_simulator)


def _java_getprop(name, default):
Expand Down
18 changes: 13 additions & 5 deletions Lib/test/test_platform.py
Original file line number Diff line number Diff line change
Expand Up @@ -410,8 +410,16 @@ def test_mac_ver_with_fork(self):
support.wait_process(pid, exitcode=0)

def test_ios_ver(self):
system, release, model, is_simulator = platform.ios_ver()
result = platform.ios_ver()
if sys.platform == "ios":
system, release, model, is_simulator = result

# Result is a namedtuple
self.assertEqual(result.system, system)
self.assertEqual(result.release, release)
self.assertEqual(result.model, model)
self.assertEqual(result.is_simulator, is_simulator)

# We can't assert specific values without reproducing the logic of
# ios_ver(), so we check that the values are broadly what we expect.

Expand All @@ -438,10 +446,10 @@ def test_ios_ver(self):
else:
# On non-iOS platforms, calling ios_ver doesn't fail; you get
# default values
self.assertEqual(system, "")
self.assertEqual(release, "")
self.assertEqual(model, "")
self.assertFalse(is_simulator)
self.assertEqual(result.system, "")
self.assertEqual(result.release, "")
self.assertEqual(result.model, "")
self.assertFalse(result.is_simulator)

@unittest.skipIf(support.is_emscripten, "Does not apply to Emscripten")
def test_libc_ver(self):
Expand Down