Initialisation du repository de Beta

This commit is contained in:
Mathis 2026-02-06 22:23:20 +01:00
commit 14985f6dbb
9469 changed files with 1903273 additions and 0 deletions

View file

@ -0,0 +1 @@
pip

View file

@ -0,0 +1,127 @@
Metadata-Version: 2.4
Name: av
Version: 16.1.0
Summary: Pythonic bindings for FFmpeg's libraries.
Author-email: WyattBlue <wyattblue@auto-editor.com>, Jeremy Lainé <jeremy.laine@m4x.org>
License-Expression: BSD-3-Clause
Project-URL: Bug Tracker, https://github.com/PyAV-Org/PyAV/issues
Project-URL: Source Code, https://github.com/PyAV-Org/PyAV
Project-URL: homepage, https://pyav.basswood-io.com
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Developers
Classifier: Natural Language :: English
Classifier: Operating System :: MacOS :: MacOS X
Classifier: Operating System :: POSIX
Classifier: Operating System :: Unix
Classifier: Operating System :: Microsoft :: Windows
Classifier: Programming Language :: Cython
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Topic :: Multimedia :: Sound/Audio
Classifier: Topic :: Multimedia :: Sound/Audio :: Conversion
Classifier: Topic :: Multimedia :: Video
Classifier: Topic :: Multimedia :: Video :: Conversion
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE.txt
License-File: AUTHORS.py
License-File: AUTHORS.rst
Dynamic: license-file
PyAV
====
PyAV is a Pythonic binding for the [FFmpeg][ffmpeg] libraries. We aim to provide all of the power and control of the underlying library, but manage the gritty details as much as possible.
---
[![GitHub Test Status][github-tests-badge]][github-tests] [![Documentation][docs-badge]][docs] [![Python Package Index][pypi-badge]][pypi] [![Conda Forge][conda-badge]][conda]
PyAV is for direct and precise access to your media via containers, streams, packets, codecs, and frames. It exposes a few transformations of that data, and helps you get your data to/from other packages (e.g. Numpy and Pillow).
This power does come with some responsibility as working with media is horrendously complicated and PyAV can't abstract it away or make all the best decisions for you. If the `ffmpeg` command does the job without you bending over backwards, PyAV is likely going to be more of a hindrance than a help.
But where you can't work without it, PyAV is a critical tool.
Installation
------------
Binary wheels are provided on [PyPI][pypi] for Linux, MacOS and Windows linked against the latest stable version of ffmpeg. You can install these wheels by running:
```bash
pip install av
```
Another way of installing PyAV is via [conda-forge][conda-forge]:
```bash
conda install av -c conda-forge
```
See the [Conda install][conda-install] docs to get started with (mini)Conda.
Alternative installation methods
--------------------------------
Due to the complexity of the dependencies, PyAV is not always the easiest Python package to install from source. If you want to use your existing ffmpeg (must be the correct major version), the source version of PyAV is on [PyPI][pypi]:
> [!WARNING]
> You must be in a posix env, and have the correct version of ffmpeg installed on your system.
```bash
pip install av --no-binary av
```
Installing From Source
----------------------
Here's how to build PyAV from source. You must use [MSYS2](https://www.msys2.org/) when using Windows.
```bash
git clone https://github.com/PyAV-Org/PyAV.git
cd PyAV
source scripts/activate.sh
# Build ffmpeg from source. You can skip this step
# if ffmpeg is already installed.
./scripts/build-deps
# Build PyAV
make
# Testing
make test
# Install globally
deactivate
pip install .
```
---
Have fun, [read the docs][docs], [come chat with us][discuss], and good luck!
[conda-badge]: https://img.shields.io/conda/vn/conda-forge/av.svg?colorB=CCB39A
[conda]: https://anaconda.org/conda-forge/av
[docs-badge]: https://img.shields.io/badge/docs-on%20pyav.basswood--io.com-blue.svg
[docs]: https://pyav.basswood-io.com
[pypi-badge]: https://img.shields.io/pypi/v/av.svg?colorB=CCB39A
[pypi]: https://pypi.org/project/av
[discuss]: https://github.com/PyAV-Org/PyAV/discussions
[github-tests-badge]: https://github.com/PyAV-Org/PyAV/workflows/tests/badge.svg
[github-tests]: https://github.com/PyAV-Org/PyAV/actions?workflow=tests
[github]: https://github.com/PyAV-Org/PyAV
[ffmpeg]: https://ffmpeg.org/
[conda-forge]: https://conda-forge.github.io/
[conda-install]: https://docs.conda.io/projects/conda/en/latest/user-guide/install/index.html

View file

@ -0,0 +1,295 @@
../../../bin/pyav,sha256=_pVjzBD9RgFAN7kSi-gFRAzelwP81w6XBJYMAU9teA4,240
av-16.1.0.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4
av-16.1.0.dist-info/METADATA,sha256=Ce2keAbJcDJNQCJyj0ChtIJeXFYXMDNoE5RZRqROdXw,4597
av-16.1.0.dist-info/RECORD,,
av-16.1.0.dist-info/WHEEL,sha256=VXvNKn6nFeCM45GEUrNLJOO_J_e-cNJphGt9rWFxyE0,113
av-16.1.0.dist-info/entry_points.txt,sha256=3XMdM30ih673nLSRVzDsHLBmGYNlt7wQ1xyW8xoHAzg,42
av-16.1.0.dist-info/licenses/AUTHORS.py,sha256=Tsbg3KPQcDrr77OG0-tu0UoF2W_osKoItSwtKVGBf-w,5558
av-16.1.0.dist-info/licenses/AUTHORS.rst,sha256=-E9aplnMNdT0lokNDawhafNRWr-04SHt7EErAtFz3no,5598
av-16.1.0.dist-info/licenses/LICENSE.txt,sha256=dq8EYf-5LhnxwURJ6VVX2Dot-qG68gLUnl8dh0bA2hk,1505
av-16.1.0.dist-info/licenses/__pycache__/AUTHORS.cpython-312.pyc,,
av-16.1.0.dist-info/sboms/auditwheel.cdx.json,sha256=EECv1QF2CqHVtlT_zXAFq-pJH4pegcdqufbG1Z00iT4,3470
av-16.1.0.dist-info/top_level.txt,sha256=TuQF-stvFHN8ilfr36ctqc7_MR5IOhUqrR0i6i5gNR8,3
av.libs/libSvtAv1Enc-3d76ea3f.so.3.1.2,sha256=k8Xpto671BTSQTtRgOqjnn8K4z1KgqmMR4uY_x_nQbg,7835953
av.libs/libXau-154567c4.so.6.0.0,sha256=BUhNJL94y47QMWnxywZyBNgpy3ryHeiCBADSnRFeQyA,22081
av.libs/libaom-db8376cb.so.3.13.1,sha256=RuHQOyU6pcvM9PirMpKW6mGZ62I158aYZVkVzR23Bis,7629289
av.libs/libasound-cfbebb71.so.2.0.0,sha256=1_yT6sbjkCem6WeiQ9h-vjE8Anhf4EC9C9kV88twZ28,1162329
av.libs/libavcodec-e57b519c.so.62.11.100,sha256=I4FIxw8CR1Nhfg1YVqKrs1RU0iXTK3PD9IbEvO8MH4Q,18956193
av.libs/libavdevice-dacd4dca.so.62.1.100,sha256=yxKOo8kpu0N1nziD3H7Ea0sYhtPQdbSdVpwAKcj-wKg,115689
av.libs/libavfilter-1599fcba.so.11.4.100,sha256=t25LkKe4FwtcWLw6_0LLwtqHe9l9QcW0kY4FfB7Alc0,5439697
av.libs/libavformat-1a3c09f7.so.62.3.100,sha256=HPHyWCtx-GoPcVqqkLHviJys88dFfuYqudRUqYFEQ8c,2908449
av.libs/libavutil-9a1620aa.so.60.8.100,sha256=a8S9BpI62epkD6S88Y-FMjbzCZN-1a2qKCuo1Buaaq8,1128105
av.libs/libdav1d-e36facb0.so.7.0.0,sha256=4DLFeCTSvtB7nojH-KTxsqdU7mCknpM3_8mfcdZm-k8,2024769
av.libs/libdrm-b0291a67.so.2.4.0,sha256=K48ZAlNAuvSdX7i2toETxCm6886w4E17JmP2c8RM2-0,96417
av.libs/libgmp-03b86850.so.10.5.0,sha256=9-8AtjCAgBzygSijx6LRD2Eaytg6KU2X7KYLzUdns5g,515785
av.libs/libgnutls-b786e1df.so.30.41.0,sha256=o3KSX8xWl4GUdvTmeyIUdmnL3_WMs5iwHODFQNHFqS4,2309529
av.libs/libhogweed-4afd0d9b.so.6.11,sha256=8IijiHfXVgVzQBtGYnoHeJMQurn3hk9_em3wryp44hc,320913
av.libs/libmp3lame-b47cfc4f.so.0.0.0,sha256=osrIlKpmTWnQt_0gD8uQXomLrA6LXORGZD50wFXASko,421105
av.libs/libnettle-96be9a1b.so.8.11,sha256=PKPf0Psa2zvN6Pd-XP1f2Jt2XdOfSY7dAd1N9p6PbiQ,359689
av.libs/libogg-3d608a17.so.0.8.6,sha256=OB5Uo9SADTugXLNG-HYY7dejQdPIUpyOm7CimSrFV8A,43041
av.libs/libopencore-amrnb-758328a2.so.0.0.5,sha256=_M7oJbnDoKLPXLQ0r97Ht_QEfcRYCxORe8kxpqfj1J8,172889
av.libs/libopencore-amrwb-32d84e80.so.0.0.5,sha256=zmLRWWubLPDwJ4b7M1-plTcGvBBGnIRwAZD-mchW-Tw,90801
av.libs/libopenh264-c71d2ad3.so.2.6.0,sha256=MR3pMc0Td0Fum9Mpnfrj9HlXKcbPoYWMAzPqrTTY1Cs,1211297
av.libs/libopus-e47957c8.so.0.11.0,sha256=f-O3jX-NAM0v36Lb9RTdq9LE2c0GEAc5T1FhT4Mz1Sk,433369
av.libs/libsharpyuv-df9f9953.so.0.1.1,sha256=eUzOmxInpZ6zRJVKRVI75mMdBdfbNf3YjkDaO6XdchI,50153
av.libs/libspeex-d865afdc.so.1.5.2,sha256=f16kJC-HxXzashvRBCbjrAVV7qklz0dn9O5oTlcYCVo,116697
av.libs/libswresample-14658403.so.6.1.100,sha256=b88OnIP-xUetoLYOCoqzdUOQfBP4sqnNDxoItP4vxug,152841
av.libs/libswscale-6b69be0e.so.9.1.100,sha256=ljKj0QnGgOpGuLDqjXvj67zk9yLD56wlTpf_K-fnB-I,1714009
av.libs/libunistring-3e2a881b.so.5.2.1,sha256=df6_T3yS0y0B62MiUztUjqUrZgv_uywhfIZ6W1Q31Fo,2037073
av.libs/libvorbis-7ef30dde.so.0.4.9,sha256=pRghugfapKQhsokyoK-YQFqsaH1A6zdGq802bUTmNek,260873
av.libs/libvorbisenc-a6f5c68d.so.2.0.12,sha256=iwUlPELlG7S-lSIdGF-7wEJFRNSd_nYwteqaE9EMABs,709041
av.libs/libvpl-8d946bca.so.2.16,sha256=VykzflMaSwpRkbtfEr4-c6GDWaL5vHMA1eVflYXLi30,428409
av.libs/libvpx-6816a229.so.11.0.1,sha256=rDoXdQb_XqKuHIvXiWzamfJ19_Hx6e84fno6JtgnEnQ,2344985
av.libs/libwebp-b685bb5c.so.7.1.10,sha256=RC_LaS6DmZSc4obd07TuWD4CT7qShZB0ZuLVBuHznvQ,735321
av.libs/libwebpmux-7d768942.so.3.1.1,sha256=h8Bnk9owhvjOWtmrO1C1TDPhZLywq5ZxE5Ulfsi8koM,64329
av.libs/libx264-0b814221.so.165,sha256=DKtU_UiBxPD_nElw1iOZxpz5JYeF1NLtUcIUhn6jZMA,2288385
av.libs/libx265-3fd9b07c.so.215,sha256=tHraGWX2t9_HAKbdM33CATzH_cCCUjirs2xpmTALgfM,20404489
av.libs/libxcb-5ddf6756.so.1.1.0,sha256=LzS0BrO8-e9A3waYRgDBJHMxRM5Le9qhViLlj57yfdg,280065
av.libs/libxcb-shape-7716c890.so.0.0.0,sha256=M96R5R2DQdH1Q9WSAkesG13XhNJo01f3Gym1TsByegc,25865
av.libs/libxcb-shm-0be6dfbf.so.0.0.0,sha256=i9sHx7PzMbqniF_KNxUXR96cKsAa5E1YdicerlVh8lQ,26329
av.libs/libxcb-xfixes-6de855b8.so.0.0.0,sha256=GkmekzVrEdJMRJF3VIt7GumTpJpTf38mn9R3AU6pPpk,57617
av/__init__.pxd,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
av/__init__.py,sha256=vyVYmmX6SWbLgVSEwkgacV-oBVuFAlYMJDdLU74UBNs,2122
av/__main__.py,sha256=x6yMMfLGUHLly2_PlYwsHr1fsZIvaauzPVe3ZAVAuCM,1568
av/__pycache__/__init__.cpython-312.pyc,,
av/__pycache__/__main__.cpython-312.pyc,,
av/__pycache__/about.cpython-312.pyc,,
av/__pycache__/datasets.cpython-312.pyc,,
av/__pycache__/frame.cpython-312.pyc,,
av/__pycache__/packet.cpython-312.pyc,,
av/__pycache__/stream.cpython-312.pyc,,
av/__pycache__/utils.cpython-312.pyc,,
av/_core.cpython-312-x86_64-linux-gnu.so,sha256=Q1oVndqzxqfmd0b10An_vaxp1Ytqvfr4FE7bN2Cm9vc,175185
av/_core.pyi,sha256=FAlEwvbG4HgiXmupnWpi1jebTWRqVvE8QFOTxZhqbp0,251
av/_core.pyx,sha256=Pp1hNFI634a9KnLGbCnqsvaDzj7nKEJmUftnuNC3Rac,1963
av/about.py,sha256=UMn5AL6VroSX6hwO0rYPXeK97obTwFNpGOK210UuD0o,23
av/audio/__init__.pxd,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
av/audio/__init__.py,sha256=iqa8GHOGWz_CvVGp1WahggT77Wez0vXxBRSYSBE2rzM,62
av/audio/__init__.pyi,sha256=dl9gWskpaZ1gGDhi3L1tFUPyDFeLmk26DQ1D17jX1yY,259
av/audio/__pycache__/__init__.cpython-312.pyc,,
av/audio/__pycache__/codeccontext.cpython-312.pyc,,
av/audio/__pycache__/format.cpython-312.pyc,,
av/audio/__pycache__/frame.cpython-312.pyc,,
av/audio/__pycache__/plane.cpython-312.pyc,,
av/audio/__pycache__/resampler.cpython-312.pyc,,
av/audio/__pycache__/stream.cpython-312.pyc,,
av/audio/codeccontext.cpython-312-x86_64-linux-gnu.so,sha256=_7QZ3ZqpqIEM5OGx2oFpncWAT2jM1WwkzZmn84INcRY,383921
av/audio/codeccontext.pxd,sha256=Yf6KxyJRo33v_ceKrqlk404otGtTvxZY-q3W_TISF6M,334
av/audio/codeccontext.py,sha256=WdusdT8hN_Y7h4DLur8EFbicQtXeP-kQz_Rk7KLe6ps,3011
av/audio/codeccontext.pyi,sha256=k-_y8gFQGb8PfDRQQrQ3ygXpLKNRWv1VlcL8Keua-58,1014
av/audio/fifo.cpython-312-x86_64-linux-gnu.so,sha256=9zH41KF9hkalm0gA7UFUc0qSUp-XTiXGYxiYtHwwV78,675049
av/audio/fifo.pxd,sha256=ZTO40EMP15fO1Adm34Qh4TzgQDXeVLLAn08DQlF5Q9c,461
av/audio/fifo.pyi,sha256=I_nzPMFexnhzLcPZVjFQvIMevxrEHsEQxSjKmBdvh4E,712
av/audio/fifo.pyx,sha256=FihUiMP6mq0wWTwZ6hfivyNoRWqPcHFJpxPg7xxqHRQ,6631
av/audio/format.cpython-312-x86_64-linux-gnu.so,sha256=FtN3n5SRDCL0WDKQ_bro2W7_17iXBgXF5Dr9MFZCW3M,343273
av/audio/format.pxd,sha256=vDyHNUlO76PM9Yo8mMxMxJPsa2KRJg4d9_Klq84PNW4,148
av/audio/format.py,sha256=zi2EgeltYjY3KD6JNJA_o956AEBWSfmFVQCGMThbqxs,3569
av/audio/format.pyi,sha256=SrRDgZkJ8kzKtywq2htlbJKK3d2ae9PIL-Qcnyoui8s,236
av/audio/frame.cpython-312-x86_64-linux-gnu.so,sha256=rwkRO0oKnJZL-wyjYiWYc-6QMXbv08EWlBvgU8sZPQY,904873
av/audio/frame.pxd,sha256=yRuyThzIm-1HI5qCGAQkhawW77vKaDTADBfb793C5Zc,739
av/audio/frame.py,sha256=N0YAANHYXipQp64HRGdfs2qSOMC7UMp8Lwng_JLEmGs,6038
av/audio/frame.pyi,sha256=p1VeBhOkXSn7X87pT1wRvbkidKdQoWy4CV8eWXCqYoM,1419
av/audio/layout.cpython-312-x86_64-linux-gnu.so,sha256=Iu4nuhFo9-bKHOcCP6wAht347czJ5YXb4LQl3qOzdvU,573361
av/audio/layout.pxd,sha256=KUqev70Dwc-bH3IBWbhO_U3k_QQk_BNnUE5hy2XAasw,197
av/audio/layout.pyi,sha256=cc0Y9RCsei824HWwZUt00tYAus92FKgIHuUk07lpEZw,250
av/audio/layout.pyx,sha256=e3MGPdqf5HwAHy4B2-xSNfKaDrUETcBnXTkMgAFGf-8,2563
av/audio/plane.cpython-312-x86_64-linux-gnu.so,sha256=b5q7ZfdD7VrItYVQrGj-VJe7EfEwGy7jTQF5tebcjDU,305889
av/audio/plane.pxd,sha256=H1vKYhmpwMOlz47ba0HeeMamzgeFfvxX7y_M1fZqrr0,132
av/audio/plane.py,sha256=xHBeo8JxkNchqMDElipRKS3kFU_NVWOhAtjHNmBXDPU,407
av/audio/plane.pyi,sha256=84IuSlDcyAhLh1wR-QPer4s0mfFVvF-yc88v0qfPntQ,74
av/audio/resampler.cpython-312-x86_64-linux-gnu.so,sha256=gKDyrPVyoyqQY9OVgTpXkhbMsofS0n-mOCHJ-WHxkuA,675153
av/audio/resampler.pxd,sha256=SbWg7wXGtLNTs34Bc4Hh-5mhmFdTq45Qc4AuzBgdBGE,490
av/audio/resampler.py,sha256=egp5VufU_wKWosvJyzmc8ssp7hj3ZnpPL8imO3CGQdM,4135
av/audio/resampler.pyi,sha256=dVyEvLOJ3IUN3AXsSYfg77H2Yaz2sIW38sJASH5fHRg,542
av/audio/stream.cpython-312-x86_64-linux-gnu.so,sha256=j5jkyKpIoVa0fDWekooGuX2E0qISC3VizsSa4fenscg,416745
av/audio/stream.pxd,sha256=E38lNdZrVkiNbVLUJo8sgqFLQYb_UVTjOLmhM-cjbbg,209
av/audio/stream.py,sha256=-NvUkvNipTZN2Jbz7VQeFvp8fUFhXnIv3jgj6uDe-Qc,1325
av/audio/stream.pyi,sha256=9OcxV5qNCwxGBN1vrommvbMfDwHtuumEPsujVw2ysbI,989
av/bitstream.cpython-312-x86_64-linux-gnu.so,sha256=CeORbSF-7w7V6J_iiL2ZmrRd-b1oBFsQgCbPJpem2QM,380025
av/bitstream.pxd,sha256=hi30kwIdgdCQEVjtUqXo2L4gioHU_1_yWgKu3SqCgTc,184
av/bitstream.pyi,sha256=CuumhPlDJV91iKtUpJDcuvPxighE9q2FzYmc0qtIN7A,389
av/bitstream.pyx,sha256=_IvPB1m8QjJolPIGKTasp1p-EaDeP3rLZrBMvIOWh7U,2800
av/buffer.cpython-312-x86_64-linux-gnu.so,sha256=nYC3BXIFiobcnB-SThE9FhTF_9uI0leFYFCSuJptg_g,392257
av/buffer.pxd,sha256=lUJVzgIKsCMeTie-IXPdOQGBpjI03U23fgbJ7506KIY,126
av/buffer.pyi,sha256=0JCfkCBhhP3a3-_1AIhMf4sbNYJ1Uyy8GOrQ5-U4EVs,316
av/buffer.pyx,sha256=hgOxpL2e3TVLd2ZU1IGd024AB7XZrV9EDZXADOrTzCA,1634
av/bytesource.cpython-312-x86_64-linux-gnu.so,sha256=HcL7_qm1YxppnPsPLIhTe-vg6tenKHMNWfXBRMVYdzY,244537
av/bytesource.pxd,sha256=dXfcjCPLXEQ4dCE12Cdo9t0kE-A_m5S6VW_fFxRRfuc,241
av/bytesource.pyx,sha256=p1udLm_mdJGX13GF3S9cPodmA3ZRMOfGe4POuhyZnVM,1095
av/codec/__init__.pxd,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
av/codec/__init__.py,sha256=K_Gs7Pl468HCJ8ZH8dqxXfFqu-afYgvnP0PLLQwRRww,344
av/codec/__pycache__/__init__.cpython-312.pyc,,
av/codec/codec.cpython-312-x86_64-linux-gnu.so,sha256=14C5xPsLZHtmxVTVRquD9RqX60pOqXG7tpi2EXDGJIU,950265
av/codec/codec.pxd,sha256=0yZubvg-MpyJ4t2JalN-BIxKB_zJM1VcG4s3iZpy_Is,263
av/codec/codec.pyi,sha256=oqLcwFTey_axzkrgQmk-kbxReY6PUEVbm2KotioBGoo,4822
av/codec/codec.pyx,sha256=q5e9dip1ub3v35QGWP58RdhKbYBs7lS8qRXfH2xpESQ,12615
av/codec/context.cpython-312-x86_64-linux-gnu.so,sha256=pFq-tYS39ET22gYrZxUQHM2Ge9dsNJOsj7nMZr_ZYr4,1352033
av/codec/context.pxd,sha256=RZLAXl2DBzhH7KiWMNqILO_Iv9TBMD9G2uTwxLC-nIQ,2429
av/codec/context.pyi,sha256=_x1oFKsf9zY7zM1PIOb4m2i1P_Apw9eUuApFZae9eKI,3465
av/codec/context.pyx,sha256=kgKtEqEDILpo_ELOH1EASoRUuqtG3kz_JrIyY4P2bQg,22088
av/codec/hwaccel.cpython-312-x86_64-linux-gnu.so,sha256=DWWp_J1frnd9ILLdGkBtj_7_npqWYIyYAEeAjFMOM4k,843521
av/codec/hwaccel.pxd,sha256=SXmE3TP45OgVtYIK8MrKIP4CA7GuZHhcjJqynpsZY_8,510
av/codec/hwaccel.pyi,sha256=pT6JZTYAZJXwuvHXbCbtmHUYxdx_arhitgMX8s6kZfk,1317
av/codec/hwaccel.pyx,sha256=fJP4ZhUYctqunsNIX14hEw8aYoAsgHRk3vE4Cqnkzfg,5078
av/container/__init__.pxd,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
av/container/__init__.py,sha256=71UExHmjXzXjVvUlD2ivW72Vb7FUW98ohbB4OLtMQ9I,111
av/container/__init__.pyi,sha256=OvEGnWBxXGuuGVG9n8raY8mfhsO5JKM7PiG9NF1xHzQ,63
av/container/__pycache__/__init__.cpython-312.pyc,,
av/container/__pycache__/output.cpython-312.pyc,,
av/container/core.cpython-312-x86_64-linux-gnu.so,sha256=bEiHWorAKxXF6Goi3C8jxhrSbnyE7rvEBF0xdI9LN-I,1290649
av/container/core.pxd,sha256=UmsLehwM7r9t34JVnQ3RXpYrfVrEOCwUvH8-hiNZ-uY,1299
av/container/core.pyi,sha256=HsONz7TqPCeYNZwFC1aUOY6Y_isPCPLRivsVccFg1mI,5344
av/container/core.pyx,sha256=_KlgyUGuLrLk4T2Dz73ijGN_58yiB89wLy_ZIuAulfs,19288
av/container/input.cpython-312-x86_64-linux-gnu.so,sha256=c9mJLqgO2qoRe01SJZjp2KnLBNezEMyTv5DWxa_vHWI,925689
av/container/input.pxd,sha256=2K4YyQsAw_4l8RH3itgAW4Chguiw2k9QKwMmNnm3Jqk,163
av/container/input.pyi,sha256=EK5c2mvUIsbH9o9oU9TtqHyD6oCw1HgF93hWLktmT2c,1610
av/container/input.pyx,sha256=6aK7T_LTNWlsicC9yQ2DHjICp7_FLFZg1lsTk0wGPQQ,11002
av/container/output.cpython-312-x86_64-linux-gnu.so,sha256=UxJ_Tb-vA2hXEcXjt8V8nHKhYtJQDgiXebeuxJy3y60,1126721
av/container/output.pxd,sha256=3EcLHMR9t0Buab6yEH1YRbVBUudi8e1KhcReNlnx2OE,243
av/container/output.py,sha256=W9vvhAUipFShVuAUtXQA2nP3DRwKE1GnWdN4xjFD4ns,18845
av/container/output.pyi,sha256=62tRYgzrVkkOgJdBjLaMb0vGaLOdqSAYrprHj2tv_bM,2007
av/container/pyio.cpython-312-x86_64-linux-gnu.so,sha256=A86Yx136x6WCVzx12tXG9HLocYTB6rnnFVVP4TInWuI,634009
av/container/pyio.pxd,sha256=Q1wOsyR09k5h4dS-wjk_CjkASabD3hDQ71W8FXvGjTQ,729
av/container/pyio.pyx,sha256=O5nZZPEC_n4tkEgpUUwH9D15l87DGjfnAtyw4rfDGFU,5318
av/container/streams.cpython-312-x86_64-linux-gnu.so,sha256=SJKSy83O8WK9TyuxyMEbZzceJBXCYsdcdHMLOc-MLGs,917177
av/container/streams.pxd,sha256=3sO8KT2Gp3PZi66YOAOuPbWtf9yoxJnV7aNuX41aeCA,514
av/container/streams.pyi,sha256=LOFPhMOKkfBp7zPXSkikocXnBfxdr21_FjUOz9wSgBs,1170
av/container/streams.pyx,sha256=7_7cRiTq8B43nEg4THdSvKnHlilXV__CP-Jm7XGUTms,5376
av/datasets.py,sha256=crxN4-UwGSOG6eHNfli7kSnOgwc3SK8fnY-p8Hje4Cc,3094
av/descriptor.cpython-312-x86_64-linux-gnu.so,sha256=MLo5fOLHMKoYefZEFiO7GMNpgqmRplqCV8ZsgI9AnXg,285577
av/descriptor.pxd,sha256=nav7Vs2kmV1G4HpMBTSBR2TPtPsGZ5uYUMh1tfTmSHA,519
av/descriptor.pyi,sha256=MuNobj8b0buKrhZ3cjdnZe3ggOLsDuUxGN-JD6iDbZo,121
av/descriptor.pyx,sha256=qxbvdGZukrK2bkLQlzrl-Auh-tts__9_y74kJcfD6Gw,2261
av/dictionary.cpython-312-x86_64-linux-gnu.so,sha256=U7KfDxHNi1ycDml3WBrm1cm_7YTGanbIenp_9oAPtrY,585521
av/dictionary.pxd,sha256=iE0ZE3ZT5NDsmiT9HLQ8ACQxUvv6RhzSB5u3NeFRI3o,174
av/dictionary.pyi,sha256=a51nyivuIlouh2LqbxHjnv9cQneros71w4a9Xzhxh-o,388
av/dictionary.pyx,sha256=aW5-O5YBxV9IiHfueoo7SqI8PFytanQFtu31675C1kE,1558
av/error.cpython-312-x86_64-linux-gnu.so,sha256=WPhEiNSlH8rK1gdWp9bcQGBKJxwagmYxp0ecY-6RGc0,1441945
av/error.pxd,sha256=07gJZT8560oSMfM24pm8jMTtTp4O3X_GPxLmOyypmd0,89
av/error.pyi,sha256=0P_nZk30a2cLkpQWbvRK7TkIN55_3YSWDbkaIEeTM3s,3200
av/error.pyx,sha256=lEVvm8dTBFukcbUIc8WXoLWnfaDCo2E1-8dW5vQPtDc,12443
av/filter/__init__.pxd,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
av/filter/__init__.py,sha256=dBNbMlLa3dn9Nc6PvLz8WLoGHsQzPh1SLCT-7bGNHj4,118
av/filter/__init__.pyi,sha256=Jkfg79hkGdMuvHM5_rIK_YyP1flJJqlpSrV6w-znzig,90
av/filter/__pycache__/__init__.cpython-312.pyc,,
av/filter/__pycache__/loudnorm.cpython-312.pyc,,
av/filter/context.cpython-312-x86_64-linux-gnu.so,sha256=_so5Fc6IvHClh_hinGBtOUeGvqGE6RmkMMBJZP87nT0,1847777
av/filter/context.pxd,sha256=ytFXp6WCjHWm89b2hs4xQpVEv9H9MqiOQFtYhrCyxho,388
av/filter/context.pyi,sha256=Mm1IwQXDdSoQjnebdIE5EDInxWHWj9HPDNSbFrVtOzg,559
av/filter/context.pyx,sha256=5Ua9b4X83cGfsYyRL-zl3oc_LzRBXxL-w9o3Mel_iqk,5357
av/filter/filter.cpython-312-x86_64-linux-gnu.so,sha256=q5Zwpktc4WahP0or6eIOrJF0XtkqCrl6crO5BkVl7MM,289737
av/filter/filter.pxd,sha256=ArARpXHdaAd2fz5BdZRV-wIf5AhkjynBi_eXah_G5CI,248
av/filter/filter.pyi,sha256=WkyNYrWPl55vEfdLhUknJvlXqnbn90PvX5cKQfV9IkY,274
av/filter/filter.pyx,sha256=BJXG3S4gZ_Y2J6Gk0SEEbu3gFm7kp8qy0pFp_b6H1co,1856
av/filter/graph.cpython-312-x86_64-linux-gnu.so,sha256=17IhMlXXbMxvpnUTDq6dOCM5re-Pm5Eb-HTnwOoBp6Y,1072865
av/filter/graph.pxd,sha256=keZlIspoOPiIqSR9_Fk2xXo3PFgwLON1oKbIVWHfxUk,518
av/filter/graph.pyi,sha256=jnxZF-9DLv6uaHY9u33a26GMUpLPBxrTUom6_IxIviI,1660
av/filter/graph.pyx,sha256=7GcNll-kucbjk5-x_DYn7YM41VEt7FM8GyyDlfrsDCA,8216
av/filter/link.cpython-312-x86_64-linux-gnu.so,sha256=uCgWbrZJ6xCOUwCXGqceMQr6JgRIgxT44pwbZ7MW4hY,572513
av/filter/link.pxd,sha256=6E81ZTfhzDGO1hyKI9yv44reGnIx2cIR7N3svvLkJRk,793
av/filter/link.pyi,sha256=UtgqwA_9EV5w311swXpS9pwZzruTl-nHtU7-hpEt5u4,27
av/filter/link.pyx,sha256=0TgkHkRlDhytnNfjImsN4YNFqRxc-vdweXEnwplmc7U,3816
av/filter/loudnorm.cpython-312-x86_64-linux-gnu.so,sha256=ddcz4ZNRJYmJUFtNcrRq9FONreI_2CJk9KDqICsUis4,368281
av/filter/loudnorm.pxd,sha256=mrKiGSe6WnIrMkDJU8uj1fs0Iwz_kxFPDL_NmnveyUE,464
av/filter/loudnorm.py,sha256=OuTHzqHjkKOkOcKP3Pus2SXr_Giw4ZwaDToHxo5sfvU,1439
av/filter/loudnorm.pyi,sha256=N_HuXpQlTaZLpnKjfqMk68ac3djymdy3x_9en33sA74,106
av/filter/loudnorm_impl.c,sha256=A9Kf7JAkuOuGFka0Vk-qqMKo5GJ_pXATLvL1xL8ZO1E,6172
av/filter/loudnorm_impl.h,sha256=QmUqnvobMbPSmas5haev86WCVAs_a6iXaAZPwx-iVAk,240
av/format.cpython-312-x86_64-linux-gnu.so,sha256=T9g-QkAuK2v1wUZ3n6q3_b42ndXywBUzRrKejDGSUyg,425425
av/format.pxd,sha256=7g7FhC8pBeFxDNErwJVQUnGtNaK1QnPbqwYMH-R9FmE,234
av/format.pyi,sha256=dh49OMLec0IadFEiQxZ0-VKyu9eP0NDI1yDk8HrU6RY,1403
av/format.pyx,sha256=b-2nl9uP34rIQ-Oyou_JvIWjXeomG9S1SVnfROoMOOQ,5557
av/frame.cpython-312-x86_64-linux-gnu.so,sha256=aY28bhTkOqwWsT9fv6q9hXzOji9JjBy2xxX0QoJJpuo,449841
av/frame.pxd,sha256=MdtAffABVLDFi_c5oQFm3lT-n6xVbya8IBEsppbf6tU,411
av/frame.py,sha256=adcXyXyhNzSzv_AoR0FxTpsIONCcNujILcxOiiQOVK0,5773
av/frame.pyi,sha256=tyk7ffzDSOY6IiOXDeu1GThIguICv9Eb_wwZjULFMLE,532
av/logging.cpython-312-x86_64-linux-gnu.so,sha256=3FF9iHhcpFxafMVqQNfiDSIeYp47yP-b1Tgg9oHuWxg,1056465
av/logging.pxd,sha256=9WCF9ygPhR9OO5RxYNHBa6Mz_KqGWNFbIr1D54r2B8o,24
av/logging.pyi,sha256=Afqq5ud46eh617UM6b_D3xpIisdz9uyxvKK4rK1n6RA,885
av/logging.pyx,sha256=GcYQ1VXNMFaN4L4EdwFv0Yq5vsy9s2GOlgbb4LUkCy0,9086
av/opaque.cpython-312-x86_64-linux-gnu.so,sha256=xyHsqFndq5qOW_5O8kDqVu1rnc123QgZaiEFIKGhglg,269161
av/opaque.pxd,sha256=fgurFwzs2wpH2HxocfGnfkBZYdeJ50c_N2GHiyqmaUE,237
av/opaque.pyx,sha256=GkPFsZnd--GyJLA9SqSaZCqHwJq-4-LC_NY9CY3gV_c,1352
av/option.cpython-312-x86_64-linux-gnu.so,sha256=RiPsXgDyzKixtUGMOmFTVKUdlFc9bkK90nUCokSTo_Y,572505
av/option.pxd,sha256=J3fikrPq554_N2x4tw0b0n9LDY-TqFd-wXXrhAkSoEA,366
av/option.pyi,sha256=6AsH7tnWJvOmHnMrofKg4lNNJcB6zI6AfM3G7GxkgPk,1313
av/option.pyx,sha256=fyAVspirDLMR43GEk02yn7hhlALOjlA0I7WxiurM6Y0,5341
av/packet.cpython-312-x86_64-linux-gnu.so,sha256=A5qpqKuy60-FgYe1Q1pBX_IorpvLHdEQeK80WsNctYU,1159289
av/packet.pxd,sha256=I6OX2__kDBA80Z9lUhgqLXMZtrudJX33BtAiwyTj-24,654
av/packet.py,sha256=iJFWjEgDwHMNBGcz4w1RgwjlIq5BNF58KkfgMJgiQ8I,13200
av/packet.pyi,sha256=WMFRRH2Wf88a1R6r11vENtO37_v5VKiLMtbdA5gM1WE,2357
av/plane.cpython-312-x86_64-linux-gnu.so,sha256=V8Ud17wr2H3xtPiLLZ8flk9oQbob8V4HE7NqlDTlqVc,351129
av/plane.pxd,sha256=qtt0qmUOXmL5Ak8TlFYCLi4oiesC1kU4Ilesqk7hNlY,196
av/plane.pyi,sha256=qJLw7M73ekThXf05LqTllf1BLIfF3gckxEy6rEjKx4U,169
av/plane.pyx,sha256=G4H5tIhDU2Wonb0vjnq0pPraIMHunIjx8vvhpb3Uxi0,564
av/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
av/sidedata/__init__.pxd,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
av/sidedata/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
av/sidedata/__pycache__/__init__.cpython-312.pyc,,
av/sidedata/encparams.cpython-312-x86_64-linux-gnu.so,sha256=As6O9a32Yo_OGFOWgWR4uzcKhjQln3sWjHMvm7uTT6I,1761353
av/sidedata/encparams.pxd,sha256=1ovAOjIZKwCm9KV_lxtY9kmUqNuuwmWI0nktf4hiRe0,181
av/sidedata/encparams.pyi,sha256=BebTdGqqzNLY8_7hkrW2poXWMuIeY4O-kBSXVvh0mUo,571
av/sidedata/encparams.pyx,sha256=06JgbIxwjyD9YudkuZ_i7Rk0t0TiU8wyNPdkMSA1og8,5578
av/sidedata/motionvectors.cpython-312-x86_64-linux-gnu.so,sha256=h1SGAYHLwtkDlwh-rX8msZijupdBFq5uWPzgXDTu51U,605513
av/sidedata/motionvectors.pxd,sha256=Ly2xMmZ0Bj1An5-eYViZgNhJtSgSkSI7E78EiS4PKkE,266
av/sidedata/motionvectors.pyi,sha256=InIFdsNMbPU0apf_ufDtKoD0KAr0VCXaPkwGD9fLHCg,597
av/sidedata/motionvectors.pyx,sha256=uL8-qj1Gc6dRa0BcD7uPSeAS5USx39gtE5F-yzgvzfc,2635
av/sidedata/sidedata.cpython-312-x86_64-linux-gnu.so,sha256=ZHUNoT1FIq2D1EFUtkR6IZCmmguYcZocxm53XttIZS0,773641
av/sidedata/sidedata.pxd,sha256=-nf7Z4mgF5wkE15wnGgWgEBXLa0lqAYXgEy0MzTsp3c,453
av/sidedata/sidedata.pyi,sha256=MaoM-BKdFEQoZ2muFfC4Qxkg3Q4b_sFyGXY7tGLRjHs,1969
av/sidedata/sidedata.pyx,sha256=ujAZFb-J34fHTXBaGZywwM8XlO6XMyeQGvLLxBQ2sl0,4256
av/stream.cpython-312-x86_64-linux-gnu.so,sha256=I42PbhJb-EbXmZOtuu7FskhPOs_m3yFgG280qcDaCE0,744953
av/stream.pxd,sha256=2wQlEsMfYXSblE01_V9wQq3QVfNY7W1q04xyAB_pNJc,687
av/stream.py,sha256=YZTyuO0FYNdaEApzfdbZcMzZ7OFaaWIzlmIhlEEPk34,8963
av/stream.pyi,sha256=0JBI7Rtxiw_VEj4r9IpP0vF32s2fVaW17uHESeOrl8Y,1637
av/subtitles/__init__.pxd,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
av/subtitles/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
av/subtitles/__pycache__/__init__.cpython-312.pyc,,
av/subtitles/__pycache__/codeccontext.cpython-312.pyc,,
av/subtitles/__pycache__/stream.cpython-312.pyc,,
av/subtitles/__pycache__/subtitle.cpython-312.pyc,,
av/subtitles/codeccontext.cpython-312-x86_64-linux-gnu.so,sha256=ocUx-EnmrRdEPZb75eDbB0c7q4rgqQnJSkjxo4B9q9M,400449
av/subtitles/codeccontext.pxd,sha256=HYHlWxcBf8nV904OXBdPgJfskvn6xMR2aOODFAvuUJA,195
av/subtitles/codeccontext.py,sha256=go4OJUx9dKFSsNX9Ql5NzPiPuL9nEZiJIxoTWFQ7Ufo,4882
av/subtitles/codeccontext.pyi,sha256=HcPuzR5BuwD0Ph4OnUHfIUXJFqeuN6pjo1N0886v0ao,385
av/subtitles/stream.cpython-312-x86_64-linux-gnu.so,sha256=ph8Jx4XmEInr_YPqyKL3OqqcKfu2J_KE07BUWL3eyBs,314145
av/subtitles/stream.pxd,sha256=Lo4RBTTOWErzKgNqc07AoNDaAgkUsF_Q25DJaAIo52Y,137
av/subtitles/stream.py,sha256=oHh-MfswcHZUE7ZYiO6H0sIB206eG2qZbK90O2wI25k,631
av/subtitles/stream.pyi,sha256=rGoPESxKYF9DD9f0PeMkLd-QwT01D-GA-dhwF60gtwM,343
av/subtitles/subtitle.cpython-312-x86_64-linux-gnu.so,sha256=TPYgwd65ih9QLxOjbYQo48x6FeENTPCoVMGAHMwwVJ4,1044417
av/subtitles/subtitle.pxd,sha256=SE6M-1ylGQB6F0xnUwLTs7xODznkIs81MYKsVrzGBd0,592
av/subtitles/subtitle.py,sha256=H0BnGP2c7YVQZinoCQboz-5N-2neOA_u1ED1KtxCqUs,10123
av/subtitles/subtitle.pyi,sha256=DXZ_0nKzZcGOnzKlS1AWGXPdAb8FiG5xdJqDQx-SgLk,984
av/utils.cpython-312-x86_64-linux-gnu.so,sha256=FbEVeuKEayYZzkWymAjLN0wRL-CtulvQxsYiNUlLh_Q,285681
av/utils.pxd,sha256=NGyU6Ve4JWjw2Epk0-8se5D3FRUm56VhL72j-V6AJiA,366
av/utils.py,sha256=OUS9esw234uypwIfdvEpH_5dnFkrKXmAfxh-CduTopg,2194
av/video/__init__.pxd,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
av/video/__init__.py,sha256=BRH_qu6VrLKnGq1hpmXmYQVO_o-r32fnsR-V6NmbLis,62
av/video/__init__.pyi,sha256=zTUgi5b-SF1D9iR0IFZjjWmnrWikVSk6Sn5P4NAj0mA,262
av/video/__pycache__/__init__.cpython-312.pyc,,
av/video/__pycache__/frame.cpython-312.pyc,,
av/video/__pycache__/stream.cpython-312.pyc,,
av/video/codeccontext.cpython-312-x86_64-linux-gnu.so,sha256=znFmKCbUcEbxOAv_PtKSNuo43V66-hDADUEcvwgtljs,740649
av/video/codeccontext.pxd,sha256=oz4_h35qFb75ZA6nI6TNwMB_eJ88Ox09B2IYixZUPz8,1060
av/video/codeccontext.pyi,sha256=V3D3vRTGUJlZM7UGqv5L4XEdYwX9BIbtYNUmKCMJfEo,968
av/video/codeccontext.pyx,sha256=jJchPDcoUZcANewh389oE4_TJcvPCJ_4Y3uHdEFAn8o,10817
av/video/format.cpython-312-x86_64-linux-gnu.so,sha256=Dbc3a0VEKVHHv5_IVWzlhQRHMe1mEyKqZl5eDB6y5xA,864017
av/video/format.pxd,sha256=jyu_VoT833m7msVQ3PGRfZ6r_-2PLbDSMJ5O9ZCQyPQ,727
av/video/format.pyi,sha256=Y7yBiLV-CM03fdGWv1MFIolKlnaQmKDx3RSiJb7Nkwc,775
av/video/format.pyx,sha256=SqOJlcpP3iG4oHvIkrKqkhGTwtExbyOEDtKnmG2Xq2E,5935
av/video/frame.cpython-312-x86_64-linux-gnu.so,sha256=IA16FVu1QqsdH7dCQl8vXM_yofHpFOtRq0ORWt3OKm0,3592881
av/video/frame.pxd,sha256=gokpywvvSu3Y9VbWXyitNg9pdNdp78xlot8vOX7Smy4,659
av/video/frame.py,sha256=39mhO0oBkPzbzmlqAr1PB5yKPD40dyluozb2k1I4SLc,42837
av/video/frame.pyi,sha256=Htcf_xEV2eW_hy2gR5EMbaIPme1JRjwFOSm5S0HZnx4,2280
av/video/plane.cpython-312-x86_64-linux-gnu.so,sha256=I7U_-dqcWAlNC9M0yadxN94nJN4R0GkXX40r5D5boas,400441
av/video/plane.pxd,sha256=K7jqsI_cz-zPl6-UMS-6zNLSj3gD9BuLC_deNnegPC0,193
av/video/plane.pyi,sha256=x-RqS_bUUBPv2ymfroBYEz4ROsEw1bpxlnKe5GEvbZ8,223
av/video/plane.pyx,sha256=iZ4OktKHSQNp0o2cPcWul-Fg4vwWqjaaMUHoR0nzlBQ,1294
av/video/reformatter.cpython-312-x86_64-linux-gnu.so,sha256=QoTxw_CHmW1SYCLcJz47k3J0LwrMMy-aa7jrkwTUPuM,708113
av/video/reformatter.pxd,sha256=ugLZ44hKS8-OYLJCsvfLrL1OhtQzMPI-oqCvrYhpRuc,373
av/video/reformatter.pyi,sha256=y1P3nKYoC7CkTiPw36r0FtRb_VHOJc5Xdaj4J4FDpRY,1382
av/video/reformatter.pyx,sha256=RxPKyC9vTKpnFEui0zgGcKvYMsAIjeZgc-G72XpJSaQ,8419
av/video/stream.cpython-312-x86_64-linux-gnu.so,sha256=MjNXpxtAc4aeJImkcrB86yUYCwF_ILKOtsLm_Y54_kM,523409
av/video/stream.pxd,sha256=-VhPgrv_87HGxdBkfwR5qIO3jwwyQqMwRvbTH7cunuA,209
av/video/stream.py,sha256=lhKMwJs1gTn_0j5cxE7iE0vtdqk6mUb3fQmJRrrP9KA,3972
av/video/stream.pyi,sha256=JZKIjhHzj90bs-_iN9dP6pmw1M3TSPbp_XlD73Cv7H4,1187

View file

@ -0,0 +1,5 @@
Wheel-Version: 1.0
Generator: setuptools (80.9.0)
Root-Is-Purelib: false
Tag: cp312-cp312-manylinux_2_28_x86_64

View file

@ -0,0 +1,2 @@
[console_scripts]
pyav = av.__main__:main

View file

@ -0,0 +1,182 @@
""" Generate the AUTHORS.rst file from git commit history.
This module reads git commit logs and produces a formatted list of contributors
grouped by their contribution count, mapping email aliases and GitHub usernames.
"""
from dataclasses import dataclass
import math
import subprocess # noqa: S404
def main() -> None:
""" Generate and print the AUTHORS.rst content. """
contributors = get_git_contributors()
print_contributors(contributors)
# ------------------------------------------------------------------------------
EMAIL_ALIASES: dict[str, str | None] = {
# Maintainers.
"git@mikeboers.com": "github@mikeboers.com",
"mboers@keypics.com": "github@mikeboers.com",
"mikeb@loftysky.com": "github@mikeboers.com",
"mikeb@markmedia.co": "github@mikeboers.com",
"westernx@mikeboers.com": "github@mikeboers.com",
# Junk.
"mark@mark-VirtualBox.(none)": None,
# Aliases.
"a.davoudi@aut.ac.ir": "davoudialireza@gmail.com",
"tcaswell@bnl.gov": "tcaswell@gmail.com",
"xxr3376@gmail.com": "xxr@megvii.com",
"dallan@pha.jhu.edu": "daniel.b.allan@gmail.com",
"61652821+laggykiller@users.noreply.github.com": "chaudominic2@gmail.com",
}
CANONICAL_NAMES: dict[str, str] = {
"caspervdw@gmail.com": "Casper van der Wel",
"daniel.b.allan@gmail.com": "Dan Allan",
"mgoacolou@cls.fr": "Manuel Goacolou",
"mindmark@gmail.com": "Mark Reid",
"moritzkassner@gmail.com": "Moritz Kassner",
"vidartf@gmail.com": "Vidar Tonaas Fauske",
"xxr@megvii.com": "Xinran Xu",
}
GITHUB_USERNAMES: dict[str, str] = {
"billy.shambrook@gmail.com": "billyshambrook",
"daniel.b.allan@gmail.com": "danielballan",
"davoudialireza@gmail.com": "adavoudi",
"github@mikeboers.com": "mikeboers",
"jeremy.laine@m4x.org": "jlaine",
"kalle.litterfeldt@gmail.com": "litterfeldt",
"mindmark@gmail.com": "markreidvfx",
"moritzkassner@gmail.com": "mkassner",
"rush@logic.cz": "radek-senfeld",
"self@brendanlong.com": "brendanlong",
"tcaswell@gmail.com": "tacaswell",
"ulrik.mikaelsson@magine.com": "rawler",
"vidartf@gmail.com": "vidartf",
"willpatera@gmail.com": "willpatera",
"xxr@megvii.com": "xxr3376",
"chaudominic2@gmail.com": "laggykiller",
"wyattblue@auto-editor.com": "WyattBlue",
"Curtis@GreenKey.net": "dotysan",
}
@dataclass
class Contributor:
""" Represents a contributor with their email, names, and GitHub username. """
email: str
names: set[str]
github: str | None = None
commit_count: int = 0
@property
def display_name(self) -> str:
""" Return the formatted display name for the contributor.
Returns:
Comma-separated sorted list of contributor names.
"""
return ", ".join(sorted(self.names))
def format_line(self, bullet: str) -> str:
""" Format the contributor line for RST output.
Args:
bullet: The bullet character to use (- or *).
Returns:
Formatted RST line with contributor info.
"""
if self.github:
return (
f"{bullet} {self.display_name} <{self.email}>; "
f"`@{self.github} <https://github.com/{self.github}>`_"
)
return f"{bullet} {self.display_name} <{self.email}>"
def get_git_contributors() -> dict[str, Contributor]:
""" Parse git log and return contributors grouped by canonical email.
Returns:
Dictionary mapping canonical emails to Contributor objects.
"""
contributors: dict[str, Contributor] = {}
git_log = subprocess.check_output(
["git", "log", "--format=%aN,%aE"], # noqa: S607
text=True,
).splitlines()
for line in git_log:
name, email = line.strip().rsplit(",", 1)
canonical_email = EMAIL_ALIASES.get(email, email)
if not canonical_email:
continue
if canonical_email not in contributors:
contributors[canonical_email] = Contributor(
email=canonical_email,
names=set(),
github=GITHUB_USERNAMES.get(canonical_email),
)
contributor = contributors[canonical_email]
contributor.names.add(name)
contributor.commit_count += 1
for email, canonical_name in CANONICAL_NAMES.items():
if email in contributors:
contributors[email].names = {canonical_name}
return contributors
def print_contributors(contributors: dict[str, Contributor]) -> None:
"""Print contributors grouped by logarithmic order of commits.
Args:
contributors: Dictionary of contributors to print.
"""
print("""\
Contributors
============
All contributors (by number of commits):
""".replace(" ", ""))
sorted_contributors = sorted(
contributors.values(),
key=lambda c: (-c.commit_count, c.email),
)
last_order: int | None = None
block_index = 0
for contributor in sorted_contributors:
# This is the natural log, because of course it should be. ;)
order = int(math.log(contributor.commit_count))
if last_order and last_order != order:
block_index += 1
print()
last_order = order
# The '-' vs '*' is so that Sphinx treats them as different lists, and
# introduces a gap between them.
bullet = "-*"[block_index % 2]
print(contributor.format_line(bullet))
if __name__ == "__main__":
main()

View file

@ -0,0 +1,119 @@
Contributors
============
All contributors (by number of commits):
- Mike Boers <github@mikeboers.com>; `@mikeboers <https://github.com/mikeboers>`_
* WyattBlue <wyattblue@auto-editor.com>; `@WyattBlue <https://github.com/WyattBlue>`_
* Jeremy Lainé <jeremy.laine@m4x.org>; `@jlaine <https://github.com/jlaine>`_
- Mark Reid <mindmark@gmail.com>; `@markreidvfx <https://github.com/markreidvfx>`_
* Vidar Tonaas Fauske <vidartf@gmail.com>; `@vidartf <https://github.com/vidartf>`_
* laggykiller <chaudominic2@gmail.com>; `@laggykiller <https://github.com/laggykiller>`_
* Billy Shambrook <billy.shambrook@gmail.com>; `@billyshambrook <https://github.com/billyshambrook>`_
* Casper van der Wel <caspervdw@gmail.com>
* Philip de Nier <philipn@rd.bbc.co.uk>
* Tadas Dailyda <tadas@dailyda.com>
* Dave Johansen <davejohansen@gmail.com>
* JoeUgly <41972063+JoeUgly@users.noreply.github.com>
* Justin Wong <46082645+uvjustin@users.noreply.github.com>
* Mark Harfouche <mark.harfouche@gmail.com>
- Santtu Keskinen <santtu.keskinen@gmail.com>
- Alba Mendez <me@alba.sh>
- Curtis Doty <Curtis@GreenKey.net>; `@dotysan <https://github.com/dotysan>`_
- Xinran Xu <xxr@megvii.com>; `@xxr3376 <https://github.com/xxr3376>`_
- z-khan <zohaibkh_27@yahoo.com>
- Marc Mueller <30130371+cdce8p@users.noreply.github.com>
- Dan Allan <daniel.b.allan@gmail.com>; `@danielballan <https://github.com/danielballan>`_
- Moonsik Park <moonsik.park@estsoft.com>
- velsinki <40809145+velsinki@users.noreply.github.com>
- Christoph Rackwitz <christoph.rackwitz@gmail.com>
- David Plowman <david.plowman@raspberrypi.com>
- Alireza Davoudi <davoudialireza@gmail.com>; `@adavoudi <https://github.com/adavoudi>`_
- Jonathan Drolet <jonathan.drolet@riedel.net>
- Lukas Geiger <lukas.geiger94@gmail.com>
- Matthew Lai <m@matthewlai.ca>
- Moritz Kassner <moritzkassner@gmail.com>; `@mkassner <https://github.com/mkassner>`_
- Thomas A Caswell <tcaswell@gmail.com>; `@tacaswell <https://github.com/tacaswell>`_
- Ulrik Mikaelsson <ulrik.mikaelsson@magine.com>; `@rawler <https://github.com/rawler>`_
- Wel C. van der <wel@Physics.LeidenUniv.nl>
- Will Patera <willpatera@gmail.com>; `@willpatera <https://github.com/willpatera>`_
* zzjjbb <31069326+zzjjbb@users.noreply.github.com>
* Joe Schiff <41972063+JoeSchiff@users.noreply.github.com>
* Nils DEYBACH <68770774+ndeybach@users.noreply.github.com>
* Dexer <73297572+DexerBR@users.noreply.github.com>
* DE-AI <81620697+DE-AI@users.noreply.github.com>
* rutsh <Eugene.Krokhalev@gmail.com>
* Felix Vollmer <FelixVollmer@gmail.com>
* Santiago Castro <bryant1410@gmail.com>
* Christian Clauss <cclauss@me.com>
* Ihor Liubymov <ihor.liubymov@ring.com>
* Johannes Erdfelt <johannes@erdfelt.com>
* Karl Litterfeldt <kalle.litterfeldt@gmail.com>; `@litterfeldt <https://github.com/litterfeldt>`_
* Kim Minjong <make.dirty.code@gmail.com>
* Martin Larralde <martin.larralde@ens-cachan.fr>
* Simon-Martin Schröder <martin.schroeder@nerdluecht.de>
* Matteo Destro <matteo.est@gmail.com>
* Mattias Wadman <mattias.wadman@gmail.com>
* mephi42 <mephi42@gmail.com>
* Miles Kaufmann <mkfmnn@gmail.com>
* Nathan Goldbaum <nathan.goldbaum@gmail.com>
* Pablo Prietz <pablo@prietz.org>
* Andrew Wason <rectalogic@rectalogic.com>
* Radek Senfeld <rush@logic.cz>; `@radek-senfeld <https://github.com/radek-senfeld>`_
* robinechuca <serveurpython.oz@gmail.com>
* Benjamin Chrétien <2742231+bchretien@users.noreply.github.com>
* davidplowman <38045873+davidplowman@users.noreply.github.com>
* Hanz <40712686+HanzCEO@users.noreply.github.com>
* Kesh Ikuma <79113787+tikuma-lsuhsc@users.noreply.github.com>
* Artturin <Artturin@artturin.com>
* Ian Lee <IanLee1521@gmail.com>
* Ryan Huang <NPN@users.noreply.github.com>
* Arthur Barros <arthbarros@gmail.com>
* benedikt-grl <benedikt@getreallabs.com>
* Carlos Ruiz <carlos.r.domin@gmail.com>
* Carlos Ruiz <carlos.ruiz.dominguez@west.cmu.edu>
* Maxime Desroches <desroches.maxime@gmail.com>
* egao1980 <egao1980@gmail.com>
* Eric Kalosa-Kenyon <ekalosak@gmail.com>
* elxy <elxy@outlook.com>
* Gemfield <gemfield@civilnet.cn>
* henri-gasc <henri.gasc@eurecom.fr>
* Jonathan Martin <homerunisgood@hotmail.com>
* Johan Jeppsson Karlin <johjep@gmail.com>
* Kian-Meng Ang <kianmeng@cpan.org>
* Philipp Klaus <klaus@physik.uni-frankfurt.de>
* Marcell Pardavi <marcell.pardavi@gmail.com>
* Matteo Destro <matteo@cerrion.com>
* Max Ehrlich <max.ehr@gmail.com>
* Manuel Goacolou <mgoacolou@cls.fr>
* Julian Schweizer <neuneck@gmail.com>
* Nikhil Idiculla <nikhilidiculla@gmail.com>
* Ömer Sezgin Uğurlu <omer@ugurlu.org>
* Orivej Desh <orivej@gmx.fr>
* Philipp Krähenbühl <philkr@users.noreply.github.com>
* Mattia Procopio <promat85@gmail.com>
* ramoncaldeira <ramoncaldeira_328@hotmail.com>
* Roland van Laar <roland@rolandvanlaar.nl>
* Santiago Castro <sacastro@umich.edu>
* Kengo Sawatsu <seattleserv0@gmail.com>
* FirefoxMetzger <sebastian@wallkoetter.net>
* hyenal <sebastien.ehrhardt@gmail.com>
* Brendan Long <self@brendanlong.com>; `@brendanlong <https://github.com/brendanlong>`_
* Семён Марьясин <simeon@maryasin.name>
* Stephen.Y <stepheny@users.noreply.github.com>
* Tom Flanagan <theknio@gmail.com>
* Tim O'Shea <tim.oshea753@gmail.com>
* Tim Ahpee <timah@blackmagicdesign.com>
* Jonas Tingeborn <tinjon@gmail.com>
* Pino Toscano <toscano.pino@tiscali.it>
* Ulrik Mikaelsson <ulrikm@spotify.com>
* Vasiliy Kotov <vasiliy.kotov@itechart-group.com>
* Koichi Akabe <vbkaisetsu@gmail.com>
* David Joy <videan42@gmail.com>
* Sviatoslav Sydorenko (Святослав Сидоренко) <webknjaz@redhat.com>
* Jiabei Zhu <zjb@bu.edu>

View file

@ -0,0 +1,23 @@
Copyright retained by original committers. All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
* Neither the name of the project nor the names of its contributors may be
used to endorse or promote products derived from this software without
specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY DIRECT,
INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

View file

@ -0,0 +1 @@
{"bomFormat": "CycloneDX", "specVersion": "1.4", "version": 1, "metadata": {"component": {"type": "library", "bom-ref": "pkg:pypi/av@16.1.0?file_name=av-16.1.0-cp312-cp312-manylinux_2_28_x86_64.whl", "name": "av", "version": "16.1.0", "purl": "pkg:pypi/av@16.1.0?file_name=av-16.1.0-cp312-cp312-manylinux_2_28_x86_64.whl"}, "tools": [{"name": "auditwheel", "version": "6.6.0"}]}, "components": [{"type": "library", "bom-ref": "pkg:pypi/av@16.1.0?file_name=av-16.1.0-cp312-cp312-manylinux_2_28_x86_64.whl", "name": "av", "version": "16.1.0", "purl": "pkg:pypi/av@16.1.0?file_name=av-16.1.0-cp312-cp312-manylinux_2_28_x86_64.whl"}, {"type": "library", "bom-ref": "pkg:rpm/almalinux/libxcb@1.13.1-1.el8#66bec2d3d7dd69fd6c3ff19cd0da52ae820f936812e127f411c783ca1df43a13", "name": "libxcb", "version": "1.13.1-1.el8", "purl": "pkg:rpm/almalinux/libxcb@1.13.1-1.el8"}, {"type": "library", "bom-ref": "pkg:rpm/almalinux/libxcb@1.13.1-1.el8#62b69720e9664025a12f9971b2872f61b0b8acd3de00cc9ecfe351773c62ed91", "name": "libxcb", "version": "1.13.1-1.el8", "purl": "pkg:rpm/almalinux/libxcb@1.13.1-1.el8"}, {"type": "library", "bom-ref": "pkg:rpm/almalinux/libdrm@2.4.115-2.el8#6bf0a77f707216e85f075c14376973902bc63a98d0556326cace0b2199df53cc", "name": "libdrm", "version": "2.4.115-2.el8", "purl": "pkg:rpm/almalinux/libdrm@2.4.115-2.el8"}, {"type": "library", "bom-ref": "pkg:rpm/almalinux/libxcb@1.13.1-1.el8#124885c4e4c50f1f62c2e8972a17cf0a611aaab3f5850992677a7161cb660e66", "name": "libxcb", "version": "1.13.1-1.el8", "purl": "pkg:rpm/almalinux/libxcb@1.13.1-1.el8"}, {"type": "library", "bom-ref": "pkg:rpm/almalinux/libXau@1.0.9-3.el8#ac77887fa9a50833ff7a34d7e27ebe243468552bc94f6628693cb1dfdaf102e7", "name": "libXau", "version": "1.0.9-3.el8", "purl": "pkg:rpm/almalinux/libXau@1.0.9-3.el8"}, {"type": "library", "bom-ref": "pkg:rpm/almalinux/libxcb@1.13.1-1.el8#6c32c0eb1fdae8b53d48bf63b90db8c0dc1591ca2eb752e841996904a55c6e78", "name": "libxcb", "version": "1.13.1-1.el8", "purl": "pkg:rpm/almalinux/libxcb@1.13.1-1.el8"}], "dependencies": [{"ref": "pkg:pypi/av@16.1.0?file_name=av-16.1.0-cp312-cp312-manylinux_2_28_x86_64.whl", "dependsOn": ["pkg:rpm/almalinux/libxcb@1.13.1-1.el8#66bec2d3d7dd69fd6c3ff19cd0da52ae820f936812e127f411c783ca1df43a13", "pkg:rpm/almalinux/libxcb@1.13.1-1.el8#62b69720e9664025a12f9971b2872f61b0b8acd3de00cc9ecfe351773c62ed91", "pkg:rpm/almalinux/libdrm@2.4.115-2.el8#6bf0a77f707216e85f075c14376973902bc63a98d0556326cace0b2199df53cc", "pkg:rpm/almalinux/libxcb@1.13.1-1.el8#124885c4e4c50f1f62c2e8972a17cf0a611aaab3f5850992677a7161cb660e66", "pkg:rpm/almalinux/libXau@1.0.9-3.el8#ac77887fa9a50833ff7a34d7e27ebe243468552bc94f6628693cb1dfdaf102e7", "pkg:rpm/almalinux/libxcb@1.13.1-1.el8#6c32c0eb1fdae8b53d48bf63b90db8c0dc1591ca2eb752e841996904a55c6e78"]}, {"ref": "pkg:rpm/almalinux/libxcb@1.13.1-1.el8#66bec2d3d7dd69fd6c3ff19cd0da52ae820f936812e127f411c783ca1df43a13"}, {"ref": "pkg:rpm/almalinux/libxcb@1.13.1-1.el8#62b69720e9664025a12f9971b2872f61b0b8acd3de00cc9ecfe351773c62ed91"}, {"ref": "pkg:rpm/almalinux/libdrm@2.4.115-2.el8#6bf0a77f707216e85f075c14376973902bc63a98d0556326cace0b2199df53cc"}, {"ref": "pkg:rpm/almalinux/libxcb@1.13.1-1.el8#124885c4e4c50f1f62c2e8972a17cf0a611aaab3f5850992677a7161cb660e66"}, {"ref": "pkg:rpm/almalinux/libXau@1.0.9-3.el8#ac77887fa9a50833ff7a34d7e27ebe243468552bc94f6628693cb1dfdaf102e7"}, {"ref": "pkg:rpm/almalinux/libxcb@1.13.1-1.el8#6c32c0eb1fdae8b53d48bf63b90db8c0dc1591ca2eb752e841996904a55c6e78"}]}