File: _definitions.py

package info (click to toggle)
python-imageio-ffmpeg 0.6.0-3
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 192 kB
  • sloc: python: 1,619; makefile: 3
file content (69 lines) | stat: -rw-r--r-- 2,041 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
import sys
import platform


__version__ = "0.6.0"


def get_platform():
    # get_os_string and get_arch are taken from wgpu-py
    return _get_os_string() + "-" + _get_arch()


def _get_os_string():
    if sys.platform.startswith("win"):
        return "windows"
    elif sys.platform.startswith("darwin"):
        return "macos"
    elif sys.platform.startswith("linux"):
        return "linux"
    else:
        return sys.platform


def _get_arch():
    # See e.g.: https://stackoverflow.com/questions/45124888
    is_64_bit = sys.maxsize > 2**32
    machine = platform.machine()

    if machine == "armv7l":
        # Raspberry pi
        detected_arch = "armv7"
    elif is_64_bit and machine.startswith(("arm", "aarch64")):
        # Includes MacOS M1, arm linux, ...
        detected_arch = "aarch64"
    elif is_64_bit:
        detected_arch = "x86_64"
    else:
        detected_arch = "i686"
    return detected_arch


# The Linux static builds (https://johnvansickle.com/ffmpeg/) are build
# for Linux kernels 3.2.0 and up (at the time of writing, ffmpeg v7.0.2).
# This corresponds to Ubuntu 12.04 / Debian 7. I'm not entirely sure'
# what manylinux matches that, but I think manylinux2014 should be safe.


# Platform string -> ffmpeg filename
FNAME_PER_PLATFORM = {
    "macos-aarch64": "ffmpeg-macos-aarch64-v7.1",
    "macos-x86_64": "ffmpeg-macos-x86_64-v7.1",  # 10.9+
    "windows-x86_64": "ffmpeg-win-x86_64-v7.1.exe",
    "windows-i686": "ffmpeg-win32-v4.2.2.exe",  # Windows 7+
    "linux-aarch64": "ffmpeg-linux-aarch64-v7.0.2",  # Kernel 3.2.0+
    "linux-x86_64": "ffmpeg-linux-x86_64-v7.0.2",
}

osxplats = "macosx_10_9_intel.macosx_10_9_x86_64"
osxarmplats = "macosx_11_0_arm64"

# Wheel tag -> platform string
WHEEL_BUILDS = {
    "py3-none-manylinux2014_x86_64": "linux-x86_64",
    "py3-none-manylinux2014_aarch64": "linux-aarch64",
    "py3-none-" + osxplats: "macos-x86_64",
    "py3-none-" + osxarmplats: "macos-aarch64",
    "py3-none-win32": "windows-i686",
    "py3-none-win_amd64": "windows-x86_64",
}