Skip to content
Merged
Show file tree
Hide file tree
Changes from 3 commits
Commits
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
20 changes: 12 additions & 8 deletions Doc/library/sysconfig.rst
Original file line number Diff line number Diff line change
Expand Up @@ -380,24 +380,28 @@ Other functions
exact information included depends on the OS; e.g., on Linux, the kernel
version isn't particularly important.

Examples of returned values:
Returned values:

Examples of Linux returned values:
Comment thread
mhsmith marked this conversation as resolved.
Outdated

- linux-i586
- linux-i686
Comment thread
mhsmith marked this conversation as resolved.
Outdated
- linux-alpha (?)
Comment thread
mhsmith marked this conversation as resolved.
Outdated
- solaris-2.6-sun4u

Windows will return one of:
Windows platforms:

- win32 (32-bit Windows)
- win-amd64 (64-bit Windows on AMD64, aka x86_64, Intel64, and EM64T)
- win-arm64 (64-bit Windows on ARM64, aka AArch64)
Comment thread
ivanbelenky marked this conversation as resolved.
- win32 (all others - specifically, sys.platform is returned)
Comment thread
mhsmith marked this conversation as resolved.
- win-arm32 (32-bit Windows on ARM)
Comment thread
mhsmith marked this conversation as resolved.
Outdated

Examples of macOS returned values:

macOS can return:
- macosx-10.13-x86_64
- macosx-11-universal2
- macosx-15.5-arm64

- macosx-10.6-ppc
- macosx-10.4-ppc64
- macosx-10.3-i386
- macosx-10.4-fat

For other non-POSIX platforms, currently just returns :data:`sys.platform`.

Expand Down
31 changes: 22 additions & 9 deletions Lib/sysconfig/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -638,17 +638,30 @@ def get_platform():
exact information included depends on the OS; on Linux, the kernel version
isn't particularly important.

Examples of returned values:
linux-i586
linux-alpha (?)
solaris-2.6-sun4u
Returned values:

Windows will return one of:
win-amd64 (64-bit Windows on AMD64 (aka x86_64, Intel64, EM64T, etc)
win-arm64 (64-bit Windows on ARM64 (aka AArch64)
win32 (all others - specifically, sys.platform is returned)
Examples of Linux returned values:

For other non-POSIX platforms, currently just returns 'sys.platform'.
- linux-i586
- linux-i686
- linux-alpha (?)
Comment thread
mhsmith marked this conversation as resolved.
Outdated
- solaris-2.6-sun4u

Windows platforms:

- win32 (32-bit Windows)
- win-amd64 (64-bit Windows on AMD64, aka x86_64, Intel64, and EM64T)
- win-arm64 (64-bit Windows on ARM64, aka AArch64)
- win-arm32 (32-bit Windows on ARM)

Comment thread
ivanbelenky marked this conversation as resolved.
Examples of macOS returned values:

- macosx-10.13-x86_64
- macosx-11-universal2
- macosx-15.5-arm64


For other non-POSIX platforms, currently just returns :data:`sys.platform`.

"""
if os.name == 'nt':
Expand Down
7 changes: 7 additions & 0 deletions Lib/test/test_sysconfig.py
Original file line number Diff line number Diff line change
Expand Up @@ -352,6 +352,13 @@ def test_get_platform(self):

self.assertEqual(get_platform(), 'macosx-10.4-%s' % arch)

for macver in range(11, 16):
_osx_support._remove_original_values(get_config_vars())
get_config_vars()['CFLAGS'] = ('-fno-strict-overflow -Wsign-compare -Wunreachable-code'
'-arch arm64 -fno-common -dynamic -DNDEBUG -g -O3 -Wall')
get_config_vars()['MACOSX_DEPLOYMENT_TARGET'] = f"{macver}.0"
self.assertEqual(get_platform(), 'macosx-%d.0-arm64' % macver)

# linux debian sarge
os.name = 'posix'
sys.version = ('2.3.5 (#1, Jul 4 2007, 17:28:59) '
Expand Down
Loading