Skip to main content

Documentation Status GitHub last commit Lint and Test

pycmx

The pycmx package parses a CMX 3600 EDL and its most most common variations.

Features

  • The major variations of the CMX 3600: the standard, "File32", "File128" and long Adobe Premiere event numbers are automatically detected and properly read. Event number field and source name field sizes are determined dynamically for each statement for a high level of compliance at the expense of strictness.
  • A more relaxed "tolerant" mode allows parsing of an EDL file where columns use non-standard widths.
  • 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.
  • ASC CDL and FRMC/VFX framecount statements are parsed and decoded.
  • 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

Metadata

Release files for pycmx 1.5.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for pycmx 1.5.1
File Size Uploaded
pycmx-1.5.1.tar.gz 11.3 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for pycmx 1.5.1
File Interpreter ABI Platform
pycmx-1.5.1-py3-none-any.whl Python 3 none any Details

Total release size: 26.6 kB

Release files / pycmx-1.5.1.tar.gz

Download URL pycmx-1.5.1.tar.gz
Size 11.3 kB
Tags Source
SHA-256 checksum
How to use checksums
ccaada765300ab2e7dfb64ed1016995c854986db6ed513e635e58e5a9bb92255
BLAKE2b-256 checksum
How to use checksums
7941b59c82fcf8428af859d6b1ac9422ee966e3ad7cd0b6ec1ea813aaa30cd29
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 17, 2026.

Transparency log

Release files / pycmx-1.5.1-py3-none-any.whl

Download URL pycmx-1.5.1-py3-none-any.whl
Size 15.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
77d4d97e9c7bcd9d28e3b8744f7c6210977b1d8c70af6d0434da02e5e3adcf6e
BLAKE2b-256 checksum
How to use checksums
778c30403b29e3b619528b31d88aee31b757de64a808c8a16a39957af0bdfdb3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 17, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

1.5.1 This release

2 release files

1.5.0

2 release files

1.4.0

2 release files

1.3.0

2 release files

1.2.3

2 release files

1.2.2

2 release files

1.2.1

2 release files

1.2.0

2 release files

1.1.5

2 release files

1.1.4

2 release files

1.1.3

2 release files

1.1.1

2 release files

1.0.1

2 release files

1.0

2 release files

0.8

2 release files

0.7

2 release files

0.6

3 release files

0.5

3 release files

0.4

2 release files

0.3

2 release files

0.2

2 release files

0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page