Build time external adaptor inclusion.
Hi, can I request a method of adding external adaptors, currently there doesn't seem to be a nice way of doing this with out adding my code to the contrib adaptors tree and updating the manifest.
Or by using the environment variable, I'd rather not have to globally add a new env var just to support this, I suspect that overrides the contribs/adaptors anyway ?.
I was thinking of some build time flag/config that can bake in an additional path for private adaptors.
cheers
@alatdneg out of curiosity, would this solution work for you? It isn't what you're asking for exactly, but depending on if your studio uses pip or not, it might work:
https://github.com/PixarAnimationStudios/OpenTimelineIO/wiki/How-to-Write-an-OpenTimelineIO-Adapter#packaging-and-sharing-custom-adapters
Just to clarify, this is a way of adding external plugins without the environment variable or directly changing the manifest. But it is not a build-time step.
There's currently three ways to add adapters:
- Use OTIO_PLUGIN_MANIFEST_PATH with a colon-separated list of places to search (typically, yours + contrib + builtin)
- Modify contrib_adapters.plugin_manifest.json
- Use the pip method that @ssteinbach linked above.
In our internal deployments, we use all three - mostly the OTIO_PLUGIN_MANIFEST_PATH, and the pip method. However, in our main deployment, we case wrap opentimelineio in another module pixar.opentimelineio that does the required setup and then from opentimelineio import * to pull in all the symbols. That gives us the ability to add adapters, media_linker and a couple of other convenience methods to the module.
If none of those work for you, can you suggest something specific that would meet your needs? I'm not clear on the constraints you have.
@alatdneg Did we manage to get you a suitable solution for this? Since we last checked in, this repo was created to make the pip method of making an adapter as a pip-installable plugin - that may also be helpful.
We believe this was resolved some time ago. If not, please re-open.