{ "info": { "author": "Robert Moggach", "author_email": "rob@moggach.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Natural Language :: English", "Operating System :: MacOS :: MacOS X", "Operating System :: POSIX :: Linux", "Programming Language :: Python", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.6", "Programming Language :: Python :: 2.7", "Topic :: Software Development :: Libraries :: Python Modules", "Topic :: System :: Systems Administration", "Topic :: Text Processing :: Markup :: XML" ], "description": "|Build Status| |Latest Version| |Supported Python versions| |Downloads|\n|Documentation Status|\n\nOpenClip XML Media Management Python Module\n===========================================\n\nOpenclip is a python abstraction of the openclip XML media\nclassification format. It provides ORM-style access to \"dotclip\" data\n(file or generated) to make the life of a python developer much easier.\nThis module is not meant to be a complete solution but rather a stable\nand standardized component of various other scripts, tools, guis, and\nsoftware integrations.\n\n- `Documentation on ReadTheDocs `__\n- `Source on GitHub `__\n- `Packages on PyPI `__\n- `Builds on Travis\n CI `__\n\nAbout the *OpenClip* format\n---------------------------\n\n *the following is adapted from the Autodesk documentation of the\n Gateway Clip specification...*\n\nThe **``.clip``** **OpenClip** XML format is an XML wrapper which points\nto single or multiple video and/or audio sources and wraps them in a\nsingle entity. The XML is built to reflect the structure of a complex\nclip, with the most atomic portions (paths to media) at the bottom of\nthe hierarchy, and the clip at the top most entity.\n\nAn **OpenClip** XML structured file describes at least the following\ninformation:\n\n- Physical location of files\n- additional metadata information, such as timecode and keycode\n- Clip versions\n\nStructure of OpenClip\n~~~~~~~~~~~~~~~~~~~~~\n\nThe following is a basic representation of the structure of an Open\nClip:\n\n````\n^^^^^^^^^^\n\n- highest level wrapper entity\n- comprises entire clip (Tracks, Versions)\n- defines global options (Clip Name, Comments)\n\n````\n^^^^^^^^^^^\n\n- found within ```` container\n- all information about a single channel\n- ChannelType (Video, Audio, Generic)\n- Extended Channel Type (eg. Matte, Normals, Shadow)\n\n````\n^^^^^^^^^^\n\n- found within ```` container\n- Track Version or \"View\"\n- Distinguished by a Version Number\n- Storage Format (bit-depth, resolution, etc.)\n\n````\n^^^^^^^^^^\n\n- found within ```` container\n- Media (Image sequence or streaming media/container eg. QuickTime)\n- Path(s) to media\n\nWithin a ``clip``, you have ``tracks``, within ``tracks`` you have\n``feeds`` and within ``feeds``, ``spans``.\n\nInstallation\n------------\n\nThis should be easy. You may need administrator priveleges depending on\nyour system configuration.\n\n Note: Some software have their own isolated python environment for a\n good reason - try at your own risk to integrate this library...\n\nFor the latest dev branch:\n\n::\n\n git clone https://github.com/robmoggach/python-openclip.git\n cd python-openclip\n python setup.py install\n\nor for the latest (possibly stable?) release:\n\n::\n\n pip install openclip\n\nor\n\n::\n\n easy_install openclip\n\n **Note:** I prefer markdown for documentation but setuptools prefers\n restructuredText. For this reason the ``setup.py`` file\n **optionally** requires package ``pypandoc`` which can be installed\n using ``pip install pypandoc``.\n\nlxml.etree\n~~~~~~~~~~\n\n``lxml.etree`` has been used in development for this project but it does\nhave fallbacks for system xml element tree tools. It's faster and\nproduces cleaner xml so it's preferable but not implicitly required. If\nyou don't want it, remove it from the ``setup.py`` file and you'll be\ngood to go.\n\nUsage\n-----\n\nThe documentation (non-existent) provides more on this but essentially\nyou create an OpenClip object / class instance and that object has a\nnumber of built in methods for manipulating the data within.\n\nExample\n~~~~~~~\n\nHere's an example that creates a generic clip object. (no file\nspecified)\n\n::\n\n >>> import openclip\n >>> oc = openclip.OpenClip()\n >>> oc.clip\n \n >>> print oc.clip.xml\n OpenClip_20160108_120119_93\n >>> oc.clip.tracks\n \n >>> oc.clip.versions\n \n >>> oc.clip.tracks.track_list\n []\n >>> oc.clip.versions.version_list\n []\n\nProduct Requirements (IMO) are (in order):\n------------------------------------------\n\nThe following are my own requirements for this module, in no particular\norder. *Some have already been satisfied.*\n\n- to model openclip xml in an atomic building block fashion using\n python classes\n- to create working openclip xml documents from input or by parsing\n existing files\n- to safely retain/backup metadata in potentially destructive write\n operations\n- to have it intuitively and recursively create clip files from a tree\n using pyseq,lss,mls etc.\n- to introspect existing clip files and allow interactive wizard-style\n editing\n- to merge clip files\n- to change paths on clip files\n- to generate placeholder media for sequences that don't exist\n\nFuture:\n-------\n\n- pluggable openclip module for use in maya, houdini, nuke, hiero, fcp?\n- truly open format\n- interactive wizard style component\n- qt/pyside\n\nTests |Build Status|\n--------------------\n\nI use ``tox`` for testing and `Travis CI `__ (a\ndistributed continuous integration service used to build and test\nprojects hosted at GitHub).\n\nRunning the tests should be as easy as typing:\n\n::\n\n tox\n\n(assuming you have tox and pytest installed of course.)\n\nDependencies\n------------\n\n**python-openclip** uses a number of opensource packages.\n\n- `Parse `__ is the opposite of\n the python ``format`` command.\n- `PySeq `__ finds groups of items\n that follow a naming convention containing a numerical sequence.\n- `timecode `__ provides timecode\n manipulation functions.\n- `colorama `__ provides\n cross-platform colored terminal text in Python.\n- `colorlog `__ is a\n colored formatter for the python logging module.\n- `Munch `__ *(previously bunch)*\n is a Python dictionary that provides attribute-style access.\n\nAuthor(s)\n---------\n\n- `Robert Moggach `__\n- \n\nMaintainers\n-----------\n\n- `Robert Moggach `__\n- \n\nContributors\n------------\n\n- \n\nThe MIT License (MIT)\n---------------------\n\nCopyright (c) 2016 `Robert Moggach `__\n\nPermission is hereby granted, free of charge, to any person obtaining a\ncopy of this software and associated documentation files (the\n\"Software\"), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be included\nin all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\nOR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\nIN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\nCLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\nTORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\nSOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n.. |Build Status| image:: https://travis-ci.org/robmoggach/python-openclip.svg?branch=master\n :target: https://travis-ci.org/robmoggach/python-openclip\n.. |Latest Version| image:: https://img.shields.io/pypi/v/openclip.svg\n :target: https://pypi.python.org/pypi/openclip/\n.. |Supported Python versions| image:: https://img.shields.io/pypi/pyversions/openclip.svg\n :target: https://pypi.python.org/pypi/openclip/\n.. |Downloads| image:: https://img.shields.io/pypi/dm/openclip.svg\n :target: https://pypi.python.org/pypi/openclip/\n.. |Documentation Status| image:: https://readthedocs.org/projects/openclip/badge/?version=latest\n :target: https://readthedocs.org/projects/openclip/?badge=latest", "description_content_type": null, "docs_url": null, "download_url": "https://github.com/robmoggach/python-openclip/tarball/v0.0.12", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://github.com/robmoggach/python-openclip", "keywords": "filesystem media utilities vfx", "license": "MIT License", "maintainer": null, "maintainer_email": null, "name": "openclip", "package_url": "https://pypi.org/project/openclip/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/openclip/", "project_urls": { "Download": "https://github.com/robmoggach/python-openclip/tarball/v0.0.12", "Homepage": "http://github.com/robmoggach/python-openclip" }, "release_url": "https://pypi.org/project/openclip/0.0.12/", "requires_dist": null, "requires_python": null, "summary": "OpenClip XML Media Management Python Module 0.0.12", "version": "0.0.12" }, "last_serial": 1898160, "releases": { "0.0.10": [ { "comment_text": "", "digests": { "md5": "6b26c4e4a1502ca75a84cbb9e0c7acec", "sha256": "f0a6be063cffe6e724250e41934de36c76ca9ca624e67b083b879931ce1c3ee6" }, "downloads": -1, "filename": "openclip-0.0.10.tar.gz", "has_sig": false, "md5_digest": "6b26c4e4a1502ca75a84cbb9e0c7acec", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20263, "upload_time": "2016-01-10T20:35:49", "url": "https://files.pythonhosted.org/packages/ac/34/7ce17826838a54eefcf44dfd371b37ad6e2f58ffbfc1a427503a32808ec0/openclip-0.0.10.tar.gz" } ], "0.0.11": [ { "comment_text": "", "digests": { "md5": "91345c51e5a08dd2198d89487e012ace", "sha256": "35bf74b482a1b9551d5adfa254817ed49eec97e24fc994724e0126d8ae2ba0e5" }, "downloads": -1, "filename": "openclip-0.0.11.tar.gz", "has_sig": false, "md5_digest": "91345c51e5a08dd2198d89487e012ace", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20306, "upload_time": "2016-01-10T20:49:01", "url": "https://files.pythonhosted.org/packages/45/0c/19e3a46aa1aafe500620f3a8986f05ab5d5ae53d0a6614cf5bdb1f42ca21/openclip-0.0.11.tar.gz" } ], "0.0.12": [ { "comment_text": "", "digests": { "md5": "763020609eda8e7b95ce515c3143ae78", "sha256": "dc97cea051e7ea79edd86e8337cb76e4bc7d09765770fc0968e9395b5b31df54" }, "downloads": -1, "filename": "openclip-0.0.12.tar.gz", "has_sig": false, "md5_digest": "763020609eda8e7b95ce515c3143ae78", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20336, "upload_time": "2016-01-10T22:06:24", "url": "https://files.pythonhosted.org/packages/55/73/ea5ac5a13d4ef5f98f1cfe3931a13b93d395007a9afd4dd76d0bf9b811f8/openclip-0.0.12.tar.gz" } ], "0.0.9": [ { "comment_text": "", "digests": { "md5": "da303b4dcefcabaf4cf34c514612bb4e", "sha256": "eb886dd4c8c9bffd5f6be20b76ae790c02f441f10eaa879b51e933f08f877b46" }, "downloads": -1, "filename": "openclip-0.0.9.tar.gz", "has_sig": false, "md5_digest": "da303b4dcefcabaf4cf34c514612bb4e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19653, "upload_time": "2016-01-10T08:52:43", "url": "https://files.pythonhosted.org/packages/07/28/634a60c360b8e298df7a83a3e13cd7e3e1d2053610271df01dc7dd383630/openclip-0.0.9.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "763020609eda8e7b95ce515c3143ae78", "sha256": "dc97cea051e7ea79edd86e8337cb76e4bc7d09765770fc0968e9395b5b31df54" }, "downloads": -1, "filename": "openclip-0.0.12.tar.gz", "has_sig": false, "md5_digest": "763020609eda8e7b95ce515c3143ae78", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20336, "upload_time": "2016-01-10T22:06:24", "url": "https://files.pythonhosted.org/packages/55/73/ea5ac5a13d4ef5f98f1cfe3931a13b93d395007a9afd4dd76d0bf9b811f8/openclip-0.0.12.tar.gz" } ] }