pyblish / pyblish-base

Pyblish base library - see https://github.com/pyblish/pyblish for details.
Other
127 stars 59 forks source link

Standalone Publishing #165

Open mottosso opened 9 years ago

mottosso commented 9 years ago

Goal

Facilitate publishing of arbitrary data.

Today, we've got a number of integrations available for parsing and validating data directly from a piece of software; such as Autodesk Maya and The Foundry Nuke. What about software with less of an ability to provide for integrations - such as Adobe Illustrator? And what about data that doesn't necessarily come from a single software, but rather a collection - such as a texture and 3d model?

Standalone publishing provides a means of publishing anything and to parse any arbitrary data accessible via Python.

Implementation

Given an absolute path, treat contents of directory as data to be published. The data may be Autodesk Maya scene-files, in which case validators and extractors may turn to mayapy in order to interact with them. It may also be in the form of text files, images or data from any arbitrary software, such as Adobe Photoshop or Pixologic Zbrush.

# Example
\hero_character
  body.obj
  head.obj
  texture.png

\hero_concept
  pose1.jpg
  comment.txt

\my_tool
  ui.py
  lib.py

\my_visualisation
  index.html
  data.js

Plug-ins then make use of whatever interface is available towards these formats, such as mayapy for binary files written by Autodesk Maya or the PIL Python library for reading and parsing images.

Example workflow

  1. User places file within a folder
  2. User right-clicks and selects "Publish"
  3. Pyblish GUI appears, visualising content of folders and associated plug-ins.
  4. User publishes content

Example 1 - Publish Image Failure

  1. User saves files from Adobe Photoshop into a pre-formatted directory as png
  2. User right-clicks and selects "Publish"
  3. User publishes
  4. Validation utilises the PIL Python library to parse and inspect images
  5. Validation finds that the images are of an incorrect dimension
  6. Pyblish suggests to either repair - i.e. re-format the image - or to cancel.

Example 2 - Publish Image Success

  1. User saves files from Adobe Photoshop into a pre-formatted directory as png
  2. User right-clicks and selects "Publish"
  3. User publishes
  4. Validation utilises the PIL Python library to parse and inspect images
  5. Validation succeeds
  6. Extractor compresses images
  7. Conform moves published files onto the server under the correct path and file-name.
asztalosdani commented 6 years ago

We may need the ability to run pyblish from the desktop, without using a DCC app. So what is up with this issue?

mottosso commented 6 years ago

This issue is about a user interface for publishing standalone; you can still publish standalone without this interface, as Pyblish is a plain Python library.

from pyblish import util
util.publish()

Alternatively, there is a command-line interface.

$ python -m pyblish publish