Comments (3)
I'll give some initial info on this, but let me know if you need any further assistance or I can clarify anything further.
If you do end up creating a new submission tool, we'd be very interested in merging it into the main OpenCue codebase if you're willing!
There are a couple of approaches you could take here.
1. Use CueSubmit
The existing CueSubmit tool could be adapted with a connector for whatever application you want to use.
One thing to note here is that dependency conflicts are pretty common, especially the Qt/PySide dependency that CueSubmit uses. Often the applications are shipped with built-in dependencies that can't be easily changed, and are often outdated, which CueSubmit isn't compatible with. Given that, there are a couple of sub-approaches here.
1a. Built in directly
Load CueSubmit's dependencies and CueSubmit itself into the application's environment directly.
https://github.com/AcademySoftwareFoundation/OpenCue/blob/master/cuesubmit/plugins/maya/CueMayaSubmit.py is an example of this.
This only works if CueSubmit's dependencies are compatible with whatever is built into the application.
1b. Launched via an external process
Launch a version of CueSubmit as an external process in its own environment, passing some info to it via commandline flags to prepopulate whatever you need.
This is essentially a two-step process:
- Create a new version of the submission application, e.g. https://github.com/AcademySoftwareFoundation/OpenCue/blob/master/cuesubmit/plugins/nuke/CueNukeSubmit.py
- Add a control (button, menu item, etc.) to the application which launches the new submission application, e.g. https://github.com/AcademySoftwareFoundation/OpenCue/blob/master/cuesubmit/plugins/nuke/CueNukeSubmitLauncher.py
2. Create a new tool
Basically, create a new tool from scratch that integrates into the application in a more native way.
This would require using our pyoutline
library to construct a job definition and send it to your Cuebot.
CueSubmit can still be helpful here as an example of how to do that. For example: https://github.com/AcademySoftwareFoundation/OpenCue/blob/master/cuesubmit/cuesubmit/Submission.py
See buildLayer
on how to use pyoutline
to construct a job layer, and submitJob
on how to send the job to Cuebot.
from opencue.
Thanks @bcipriano for the insight. I'm aware of dependency mismatches when working an applications environment. Apologies for not being specific enough... I was just wondering how to add arbitrary tools to the Job Type drop down menu
It seems this is all Java and I'm only Python savvy :( Anyhow, once I get the time to dig a bit deeper into the architecture of OpenCue, I might come back here in case I get stuck. Take care!
from opencue.
We are currently adopting OpenCue in our studio and this is one of the improvements we will soon propose to the project (making sure the code is solid before submitting to review/discussion).
The approach is to be able to declare any job type from the cuesubmit_config.yaml file and populate the UI accordingly.
Having to touch the code to declare a new job type is currently a big bottleneck for adoption.
You have to :
- declare a new jobType
- load it in the constants
- build a widget
- make a command builder
Whereas modifying the yaml is straightforward and has little to no friction :)
We are currently making it work with :
- providing command flags
- providing a custom python script that gets inspected
- nesting a config file per job type
More to come real soon.
from opencue.
Related Issues (20)
- Expand and fix widget library
- How can a windows client connect to opencue? HOT 2
- how to use GPU on opencue HOT 1
- rqd running error
- After rqd modifies the configuration file ALLOW_GPU to be True, rqd can't receive the task.
- CueGui, can't edit services
- RQD - reserve the right number of cores.
- Handle negative core requests HOT 3
- Add VFX Platform 2023 to CI build matrix
- Document what different states mean (e.g "eaten") HOT 1
- Docker quickstart RQD error HOT 2
- Cannot import python opencue module from source HOT 2
- RQD fails to collect frame stats HOT 1
- mayabatch.exe - application error HOT 35
- Nimby control for user workstation.
- Don't SIGKILL my job bro!
- Mail/notifications HOT 5
- Option in cuegui to force refresh and/or change rate of updates HOT 2
- Python API Host.isLocked() always return False
- RQD can't run frames in multi-threadable layers on windows.
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from opencue.