Name | pycmx JSON |
Version |
1.2.2
JSON |
| download |
home_page | |
Summary | pycmx is a parser for CMX 3600-style EDLs. |
upload_time | 2023-11-08 18:12:27 |
maintainer | |
docs_url | None |
author | |
requires_python | ~=3.7 |
license | |
keywords |
parser
film
broadcast
|
VCS |
|
bugtrack_url |
|
requirements |
No requirements were recorded.
|
Travis-CI |
No Travis.
|
coveralls test coverage |
No coveralls.
|
[![Documentation Status](https://readthedocs.org/projects/pycmx/badge/?version=latest)](https://pycmx.readthedocs.io/en/latest/?badge=latest) ![](https://img.shields.io/github/license/iluvcapra/pycmx.svg) ![](https://img.shields.io/pypi/pyversions/pycmx.svg) [![](https://img.shields.io/pypi/v/pycmx.svg)](https://pypi.org/project/pycmx/) ![](https://img.shields.io/pypi/wheel/pycmx.svg)
![GitHub last commit](https://img.shields.io/github/last-commit/iluvcapra/pycmx)
[![Lint and Test](https://github.com/iluvcapra/pycmx/actions/workflows/python-package.yml/badge.svg)](https://github.com/iluvcapra/pycmx/actions/workflows/python-package.yml)
# pycmx
The `pycmx` package provides a basic interface for parsing a CMX 3600 EDL and its most most common variations.
## Features
* The major variations of the CMX 3600: the standard, "File32" and "File128"
formats are automatically detected and properly read.
* Preserves relationship between events and individual edits/clips.
* Remark or comment fields with common recognized forms are read and
available to the client, including clip name and source file data.
* Symbolically decodes transitions and audio channels.
* Does not parse or validate timecodes, does not enforce framerates, does not
parameterize timecode or framerates in any way. This makes the parser more
tolerant of EDLs with mixed rates.
* Unrecognized lines are accessible on the `EditList` and `Event` classes
along with the line numbers, to help the client diagnose problems with a
list and give the client the ability to extend the package with their own
parsing code.
## Usage
### Opening and Parsing EDL Files
```
>>> import pycmx
>>> with open("tests/edls/TEST.edl") as f
... edl = pycmx.parse_cmx3600(f)
...
>>> edl.title
'DC7 R1_v8.2'
```
### Reading Events and Edits
`EditList.events` is a generator...
```
>>> events = list( edl.events )
>>> len(events)
120
>>> events[43].number
'044'
```
...and events contain 1...n edits.
```
>>> events[43].edits[0].source_in
'00:00:00:00'
>>> events[43].edits[0].transition.cut
True
>>> events[43].edits[0].record_out
'01:10:21:10'
```
### Acessing Transitions and Enabled Channels
```
>>> events[41].edits[0].transition.dissolve
False
>>> events[41].edits[1].transition.dissolve
True
>>> events[41].edits[0].clip_name
'TC R1 V1.2 TEMP1 DX M.WAV'
>>> events[41].edits[1].clip_name
'TC R1 V6 TEMP2 M DX.WAV'
# parsed channel maps are also
# available to the client
>>> events[2].edits[0].channels.get_audio_channel(7)
True
>>> events[2].edits[0].channels.get_audio_channel(6)
False
>>> for c in events[2].edits[0].channels.channels:
... print(f"Audio channel {c} is present")
...
Audio channel 7 is present
>>> events[2].edits[0].channels.video
False
```
Raw data
{
"_id": null,
"home_page": "",
"name": "pycmx",
"maintainer": "",
"docs_url": null,
"requires_python": "~=3.7",
"maintainer_email": "",
"keywords": "parser,film,broadcast",
"author": "",
"author_email": "Jamie Hardt <jamiehardt@me.com>",
"download_url": "https://files.pythonhosted.org/packages/63/68/51e0aaeec7077b426f02f069b96386e7e80799eb3d73c61c11e093705cfc/pycmx-1.2.2.tar.gz",
"platform": null,
"description": "[![Documentation Status](https://readthedocs.org/projects/pycmx/badge/?version=latest)](https://pycmx.readthedocs.io/en/latest/?badge=latest) ![](https://img.shields.io/github/license/iluvcapra/pycmx.svg) ![](https://img.shields.io/pypi/pyversions/pycmx.svg) [![](https://img.shields.io/pypi/v/pycmx.svg)](https://pypi.org/project/pycmx/) ![](https://img.shields.io/pypi/wheel/pycmx.svg)\n![GitHub last commit](https://img.shields.io/github/last-commit/iluvcapra/pycmx)\n[![Lint and Test](https://github.com/iluvcapra/pycmx/actions/workflows/python-package.yml/badge.svg)](https://github.com/iluvcapra/pycmx/actions/workflows/python-package.yml)\n\n\n# pycmx\n\nThe `pycmx` package provides a basic interface for parsing a CMX 3600 EDL and its most most common variations.\n\n## Features\n\n* The major variations of the CMX 3600: the standard, \"File32\" and \"File128\" \n formats are automatically detected and properly read.\n* Preserves relationship between events and individual edits/clips.\n* Remark or comment fields with common recognized forms are read and \n available to the client, including clip name and source file data.\n* Symbolically decodes transitions and audio channels.\n* Does not parse or validate timecodes, does not enforce framerates, does not\n parameterize timecode or framerates in any way. This makes the parser more\n tolerant of EDLs with mixed rates.\n* Unrecognized lines are accessible on the `EditList` and `Event` classes\n along with the line numbers, to help the client diagnose problems with a\n list and give the client the ability to extend the package with their own\n parsing code.\n\n## Usage\n\n### Opening and Parsing EDL Files\n```\n>>> import pycmx\n>>> with open(\"tests/edls/TEST.edl\") as f\n... \tedl = pycmx.parse_cmx3600(f)\n...\n>>> edl.title\n'DC7 R1_v8.2'\n```\n\n### Reading Events and Edits\n\n`EditList.events` is a generator...\n\n```\n>>> events = list( edl.events ) \n>>> len(events)\n120\n>>> events[43].number \n'044'\n```\n\n...and events contain 1...n edits.\n\n```\n>>> events[43].edits[0].source_in \n'00:00:00:00'\n>>> events[43].edits[0].transition.cut\nTrue\n>>> events[43].edits[0].record_out\n'01:10:21:10'\n```\n\n### Acessing Transitions and Enabled Channels\n\n``` \n>>> events[41].edits[0].transition.dissolve\nFalse\n>>> events[41].edits[1].transition.dissolve\nTrue\n>>> events[41].edits[0].clip_name\n'TC R1 V1.2 TEMP1 DX M.WAV'\n>>> events[41].edits[1].clip_name\n'TC R1 V6 TEMP2 M DX.WAV'\n \n # parsed channel maps are also\n # available to the client\n>>> events[2].edits[0].channels.get_audio_channel(7)\nTrue\n>>> events[2].edits[0].channels.get_audio_channel(6)\nFalse\n>>> for c in events[2].edits[0].channels.channels:\n... print(f\"Audio channel {c} is present\")\n... \nAudio channel 7 is present\n>>> events[2].edits[0].channels.video\nFalse\n```\n\n\n\n",
"bugtrack_url": null,
"license": "",
"summary": "pycmx is a parser for CMX 3600-style EDLs.",
"version": "1.2.2",
"project_urls": {
"Documentation": "https://pycmx.readthedocs.io/",
"Home": "https://github.com/iluvcapra/pycmx",
"Issues": "https://github.com/iluvcapra/pycmx/issues",
"Source": "https://github.com/iluvcapra/pycmx.git"
},
"split_keywords": [
"parser",
"film",
"broadcast"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "dc288d3c88317734388ef193cb0c40f7e01064cfabcfaee1047e992a411100ef",
"md5": "82a950ec4692a55ef8dd8fd7992a5577",
"sha256": "1314a6aa8eced7fa77b8975ebce29b51741102c4548683e168064dac6bf563c2"
},
"downloads": -1,
"filename": "pycmx-1.2.2-py3-none-any.whl",
"has_sig": false,
"md5_digest": "82a950ec4692a55ef8dd8fd7992a5577",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": "~=3.7",
"size": 10762,
"upload_time": "2023-11-08T18:12:25",
"upload_time_iso_8601": "2023-11-08T18:12:25.841329Z",
"url": "https://files.pythonhosted.org/packages/dc/28/8d3c88317734388ef193cb0c40f7e01064cfabcfaee1047e992a411100ef/pycmx-1.2.2-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "636851e0aaeec7077b426f02f069b96386e7e80799eb3d73c61c11e093705cfc",
"md5": "6f12589f9358e6149d173b2d87f83125",
"sha256": "4c4ee2a1e96bfdd22d4216ceccfe3c48c96d11d4a0a31d6735cd8ad94cf7d3dc"
},
"downloads": -1,
"filename": "pycmx-1.2.2.tar.gz",
"has_sig": false,
"md5_digest": "6f12589f9358e6149d173b2d87f83125",
"packagetype": "sdist",
"python_version": "source",
"requires_python": "~=3.7",
"size": 9408,
"upload_time": "2023-11-08T18:12:27",
"upload_time_iso_8601": "2023-11-08T18:12:27.362660Z",
"url": "https://files.pythonhosted.org/packages/63/68/51e0aaeec7077b426f02f069b96386e7e80799eb3d73c61c11e093705cfc/pycmx-1.2.2.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2023-11-08 18:12:27",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "iluvcapra",
"github_project": "pycmx",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "pycmx"
}