pusher
pusher 是一个基于 FFmpeg SDK 二次开发的 Python C/C++ 原生推流/转推插件。它直接链接本项目内的 include/ 与 lib/,在当前 Python 进程内启动 C++ worker 线程完成工作,不需要为每路流启动一个 ffmpeg 命令进程。
完整 SDK 方法、参数、默认值、环境变量和 CLI 说明见 SDK_API.md。
它适合 -c copy 这类复制转推场景,例如:
ffmpeg -rtsp_transport tcp -i rtsp://192.168.0.206:8554/av0_0 \
-c copy -f flv rtmp://192.168.0.138:1935/live/detect_1500
在本项目中对应为:
from pusher import Pusher
pusher = Pusher(loop=False, realtime=False)
pusher.start(
"rtsp://192.168.0.206:8554/av0_0",
"rtmp://192.168.0.138:1935/live/detect_1500",
)
协议路由
rtmp://、rtsp://、srt://、rtp://输出:自动使用 FFmpeg SDK 在进程内处理。文件/网络流默认 remux/copy;摄像头输入会采集并编码为 H264 后推流。http(s)://.../rtc/v1/whip/输出:自动使用内嵌 WHIP/WebRTC worker 发布 H264 视频。
所有运行时推流路径都在 _native 内部执行。100 路复制转推时每路流是一个 C++ worker 线程,不会产生 100 个外部子进程。
目录结构
pusher-py/
├── include/
│ ├── pusher/ # 本项目 C++ 头文件
│ ├── libavformat/ # FFmpeg SDK 头文件
│ ├── libavcodec/
│ └── libavutil/
├── src/pusher/
│ ├── _native.cpp # CPython C API 绑定层
│ ├── pusher.cpp # libav 转推和 worker 生命周期
│ ├── stream_push/whip.cpp # 内嵌 WHIP/WebRTC 推流实现
│ ├── url_utils.c # 协议识别
│ ├── cli.py # 命令行工具
│ └── __init__.py
├── examples/basic_usage.py
├── lib/ # FFmpeg 动态库
├── scripts/build_ffmpeg.sh # 从源码自动编译 FFmpeg SDK
├── third_party/FFmpeg/ # 内置 FFmpeg 源码
├── tests/test_basic.py
├── pyproject.toml
└── setup.py
SDK 依赖
开发仓库内可放置 FFmpeg SDK 文件:
include/libavformat
include/libavcodec
include/libavutil
lib/libavformat.so
lib/libavcodec.so
lib/libavutil.so
third_party/FFmpeg
PyPI 发布包不包含 third_party/FFmpeg 全量源码,也不包含本机编译出的 lib/*.so 构建产物。源码安装时需要提前准备本地 FFmpeg SDK,或从 GitHub 仓库获取完整源码后执行构建。
构建顺序:
- 如果
lib/libavformat.so已存在,直接使用本地动态库。 - 如果本地动态库不存在,
setup.py会调用scripts/build_ffmpeg.sh,从third_party/FFmpeg自动编译共享库并安装到本项目include/、lib/。
构建脚本不会读取 /usr/local/ffmpeg,也不要求用户提前安装或编译 FFmpeg。
自动编译采用精简 FFmpeg SDK 配置,主要启用 avformat、avcodec、avdevice、avutil、swscale、swresample,以及 RTSP/RTMP/RTP/HTTP/TCP/UDP/文件协议、摄像头输入和常见 muxer/demuxer。目标是 native 推流/转推,不包含 ffmpeg/ffprobe 命令行程序。
CI 发布平台
GitHub Actions 会从仓库内的 third_party/FFmpeg 自动构建 FFmpeg SDK,再构建 Python wheel。PyPI wheel 不包含 third_party/FFmpeg 源码;Linux wheel 会携带运行所需的 FFmpeg .so 动态库。
当前自动发布目标是 Linux x86_64、aarch64、armv7l,以及 Windows x86、x64、ARM64。Linux 使用 scripts/build_ffmpeg.sh,Windows 使用 MSVC + MSYS2 执行 scripts/build_ffmpeg.ps1 并产出 .lib/.dll SDK。RK 系列、树莓派、香橙派等开发板通常使用 aarch64 64 位系统或 armv7l 32 位系统;板载硬编解码能力需要单独的设备镜像/系统库适配,不包含在通用 PyPI wheel 中。
安装与构建
cd /root/workspace/ms-fish-recg-pro/pusher-py
python -m pip install -U pip setuptools wheel
python setup.py build_ext --inplace --force
开发安装:
python -m pip install -e ".[dev]"
验证导入:
PYTHONPATH=src python -c "from pusher import Pusher; print(Pusher)"
用例总览
下表所有场景都支持 Python SDK;CLI 使用 PYTHONPATH=src python -m pusher.cli 展示,安装后可把前缀替换为 pusher 或 pusher-py。
| 场景 | 输入 | 输出 | 说明 |
|---|---|---|---|
| RTSP 转 RTMP | rtsp://... |
rtmp://... |
摄像头或网络流复制转推。 |
| RTSP 转 RTMP 带鉴权 | rtsp://... |
rtmp://...?secret=... |
用 build_output_url 或 build-url 生成地址。 |
| 本地 MP4 循环推 RTMP | sample.mp4 |
rtmp://... |
loop=True,按时间戳实时推送。 |
| 本地 MP4 单次推 RTMP | sample.mp4 |
rtmp://... |
loop=False,文件结束后退出。 |
| RTSP 转 RTSP | rtsp://... |
rtsp://... |
输出侧默认 TCP。 |
| RTSP 转 SRT | rtsp://... |
srt://... |
要求当前 FFmpeg SDK 启用 SRT。 |
| RTSP 转 RTP | rtsp://... |
rtp://... |
单路 RTP 输出。 |
| MP4 推 WHIP/WebRTC | H264 MP4 | WHIP HTTP URL | 走内嵌 WHIP/WebRTC worker,不启动外部程序。 |
| 摄像头推 RTMP/RTSP/SRT/RTP | /dev/video0 或 video=设备名 |
rtmp://... 等 |
native 采集并编码为 H264 后推流。 |
| 摄像头推 WHIP/WebRTC | /dev/video0 或 video=设备名 |
WHIP HTTP URL | native 采集、H264 编码、内嵌 WHIP 推流。 |
| 预览任务 | 任意支持输入 | 任意支持输出 | 打印 native 任务描述,不启动推流。 |
| 协议识别和 URL 构造 | URL 参数 | URL 字符串 | 业务侧生成和检查推流地址。 |
| 多路转推 | 多个输入 | 多个输出 | Python SDK 推荐,一个实例一个 native worker 线程。 |
注意:start() 会启动后台 C++ worker 线程并立即返回,业务进程需要保持运行。脚本如果启动后直接退出,Pusher 对象析构会停止转推。
Python 用例
1. RTSP 转 RTMP
import time
from pusher import Pusher
pusher = Pusher(
log_path="pusher.log",
loop=False,
realtime=False,
timeout_ms=5000,
)
pusher.start(
"rtsp://192.168.0.206:8554/av0_0",
"rtmp://192.168.0.138:1935/live/detect_1500",
)
try:
while pusher.is_running:
print(pusher.status())
time.sleep(5)
finally:
pusher.stop(3000)
2. RTSP 转 RTMP 带鉴权地址
import time
from pusher import Pusher, build_output_url
output_url = build_output_url(
protocol="rtmp",
host="192.168.0.138",
app="live",
stream="test",
secret="557ea19cf905454bad9dc988d0c6a5g1",
)
pusher = Pusher(loop=False, realtime=False)
pusher.start("rtsp://192.168.0.206:8554/av0_0", output_url)
try:
while pusher.is_running:
print(pusher.status())
time.sleep(5)
finally:
pusher.stop(3000)
生成的地址:
rtmp://192.168.0.138:1935/live/test?secret=557ea19cf905454bad9dc988d0c6a5g1
3. 本地 MP4 循环推 RTMP
from pusher import Pusher
pusher = Pusher(loop=True, realtime=True)
pusher.start("sample.mp4", "rtmp://127.0.0.1:1935/live/test")
print(pusher.status())
4. 本地 MP4 单次推 RTMP
from pusher import Pusher
pusher = Pusher(loop=False, realtime=True)
pusher.start("sample.mp4", "rtmp://127.0.0.1:1935/live/test")
exit_code = pusher.wait(timeout_ms=-1)
print("exit:", exit_code)
5. RTSP 转 RTSP
from pusher import Pusher, build_output_url
output_url = build_output_url(
protocol="rtsp",
host="192.168.0.138",
app="live",
stream="detect_1500",
port=8554,
)
pusher = Pusher(loop=False, realtime=False)
pusher.start("rtsp://192.168.0.206:8554/av0_0", output_url)
print(pusher.status())
6. RTSP 转 SRT
from pusher import Pusher, build_output_url
output_url = build_output_url(
protocol="srt",
host="192.168.0.138",
app="live",
stream="detect_1500",
port=10080,
)
pusher = Pusher(loop=False, realtime=False)
pusher.start("rtsp://192.168.0.206:8554/av0_0", output_url)
print(pusher.status())
SRT 需要当前 FFmpeg SDK 编译时启用 srt 协议;默认脚本未启用外部 libsrt 依赖。
7. RTSP 转 RTP
from pusher import Pusher
pusher = Pusher(loop=False, realtime=False)
pusher.start(
"rtsp://192.168.0.206:8554/av0_0",
"rtp://192.168.0.138:5004",
)
print(pusher.status())
8. MP4 推 WHIP/WebRTC
WHIP 不走 FFmpeg SDK muxer,输出 URL 为 WHIP 地址时会自动选择内嵌 WHIP/WebRTC worker。它不会执行 whip-push-demo 或任何 stream_push 可执行文件。文件或网络输入推 WHIP 时要求输入视频已经是 H264;摄像头输入会在 native 路径中编码为 H264。
import time
from pusher import Pusher, build_output_url
output_url = build_output_url(
protocol="whip",
host="192.168.0.138",
app="live",
stream="test",
secret="replace-me",
port=1985,
)
pusher = Pusher(loop=True, bitrate=2_000_000)
pusher.start("sample.mp4", output_url)
try:
while pusher.is_running:
print(pusher.status())
time.sleep(5)
finally:
pusher.stop(3000)
生成的 WHIP 地址格式:
http://192.168.0.138:1985/rtc/v1/whip/?app=live&stream=test&secret=replace-me
9. 预览任务但不启动
from pusher import Pusher
pusher = Pusher(loop=False, realtime=False)
command = pusher.preview_command(
"rtsp://192.168.0.206:8554/av0_0",
"rtmp://192.168.0.138:1935/live/detect_1500",
)
print(" ".join(command))
10. 停止、等待和上下文管理
from pusher import Pusher
with Pusher(loop=False, realtime=False) as pusher:
pusher.start("sample.mp4", "rtmp://127.0.0.1:1935/live/test")
exit_code = pusher.wait(timeout_ms=10_000)
if exit_code is None:
pusher.stop(timeout_ms=3000)
11. 多路转推
from pusher import Pusher
tasks = []
for i in range(100):
p = Pusher(name=f"stream-{i}", loop=False, realtime=False)
p.start(
f"rtsp://192.168.0.{100 + i}:8554/av0_0",
f"rtmp://192.168.0.138:1935/live/detect_{i}",
)
tasks.append(p)
try:
for p in tasks:
print(p.status())
finally:
for p in tasks:
p.stop()
12. 协议识别和 URL 构造
from pusher import build_output_url, detect_protocol, version
print(version())
print(detect_protocol("rtmp://192.168.0.138:1935/live/test"))
for protocol in ["rtmp", "rtsp", "srt", "rtp", "whip"]:
print(protocol, build_output_url(protocol, "192.168.0.138", stream="demo"))
13. 查找摄像头输入标识
摄像头标识不是固定值,需要从操作系统查询。Linux 使用 V4L2 设备路径;Windows 使用 DirectShow 设备名。下面这些命令只用于列设备,不参与实际推流,推流仍然由 native worker 完成。
Linux 常用方式:
ls -l /dev/video*
ls -l /dev/v4l/by-id/
ls -l /dev/v4l/by-path/
/dev/video0、/dev/video1 这类编号可能会随插拔顺序变化;生产环境更推荐使用稳定路径,例如:
/dev/v4l/by-id/usb-046d_HD_Pro_Webcam_C920-video-index0
/dev/v4l/by-path/pci-0000:00:14.0-usb-0:5:1.0-video-index0
如果系统安装了 v4l-utils,可以查看摄像头名称、设备路径、支持的分辨率和编码格式:
v4l2-ctl --list-devices
v4l2-ctl -d /dev/video0 --list-formats-ext
典型输出类似:
HD Pro Webcam C920 (usb-0000:00:14.0-5):
/dev/video0
/dev/video1
这时通常选择带视频采集能力的 /dev/video0,或选择 /dev/v4l/by-id/...video-index0 稳定路径。--list-formats-ext 中如果能看到 H264,SDK 会优先尝试直接读取 H264;如果只有 MJPG、YUYV 等格式,SDK 会走 native 解码/编码为 H264。
Windows 使用 DirectShow 设备名,输入格式是:
video=摄像头名称
可以在 PowerShell 里列出摄像头友好名称:
Get-CimInstance Win32_PnPEntity |
Where-Object { $_.PNPClass -eq "Camera" -or $_.Name -match "Camera|Webcam|Video" } |
Select-Object Name
也可以在“设备管理器 -> 照相机/图像设备”里查看名称。假设名称是 Integrated Camera,传给 SDK/CLI 的输入就是:
video=Integrated Camera
如果同名设备不止一个,建议在系统里修改设备名称,或者后续扩展 SDK 增加设备枚举 API 后按枚举结果选择。
14. 摄像头推 RTMP/RTSP/SRT/RTP
摄像头输入使用 native FFmpeg SDK 采集;如果摄像头直接输出 H264 会直接封装,否则会解码后编码为 H264。不会启动外部 ffmpeg。
Linux 使用 /dev/video0 这类 V4L2 路径;Windows 使用 dshow 设备名,例如 video=Integrated Camera。
from pusher import Pusher
pusher = Pusher(
width=1280,
height=720,
fps=30,
bitrate=2_000_000,
loop=False,
realtime=False,
)
pusher.start("/dev/video0", "rtmp://192.168.0.138:1935/live/camera0")
print(pusher.status())
同一个摄像头输入也可以输出到 RTSP/SRT/RTP:
from pusher import Pusher
pusher = Pusher(width=1280, height=720, fps=30, bitrate=2_000_000)
pusher.start("/dev/video0", "rtsp://192.168.0.138:8554/live/camera0")
Windows 摄像头输入示例:
from pusher import Pusher
pusher = Pusher(width=1280, height=720, fps=30, bitrate=2_000_000)
pusher.start("video=Integrated Camera", "rtmp://192.168.0.138:1935/live/camera0")
15. 摄像头推 WHIP/WebRTC
import time
from pusher import Pusher, build_output_url
output_url = build_output_url(
protocol="whip",
host="192.168.0.138",
app="live",
stream="camera0",
port=1985,
)
pusher = Pusher(width=1280, height=720, fps=30, bitrate=2_000_000)
pusher.start("/dev/video0", output_url)
try:
while pusher.is_running:
print(pusher.status())
time.sleep(5)
finally:
pusher.stop(3000)
摄像头路径要求 FFmpeg SDK 启用 avdevice、swscale 和至少一个 H264 编码器,例如 libx264、h264_v4l2m2m、h264_mf 或平台硬编码器。
CLI 用例
源码目录示例统一使用 PYTHONPATH=src python -m pusher.cli。开发安装后可以改成 pusher:
pusher push input output_url
pusher preview input output_url --json
pusher build-url rtmp 192.168.0.138 --stream demo
1. RTSP 转 RTMP
PYTHONPATH=src python -m pusher.cli push \
rtsp://192.168.0.206:8554/av0_0 \
rtmp://192.168.0.138:1935/live/detect_1500 \
--no-loop \
--no-realtime \
--log-path pusher.log \
--status-interval 5
2. RTSP 转 RTMP 带鉴权地址
PYTHONPATH=src python -m pusher.cli build-url rtmp 192.168.0.138 \
--app live \
--stream test \
--secret 557ea19cf905454bad9dc988d0c6a5g1
PYTHONPATH=src python -m pusher.cli push \
rtsp://192.168.0.206:8554/av0_0 \
'rtmp://192.168.0.138:1935/live/test?secret=557ea19cf905454bad9dc988d0c6a5g1' \
--no-loop \
--no-realtime \
--status-interval 5
3. 本地 MP4 循环推 RTMP
PYTHONPATH=src python -m pusher.cli push \
sample.mp4 \
rtmp://127.0.0.1:1935/live/test \
--status-interval 5
4. 本地 MP4 单次推 RTMP
PYTHONPATH=src python -m pusher.cli push \
sample.mp4 \
rtmp://127.0.0.1:1935/live/test \
--no-loop \
--status-interval 5
5. RTSP 转 RTSP
PYTHONPATH=src python -m pusher.cli push \
rtsp://192.168.0.206:8554/av0_0 \
rtsp://192.168.0.138:8554/live/detect_1500 \
--no-loop \
--no-realtime
6. RTSP 转 SRT
PYTHONPATH=src python -m pusher.cli push \
rtsp://192.168.0.206:8554/av0_0 \
'srt://192.168.0.138:10080?streamid=live/detect_1500' \
--no-loop \
--no-realtime
SRT 需要当前 FFmpeg SDK 编译时启用 srt 协议;默认脚本未启用外部 libsrt 依赖。
7. RTSP 转 RTP
PYTHONPATH=src python -m pusher.cli push \
rtsp://192.168.0.206:8554/av0_0 \
rtp://192.168.0.138:5004 \
--no-loop \
--no-realtime
8. MP4 推 WHIP/WebRTC
PYTHONPATH=src python -m pusher.cli build-url whip 192.168.0.138 \
--app live \
--stream test \
--secret replace-me \
--port 1985
PYTHONPATH=src python -m pusher.cli push \
sample.mp4 \
'http://192.168.0.138:1985/rtc/v1/whip/?app=live&stream=test&secret=replace-me' \
--status-interval 5
9. 预览任务但不启动
PYTHONPATH=src python -m pusher.cli preview \
rtsp://192.168.0.206:8554/av0_0 \
rtmp://192.168.0.138:1935/live/detect_1500 \
--no-loop \
--no-realtime
PYTHONPATH=src python -m pusher.cli preview \
sample.mp4 \
'http://192.168.0.138:1985/rtc/v1/whip/?app=live&stream=test' \
--json
10. 停止和等待
PYTHONPATH=src python -m pusher.cli push \
sample.mp4 \
rtmp://127.0.0.1:1935/live/test \
--status-interval 5
CLI 会等待推流结束。按 Ctrl+C 或发送 SIGTERM 时会调用 native stop(),不会启动或清理外部推流进程。
11. 多路转推
CLI 每条命令是一个 Python 进程,适合调试和少量任务;大量任务推荐使用上面的 Python 多实例方式统一管理。
PYTHONPATH=src python -m pusher.cli push \
rtsp://192.168.0.101:8554/av0_0 \
rtmp://192.168.0.138:1935/live/detect_1 \
--no-loop \
--no-realtime
PYTHONPATH=src python -m pusher.cli push \
rtsp://192.168.0.102:8554/av0_0 \
rtmp://192.168.0.138:1935/live/detect_2 \
--no-loop \
--no-realtime
12. 协议识别和 URL 构造
PYTHONPATH=src python -m pusher.cli detect \
rtmp://192.168.0.138:1935/live/test
PYTHONPATH=src python -m pusher.cli detect \
'http://192.168.0.138:1985/rtc/v1/whip/?app=live&stream=test'
PYTHONPATH=src python -m pusher.cli build-url rtmp 192.168.0.138 \
--app live \
--stream demo
PYTHONPATH=src python -m pusher.cli build-url whip 192.168.0.138 \
--app live \
--stream demo \
--port 1985 \
--tls
13. 查找摄像头输入标识
CLI 使用的摄像头输入标识和 Python SDK 相同。Linux 先用下面命令确认设备:
ls -l /dev/video*
ls -l /dev/v4l/by-id/
v4l2-ctl --list-devices
v4l2-ctl -d /dev/video0 --list-formats-ext
Windows 先在 PowerShell 查询设备名:
Get-CimInstance Win32_PnPEntity |
Where-Object { $_.PNPClass -eq "Camera" -or $_.Name -match "Camera|Webcam|Video" } |
Select-Object Name
Linux CLI 输入示例是 /dev/video0 或 /dev/v4l/by-id/...;Windows CLI 输入示例是 "video=Integrated Camera"。
14. 摄像头推 RTMP/RTSP/SRT/RTP
PYTHONPATH=src python -m pusher.cli push \
/dev/video0 \
rtmp://192.168.0.138:1935/live/camera0 \
--width 1280 \
--height 720 \
--fps 30 \
--bitrate 2000000 \
--no-loop \
--no-realtime \
--status-interval 5
PYTHONPATH=src python -m pusher.cli push \
/dev/video0 \
rtsp://192.168.0.138:8554/live/camera0 \
--width 1280 \
--height 720 \
--fps 30 \
--bitrate 2000000 \
--status-interval 5
Windows CLI 示例:
python -m pusher.cli push `
"video=Integrated Camera" `
rtmp://192.168.0.138:1935/live/camera0 `
--width 1280 `
--height 720 `
--fps 30 `
--bitrate 2000000 `
--status-interval 5
15. 摄像头推 WHIP/WebRTC
PYTHONPATH=src python -m pusher.cli build-url whip 192.168.0.138 \
--app live \
--stream camera0 \
--port 1985
PYTHONPATH=src python -m pusher.cli push \
/dev/video0 \
'http://192.168.0.138:1985/rtc/v1/whip/?app=live&stream=camera0' \
--width 1280 \
--height 720 \
--fps 30 \
--bitrate 2000000 \
--status-interval 5
摄像头推流仍然是 native worker,不执行外部 ffmpeg、stream_push 或 whip-push-demo。
支持协议
输出协议映射:
| 输出 URL | 自动处理方式 | 输出封装/程序 |
|---|---|---|
rtmp:// / rtmps:// |
FFmpeg SDK remux | flv |
rtsp:// / rtsps:// |
FFmpeg SDK remux | rtsp |
srt:// |
FFmpeg SDK remux | mpegts,要求当前 FFmpeg SDK 编译时启用 srt 协议 |
rtp:// |
FFmpeg SDK remux | rtp |
http://.../rtc/v1/whip/ / https://.../rtc/v1/whip/ |
内嵌 WHIP worker | WHIP/WebRTC |
WHIP/WebRTC 不属于 FFmpeg 常规 muxer 输出,本项目使用内嵌 WHIP/WebRTC worker 处理。
参数说明
| 参数 | 默认值 | 说明 |
|---|---|---|
log_path |
空 | libav 运行日志 |
loop |
True |
本地文件读到 EOF 后是否循环 |
realtime |
True |
本地文件是否按媒体时间戳限速 |
timeout_ms |
5000 |
网络打开/停止等待超时 |
analyzeduration_us |
10000000 |
RTSP/网络流探测时长,单位微秒 |
probesize |
50000000 |
RTSP/网络流探测数据量,摄像头首包缺少尺寸时可增大 |
测试
PYTHONPATH=src python -m pusher.cli preview sample.mp4 rtmp://127.0.0.1/live/test
PYTHONPATH=src python examples/basic_usage.py
项目根目录的 test-push.py 可用于真实 RTSP 到 RTMP 验证:
cd /root/workspace/ms-fish-recg-pro
PYTHONPATH=pusher-py/src python test-push.py
PUSH_SECONDS=10 PUSH_STATUS_INTERVAL=1 PYTHONPATH=pusher-py/src python test-push.py
安装开发依赖后:
python -m pytest -q
注意事项
- 文件和网络流默认 remux/copy 转推;摄像头输入会 native 采集并编码为 H264。
- 运行时不启动外部
ffmpeg或stream_push程序;所有推流路径都在 native worker 内执行。 - 如果输入编码或目标协议不被当前 FFmpeg SDK 支持,任务会退出并在
status()或日志中给出错误。 - 自动编译脚本默认不启用外部
libsrt依赖;如需 SRT,请在系统安装 libsrt 开发包后调整scripts/build_ffmpeg.sh的 configure 参数。 - 摄像头输入会走 native 采集和 H264 编码;对应 FFmpeg SDK 必须包含
avdevice、swscale和可用 H264 编码器。
Metadata
Release files for pusher-py 0.1.9
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distributions (wheels)
Total release size: 89.2 MB
Release files / pusher_py-0.1.9-cp314-cp314-win_arm64.whl
| Download URL | pusher_py-0.1.9-cp314-cp314-win_arm64.whl |
|---|---|
| Size | 2.4 MB |
| Tags | CPython 3.14 Windows ARM64 |
|
SHA-256 checksum How to use checksums |
5e18b785b4848d48cc713fb7b22bbe69e8f511defc89cb9d779ff27c64e7dd88
|
|
BLAKE2b-256 checksum How to use checksums |
915bb55dd476a42ee7750a9882ed030ed24f020ccf3fcc7843e0ef519f12e127
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Release files / pusher_py-0.1.9-cp314-cp314-win_amd64.whl
| Download URL | pusher_py-0.1.9-cp314-cp314-win_amd64.whl |
|---|---|
| Size | 2.5 MB |
| Tags | CPython 3.14 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
a4ea357abea78fde0b9d7b78442a6f34fd0c73ee12e97db498db8f7dbdb90c6e
|
|
BLAKE2b-256 checksum How to use checksums |
28b6999713f53c2427a69c5b5a3f6e9556a31f885aaf0f82e215ac17d1c79069
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Release files / pusher_py-0.1.9-cp314-cp314-win32.whl
| Download URL | pusher_py-0.1.9-cp314-cp314-win32.whl |
|---|---|
| Size | 2.1 MB |
| Tags | CPython 3.14 Windows x86-32 |
|
SHA-256 checksum How to use checksums |
cc4bd483d434956dab0d884571bd5f6e9838c2600bc0005963561ceea3985cae
|
|
BLAKE2b-256 checksum How to use checksums |
abb25e27401752df125382e433b51349f54f24e4997d5f35acb3b907b0087f2f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Release files / pusher_py-0.1.9-cp314-cp314-manylinux_2_31_armv7l.whl
| Download URL | pusher_py-0.1.9-cp314-cp314-manylinux_2_31_armv7l.whl |
|---|---|
| Size | 2.7 MB |
| Tags | CPython 3.14 Linux glibc 2.31+ ARMv7l |
|
SHA-256 checksum How to use checksums |
fb1fae4ffb586c9d7548e9dd16290288f8aa6b72f0b68c47da9047f6796440ef
|
|
BLAKE2b-256 checksum How to use checksums |
35e5d1ee5d0eaf97fdd80fc973ee2987b4ac3b3a425caced278cbd96db6b22fc
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Release files / pusher_py-0.1.9-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
| Download URL | pusher_py-0.1.9-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl |
|---|---|
| Size | 2.7 MB |
| Tags | CPython 3.14 Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
6e6141bfa662a188aa71c6cc9d93f4aaf49f1495b34d0fc00b035751c086d8c7
|
|
BLAKE2b-256 checksum How to use checksums |
e0cb2bb74bd31040895e07743692a50ec1004949b2784b3219fc4c802e7a681f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Release files / pusher_py-0.1.9-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.whl
| Download URL | pusher_py-0.1.9-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.whl |
|---|---|
| Size | 2.7 MB |
| Tags | CPython 3.14 Linux glibc 2.17+ ARM64 |
|
SHA-256 checksum How to use checksums |
6668b98d9ac9a1dada22e6d234cfea45f245ac82adcf42163a22607b3b6ee016
|
|
BLAKE2b-256 checksum How to use checksums |
a2e2b42b586c9a81324b7b060c14393dc294065288c98d2e8c929e71b11df457
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Release files / pusher_py-0.1.9-cp313-cp313-win_arm64.whl
| Download URL | pusher_py-0.1.9-cp313-cp313-win_arm64.whl |
|---|---|
| Size | 2.3 MB |
| Tags | CPython 3.13 Windows ARM64 |
|
SHA-256 checksum How to use checksums |
e6dda2729257bff4afdc58a75bf4cfe55ffb904d4eb1e38a28d50c0579817e90
|
|
BLAKE2b-256 checksum How to use checksums |
3dff4a1c7c5ec00cdf19ff7522d343877a515d4e63a93b7c779e26dce7b93d83
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Release files / pusher_py-0.1.9-cp313-cp313-win_amd64.whl
| Download URL | pusher_py-0.1.9-cp313-cp313-win_amd64.whl |
|---|---|
| Size | 2.4 MB |
| Tags | CPython 3.13 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
bd6782cb1968efa2bea1db5bf27386a16d82f57ae484735d8166d80b9dd78bc1
|
|
BLAKE2b-256 checksum How to use checksums |
34ed18568fbfe5459619e4fad6008bea772640dbcb3ebfefa534b5b3bb900f84
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Release files / pusher_py-0.1.9-cp313-cp313-win32.whl
| Download URL | pusher_py-0.1.9-cp313-cp313-win32.whl |
|---|---|
| Size | 2.1 MB |
| Tags | CPython 3.13 Windows x86-32 |
|
SHA-256 checksum How to use checksums |
7d08306bf01a369a7b5133eade5d5ba0e7f7edf42639e8e684a19dce11ec8101
|
|
BLAKE2b-256 checksum How to use checksums |
b694981e9976d6ba994c5e62e54c4d88e5117ee319af4b6102edcb3de219b1b2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Release files / pusher_py-0.1.9-cp313-cp313-manylinux_2_31_armv7l.whl
| Download URL | pusher_py-0.1.9-cp313-cp313-manylinux_2_31_armv7l.whl |
|---|---|
| Size | 2.7 MB |
| Tags | CPython 3.13 Linux glibc 2.31+ ARMv7l |
|
SHA-256 checksum How to use checksums |
a38218de0371fbba217bdcd8a1abb6328b1d82619aebb0d3296809e7ebeaf043
|
|
BLAKE2b-256 checksum How to use checksums |
cb9e52181ae276137642b2d0750041ee42fef1c5c6e111b6dd8b71cacdfc4bf7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Release files / pusher_py-0.1.9-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
| Download URL | pusher_py-0.1.9-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl |
|---|---|
| Size | 2.7 MB |
| Tags | CPython 3.13 Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
65e33e6aa72c0c85947b4d167cb57a593a1ec7fbe4488451999ab72675a2691b
|
|
BLAKE2b-256 checksum How to use checksums |
b5af46cb191686e862855c62044659cdf445035d6ef32f08c0eab8e9c0d20d05
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Release files / pusher_py-0.1.9-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl
| Download URL | pusher_py-0.1.9-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl |
|---|---|
| Size | 2.7 MB |
| Tags | CPython 3.13 Linux glibc 2.17+ ARM64 |
|
SHA-256 checksum How to use checksums |
7e9fd9a5c842ee768426552e034da217ac9747107ac965fae3228b337ddb1fd3
|
|
BLAKE2b-256 checksum How to use checksums |
077578aaa15b83989ee421313fbff90f614a78446a2e771597cbc6c13e300144
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Release files / pusher_py-0.1.9-cp312-cp312-win_arm64.whl
| Download URL | pusher_py-0.1.9-cp312-cp312-win_arm64.whl |
|---|---|
| Size | 2.3 MB |
| Tags | CPython 3.12 Windows ARM64 |
|
SHA-256 checksum How to use checksums |
ecc3be4244a7c9334d24b0a8937543c16e00b830076050709d31b7a7f5364ccd
|
|
BLAKE2b-256 checksum How to use checksums |
e3146a010fa88d82329b89894f26032f70903d168a9d88080d8e30c9159a3c82
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Release files / pusher_py-0.1.9-cp312-cp312-win_amd64.whl
| Download URL | pusher_py-0.1.9-cp312-cp312-win_amd64.whl |
|---|---|
| Size | 2.4 MB |
| Tags | CPython 3.12 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
64855bf633a6ed7ef3e0a953542530fd0635f4493b2f62f909ce77b2566e4656
|
|
BLAKE2b-256 checksum How to use checksums |
358d55753f02d9a5976328f025456430c92dd680fd63dd69372d682effd5d181
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Release files / pusher_py-0.1.9-cp312-cp312-win32.whl
| Download URL | pusher_py-0.1.9-cp312-cp312-win32.whl |
|---|---|
| Size | 2.1 MB |
| Tags | CPython 3.12 Windows x86-32 |
|
SHA-256 checksum How to use checksums |
24bf2afa7e8549083f3cc9b1813a1d023d4aa551d768ea08e28511596f30c18d
|
|
BLAKE2b-256 checksum How to use checksums |
c04a37ddfd50fb991f54246605a15895cab5a3cde6e83442e7ca443e562bb5ef
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Release files / pusher_py-0.1.9-cp312-cp312-manylinux_2_31_armv7l.whl
| Download URL | pusher_py-0.1.9-cp312-cp312-manylinux_2_31_armv7l.whl |
|---|---|
| Size | 2.7 MB |
| Tags | CPython 3.12 Linux glibc 2.31+ ARMv7l |
|
SHA-256 checksum How to use checksums |
df9ca2b6e827589189792e7de734321c34a57092f543a8b304ca4b2b500f4430
|
|
BLAKE2b-256 checksum How to use checksums |
7ea784a3887631d25a5281d61d1a92c2619e0b832faab7ce0f8520a5e23bde20
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Release files / pusher_py-0.1.9-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
| Download URL | pusher_py-0.1.9-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl |
|---|---|
| Size | 2.7 MB |
| Tags | CPython 3.12 Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
83daf774f77f870bba4514dc0c610288e6a104df65a125048395736fd8be19b6
|
|
BLAKE2b-256 checksum How to use checksums |
b45fbf66441f176d8ec87f0e2f554ad241df53d1ee9d343634ffe94c25b04bc9
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Release files / pusher_py-0.1.9-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl
| Download URL | pusher_py-0.1.9-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl |
|---|---|
| Size | 2.7 MB |
| Tags | CPython 3.12 Linux glibc 2.17+ ARM64 |
|
SHA-256 checksum How to use checksums |
0deb1aab926c1ff47ad60ff9eec150064c6c818ab6a8db512ce7b063d630be15
|
|
BLAKE2b-256 checksum How to use checksums |
6940dfdb12986f7fe9d64d4f4424f9d0c7305e471db99c58ba0064808977e6ee
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Release files / pusher_py-0.1.9-cp311-cp311-win_arm64.whl
| Download URL | pusher_py-0.1.9-cp311-cp311-win_arm64.whl |
|---|---|
| Size | 2.3 MB |
| Tags | CPython 3.11 Windows ARM64 |
|
SHA-256 checksum How to use checksums |
21743588f047f5dac688805cc70e1382a711b90d33c6d4222172929a7aff0b8d
|
|
BLAKE2b-256 checksum How to use checksums |
6f1aab92fd1a4123351321c75135145e5c2f9c68a59745c5f9d5fd362311dea6
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Release files / pusher_py-0.1.9-cp311-cp311-win_amd64.whl
| Download URL | pusher_py-0.1.9-cp311-cp311-win_amd64.whl |
|---|---|
| Size | 2.4 MB |
| Tags | CPython 3.11 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
306f225a1a6f770f304ba7ba17f50004313f08f158f45774d6b5d97c583c353b
|
|
BLAKE2b-256 checksum How to use checksums |
4c3289ef8192891a6009b2a5b403d6ed6fa72afc2852112fc4b2cf90c6c8dee8
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Release files / pusher_py-0.1.9-cp311-cp311-win32.whl
| Download URL | pusher_py-0.1.9-cp311-cp311-win32.whl |
|---|---|
| Size | 2.1 MB |
| Tags | CPython 3.11 Windows x86-32 |
|
SHA-256 checksum How to use checksums |
b8d4c196e7dc9225ff5aea1c12702a6d568a6bd42c60acde4f76ba1abca55cdb
|
|
BLAKE2b-256 checksum How to use checksums |
8cb7ee68dc8aa2ba7f49bdcf9c6d74c245855c26355dcfd7ce0af8f57fa1adda
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Release files / pusher_py-0.1.9-cp311-cp311-manylinux_2_31_armv7l.whl
| Download URL | pusher_py-0.1.9-cp311-cp311-manylinux_2_31_armv7l.whl |
|---|---|
| Size | 2.7 MB |
| Tags | CPython 3.11 Linux glibc 2.31+ ARMv7l |
|
SHA-256 checksum How to use checksums |
a1c2042cd08e939fa8b1bad86a4ce8edde8d2dd6dcf9be9584a355ff32d96a5b
|
|
BLAKE2b-256 checksum How to use checksums |
0ba93cc1ac61f671f41fdcb0e8c733529a3f08291796fad52aef36f8f2116f50
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Release files / pusher_py-0.1.9-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
| Download URL | pusher_py-0.1.9-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl |
|---|---|
| Size | 2.7 MB |
| Tags | CPython 3.11 Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
1097ad68c989465faf97ce1dea98929467aadd0e125d2c22fcd913c9a228c8b3
|
|
BLAKE2b-256 checksum How to use checksums |
8b456619897baf3c9735bd4ad28b6d73c11b1cfac44f3903200fa93c7ae43e22
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Release files / pusher_py-0.1.9-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl
| Download URL | pusher_py-0.1.9-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl |
|---|---|
| Size | 2.7 MB |
| Tags | CPython 3.11 Linux glibc 2.17+ ARM64 |
|
SHA-256 checksum How to use checksums |
cf7e69bb312107314312355d07a5d5e7984dd4f683326a814e17c9a6be23d376
|
|
BLAKE2b-256 checksum How to use checksums |
40f22e5ffc8eee426257b7435004acaf9d9176efee55ad4d4c3438f5a01e3415
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Release files / pusher_py-0.1.9-cp310-cp310-win_arm64.whl
| Download URL | pusher_py-0.1.9-cp310-cp310-win_arm64.whl |
|---|---|
| Size | 2.3 MB |
| Tags | CPython 3.10 Windows ARM64 |
|
SHA-256 checksum How to use checksums |
29186f69f1ebf5eadab1ca4de3e185268c485f36483d6254a1a9b7390c0aeaa7
|
|
BLAKE2b-256 checksum How to use checksums |
1dca61741e9fe072d25c7c2e9414e0371eb19fc1c9200881743fad2b114266a1
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Release files / pusher_py-0.1.9-cp310-cp310-win_amd64.whl
| Download URL | pusher_py-0.1.9-cp310-cp310-win_amd64.whl |
|---|---|
| Size | 2.4 MB |
| Tags | CPython 3.10 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
6c8cfd9f27c3f76ebb1f5d1dad5c25df003401626339a9ff1b3f9905e44b38fa
|
|
BLAKE2b-256 checksum How to use checksums |
75d444c03c4b5768e15570bc3f21378c3ade66bd8901fe75f5ceccba550797a4
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Release files / pusher_py-0.1.9-cp310-cp310-win32.whl
| Download URL | pusher_py-0.1.9-cp310-cp310-win32.whl |
|---|---|
| Size | 2.1 MB |
| Tags | CPython 3.10 Windows x86-32 |
|
SHA-256 checksum How to use checksums |
49b1031be6ce0e502aa0d41815ffe509574bf70be3cce35749cbe83a880aa922
|
|
BLAKE2b-256 checksum How to use checksums |
c1d9d0beffde24789a20b659ba54bb4ab60be3ecaccaf70f8f5aa67623738c3b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Release files / pusher_py-0.1.9-cp310-cp310-manylinux_2_31_armv7l.whl
| Download URL | pusher_py-0.1.9-cp310-cp310-manylinux_2_31_armv7l.whl |
|---|---|
| Size | 2.7 MB |
| Tags | CPython 3.10 Linux glibc 2.31+ ARMv7l |
|
SHA-256 checksum How to use checksums |
15e2e92ce62544691145809389695c1985818d328100d75a4e6b14d22b021aef
|
|
BLAKE2b-256 checksum How to use checksums |
a0ad456b1468f3757d357501a6542bbdc8e8160ab757c86739ca53d2c67f29d8
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Release files / pusher_py-0.1.9-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
| Download URL | pusher_py-0.1.9-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl |
|---|---|
| Size | 2.7 MB |
| Tags | CPython 3.10 Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
1bac54a7589fbcfb5c6834acf2454d71cbbaee3fe5d8e4980011c9041f11ab00
|
|
BLAKE2b-256 checksum How to use checksums |
bcd85cdd9912fa72508510516b3e91754205ddf395dff804d70aa7dfd6f3ea05
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Release files / pusher_py-0.1.9-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl
| Download URL | pusher_py-0.1.9-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl |
|---|---|
| Size | 2.7 MB |
| Tags | CPython 3.10 Linux glibc 2.17+ ARM64 |
|
SHA-256 checksum How to use checksums |
fb8a11e3b041c970a97bb3d7a997b7fe96680488d97863ffb7cb4e4c5b693093
|
|
BLAKE2b-256 checksum How to use checksums |
fc01157615271c680095e7d2811fb1d8ea9e3b32be331489090393940fd9f943
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Release files / pusher_py-0.1.9-cp39-cp39-win_arm64.whl
| Download URL | pusher_py-0.1.9-cp39-cp39-win_arm64.whl |
|---|---|
| Size | 2.3 MB |
| Tags | CPython 3.9 Windows ARM64 |
|
SHA-256 checksum How to use checksums |
5108e15216c8cab21e09a823326881ad191762535587b9547348d5fe56d03977
|
|
BLAKE2b-256 checksum How to use checksums |
16c98840a2a3db78e7af58d4a55ae3a72a6ae2638bf8f071d73d6a55417b89ff
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Release files / pusher_py-0.1.9-cp39-cp39-win_amd64.whl
| Download URL | pusher_py-0.1.9-cp39-cp39-win_amd64.whl |
|---|---|
| Size | 2.4 MB |
| Tags | CPython 3.9 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
b37190af8cc9f830a67c9c3a6a57bb407bd041561e41f4030dd2515452cbdaa1
|
|
BLAKE2b-256 checksum How to use checksums |
6f71ce2869c545d824b2c0af3b81743611b3cd090353b0fcc8e8aea6e5b194f3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Release files / pusher_py-0.1.9-cp39-cp39-win32.whl
| Download URL | pusher_py-0.1.9-cp39-cp39-win32.whl |
|---|---|
| Size | 2.1 MB |
| Tags | CPython 3.9 Windows x86-32 |
|
SHA-256 checksum How to use checksums |
9bdea2cf6f084db4c2675e75686a039295c75138f909f20ff932337aeb6dc9ae
|
|
BLAKE2b-256 checksum How to use checksums |
f81f2067e1aa97ef7c749eee954bbe2ab1db20e745091735dfe60d94df1d6929
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Release files / pusher_py-0.1.9-cp39-cp39-manylinux_2_31_armv7l.whl
| Download URL | pusher_py-0.1.9-cp39-cp39-manylinux_2_31_armv7l.whl |
|---|---|
| Size | 2.7 MB |
| Tags | CPython 3.9 Linux glibc 2.31+ ARMv7l |
|
SHA-256 checksum How to use checksums |
c0cdb5456e8291ba73552ded5a9cc844c9f0cc725d433a95999f26ed49773945
|
|
BLAKE2b-256 checksum How to use checksums |
3b6734f15a98170b6ab16996c83326e161c7612a58be9231a1fed710887d6088
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Release files / pusher_py-0.1.9-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
| Download URL | pusher_py-0.1.9-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.whl |
|---|---|
| Size | 2.7 MB |
| Tags | CPython 3.9 Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
468ff340682e71688a3822eb9b81d570223d6ad6ddfe2eaed00950f7192caa2a
|
|
BLAKE2b-256 checksum How to use checksums |
b746cc16ca9acc360db4aadea5988f0253b04546949733e1310d8e1d6dc877c1
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Release files / pusher_py-0.1.9-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.whl
| Download URL | pusher_py-0.1.9-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.whl |
|---|---|
| Size | 2.7 MB |
| Tags | CPython 3.9 Linux glibc 2.17+ ARM64 |
|
SHA-256 checksum How to use checksums |
1ceb1b339755f1b868c5578dff3b83f27f29931a135797cd9a92ea5b76818f3c
|
|
BLAKE2b-256 checksum How to use checksums |
866cdff9b972e657a5cd008dfdf3f0deba731083277a36219db1d52b0905ed64
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|