Merge branch 'develop' into bugfix/Nuke_allow_no_timecode_for_extract

This commit is contained in:
Jakub Ježek 2023-07-28 16:48:55 +02:00 committed by GitHub
commit 0a10d25324
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
1330 changed files with 50124 additions and 27429 deletions

View file

@ -35,6 +35,14 @@ body:
label: Version
description: What version are you running? Look to OpenPype Tray
options:
- 3.16.3-nightly.1
- 3.16.2
- 3.16.2-nightly.2
- 3.16.2-nightly.1
- 3.16.1
- 3.16.0
- 3.16.0-nightly.2
- 3.16.0-nightly.1
- 3.15.12
- 3.15.12-nightly.4
- 3.15.12-nightly.3
@ -127,14 +135,6 @@ body:
- 3.14.7-nightly.2
- 3.14.7-nightly.1
- 3.14.6
- 3.14.6-nightly.3
- 3.14.6-nightly.2
- 3.14.6-nightly.1
- 3.14.5
- 3.14.5-nightly.3
- 3.14.5-nightly.2
- 3.14.5-nightly.1
- 3.14.4
validations:
required: true
- type: dropdown

View file

@ -5,12 +5,6 @@ on:
inputs:
milestone:
required: true
release-type:
type: choice
description: What release should be created
options:
- release
- pre-release
milestone:
types: closed

1
.gitignore vendored
View file

@ -37,6 +37,7 @@ Temporary Items
###########
/build
/dist/
/server_addon/packages/*
/vendor/bin/*
/vendor/python/*

File diff suppressed because it is too large Load diff

View file

@ -32,12 +32,16 @@ RUN yum -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.n
wget \
gcc \
zlib-devel \
pcre-devel \
perl-core \
bzip2 \
bzip2-devel \
readline-devel \
sqlite sqlite-devel \
openssl-devel \
openssl-libs \
openssl11-devel \
openssl11-libs \
tk-devel libffi-devel \
patchelf \
automake \
@ -71,7 +75,12 @@ RUN echo 'export PATH="$HOME/.pyenv/bin:$PATH"'>> $HOME/.bashrc \
&& echo 'eval "$(pyenv init -)"' >> $HOME/.bashrc \
&& echo 'eval "$(pyenv virtualenv-init -)"' >> $HOME/.bashrc \
&& echo 'eval "$(pyenv init --path)"' >> $HOME/.bashrc
RUN source $HOME/.bashrc && pyenv install ${OPENPYPE_PYTHON_VERSION}
RUN source $HOME/.bashrc \
&& export CPPFLAGS="-I/usr/include/openssl11" \
&& export LDFLAGS="-L/usr/lib64/openssl11 -lssl -lcrypto" \
&& export PATH=/usr/local/openssl/bin:$PATH \
&& export LD_LIBRARY_PATH=/usr/local/openssl/lib:$LD_LIBRARY_PATH \
&& pyenv install ${OPENPYPE_PYTHON_VERSION}
COPY . /opt/openpype/
RUN rm -rf /openpype/.poetry || echo "No Poetry installed yet."
@ -93,12 +102,13 @@ RUN source $HOME/.bashrc \
RUN source $HOME/.bashrc \
&& ./tools/fetch_thirdparty_libs.sh
RUN echo 'export PYTHONPATH="/opt/openpype/vendor/python:$PYTHONPATH"'>> $HOME/.bashrc
RUN source $HOME/.bashrc \
&& bash ./tools/build.sh
RUN cp /usr/lib64/libffi* ./build/exe.linux-x86_64-3.9/lib \
&& cp /usr/lib64/libssl* ./build/exe.linux-x86_64-3.9/lib \
&& cp /usr/lib64/libcrypto* ./build/exe.linux-x86_64-3.9/lib \
&& cp /usr/lib64/openssl11/libssl* ./build/exe.linux-x86_64-3.9/lib \
&& cp /usr/lib64/openssl11/libcrypto* ./build/exe.linux-x86_64-3.9/lib \
&& cp /root/.pyenv/versions/${OPENPYPE_PYTHON_VERSION}/lib/libpython* ./build/exe.linux-x86_64-3.9/lib \
&& cp /usr/lib64/libxcb* ./build/exe.linux-x86_64-3.9/vendor/python/PySide2/Qt/lib

View file

@ -3,7 +3,7 @@
[![All Contributors](https://img.shields.io/badge/all_contributors-28-orange.svg?style=flat-square)](#contributors-)
<!-- ALL-CONTRIBUTORS-BADGE:END -->
OpenPype
====
========
[![documentation](https://github.com/pypeclub/pype/actions/workflows/documentation.yml/badge.svg)](https://github.com/pypeclub/pype/actions/workflows/documentation.yml) ![GitHub VFX Platform](https://img.shields.io/badge/vfx%20platform-2022-lightgrey?labelColor=303846)
@ -47,7 +47,7 @@ It can be built and ran on all common platforms. We develop and test on the foll
For more details on requirements visit [requirements documentation](https://openpype.io/docs/dev_requirements)
Building OpenPype
-------------
-----------------
To build OpenPype you currently need [Python 3.9](https://www.python.org/downloads/) as we are following
[vfx platform](https://vfxplatform.com). Because of some Linux distros comes with newer Python version
@ -67,9 +67,9 @@ git clone --recurse-submodules git@github.com:Pypeclub/OpenPype.git
#### To build OpenPype:
1) Run `.\tools\create_env.ps1` to create virtual environment in `.\venv`
1) Run `.\tools\create_env.ps1` to create virtual environment in `.\venv`.
2) Run `.\tools\fetch_thirdparty_libs.ps1` to download third-party dependencies like ffmpeg and oiio. Those will be included in build.
3) Run `.\tools\build.ps1` to build OpenPype executables in `.\build\`
3) Run `.\tools\build.ps1` to build OpenPype executables in `.\build\`.
To create distributable OpenPype versions, run `./tools/create_zip.ps1` - that will
create zip file with name `openpype-vx.x.x.zip` parsed from current OpenPype repository and
@ -88,38 +88,38 @@ some OpenPype dependencies like [CMake](https://cmake.org/) and **XCode Command
Easy way of installing everything necessary is to use [Homebrew](https://brew.sh):
1) Install **Homebrew**:
```sh
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
```
```sh
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
```
2) Install **cmake**:
```sh
brew install cmake
```
```sh
brew install cmake
```
3) Install [pyenv](https://github.com/pyenv/pyenv):
```sh
brew install pyenv
echo 'eval "$(pyenv init -)"' >> ~/.zshrc
pyenv init
exec "$SHELL"
PATH=$(pyenv root)/shims:$PATH
```
```sh
brew install pyenv
echo 'eval "$(pyenv init -)"' >> ~/.zshrc
pyenv init
exec "$SHELL"
PATH=$(pyenv root)/shims:$PATH
```
4) Pull in required Python version 3.9.x
```sh
# install Python build dependences
brew install openssl readline sqlite3 xz zlib
4) Pull in required Python version 3.9.x:
```sh
# install Python build dependences
brew install openssl readline sqlite3 xz zlib
# replace with up-to-date 3.9.x version
pyenv install 3.9.6
```
# replace with up-to-date 3.9.x version
pyenv install 3.9.6
```
5) Set local Python version
```sh
# switch to OpenPype source directory
pyenv local 3.9.6
```
5) Set local Python version:
```sh
# switch to OpenPype source directory
pyenv local 3.9.6
```
#### To build OpenPype:
@ -241,7 +241,7 @@ pyenv local 3.9.6
Running OpenPype
------------
----------------
OpenPype can by executed either from live sources (this repository) or from
*"frozen code"* - executables that can be build using steps described above.
@ -289,7 +289,7 @@ To run tests, execute `.\tools\run_tests(.ps1|.sh)`.
Developer tools
-------------
---------------
In case you wish to add your own tools to `.\tools` folder without git tracking, it is possible by adding it with `dev_*` suffix (example: `dev_clear_pyc(.ps1|.sh)`).

View file

@ -1,18 +0,0 @@
Addon distribution tool
------------------------
Code in this folder is backend portion of Addon distribution logic for v4 server.
Each host, module will be separate Addon in the future. Each v4 server could run different set of Addons.
Client (running on artist machine) will in the first step ask v4 for list of enabled addons.
(It expects list of json documents matching to `addon_distribution.py:AddonInfo` object.)
Next it will compare presence of enabled addon version in local folder. In the case of missing version of
an addon, client will use information in the addon to download (from http/shared local disk/git) zip file
and unzip it.
Required part of addon distribution will be sharing of dependencies (python libraries, utilities) which is not part of this folder.
Location of this folder might change in the future as it will be required for a clint to add this folder to sys.path reliably.
This code needs to be independent on Openpype code as much as possible!

View file

@ -1,208 +0,0 @@
import os
from enum import Enum
from abc import abstractmethod
import attr
import logging
import requests
import platform
import shutil
from .file_handler import RemoteFileHandler
from .addon_info import AddonInfo
class UpdateState(Enum):
EXISTS = "exists"
UPDATED = "updated"
FAILED = "failed"
class AddonDownloader:
log = logging.getLogger(__name__)
def __init__(self):
self._downloaders = {}
def register_format(self, downloader_type, downloader):
self._downloaders[downloader_type.value] = downloader
def get_downloader(self, downloader_type):
downloader = self._downloaders.get(downloader_type)
if not downloader:
raise ValueError(f"{downloader_type} not implemented")
return downloader()
@classmethod
@abstractmethod
def download(cls, source, destination):
"""Returns url to downloaded addon zip file.
Args:
source (dict): {type:"http", "url":"https://} ...}
destination (str): local folder to unzip
Returns:
(str) local path to addon zip file
"""
pass
@classmethod
def check_hash(cls, addon_path, addon_hash):
"""Compares 'hash' of downloaded 'addon_url' file.
Args:
addon_path (str): local path to addon zip file
addon_hash (str): sha256 hash of zip file
Raises:
ValueError if hashes doesn't match
"""
if not os.path.exists(addon_path):
raise ValueError(f"{addon_path} doesn't exist.")
if not RemoteFileHandler.check_integrity(addon_path,
addon_hash,
hash_type="sha256"):
raise ValueError(f"{addon_path} doesn't match expected hash.")
@classmethod
def unzip(cls, addon_zip_path, destination):
"""Unzips local 'addon_zip_path' to 'destination'.
Args:
addon_zip_path (str): local path to addon zip file
destination (str): local folder to unzip
"""
RemoteFileHandler.unzip(addon_zip_path, destination)
os.remove(addon_zip_path)
@classmethod
def remove(cls, addon_url):
pass
class OSAddonDownloader(AddonDownloader):
@classmethod
def download(cls, source, destination):
# OS doesnt need to download, unzip directly
addon_url = source["path"].get(platform.system().lower())
if not os.path.exists(addon_url):
raise ValueError("{} is not accessible".format(addon_url))
return addon_url
class HTTPAddonDownloader(AddonDownloader):
CHUNK_SIZE = 100000
@classmethod
def download(cls, source, destination):
source_url = source["url"]
cls.log.debug(f"Downloading {source_url} to {destination}")
file_name = os.path.basename(destination)
_, ext = os.path.splitext(file_name)
if (ext.replace(".", '') not
in set(RemoteFileHandler.IMPLEMENTED_ZIP_FORMATS)):
file_name += ".zip"
RemoteFileHandler.download_url(source_url,
destination,
filename=file_name)
return os.path.join(destination, file_name)
def get_addons_info(server_endpoint):
"""Returns list of addon information from Server"""
# TODO temp
# addon_info = AddonInfo(
# **{"name": "openpype_slack",
# "version": "1.0.0",
# "addon_url": "c:/projects/openpype_slack_1.0.0.zip",
# "type": UrlType.FILESYSTEM,
# "hash": "4be25eb6215e91e5894d3c5475aeb1e379d081d3f5b43b4ee15b0891cf5f5658"}) # noqa
#
# http_addon = AddonInfo(
# **{"name": "openpype_slack",
# "version": "1.0.0",
# "addon_url": "https://drive.google.com/file/d/1TcuV8c2OV8CcbPeWi7lxOdqWsEqQNPYy/view?usp=sharing", # noqa
# "type": UrlType.HTTP,
# "hash": "4be25eb6215e91e5894d3c5475aeb1e379d081d3f5b43b4ee15b0891cf5f5658"}) # noqa
response = requests.get(server_endpoint)
if not response.ok:
raise Exception(response.text)
addons_info = []
for addon in response.json():
addons_info.append(AddonInfo(**addon))
return addons_info
def update_addon_state(addon_infos, destination_folder, factory,
log=None):
"""Loops through all 'addon_infos', compares local version, unzips.
Loops through server provided list of dictionaries with information about
available addons. Looks if each addon is already present and deployed.
If isn't, addon zip gets downloaded and unzipped into 'destination_folder'.
Args:
addon_infos (list of AddonInfo)
destination_folder (str): local path
factory (AddonDownloader): factory to get appropriate downloader per
addon type
log (logging.Logger)
Returns:
(dict): {"addon_full_name": UpdateState.value
(eg. "exists"|"updated"|"failed")
"""
if not log:
log = logging.getLogger(__name__)
download_states = {}
for addon in addon_infos:
full_name = "{}_{}".format(addon.name, addon.version)
addon_dest = os.path.join(destination_folder, full_name)
if os.path.isdir(addon_dest):
log.debug(f"Addon version folder {addon_dest} already exists.")
download_states[full_name] = UpdateState.EXISTS.value
continue
for source in addon.sources:
download_states[full_name] = UpdateState.FAILED.value
try:
downloader = factory.get_downloader(source.type)
zip_file_path = downloader.download(attr.asdict(source),
addon_dest)
downloader.check_hash(zip_file_path, addon.hash)
downloader.unzip(zip_file_path, addon_dest)
download_states[full_name] = UpdateState.UPDATED.value
break
except Exception:
log.warning(f"Error happened during updating {addon.name}",
exc_info=True)
if os.path.isdir(addon_dest):
log.debug(f"Cleaning {addon_dest}")
shutil.rmtree(addon_dest)
return download_states
def check_addons(server_endpoint, addon_folder, downloaders):
"""Main entry point to compare existing addons with those on server.
Args:
server_endpoint (str): url to v4 server endpoint
addon_folder (str): local dir path for addons
downloaders (AddonDownloader): factory of downloaders
Raises:
(RuntimeError) if any addon failed update
"""
addons_info = get_addons_info(server_endpoint)
result = update_addon_state(addons_info,
addon_folder,
downloaders)
if UpdateState.FAILED.value in result.values():
raise RuntimeError(f"Unable to update some addons {result}")
def cli(*args):
raise NotImplementedError

View file

@ -1,80 +0,0 @@
import attr
from enum import Enum
class UrlType(Enum):
HTTP = "http"
GIT = "git"
FILESYSTEM = "filesystem"
@attr.s
class MultiPlatformPath(object):
windows = attr.ib(default=None)
linux = attr.ib(default=None)
darwin = attr.ib(default=None)
@attr.s
class AddonSource(object):
type = attr.ib()
@attr.s
class LocalAddonSource(AddonSource):
path = attr.ib(default=attr.Factory(MultiPlatformPath))
@attr.s
class WebAddonSource(AddonSource):
url = attr.ib(default=None)
@attr.s
class VersionData(object):
version_data = attr.ib(default=None)
@attr.s
class AddonInfo(object):
"""Object matching json payload from Server"""
name = attr.ib()
version = attr.ib()
title = attr.ib(default=None)
sources = attr.ib(default=attr.Factory(dict))
hash = attr.ib(default=None)
description = attr.ib(default=None)
license = attr.ib(default=None)
authors = attr.ib(default=None)
@classmethod
def from_dict(cls, data):
sources = []
production_version = data.get("productionVersion")
if not production_version:
return
# server payload contains info about all versions
# active addon must have 'productionVersion' and matching version info
version_data = data.get("versions", {})[production_version]
for source in version_data.get("clientSourceInfo", []):
if source.get("type") == UrlType.FILESYSTEM.value:
source_addon = LocalAddonSource(type=source["type"],
path=source["path"])
if source.get("type") == UrlType.HTTP.value:
source_addon = WebAddonSource(type=source["type"],
url=source["url"])
sources.append(source_addon)
return cls(name=data.get("name"),
version=production_version,
sources=sources,
hash=data.get("hash"),
description=data.get("description"),
title=data.get("title"),
license=data.get("license"),
authors=data.get("authors"))

View file

@ -1,167 +0,0 @@
import pytest
import attr
import tempfile
from common.openpype_common.distribution.addon_distribution import (
AddonDownloader,
OSAddonDownloader,
HTTPAddonDownloader,
AddonInfo,
update_addon_state,
UpdateState
)
from common.openpype_common.distribution.addon_info import UrlType
@pytest.fixture
def addon_downloader():
addon_downloader = AddonDownloader()
addon_downloader.register_format(UrlType.FILESYSTEM, OSAddonDownloader)
addon_downloader.register_format(UrlType.HTTP, HTTPAddonDownloader)
yield addon_downloader
@pytest.fixture
def http_downloader(addon_downloader):
yield addon_downloader.get_downloader(UrlType.HTTP.value)
@pytest.fixture
def temp_folder():
yield tempfile.mkdtemp()
@pytest.fixture
def sample_addon_info():
addon_info = {
"versions": {
"1.0.0": {
"clientPyproject": {
"tool": {
"poetry": {
"dependencies": {
"nxtools": "^1.6",
"orjson": "^3.6.7",
"typer": "^0.4.1",
"email-validator": "^1.1.3",
"python": "^3.10",
"fastapi": "^0.73.0"
}
}
}
},
"hasSettings": True,
"clientSourceInfo": [
{
"type": "http",
"url": "https://drive.google.com/file/d/1TcuV8c2OV8CcbPeWi7lxOdqWsEqQNPYy/view?usp=sharing" # noqa
},
{
"type": "filesystem",
"path": {
"windows": ["P:/sources/some_file.zip",
"W:/sources/some_file.zip"], # noqa
"linux": ["/mnt/srv/sources/some_file.zip"],
"darwin": ["/Volumes/srv/sources/some_file.zip"]
}
}
],
"frontendScopes": {
"project": {
"sidebar": "hierarchy"
}
}
}
},
"description": "",
"title": "Slack addon",
"name": "openpype_slack",
"productionVersion": "1.0.0",
"hash": "4be25eb6215e91e5894d3c5475aeb1e379d081d3f5b43b4ee15b0891cf5f5658" # noqa
}
yield addon_info
def test_register(printer):
addon_downloader = AddonDownloader()
assert len(addon_downloader._downloaders) == 0, "Contains registered"
addon_downloader.register_format(UrlType.FILESYSTEM, OSAddonDownloader)
assert len(addon_downloader._downloaders) == 1, "Should contain one"
def test_get_downloader(printer, addon_downloader):
assert addon_downloader.get_downloader(UrlType.FILESYSTEM.value), "Should find" # noqa
with pytest.raises(ValueError):
addon_downloader.get_downloader("unknown"), "Shouldn't find"
def test_addon_info(printer, sample_addon_info):
"""Tests parsing of expected payload from v4 server into AadonInfo."""
valid_minimum = {
"name": "openpype_slack",
"productionVersion": "1.0.0",
"versions": {
"1.0.0": {
"clientSourceInfo": [
{
"type": "filesystem",
"path": {
"windows": [
"P:/sources/some_file.zip",
"W:/sources/some_file.zip"],
"linux": [
"/mnt/srv/sources/some_file.zip"],
"darwin": [
"/Volumes/srv/sources/some_file.zip"] # noqa
}
}
]
}
}
}
assert AddonInfo.from_dict(valid_minimum), "Missing required fields"
valid_minimum["versions"].pop("1.0.0")
with pytest.raises(KeyError):
assert not AddonInfo.from_dict(valid_minimum), "Must fail without version data" # noqa
valid_minimum.pop("productionVersion")
assert not AddonInfo.from_dict(
valid_minimum), "none if not productionVersion" # noqa
addon = AddonInfo.from_dict(sample_addon_info)
assert addon, "Should be created"
assert addon.name == "openpype_slack", "Incorrect name"
assert addon.version == "1.0.0", "Incorrect version"
with pytest.raises(TypeError):
assert addon["name"], "Dict approach not implemented"
addon_as_dict = attr.asdict(addon)
assert addon_as_dict["name"], "Dict approach should work"
def test_update_addon_state(printer, sample_addon_info,
temp_folder, addon_downloader):
"""Tests possible cases of addon update."""
addon_info = AddonInfo.from_dict(sample_addon_info)
orig_hash = addon_info.hash
addon_info.hash = "brokenhash"
result = update_addon_state([addon_info], temp_folder, addon_downloader)
assert result["openpype_slack_1.0.0"] == UpdateState.FAILED.value, \
"Update should failed because of wrong hash"
addon_info.hash = orig_hash
result = update_addon_state([addon_info], temp_folder, addon_downloader)
assert result["openpype_slack_1.0.0"] == UpdateState.UPDATED.value, \
"Addon should have been updated"
result = update_addon_state([addon_info], temp_folder, addon_downloader)
assert result["openpype_slack_1.0.0"] == UpdateState.EXISTS.value, \
"Addon should already exist"

74
docs/README.md Normal file
View file

@ -0,0 +1,74 @@
API Documentation
=================
This documents the way how to build and modify API documentation using Sphinx and AutoAPI. Ground for documentation
should be directly in sources - in docstrings and markdowns. Sphinx and AutoAPI will crawl over them and generate
RST files that are in turn used to generate HTML documentation. For docstrings we prefer "Napoleon" or "Google" style
docstrings, but RST is also acceptable mainly in cases where you need to use Sphinx directives.
Using only docstrings is not really viable as some documentation should be done on higher level - like overview of
some modules/functionality and so on. This should be done directly in RST files and committed to repository.
Configuration
-------------
Configuration is done in `/docs/source/conf.py`. The most important settings are:
- `autodoc_mock_imports`: add modules that can't be actually imported by Sphinx in running environment, like `nuke`, `maya`, etc.
- `autoapi_ignore`: add directories that shouldn't be processed by **AutoAPI**, like vendor dirs, etc.
- `html_theme_options`: you can use these options to influence how the html theme of the generated files will look.
- `myst_gfm_only`: are Myst parser option for Markdown setting what flavour of Markdown should be used.
How to build it
---------------
You can run:
```sh
cd .\docs
make.bat html
```
on linux/macOS:
```sh
cd ./docs
make html
```
This will go over our code and generate **.rst** files in `/docs/source/autoapi` and from those it will generate
full html documentation in `/docs/build/html`.
During the build you may see tons of red errors that are pointing to our issues:
1) **Wrong imports** -
Invalid import are usually wrong relative imports (too deep) or circular imports.
2) **Invalid docstrings** -
Docstrings to be processed into documentation needs to follow some syntax - this can be checked by running
`pydocstyle` that is already included with OpenPype
3) **Invalid markdown/rst files** -
Markdown/RST files can be included inside RST files using `.. include::` directive. But they have to be properly
formatted.
Editing RST templates
---------------------
Everything starts with `/docs/source/index.rst` - this file should be properly edited, Right now it just
includes `readme.rst` that in turn include and parse main `README.md`. This is entrypoint to API documentation.
All templates generated by AutoAPI are in `/docs/source/autoapi`. They should be eventually committed to repository
and edited too.
Steps for enhancing API documentation
-------------------------------------
1) Run `/docs/make.bat html`
2) Read the red errors/warnings - fix it in the code
3) Run `/docs/make.bat html` - again until there are no red lines
4) Edit RST files and add some meaningful content there
Resources
=========
- [ReStructuredText on Wikipedia](https://en.wikipedia.org/wiki/ReStructuredText)
- [RST Quick Reference](https://docutils.sourceforge.io/docs/user/rst/quickref.html)
- [Sphinx AutoAPI Documentation](https://sphinx-autoapi.readthedocs.io/en/latest/)
- [Example of Google Style Python Docstrings](https://sphinxcontrib-napoleon.readthedocs.io/en/latest/example_google.html)
- [Sphinx Directives](https://www.sphinx-doc.org/en/master/usage/restructuredtext/directives.html)

View file

@ -5,7 +5,7 @@ pushd %~dp0
REM Command file for Sphinx documentation
if "%SPHINXBUILD%" == "" (
set SPHINXBUILD=sphinx-build
set SPHINXBUILD=..\.poetry\bin\poetry run sphinx-build
)
set SOURCEDIR=source
set BUILDDIR=build

View file

@ -0,0 +1,38 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="100%" height="100%" viewBox="0 0 1801 501" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;">
<g transform="matrix(1,0,0,1,-13243,-17814)">
<g id="AYON_tight_G" transform="matrix(0.736439,0,0,0.560717,-6190.22,8134.09)">
<rect x="26388.3" y="17264.3" width="2444.2" height="891.715" style="fill:none;"/>
<g id="AYON_logo" transform="matrix(5.32251,0,0,6.99052,25370,15936.6)">
<g transform="matrix(1,0,0,1,471.969,279.213)">
<path d="M0,-34.016C9.378,-34.016 17.008,-26.386 17.008,-17.008C17.008,-7.63 9.378,0 0,0C-9.378,0 -17.008,-7.63 -17.008,-17.008C-17.008,-26.386 -9.378,-34.016 0,-34.016M0,-68.032C-28.18,-68.032 -51.024,-45.188 -51.024,-17.008C-51.024,11.172 -28.18,34.016 0,34.016C28.18,34.016 51.024,11.172 51.024,-17.008C51.024,-45.188 28.18,-68.032 0,-68.032" style="fill:rgb(0,214,161);fill-rule:nonzero;"/>
</g>
<g transform="matrix(1,0,0,1,293.386,211.343)">
<path d="M0,101.886C-4.696,101.886 -8.504,98.078 -8.504,93.382L-8.504,28.874L-79.027,99.395C-82.349,102.716 -87.73,102.716 -91.052,99.395C-94.374,96.075 -94.374,90.689 -91.052,87.369L-6.012,2.33C-3.583,-0.103 0.071,-0.83 3.255,0.487C6.432,1.803 8.504,4.902 8.504,8.343L8.504,93.382C8.504,98.078 4.696,101.886 0,101.886" style="fill:rgb(0,214,161);fill-rule:nonzero;"/>
</g>
<g transform="matrix(1,0,0,1,548.504,211.343)">
<path d="M0,101.886C-4.696,101.886 -8.504,98.078 -8.504,93.382L-8.504,8.343C-8.504,4.902 -6.432,1.803 -3.255,0.487C-0.075,-0.83 3.579,-0.103 6.013,2.33L91.052,87.369C94.374,90.689 94.374,96.075 91.052,99.395C87.73,102.716 82.349,102.716 79.027,99.395L8.504,28.874L8.504,93.382C8.504,98.078 4.696,101.886 0,101.886" style="fill:rgb(0,214,161);fill-rule:nonzero;"/>
</g>
<g transform="matrix(1,0,0,1,633.543,211.181)">
<path d="M0,68.032C-4.696,68.032 -8.504,64.224 -8.504,59.528L-8.504,8.504C-8.504,3.808 -4.696,0 0,0C4.696,0 8.504,3.808 8.504,8.504L8.504,59.528C8.504,64.224 4.696,68.032 0,68.032" style="fill:rgb(0,214,161);fill-rule:nonzero;"/>
</g>
<g transform="matrix(-1,0,0,1,654.804,-155.906)">
<rect x="318.898" y="367.087" width="17.008" height="17.008" style="fill:rgb(0,214,161);"/>
</g>
<g transform="matrix(-1,0,0,1,688.82,-121.89)">
<rect x="335.906" y="350.079" width="17.008" height="17.008" style="fill:rgb(0,214,161);"/>
</g>
<g transform="matrix(0,-1,-1,0,361.417,270.709)">
<path d="M-8.504,-8.504C-13.2,-8.504 -17.008,-4.697 -17.008,0C-17.008,4.697 -13.2,8.504 -8.504,8.504C-3.807,8.504 0,4.697 0,0C0,-4.697 -3.807,-8.504 -8.504,-8.504" style="fill:rgb(0,214,161);fill-rule:nonzero;"/>
</g>
<g transform="matrix(0,-1,-1,0,361.417,296.221)">
<path d="M-8.504,-8.504C-13.201,-8.504 -17.008,-4.697 -17.008,0C-17.008,4.697 -13.201,8.504 -8.504,8.504C-3.807,8.504 0,4.697 0,0C0,-4.697 -3.807,-8.504 -8.504,-8.504" style="fill:rgb(0,214,161);fill-rule:nonzero;"/>
</g>
<g transform="matrix(1,0,0,1,403.937,262.205)">
<path d="M0,-68.031L-51.023,-17.008L-51.023,0L-34.016,0L17.008,-51.023L17.008,-68.031L0,-68.031Z" style="fill:rgb(0,214,161);fill-rule:nonzero;"/>
</g>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 3.8 KiB

View file

@ -0,0 +1,15 @@
API Reference
=============
This page contains auto-generated API reference documentation [#f1]_.
.. toctree::
:titlesonly:
{% for page in pages %}
{% if page.top_level_object and page.display %}
{{ page.include_path }}
{% endif %}
{% endfor %}
.. [#f1] Created with `sphinx-autoapi <https://github.com/readthedocs/sphinx-autoapi>`_

View file

@ -0,0 +1 @@
{% extends "python/data.rst" %}

View file

@ -0,0 +1,58 @@
{% if obj.display %}
.. py:{{ obj.type }}:: {{ obj.short_name }}{% if obj.args %}({{ obj.args }}){% endif %}
{% for (args, return_annotation) in obj.overloads %}
{{ " " * (obj.type | length) }} {{ obj.short_name }}{% if args %}({{ args }}){% endif %}
{% endfor %}
{% if obj.bases %}
{% if "show-inheritance" in autoapi_options %}
Bases: {% for base in obj.bases %}{{ base|link_objs }}{% if not loop.last %}, {% endif %}{% endfor %}
{% endif %}
{% if "show-inheritance-diagram" in autoapi_options and obj.bases != ["object"] %}
.. autoapi-inheritance-diagram:: {{ obj.obj["full_name"] }}
:parts: 1
{% if "private-members" in autoapi_options %}
:private-bases:
{% endif %}
{% endif %}
{% endif %}
{% if obj.docstring %}
{{ obj.docstring|indent(3) }}
{% endif %}
{% if "inherited-members" in autoapi_options %}
{% set visible_classes = obj.classes|selectattr("display")|list %}
{% else %}
{% set visible_classes = obj.classes|rejectattr("inherited")|selectattr("display")|list %}
{% endif %}
{% for klass in visible_classes %}
{{ klass.render()|indent(3) }}
{% endfor %}
{% if "inherited-members" in autoapi_options %}
{% set visible_properties = obj.properties|selectattr("display")|list %}
{% else %}
{% set visible_properties = obj.properties|rejectattr("inherited")|selectattr("display")|list %}
{% endif %}
{% for property in visible_properties %}
{{ property.render()|indent(3) }}
{% endfor %}
{% if "inherited-members" in autoapi_options %}
{% set visible_attributes = obj.attributes|selectattr("display")|list %}
{% else %}
{% set visible_attributes = obj.attributes|rejectattr("inherited")|selectattr("display")|list %}
{% endif %}
{% for attribute in visible_attributes %}
{{ attribute.render()|indent(3) }}
{% endfor %}
{% if "inherited-members" in autoapi_options %}
{% set visible_methods = obj.methods|selectattr("display")|list %}
{% else %}
{% set visible_methods = obj.methods|rejectattr("inherited")|selectattr("display")|list %}
{% endif %}
{% for method in visible_methods %}
{{ method.render()|indent(3) }}
{% endfor %}
{% endif %}

View file

@ -0,0 +1,37 @@
{% if obj.display %}
.. py:{{ obj.type }}:: {{ obj.name }}
{%- if obj.annotation is not none %}
:type: {%- if obj.annotation %} {{ obj.annotation }}{%- endif %}
{%- endif %}
{%- if obj.value is not none %}
:value: {% if obj.value is string and obj.value.splitlines()|count > 1 -%}
Multiline-String
.. raw:: html
<details><summary>Show Value</summary>
.. code-block:: python
"""{{ obj.value|indent(width=8,blank=true) }}"""
.. raw:: html
</details>
{%- else -%}
{%- if obj.value is string -%}
{{ "%r" % obj.value|string|truncate(100) }}
{%- else -%}
{{ obj.value|string|truncate(100) }}
{%- endif -%}
{%- endif %}
{%- endif %}
{{ obj.docstring|indent(3) }}
{% endif %}

View file

@ -0,0 +1 @@
{% extends "python/class.rst" %}

View file

@ -0,0 +1,15 @@
{% if obj.display %}
.. py:function:: {{ obj.short_name }}({{ obj.args }}){% if obj.return_annotation is not none %} -> {{ obj.return_annotation }}{% endif %}
{% for (args, return_annotation) in obj.overloads %}
{{ obj.short_name }}({{ args }}){% if return_annotation is not none %} -> {{ return_annotation }}{% endif %}
{% endfor %}
{% for property in obj.properties %}
:{{ property }}:
{% endfor %}
{% if obj.docstring %}
{{ obj.docstring|indent(3) }}
{% endif %}
{% endif %}

View file

@ -0,0 +1,19 @@
{%- if obj.display %}
.. py:method:: {{ obj.short_name }}({{ obj.args }}){% if obj.return_annotation is not none %} -> {{ obj.return_annotation }}{% endif %}
{% for (args, return_annotation) in obj.overloads %}
{{ obj.short_name }}({{ args }}){% if return_annotation is not none %} -> {{ return_annotation }}{% endif %}
{% endfor %}
{% if obj.properties %}
{% for property in obj.properties %}
:{{ property }}:
{% endfor %}
{% else %}
{% endif %}
{% if obj.docstring %}
{{ obj.docstring|indent(3) }}
{% endif %}
{% endif %}

View file

@ -0,0 +1,114 @@
{% if not obj.display %}
:orphan:
{% endif %}
:py:mod:`{{ obj.name }}`
=========={{ "=" * obj.name|length }}
.. py:module:: {{ obj.name }}
{% if obj.docstring %}
.. autoapi-nested-parse::
{{ obj.docstring|indent(3) }}
{% endif %}
{% block subpackages %}
{% set visible_subpackages = obj.subpackages|selectattr("display")|list %}
{% if visible_subpackages %}
Subpackages
-----------
.. toctree::
:titlesonly:
:maxdepth: 3
{% for subpackage in visible_subpackages %}
{{ subpackage.short_name }}/index.rst
{% endfor %}
{% endif %}
{% endblock %}
{% block submodules %}
{% set visible_submodules = obj.submodules|selectattr("display")|list %}
{% if visible_submodules %}
Submodules
----------
.. toctree::
:titlesonly:
:maxdepth: 1
{% for submodule in visible_submodules %}
{{ submodule.short_name }}/index.rst
{% endfor %}
{% endif %}
{% endblock %}
{% block content %}
{% if obj.all is not none %}
{% set visible_children = obj.children|selectattr("short_name", "in", obj.all)|list %}
{% elif obj.type is equalto("package") %}
{% set visible_children = obj.children|selectattr("display")|list %}
{% else %}
{% set visible_children = obj.children|selectattr("display")|rejectattr("imported")|list %}
{% endif %}
{% if visible_children %}
{{ obj.type|title }} Contents
{{ "-" * obj.type|length }}---------
{% set visible_classes = visible_children|selectattr("type", "equalto", "class")|list %}
{% set visible_functions = visible_children|selectattr("type", "equalto", "function")|list %}
{% set visible_attributes = visible_children|selectattr("type", "equalto", "data")|list %}
{% if "show-module-summary" in autoapi_options and (visible_classes or visible_functions) %}
{% block classes scoped %}
{% if visible_classes %}
Classes
~~~~~~~
.. autoapisummary::
{% for klass in visible_classes %}
{{ klass.id }}
{% endfor %}
{% endif %}
{% endblock %}
{% block functions scoped %}
{% if visible_functions %}
Functions
~~~~~~~~~
.. autoapisummary::
{% for function in visible_functions %}
{{ function.id }}
{% endfor %}
{% endif %}
{% endblock %}
{% block attributes scoped %}
{% if visible_attributes %}
Attributes
~~~~~~~~~~
.. autoapisummary::
{% for attribute in visible_attributes %}
{{ attribute.id }}
{% endfor %}
{% endif %}
{% endblock %}
{% endif %}
{% for obj_item in visible_children %}
{{ obj_item.render()|indent(0) }}
{% endfor %}
{% endif %}
{% endblock %}

View file

@ -0,0 +1 @@
{% extends "python/module.rst" %}

View file

@ -0,0 +1,15 @@
{%- if obj.display %}
.. py:property:: {{ obj.short_name }}
{% if obj.annotation %}
:type: {{ obj.annotation }}
{% endif %}
{% if obj.properties %}
{% for property in obj.properties %}
:{{ property }}:
{% endfor %}
{% endif %}
{% if obj.docstring %}
{{ obj.docstring|indent(3) }}
{% endif %}
{% endif %}

View file

@ -17,18 +17,29 @@
import os
import sys
pype_root = os.path.abspath('../..')
sys.path.insert(0, pype_root)
import revitron_sphinx_theme
openpype_root = os.path.abspath('../..')
sys.path.insert(0, openpype_root)
# app = QApplication([])
"""
repos = os.listdir(os.path.abspath("../../repos"))
repos = [os.path.join(pype_root, "repos", repo) for repo in repos]
repos = [os.path.join(openpype_root, "repos", repo) for repo in repos]
for repo in repos:
sys.path.append(repo)
"""
todo_include_todos = True
autodoc_mock_imports = ["maya", "pymel", "nuke", "nukestudio", "nukescripts",
"hiero", "bpy", "fusion", "houdini", "hou", "unreal",
"__builtin__", "resolve", "pysync", "DaVinciResolveScript"]
# -- Project information -----------------------------------------------------
project = 'pype'
copyright = '2019, Orbi Tools'
author = 'Orbi Tools'
project = 'OpenPype'
copyright = '2023 Ynput'
author = 'Ynput'
# The short X.Y version
version = ''
@ -52,11 +63,41 @@ extensions = [
'sphinx.ext.todo',
'sphinx.ext.coverage',
'sphinx.ext.mathjax',
'sphinx.ext.viewcode',
'sphinx.ext.autosummary',
'recommonmark'
'revitron_sphinx_theme',
'autoapi.extension',
'myst_parser'
]
##############################
# Autoapi settings
##############################
autoapi_dirs = ['../../openpype', '../../igniter']
# bypass modules with a lot of python2 content for now
autoapi_ignore = [
"*vendor*",
"*schemas*",
"*startup/*",
"*/website*",
"*openpype/hooks*",
"*openpype/style*",
"openpype/tests*",
# to many levels of relative import:
"*/modules/sync_server/*"
]
autoapi_keep_files = True
autoapi_options = [
'members',
'undoc-members',
'show-inheritance',
'show-module-summary'
]
autoapi_add_toctree_entry = True
autoapi_template_dir = '_templates/autoapi'
# Add any paths that contain templates here, relative to this directory.
templates_path = ['_templates']
@ -64,7 +105,7 @@ templates_path = ['_templates']
# You can specify multiple suffix as a list of string:
#
# source_suffix = ['.rst', '.md']
source_suffix = '.rst'
source_suffix = ['.rst', '.md']
# The master toctree document.
master_doc = 'index'
@ -74,12 +115,15 @@ master_doc = 'index'
#
# This is also used if you do content translation via gettext catalogs.
# Usually you set "language" from the command line for these cases.
language = None
language = "English"
# List of patterns, relative to source directory, that match files and
# directories to ignore when looking for source files.
# This pattern also affects html_static_path and html_extra_path.
exclude_patterns = []
exclude_patterns = [
"openpype.hosts.resolve.*",
"openpype.tools.*"
]
# The name of the Pygments (syntax highlighting) style to use.
pygments_style = 'friendly'
@ -97,15 +141,22 @@ autosummary_generate = True
# The theme to use for HTML and HTML Help pages. See the documentation for
# a list of builtin themes.
#
html_theme = 'sphinx_rtd_theme'
html_theme = 'revitron_sphinx_theme'
# Theme options are theme-specific and customize the look and feel of a theme
# further. For a list of options available for each theme, see the
# documentation.
#
html_theme_options = {
'collapse_navigation': False
'collapse_navigation': True,
'sticky_navigation': True,
'navigation_depth': 4,
'includehidden': True,
'titles_only': False,
'github_url': '',
}
html_logo = '_static/AYON_tight_G.svg'
# Add any paths that contain custom static files (such as style sheets) here,
# relative to this directory. They are copied after the builtin static files,
@ -153,8 +204,8 @@ latex_elements = {
# (source start file, target name, title,
# author, documentclass [howto, manual, or own class]).
latex_documents = [
(master_doc, 'pype.tex', 'pype Documentation',
'OrbiTools', 'manual'),
(master_doc, 'openpype.tex', 'OpenPype Documentation',
'Ynput', 'manual'),
]
@ -163,7 +214,7 @@ latex_documents = [
# One entry per manual page. List of tuples
# (source start file, name, description, authors, manual section).
man_pages = [
(master_doc, 'pype', 'pype Documentation',
(master_doc, 'openpype', 'OpenPype Documentation',
[author], 1)
]
@ -174,8 +225,8 @@ man_pages = [
# (source start file, target name, title, author,
# dir menu entry, description, category)
texinfo_documents = [
(master_doc, 'pype', 'pype Documentation',
author, 'pype', 'One line description of project.',
(master_doc, 'OpenPype', 'OpenPype Documentation',
author, 'OpenPype', 'Pipeline for studios',
'Miscellaneous'),
]
@ -207,7 +258,4 @@ intersphinx_mapping = {
'https://docs.python.org/3/': None
}
# -- Options for todo extension ----------------------------------------------
# If true, `todo` and `todoList` produce output, else they produce nothing.
todo_include_todos = True
myst_gfm_only = True

View file

@ -1,7 +0,0 @@
igniter.bootstrap\_repos module
===============================
.. automodule:: igniter.bootstrap_repos
:members:
:undoc-members:
:show-inheritance:

View file

@ -1,7 +0,0 @@
igniter.install\_dialog module
==============================
.. automodule:: igniter.install_dialog
:members:
:undoc-members:
:show-inheritance:

View file

@ -1,7 +0,0 @@
igniter.install\_thread module
==============================
.. automodule:: igniter.install_thread
:members:
:undoc-members:
:show-inheritance:

View file

@ -1,42 +0,0 @@
igniter package
===============
.. automodule:: igniter
:members:
:undoc-members:
:show-inheritance:
Submodules
----------
igniter.bootstrap\_repos module
-------------------------------
.. automodule:: igniter.bootstrap_repos
:members:
:undoc-members:
:show-inheritance:
igniter.install\_dialog module
------------------------------
.. automodule:: igniter.install_dialog
:members:
:undoc-members:
:show-inheritance:
igniter.install\_thread module
------------------------------
.. automodule:: igniter.install_thread
:members:
:undoc-members:
:show-inheritance:
igniter.tools module
--------------------
.. automodule:: igniter.tools
:members:
:undoc-members:
:show-inheritance:

View file

@ -1,7 +0,0 @@
igniter.tools module
====================
.. automodule:: igniter.tools
:members:
:undoc-members:
:show-inheritance:

View file

@ -1,14 +1,15 @@
.. pype documentation master file, created by
.. openpype documentation master file, created by
sphinx-quickstart on Mon May 13 17:18:23 2019.
You can adapt this file completely to your liking, but it should at least
contain the root `toctree` directive.
Welcome to pype's documentation!
================================
Welcome to OpenPype's API documentation!
========================================
.. toctree::
readme
modules
Readme <readme.rst>
Indices and tables
==================

View file

@ -1,8 +0,0 @@
igniter
=======
.. toctree::
:maxdepth: 6
igniter
pype

View file

@ -1,7 +0,0 @@
pype.action module
==================
.. automodule:: pype.action
:members:
:undoc-members:
:show-inheritance:

View file

@ -1,7 +0,0 @@
pype.api module
===============
.. automodule:: pype.api
:members:
:undoc-members:
:show-inheritance:

View file

@ -1,7 +0,0 @@
pype.cli module
===============
.. automodule:: pype.cli
:members:
:undoc-members:
:show-inheritance:

View file

@ -1,7 +0,0 @@
pype.hosts.aftereffects package
===============================
.. automodule:: pype.hosts.aftereffects
:members:
:undoc-members:
:show-inheritance:

View file

@ -1,7 +0,0 @@
pype.hosts.blender.action module
================================
.. automodule:: pype.hosts.blender.action
:members:
:undoc-members:
:show-inheritance:

View file

@ -1,7 +0,0 @@
pype.hosts.blender.plugin module
================================
.. automodule:: pype.hosts.blender.plugin
:members:
:undoc-members:
:show-inheritance:

View file

@ -1,26 +0,0 @@
pype.hosts.blender package
==========================
.. automodule:: pype.hosts.blender
:members:
:undoc-members:
:show-inheritance:
Submodules
----------
pype.hosts.blender.action module
--------------------------------
.. automodule:: pype.hosts.blender.action
:members:
:undoc-members:
:show-inheritance:
pype.hosts.blender.plugin module
--------------------------------
.. automodule:: pype.hosts.blender.plugin
:members:
:undoc-members:
:show-inheritance:

View file

@ -1,7 +0,0 @@
pype.hosts.celaction.cli module
===============================
.. automodule:: pype.hosts.celaction.cli
:members:
:undoc-members:
:show-inheritance:

View file

@ -1,18 +0,0 @@
pype.hosts.celaction package
============================
.. automodule:: pype.hosts.celaction
:members:
:undoc-members:
:show-inheritance:
Submodules
----------
pype.hosts.celaction.cli module
-------------------------------
.. automodule:: pype.hosts.celaction.cli
:members:
:undoc-members:
:show-inheritance:

View file

@ -1,7 +0,0 @@
pype.hosts.fusion.lib module
============================
.. automodule:: pype.hosts.fusion.lib
:members:
:undoc-members:
:show-inheritance:

View file

@ -1,7 +0,0 @@
pype.hosts.fusion.menu module
=============================
.. automodule:: pype.hosts.fusion.menu
:members:
:undoc-members:
:show-inheritance:

View file

@ -1,7 +0,0 @@
pype.hosts.fusion.pipeline module
=================================
.. automodule:: pype.hosts.fusion.pipeline
:members:
:undoc-members:
:show-inheritance:

View file

@ -1,26 +0,0 @@
pype.hosts.fusion package
=========================
.. automodule:: pype.hosts.fusion
:members:
:undoc-members:
:show-inheritance:
Subpackages
-----------
.. toctree::
:maxdepth: 6
pype.hosts.fusion.scripts
Submodules
----------
pype.hosts.fusion.lib module
----------------------------
.. automodule:: pype.hosts.fusion.lib
:members:
:undoc-members:
:show-inheritance:

View file

@ -1,7 +0,0 @@
pype.hosts.fusion.scripts.duplicate\_with\_inputs module
========================================================
.. automodule:: pype.hosts.fusion.scripts.duplicate_with_inputs
:members:
:undoc-members:
:show-inheritance:

View file

@ -1,7 +0,0 @@
pype.hosts.fusion.scripts.fusion\_switch\_shot module
=====================================================
.. automodule:: pype.hosts.fusion.scripts.fusion_switch_shot
:members:
:undoc-members:
:show-inheritance:

View file

@ -1,26 +0,0 @@
pype.hosts.fusion.scripts package
=================================
.. automodule:: pype.hosts.fusion.scripts
:members:
:undoc-members:
:show-inheritance:
Submodules
----------
pype.hosts.fusion.scripts.fusion\_switch\_shot module
-----------------------------------------------------
.. automodule:: pype.hosts.fusion.scripts.fusion_switch_shot
:members:
:undoc-members:
:show-inheritance:
pype.hosts.fusion.scripts.publish\_filesequence module
------------------------------------------------------
.. automodule:: pype.hosts.fusion.scripts.publish_filesequence
:members:
:undoc-members:
:show-inheritance:

View file

@ -1,7 +0,0 @@
pype.hosts.fusion.scripts.set\_rendermode module
================================================
.. automodule:: pype.hosts.fusion.scripts.set_rendermode
:members:
:undoc-members:
:show-inheritance:

View file

@ -1,7 +0,0 @@
pype.hosts.fusion.utils module
==============================
.. automodule:: pype.hosts.fusion.utils
:members:
:undoc-members:
:show-inheritance:

View file

@ -1,7 +0,0 @@
pype.hosts.harmony package
==========================
.. automodule:: pype.hosts.harmony
:members:
:undoc-members:
:show-inheritance:

View file

@ -1,7 +0,0 @@
pype.hosts.hiero.events module
==============================
.. automodule:: pype.hosts.hiero.events
:members:
:undoc-members:
:show-inheritance:

View file

@ -1,7 +0,0 @@
pype.hosts.hiero.lib module
===========================
.. automodule:: pype.hosts.hiero.lib
:members:
:undoc-members:
:show-inheritance:

View file

@ -1,7 +0,0 @@
pype.hosts.hiero.menu module
============================
.. automodule:: pype.hosts.hiero.menu
:members:
:undoc-members:
:show-inheritance:

View file

@ -1,19 +0,0 @@
pype.hosts.hiero package
========================
.. automodule:: pype.hosts.hiero
:members:
:undoc-members:
:show-inheritance:
Submodules
----------
.. toctree::
:maxdepth: 10
pype.hosts.hiero.events
pype.hosts.hiero.lib
pype.hosts.hiero.menu
pype.hosts.hiero.tags
pype.hosts.hiero.workio

View file

@ -1,7 +0,0 @@
pype.hosts.hiero.tags module
============================
.. automodule:: pype.hosts.hiero.tags
:members:
:undoc-members:
:show-inheritance:

View file

@ -1,7 +0,0 @@
pype.hosts.hiero.workio module
==============================
.. automodule:: pype.hosts.hiero.workio
:members:
:undoc-members:
:show-inheritance:

View file

@ -1,7 +0,0 @@
pype.hosts.houdini.lib module
=============================
.. automodule:: pype.hosts.houdini.lib
:members:
:undoc-members:
:show-inheritance:

View file

@ -1,18 +0,0 @@
pype.hosts.houdini package
==========================
.. automodule:: pype.hosts.houdini
:members:
:undoc-members:
:show-inheritance:
Submodules
----------
pype.hosts.houdini.lib module
-----------------------------
.. automodule:: pype.hosts.houdini.lib
:members:
:undoc-members:
:show-inheritance:

View file

@ -1,7 +0,0 @@
pype.hosts.maya.action module
=============================
.. automodule:: pype.hosts.maya.action
:members:
:undoc-members:
:show-inheritance:

View file

@ -1,7 +0,0 @@
pype.hosts.maya.customize module
================================
.. automodule:: pype.hosts.maya.customize
:members:
:undoc-members:
:show-inheritance:

View file

@ -1,7 +0,0 @@
pype.hosts.maya.expected\_files module
======================================
.. automodule:: pype.hosts.maya.expected_files
:members:
:undoc-members:
:show-inheritance:

View file

@ -1,7 +0,0 @@
pype.hosts.maya.lib module
==========================
.. automodule:: pype.hosts.maya.lib
:members:
:undoc-members:
:show-inheritance:

View file

@ -1,7 +0,0 @@
pype.hosts.maya.menu module
===========================
.. automodule:: pype.hosts.maya.menu
:members:
:undoc-members:
:show-inheritance:

View file

@ -1,7 +0,0 @@
pype.hosts.maya.plugin module
=============================
.. automodule:: pype.hosts.maya.plugin
:members:
:undoc-members:
:show-inheritance:

View file

@ -1,58 +0,0 @@
pype.hosts.maya package
=======================
.. automodule:: pype.hosts.maya
:members:
:undoc-members:
:show-inheritance:
Submodules
----------
pype.hosts.maya.action module
-----------------------------
.. automodule:: pype.hosts.maya.action
:members:
:undoc-members:
:show-inheritance:
pype.hosts.maya.customize module
--------------------------------
.. automodule:: pype.hosts.maya.customize
:members:
:undoc-members:
:show-inheritance:
pype.hosts.maya.expected\_files module
--------------------------------------
.. automodule:: pype.hosts.maya.expected_files
:members:
:undoc-members:
:show-inheritance:
pype.hosts.maya.lib module
--------------------------
.. automodule:: pype.hosts.maya.lib
:members:
:undoc-members:
:show-inheritance:
pype.hosts.maya.menu module
---------------------------
.. automodule:: pype.hosts.maya.menu
:members:
:undoc-members:
:show-inheritance:
pype.hosts.maya.plugin module
-----------------------------
.. automodule:: pype.hosts.maya.plugin
:members:
:undoc-members:
:show-inheritance:

View file

@ -1,7 +0,0 @@
pype.hosts.nuke.actions module
==============================
.. automodule:: pype.hosts.nuke.actions
:members:
:undoc-members:
:show-inheritance:

View file

@ -1,7 +0,0 @@
pype.hosts.nuke.lib module
==========================
.. automodule:: pype.hosts.nuke.lib
:members:
:undoc-members:
:show-inheritance:

View file

@ -1,7 +0,0 @@
pype.hosts.nuke.menu module
===========================
.. automodule:: pype.hosts.nuke.menu
:members:
:undoc-members:
:show-inheritance:

View file

@ -1,7 +0,0 @@
pype.hosts.nuke.plugin module
=============================
.. automodule:: pype.hosts.nuke.plugin
:members:
:undoc-members:
:show-inheritance:

View file

@ -1,7 +0,0 @@
pype.hosts.nuke.presets module
==============================
.. automodule:: pype.hosts.nuke.presets
:members:
:undoc-members:
:show-inheritance:

View file

@ -1,58 +0,0 @@
pype.hosts.nuke package
=======================
.. automodule:: pype.hosts.nuke
:members:
:undoc-members:
:show-inheritance:
Submodules
----------
pype.hosts.nuke.actions module
------------------------------
.. automodule:: pype.hosts.nuke.actions
:members:
:undoc-members:
:show-inheritance:
pype.hosts.nuke.lib module
--------------------------
.. automodule:: pype.hosts.nuke.lib
:members:
:undoc-members:
:show-inheritance:
pype.hosts.nuke.menu module
---------------------------
.. automodule:: pype.hosts.nuke.menu
:members:
:undoc-members:
:show-inheritance:
pype.hosts.nuke.plugin module
-----------------------------
.. automodule:: pype.hosts.nuke.plugin
:members:
:undoc-members:
:show-inheritance:
pype.hosts.nuke.presets module
------------------------------
.. automodule:: pype.hosts.nuke.presets
:members:
:undoc-members:
:show-inheritance:
pype.hosts.nuke.utils module
----------------------------
.. automodule:: pype.hosts.nuke.utils
:members:
:undoc-members:
:show-inheritance:

View file

@ -1,7 +0,0 @@
pype.hosts.nuke.utils module
============================
.. automodule:: pype.hosts.nuke.utils
:members:
:undoc-members:
:show-inheritance:

View file

@ -1,50 +0,0 @@
pype.hosts.nukestudio package
=============================
.. automodule:: pype.hosts.nukestudio
:members:
:undoc-members:
:show-inheritance:
Submodules
----------
pype.hosts.nukestudio.events module
-----------------------------------
.. automodule:: pype.hosts.nukestudio.events
:members:
:undoc-members:
:show-inheritance:
pype.hosts.nukestudio.lib module
--------------------------------
.. automodule:: pype.hosts.nukestudio.lib
:members:
:undoc-members:
:show-inheritance:
pype.hosts.nukestudio.menu module
---------------------------------
.. automodule:: pype.hosts.nukestudio.menu
:members:
:undoc-members:
:show-inheritance:
pype.hosts.nukestudio.tags module
---------------------------------
.. automodule:: pype.hosts.nukestudio.tags
:members:
:undoc-members:
:show-inheritance:
pype.hosts.nukestudio.workio module
-----------------------------------
.. automodule:: pype.hosts.nukestudio.workio
:members:
:undoc-members:
:show-inheritance:

View file

@ -1,7 +0,0 @@
pype.hosts.photoshop package
============================
.. automodule:: pype.hosts.photoshop
:members:
:undoc-members:
:show-inheritance:

View file

@ -1,7 +0,0 @@
pype.hosts.premiere.lib module
==============================
.. automodule:: pype.hosts.premiere.lib
:members:
:undoc-members:
:show-inheritance:

View file

@ -1,18 +0,0 @@
pype.hosts.premiere package
===========================
.. automodule:: pype.hosts.premiere
:members:
:undoc-members:
:show-inheritance:
Submodules
----------
pype.hosts.premiere.lib module
------------------------------
.. automodule:: pype.hosts.premiere.lib
:members:
:undoc-members:
:show-inheritance:

View file

@ -1,7 +0,0 @@
pype.hosts.resolve.action module
================================
.. automodule:: pype.hosts.resolve.action
:members:
:undoc-members:
:show-inheritance:

View file

@ -1,7 +0,0 @@
pype.hosts.resolve.lib module
=============================
.. automodule:: pype.hosts.resolve.lib
:members:
:undoc-members:
:show-inheritance:

View file

@ -1,7 +0,0 @@
pype.hosts.resolve.menu module
==============================
.. automodule:: pype.hosts.resolve.menu
:members:
:undoc-members:
:show-inheritance:

View file

@ -1,7 +0,0 @@
pype.hosts.resolve.otio.davinci\_export module
==============================================
.. automodule:: pype.hosts.resolve.otio.davinci_export
:members:
:undoc-members:
:show-inheritance:

View file

@ -1,7 +0,0 @@
pype.hosts.resolve.otio.davinci\_import module
==============================================
.. automodule:: pype.hosts.resolve.otio.davinci_import
:members:
:undoc-members:
:show-inheritance:

View file

@ -1,17 +0,0 @@
pype.hosts.resolve.otio package
===============================
.. automodule:: pype.hosts.resolve.otio
:members:
:undoc-members:
:show-inheritance:
Submodules
----------
.. toctree::
:maxdepth: 10
pype.hosts.resolve.otio.davinci_export
pype.hosts.resolve.otio.davinci_import
pype.hosts.resolve.otio.utils

View file

@ -1,7 +0,0 @@
pype.hosts.resolve.otio.utils module
====================================
.. automodule:: pype.hosts.resolve.otio.utils
:members:
:undoc-members:
:show-inheritance:

View file

@ -1,7 +0,0 @@
pype.hosts.resolve.pipeline module
==================================
.. automodule:: pype.hosts.resolve.pipeline
:members:
:undoc-members:
:show-inheritance:

View file

@ -1,7 +0,0 @@
pype.hosts.resolve.plugin module
================================
.. automodule:: pype.hosts.resolve.plugin
:members:
:undoc-members:
:show-inheritance:

View file

@ -1,7 +0,0 @@
pype.hosts.resolve.preload\_console module
==========================================
.. automodule:: pype.hosts.resolve.preload_console
:members:
:undoc-members:
:show-inheritance:

View file

@ -1,74 +0,0 @@
pype.hosts.resolve package
==========================
.. automodule:: pype.hosts.resolve
:members:
:undoc-members:
:show-inheritance:
Submodules
----------
pype.hosts.resolve.action module
--------------------------------
.. automodule:: pype.hosts.resolve.action
:members:
:undoc-members:
:show-inheritance:
pype.hosts.resolve.lib module
-----------------------------
.. automodule:: pype.hosts.resolve.lib
:members:
:undoc-members:
:show-inheritance:
pype.hosts.resolve.menu module
------------------------------
.. automodule:: pype.hosts.resolve.menu
:members:
:undoc-members:
:show-inheritance:
pype.hosts.resolve.pipeline module
----------------------------------
.. automodule:: pype.hosts.resolve.pipeline
:members:
:undoc-members:
:show-inheritance:
pype.hosts.resolve.plugin module
--------------------------------
.. automodule:: pype.hosts.resolve.plugin
:members:
:undoc-members:
:show-inheritance:
pype.hosts.resolve.preload\_console module
------------------------------------------
.. automodule:: pype.hosts.resolve.preload_console
:members:
:undoc-members:
:show-inheritance:
pype.hosts.resolve.utils module
-------------------------------
.. automodule:: pype.hosts.resolve.utils
:members:
:undoc-members:
:show-inheritance:
pype.hosts.resolve.workio module
--------------------------------
.. automodule:: pype.hosts.resolve.workio
:members:
:undoc-members:
:show-inheritance:

View file

@ -1,7 +0,0 @@
pype.hosts.resolve.todo\-rendering module
=========================================
.. automodule:: pype.hosts.resolve.todo-rendering
:members:
:undoc-members:
:show-inheritance:

View file

@ -1,7 +0,0 @@
pype.hosts.resolve.utils module
===============================
.. automodule:: pype.hosts.resolve.utils
:members:
:undoc-members:
:show-inheritance:

View file

@ -1,7 +0,0 @@
pype.hosts.resolve.workio module
================================
.. automodule:: pype.hosts.resolve.workio
:members:
:undoc-members:
:show-inheritance:

View file

@ -1,26 +0,0 @@
pype.hosts package
==================
.. automodule:: pype.hosts
:members:
:undoc-members:
:show-inheritance:
Subpackages
-----------
.. toctree::
:maxdepth: 6
pype.hosts.blender
pype.hosts.celaction
pype.hosts.fusion
pype.hosts.harmony
pype.hosts.houdini
pype.hosts.maya
pype.hosts.nuke
pype.hosts.nukestudio
pype.hosts.photoshop
pype.hosts.premiere
pype.hosts.resolve
pype.hosts.unreal

View file

@ -1,7 +0,0 @@
pype.hosts.tvpaint.api package
==============================
.. automodule:: pype.hosts.tvpaint.api
:members:
:undoc-members:
:show-inheritance:

View file

@ -1,15 +0,0 @@
pype.hosts.tvpaint package
==========================
.. automodule:: pype.hosts.tvpaint
:members:
:undoc-members:
:show-inheritance:
Subpackages
-----------
.. toctree::
:maxdepth: 10
pype.hosts.tvpaint.api

View file

@ -1,7 +0,0 @@
pype.hosts.unreal.lib module
============================
.. automodule:: pype.hosts.unreal.lib
:members:
:undoc-members:
:show-inheritance:

View file

@ -1,7 +0,0 @@
pype.hosts.unreal.plugin module
===============================
.. automodule:: pype.hosts.unreal.plugin
:members:
:undoc-members:
:show-inheritance:

View file

@ -1,26 +0,0 @@
pype.hosts.unreal package
=========================
.. automodule:: pype.hosts.unreal
:members:
:undoc-members:
:show-inheritance:
Submodules
----------
pype.hosts.unreal.lib module
----------------------------
.. automodule:: pype.hosts.unreal.lib
:members:
:undoc-members:
:show-inheritance:
pype.hosts.unreal.plugin module
-------------------------------
.. automodule:: pype.hosts.unreal.plugin
:members:
:undoc-members:
:show-inheritance:

View file

@ -1,7 +0,0 @@
pype.launcher\_actions module
=============================
.. automodule:: pype.launcher_actions
:members:
:undoc-members:
:show-inheritance:

View file

@ -1,7 +0,0 @@
pype.lib.abstract\_collect\_render module
=========================================
.. automodule:: pype.lib.abstract_collect_render
:members:
:undoc-members:
:show-inheritance:

View file

@ -1,7 +0,0 @@
pype.lib.abstract\_expected\_files module
=========================================
.. automodule:: pype.lib.abstract_expected_files
:members:
:undoc-members:
:show-inheritance:

Some files were not shown because too many files have changed in this diff Show more