Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
25 commits
Select commit Hold shift + click to select a range
a1dedd1
Support extra EXT-OATCLS-SCTE35 tags during CUE-OUT
bbayles Jun 6, 2025
66a4643
Normalize quotes
bbayles Jun 6, 2025
54eb543
Support EXT-OATCLS-SCTE35 for EXT-X-CUE-IN
bbayles Aug 27, 2025
d9ece72
Merge pull request #1 from openwurl/oatcls-endless
bbayles Aug 27, 2025
7c30335
Bump version to 6.2.1
bbayles Aug 27, 2025
5135866
Re-factor parser for performance
bbayles Sep 26, 2025
ba437cf
add support for #EXT-X-BLACKOUT tag
Nov 13, 2025
1f8350d
Merge pull request #2 from openwurl/SA-1170v2
bbayles Nov 17, 2025
36dfe33
Updates for release 6.3.0-wurl
bbayles Nov 17, 2025
fb6b555
Update testing dependencies
bbayles Nov 17, 2025
da1836c
Merge pull request #3 from openwurl/release-6.3.0
bbayles Nov 17, 2025
bc8b45f
Merge remote-tracking branch 'origin/master' into rework-parser
bbayles Dec 3, 2025
67ce484
Checkpoint: Experimental C parser extension
bbayles Dec 15, 2025
d379528
Add new test for Empty MAP tags
bbayles Dec 15, 2025
24d9ada
Checkpoint 2: Experimental C parser
bbayles Dec 15, 2025
44dba46
Checkpoint 3: Experimental C parser
bbayles Dec 15, 2025
3f90425
Checkpoint 4: Experimental C parser
bbayles Dec 15, 2025
1c51616
Checkpoint 5: Experimental C parser
bbayles Dec 15, 2025
900d391
Checkpoint 6: Experimental C parser
bbayles Dec 15, 2025
1174e49
Checkpoint 7: Experimental C parser
bbayles Dec 16, 2025
f841158
Checkpoint 8: Experimental C parser
bbayles Dec 16, 2025
e879bcb
Attempt to build wheels
bbayles Dec 16, 2025
e86758c
Try to fix wheels
bbayles Dec 16, 2025
68f42f6
Try again on wheels
bbayles Dec 16, 2025
4eacc64
Run the formatter
bbayles Dec 16, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 5 additions & 1 deletion .github/workflows/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ jobs:
# You can use PyPy versions in python-version.
# For example, pypy2 and pypy3
matrix:
python-version: ["3.9", "3.10", "3.11", "3.12", "3.13"]
python-version: ["3.10", "3.11", "3.12", "3.13", "3.14"]

# Steps represent a sequence of tasks that will be executed as part of the job
steps:
Expand All @@ -37,4 +37,8 @@ jobs:
# Runs a single command using the runners shell
- name: Run all tests
run: ./runtests
- name: Run all tests (no C extension)
env:
M3U8_NO_C_EXTENSION: "1"
run: ./runtests

89 changes: 89 additions & 0 deletions .github/workflows/wheels.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,89 @@
name: Build Wheels

on:
pull_request:
types: [opened, synchronize, reopened, ready_for_review]
paths-ignore:
- '**.md'
push:
branches:
- main
paths-ignore:
- '**.md'
release:
types:
- published

jobs:
build_wheels:
name: Build wheels on ${{ matrix.os }}
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
include:
# Linux x86_64 and aarch64 (via QEMU) on ubuntu
- os: ubuntu-latest
archs: "x86_64 aarch64"
# macOS x86_64 on Intel runner
- os: macos-latest
archs: "x86_64"
# macOS arm64 on Apple Silicon runner
- os: macos-14
archs: "arm64"

steps:
- uses: actions/checkout@v4

- name: Set up QEMU
if: runner.os == 'Linux'
uses: docker/setup-qemu-action@v3
with:
platforms: arm64

- name: Build wheels
uses: pypa/cibuildwheel@v2.21.3
env:
CIBW_ARCHS: ${{ matrix.archs }}

- name: Upload wheels
uses: actions/upload-artifact@v4
with:
name: wheels-${{ matrix.os }}
path: ./wheelhouse/*.whl

build_sdist:
name: Build source distribution
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4

- name: Build sdist
run: pipx run build --sdist

- name: Upload sdist
uses: actions/upload-artifact@v4
with:
name: sdist
path: dist/*.tar.gz

merge_artifacts:
name: Merge artifacts
runs-on: ubuntu-latest
needs: [build_wheels, build_sdist]
steps:
- name: Download all artifacts
uses: actions/download-artifact@v4
with:
path: dist
merge-multiple: true

- name: List artifacts
run: ls -la dist/

- name: Upload combined artifacts
uses: actions/upload-artifact@v4
with:
name: all-dist-files
path: dist/

4 changes: 4 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,5 +1,9 @@
.DS_Store
*.pyc
*.egg-info
*.so
*.o
*.dylib
tests/server.stdout
dist/
build/
Expand Down
3 changes: 0 additions & 3 deletions MANIFEST.in

This file was deleted.

9 changes: 8 additions & 1 deletion m3u8/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,14 @@
Start,
Tiles,
)
from m3u8.parser import ParseError, parse
from m3u8.parser import parse, ParseError

# Try to import the C extension for faster parsing, fall back to Python
if os.environ.get("M3U8_NO_C_EXTENSION", "") != "1":
try:
from m3u8._m3u8_parser import parse
except ImportError:
pass

__all__ = (
"M3U8",
Expand Down
Loading