Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
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
4 changes: 2 additions & 2 deletions .github/workflows/python-package.yml
Original file line number Diff line number Diff line change
Expand Up @@ -93,7 +93,7 @@ jobs:
strategy:
matrix:
os: [ubuntu-latest, windows-latest, macos-14, macos-latest]
python-version: ["3.9", "3.10", "3.11", "3.12"]
python-version: ["3.9", "3.10", "3.11", "3.12", "3.13"]
include:
- { os: ubuntu-latest, shell: bash }
- { os: macos-latest, shell: bash }
Expand Down Expand Up @@ -179,7 +179,7 @@ jobs:
macos-14,
macos-latest,
]
python-build: ["cp39", "cp310", "cp311", "cp312"]
python-build: ["cp39", "cp310", "cp311", "cp312", "cp313"]
#exclude:
# none currently
# - { os: macos-latest, python-build: 'cp37' }
Expand Down
4 changes: 2 additions & 2 deletions docs/requirements.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
sphinx==5.3.0
sphinx==7.3.7
readthedocs-sphinx-ext==2.1.9 # ??
sphinx-rtd-theme
myst-parser==0.18.1
myst-parser==3.0.1
59 changes: 18 additions & 41 deletions docs/tutorials/otio-serialized-schema.md
Original file line number Diff line number Diff line change
Expand Up @@ -29,24 +29,23 @@ changes. If it needs to be updated and this file regenerated, run:
```
Adapters convert between OTIO and other formats.

Note that this class is not subclassed by adapters. Rather, an adapter is
a python module that implements at least one of the following functions:
Note that this class is not subclassed by adapters. Rather, an adapter is
a python module that implements at least one of the following functions:

.. code-block:: python
.. code-block:: python

write_to_string(input_otio)
write_to_file(input_otio, filepath) (optionally inferred)
read_from_string(input_str)
read_from_file(filepath) (optionally inferred)
write_to_string(input_otio)
write_to_file(input_otio, filepath) (optionally inferred)
read_from_string(input_str)
read_from_file(filepath) (optionally inferred)

...as well as a small json file that advertises the features of the adapter
to OTIO. This class serves as the wrapper around these modules internal
to OTIO. You should not need to extend this class to create new adapters
for OTIO.
...as well as a small json file that advertises the features of the adapter
to OTIO. This class serves as the wrapper around these modules internal
to OTIO. You should not need to extend this class to create new adapters
for OTIO.

For more information: https://opentimelineio.readthedocs.io/en/latest/tutorials/write-an-
For more information: https://opentimelineio.readthedocs.io/en/latest/tutorials/write-an-
adapter.html. # noqa

```

parameters:
Expand Down Expand Up @@ -84,10 +83,8 @@ parameters:
*documentation*:

```

An object that can be composed within a :class:`~Composition` (such as :class:`~Track` or
:class:`.Stack`).

```

parameters:
Expand All @@ -101,11 +98,9 @@ parameters:
*documentation*:

```

Base class for an :class:`~Item` that contains :class:`~Composable`\s.

Should be subclassed (for example by :class:`.Track` and :class:`.Stack`), not used directly.

```

parameters:
Expand Down Expand Up @@ -207,10 +202,8 @@ parameters:
*documentation*:

```

The RationalTime class represents a measure of time of :math:`rt.value/rt.rate` seconds.
It can be rescaled into another :class:`~RationalTime`'s rate.

```

parameters:
Expand All @@ -224,11 +217,9 @@ parameters:
*documentation*:

```

The TimeRange class represents a range in time. It encodes the start time and the duration,
meaning that :meth:`end_time_inclusive` (last portion of a sample in the time range) and
:meth:`end_time_exclusive` can be computed.

```

parameters:
Expand Down Expand Up @@ -261,14 +252,13 @@ parameters:
```
Defines an OTIO plugin Manifest.

This is considered an internal OTIO implementation detail.
This is considered an internal OTIO implementation detail.

A manifest tracks a collection of plugins and enables finding them by name
or other features (in the case of adapters, what file suffixes they
advertise support for).
A manifest tracks a collection of plugins and enables finding them by name
or other features (in the case of adapters, what file suffixes they
advertise support for).

For more information, consult the documentation.

For more information, consult the documentation.
```

parameters:
Expand All @@ -287,8 +277,7 @@ parameters:

```
A class of plugin that is encoded in a python module, exposed via a
manifest.

manifest.
```

parameters:
Expand All @@ -304,11 +293,9 @@ parameters:
*documentation*:

```

A :class:`~Clip` is a segment of editable media (usually audio or video).

Contains a :class:`.MediaReference` and a trim on that media reference.

```

parameters:
Expand Down Expand Up @@ -420,7 +407,6 @@ parameters:
*documentation*:

```

An ImageSequenceReference refers to a numbered series of single-frame image files. Each file can be
referred to by a URL generated by the :class:`~ImageSequenceReference`.

Expand Down Expand Up @@ -496,7 +482,6 @@ yield the first three target urls as:
- ``file:///show/sequence/shot/sample_image_sequence.-0001.exr``
- ``file:///show/sequence/shot/sample_image_sequence.0000.exr``
- ``file:///show/sequence/shot/sample_image_sequence.0001.exr``

```

parameters:
Expand All @@ -520,9 +505,7 @@ parameters:
*documentation*:

```

A time warp that applies a linear speed up or slow down across the entire clip.

```

parameters:
Expand All @@ -543,13 +526,11 @@ Instead it affects the speed of the media displayed within that item.
*documentation*:

```

A marker indicates a marked range of time on an item in a timeline, usually with a name, color or
other metadata.

The marked range may have a zero duration. The marked range is in the owning item's time coordinate
system.

```

parameters:
Expand All @@ -566,12 +547,10 @@ parameters:
*documentation*:

```

Represents media for which a concrete reference is missing.

Note that a :class:`~MissingReference` may have useful metadata, even if the location of the media
is not known.

```

parameters:
Expand All @@ -587,7 +566,6 @@ parameters:
*documentation*:

```

A container which can hold an ordered list of any serializable objects. Note that this is not a
:class:`.Composition` nor is it :class:`.Composable`.

Expand All @@ -598,7 +576,6 @@ a named collection.

A :class:`~SerializableCollection` is useful for serializing multiple timelines, clips, or media
references to a single file.

```

parameters:
Expand Down
1 change: 1 addition & 0 deletions setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -320,6 +320,7 @@ def run(self):
'Programming Language :: Python :: 3.10',
'Programming Language :: Python :: 3.11',
'Programming Language :: Python :: 3.12',
'Programming Language :: Python :: 3.13',
'Operating System :: OS Independent',
'Natural Language :: English',
],
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
import tempfile
import sys
import textwrap
import inspect

import io

Expand Down Expand Up @@ -297,7 +298,7 @@ def _write_documentation(model):
label = model[cl]["OTIO_SCHEMA"]

if (cl.__doc__ is not None):
docstring = cl.__doc__.split("\n")
docstring = inspect.getdoc(cl).split("\n")
new_docstring = []
for line in docstring:
line = textwrap.wrap(line, width=100,
Expand Down
Loading