Skip to content

Commit 21bd2c9

Browse files
Remove vfx platform 2020 support from README.md, add 2024 and 2025, note that 3.12 is also supported (#1883)
* Remove vfx platform 2020 support from README.md * Few more python references in the README * remove python 3.7 and 3.8 * noting 3.12 support * typo in Python version link * lint fix * add comment to note version specific import * Update setup.py Co-authored-by: Jean-Christophe Morin <[email protected]> Signed-off-by: Stephan Steinbach <[email protected]> --------- Signed-off-by: Stephan Steinbach <[email protected]> Co-authored-by: ssteinbach <[email protected]> Co-authored-by: Jean-Christophe Morin <[email protected]>
1 parent c125d9c commit 21bd2c9

File tree

6 files changed

+26
-55
lines changed

6 files changed

+26
-55
lines changed

.github/workflows/python-package.yml

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -93,19 +93,15 @@ jobs:
9393
strategy:
9494
matrix:
9595
os: [ubuntu-latest, windows-latest, macos-13, macos-latest]
96-
python-version: ['3.7', '3.8', '3.9', '3.10', '3.11', '3.12']
96+
python-version: ['3.9', '3.10', '3.11', '3.12']
9797
include:
9898
- { os: ubuntu-latest, shell: bash }
99-
- { os: ubuntu-22.04, shell: bash, python-version: 3.7 }
10099
- { os: macos-latest, shell: bash }
101100
- { os: macos-13, shell: bash }
102101
- { os: windows-latest, shell: pwsh }
103102
- { os: windows-latest, shell: msys2, python-version: 'mingw64' }
104103
exclude:
105-
- { os: macos-latest, python-version: 3.7 }
106-
- { os: macos-latest, python-version: 3.8 }
107104
- { os: macos-latest, python-version: 3.9 }
108-
- { os: ubuntu-latest, python-version: 3.7 }
109105

110106
defaults:
111107
run:
@@ -151,7 +147,7 @@ jobs:
151147
pip install .[dev] -v --break-system-packages
152148
- name: Run tests w/ python coverage
153149
run: make ci-postbuild
154-
# (only on ubuntu/pyhton3.7)
150+
# (only on GH_COV_OS and GH_COV_PY)
155151
- name: Generate C++ coverage report
156152
if: matrix.python-version == env.GH_COV_PY && matrix.os == env.GH_COV_OS && github.actor != env.GH_DEPENDABOT
157153
run: make lcov
@@ -172,9 +168,10 @@ jobs:
172168
strategy:
173169
matrix:
174170
os: [ubuntu-latest, ubuntu-24.04-arm, windows-latest, macos-13, macos-latest]
175-
python-build: ['cp37', 'cp38', 'cp39', 'cp310', 'cp311', 'cp312']
171+
python-build: ['cp39', 'cp310', 'cp311', 'cp312']
176172
exclude:
177-
- { os: macos-latest, python-build: 'cp37' }
173+
# none currently
174+
# - { os: macos-latest, python-build: 'cp37' }
178175
steps:
179176
- uses: actions/checkout@v4
180177

README.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@ OpenTimelineIO
33
[![OpenTimelineIO](docs/_static/[email protected])](http://opentimeline.io)
44
==============
55

6-
[![Supported VFX Platform Versions](https://img.shields.io/badge/vfx%20platform-2020--2023-lightgrey.svg)](http://www.vfxplatform.com/)
7-
![Supported Versions](https://img.shields.io/badge/python-3.7%2C%203.8%2C%203.9%2C%203.10%2C%203.11-blue)
6+
[![Supported VFX Platform Versions](https://img.shields.io/badge/vfx%20platform-2022--2025-lightgrey.svg)](http://www.vfxplatform.com/)
7+
![Supported Versions](https://img.shields.io/badge/python-3.9%2C%203.10%2C%203.11%2C%203.12-blue)
88
[![Build Status](https://github.com/AcademySoftwareFoundation/OpenTimelineIO/actions/workflows/python-package.yml/badge.svg)](https://github.com/AcademySoftwareFoundation/OpenTimelineIO/actions/workflows/python-package.yml)
99
[![codecov](https://codecov.io/gh/AcademySoftwareFoundation/OpenTimelineIO/branch/main/graph/badge.svg)](https://codecov.io/gh/AcademySoftwareFoundation/OpenTimelineIO)
1010
[![docs](https://readthedocs.org/projects/opentimelineio/badge/?version=latest)](https://opentimelineio.readthedocs.io/en/latest/index.html)
@@ -55,8 +55,8 @@ Documentation, including quick start, architecture, use cases, API docs, and muc
5555
Supported VFX Platforms
5656
-----------------
5757
The current release supports:
58-
- VFX platform 2023, 2022, 2021, 2020
59-
- Python 3.7 - 3.10
58+
- VFX platform 2025, 2024, 2023, 2022
59+
- Python 3.9 - 3.12
6060

6161
For more information on our vfxplatform support policy: [Contribution Guidelines Documentation Page](https://opentimelineio.readthedocs.io/en/latest/tutorials/contributing.html)
6262
For more information on the vfxplatform: [VFX Platform Homepage](https://vfxplatform.com)
@@ -154,7 +154,7 @@ You can also install the PySide2 dependency with `python -m pip install .[view]`
154154

155155
You may need to escape the `[` depending on your shell, `\[view\]` .
156156

157-
Currently the code base is written against python 3.7, 3.8, 3.9, 3.10 and 3.11,
157+
Currently the code base is written against python 3.9-3.12,
158158
in keeping with the pep8 style. We ask that before developers submit pull
159159
request, they:
160160

setup.py

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -205,10 +205,10 @@ def cmake_install(self):
205205
# check the python version first
206206
if (
207207
sys.version_info[0] < 3 or
208-
(sys.version_info[0] == 3 and sys.version_info[1] < 7)
208+
(sys.version_info[0] == 3 and sys.version_info[1] < 9)
209209
):
210210
sys.exit(
211-
'OpenTimelineIO requires python3.7 or greater, detected version:'
211+
'OpenTimelineIO requires python3.9 or greater, detected version:'
212212
' {}.{}'.format(
213213
sys.version_info[0],
214214
sys.version_info[1]
@@ -317,11 +317,10 @@ def run(self):
317317
'Topic :: Software Development :: Libraries :: Python Modules',
318318
'License :: OSI Approved :: Apache Software License',
319319
'Programming Language :: Python :: 3',
320-
'Programming Language :: Python :: 3.7',
321-
'Programming Language :: Python :: 3.8',
322320
'Programming Language :: Python :: 3.9',
323321
'Programming Language :: Python :: 3.10',
324322
'Programming Language :: Python :: 3.11',
323+
'Programming Language :: Python :: 3.12',
325324
'Operating System :: OS Independent',
326325
'Natural Language :: English',
327326
],
@@ -357,10 +356,9 @@ def run(self):
357356
},
358357

359358
# Disallow 3.9.0 because of https://github.com/python/cpython/pull/22670
360-
python_requires='>=3.7, !=3.9.0', # noqa: E501
359+
python_requires='>3.9.0', # noqa: E501
361360

362361
install_requires=[
363-
'importlib_metadata>=1.4; python_version < "3.8"',
364362
],
365363
entry_points={
366364
'console_scripts': [

src/py-opentimelineio/opentimelineio/plugins/manifest.py

Lines changed: 7 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -7,13 +7,9 @@
77
import inspect
88
import logging
99
import os
10-
from pathlib import Path
1110

12-
try:
13-
from importlib import metadata
14-
except ImportError:
15-
# For python 3.7
16-
import importlib_metadata as metadata
11+
# for python <= 3.9
12+
from importlib import metadata
1713

1814
from .. import (
1915
core,
@@ -287,12 +283,7 @@ def load_manifest():
287283
except AttributeError:
288284
name = plugin_entry_point.__name__
289285

290-
try:
291-
filepath = resources.files(name) / "plugin_manifest.json"
292-
except AttributeError:
293-
# For python <= 3.7
294-
with resources.path(name, "plugin_manifest.json") as p:
295-
filepath = Path(p)
286+
filepath = resources.files(name) / "plugin_manifest.json"
296287

297288
if filepath.as_posix() in result.source_files:
298289
continue
@@ -317,18 +308,10 @@ def load_manifest():
317308
)
318309

319310
# the builtin plugin manifest
320-
try:
321-
builtin_manifest_path = (
322-
resources.files("opentimelineio.adapters")
323-
/ "builtin_adapters.plugin_manifest.json"
324-
).as_posix()
325-
except AttributeError:
326-
# For python <= 3.7
327-
with resources.path(
328-
"opentimelineio.adapters",
329-
"builtin_adapters.plugin_manifest.json"
330-
) as p:
331-
builtin_manifest_path = p.as_posix()
311+
builtin_manifest_path = (
312+
resources.files("opentimelineio.adapters")
313+
/ "builtin_adapters.plugin_manifest.json"
314+
).as_posix()
332315

333316
if os.path.abspath(builtin_manifest_path) not in result.source_files:
334317
plugin_manifest = manifest_from_file(builtin_manifest_path)

tests/baselines/plugin_module/otio_mockplugin/__init__.py

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22
# Copyright Contributors to the OpenTimelineIO project
33

44
from importlib import resources
5-
from pathlib import Path
65

76
from opentimelineio.plugins import manifest
87

@@ -21,12 +20,10 @@
2120

2221

2322
def plugin_manifest():
24-
try:
25-
filepath = resources.files(__package__) / "unusually_named_plugin_manifest.json"
26-
except AttributeError:
27-
# For python <= 3.7
28-
with resources.path(__package__, "unusually_named_plugin_manifest.json") as p:
29-
filepath = Path(p)
23+
filepath = (
24+
resources.files(__package__)
25+
/ "unusually_named_plugin_manifest.json"
26+
)
3027

3128
return manifest.manifest_from_string(
3229
filepath.read_text()

tests/test_plugin_detection.py

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -12,11 +12,7 @@
1212

1313
from importlib import reload as import_reload
1414

15-
try:
16-
import importlib.metadata as metadata
17-
except ImportError:
18-
# For python 3.7
19-
import importlib_metadata as metadata
15+
import importlib.metadata as metadata
2016

2117
import opentimelineio as otio
2218
from tests import baseline_reader

0 commit comments

Comments
 (0)