Spaces:
Sleeping
Sleeping
Kittinun Yenyueak commited on
Commit ·
70c2d54
1
Parent(s): 60cc3d3
first commit
Browse files- .DS_Store +0 -0
- Dockerfile +16 -5
- annotated_image.png +3 -0
- models/modelYOLOv8n_datasetDIOR_epochs36_batch16_reduced_classes.pt +3 -0
- models/modelYOLOv8n_datasetDIOR_epochs50_batch16.pt +3 -0
- models/modelYOLOv8n_datasetDOTAv2_epochs5_batch1.pt +3 -0
- pdm.lock +1311 -0
- pyproject.toml +140 -0
- requirements.txt +0 -3
- src/.DS_Store +0 -0
- src/__pycache__/model.cpython-311.pyc +0 -0
- src/app.py +180 -0
- src/model.py +79 -0
- src/streamlit_app.py +0 -40
.DS_Store
ADDED
|
Binary file (8.2 kB). View file
|
|
|
Dockerfile
CHANGED
|
@@ -1,20 +1,31 @@
|
|
| 1 |
-
FROM python:3.
|
| 2 |
|
| 3 |
WORKDIR /app
|
| 4 |
|
|
|
|
| 5 |
RUN apt-get update && apt-get install -y \
|
| 6 |
build-essential \
|
| 7 |
curl \
|
| 8 |
git \
|
|
|
|
| 9 |
&& rm -rf /var/lib/apt/lists/*
|
| 10 |
|
| 11 |
-
|
| 12 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
| 13 |
|
| 14 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
| 15 |
|
| 16 |
EXPOSE 8501
|
| 17 |
|
| 18 |
HEALTHCHECK CMD curl --fail http://localhost:8501/_stcore/health
|
| 19 |
|
| 20 |
-
|
|
|
|
|
|
| 1 |
+
FROM python:3.11.13
|
| 2 |
|
| 3 |
WORKDIR /app
|
| 4 |
|
| 5 |
+
# System deps (add ffmpeg for moviepy)
|
| 6 |
RUN apt-get update && apt-get install -y \
|
| 7 |
build-essential \
|
| 8 |
curl \
|
| 9 |
git \
|
| 10 |
+
ffmpeg \
|
| 11 |
&& rm -rf /var/lib/apt/lists/*
|
| 12 |
|
| 13 |
+
# Install PDM and use pyproject/pdm.lock for deps
|
| 14 |
+
RUN pip3 install --no-cache-dir -U pip setuptools wheel pdm
|
| 15 |
+
|
| 16 |
+
# Copy only dependency files first for better layer caching
|
| 17 |
+
COPY pyproject.toml ./
|
| 18 |
+
COPY pdm.lock ./
|
| 19 |
|
| 20 |
+
# Install project dependencies (prod only)
|
| 21 |
+
RUN pdm install --prod --frozen
|
| 22 |
+
|
| 23 |
+
# Copy application source
|
| 24 |
+
COPY src/ ./src/
|
| 25 |
|
| 26 |
EXPOSE 8501
|
| 27 |
|
| 28 |
HEALTHCHECK CMD curl --fail http://localhost:8501/_stcore/health
|
| 29 |
|
| 30 |
+
# Run via PDM so PEP 582 (__pypackages__) is on sys.path
|
| 31 |
+
ENTRYPOINT ["pdm", "run", "streamlit", "run", "src/app.py", "--server.port=8501", "--server.address=0.0.0.0"]
|
annotated_image.png
ADDED
|
Git LFS Details
|
models/modelYOLOv8n_datasetDIOR_epochs36_batch16_reduced_classes.pt
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:6008f5763536d0717ffd7ad570c6e498e343bcbb9941a28253de3ff2d4737c6f
|
| 3 |
+
size 36692962
|
models/modelYOLOv8n_datasetDIOR_epochs50_batch16.pt
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:9597e22b648e83f4ad5972819ae596f8b212642dd9efbfc893c6016b725826f1
|
| 3 |
+
size 6285939
|
models/modelYOLOv8n_datasetDOTAv2_epochs5_batch1.pt
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:97961c4ceb4f3b699a047c8acdce3ccce6c14d027d6247a8c5f585ece1d6de8e
|
| 3 |
+
size 36639398
|
pdm.lock
ADDED
|
@@ -0,0 +1,1311 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# This file is @generated by PDM.
|
| 2 |
+
# It is not intended for manual editing.
|
| 3 |
+
|
| 4 |
+
[metadata]
|
| 5 |
+
groups = ["default"]
|
| 6 |
+
strategy = ["inherit_metadata"]
|
| 7 |
+
lock_version = "4.5.0"
|
| 8 |
+
content_hash = "sha256:cc7de9193244e722206a0121273ce6b74ce665eca276df645eab08af60d057d7"
|
| 9 |
+
|
| 10 |
+
[[metadata.targets]]
|
| 11 |
+
requires_python = "==3.11.*"
|
| 12 |
+
|
| 13 |
+
[[package]]
|
| 14 |
+
name = "altair"
|
| 15 |
+
version = "5.5.0"
|
| 16 |
+
requires_python = ">=3.9"
|
| 17 |
+
summary = "Vega-Altair: A declarative statistical visualization library for Python."
|
| 18 |
+
groups = ["default"]
|
| 19 |
+
dependencies = [
|
| 20 |
+
"jinja2",
|
| 21 |
+
"jsonschema>=3.0",
|
| 22 |
+
"narwhals>=1.14.2",
|
| 23 |
+
"packaging",
|
| 24 |
+
"typing-extensions>=4.10.0; python_version < \"3.14\"",
|
| 25 |
+
]
|
| 26 |
+
files = [
|
| 27 |
+
{file = "altair-5.5.0-py3-none-any.whl", hash = "sha256:91a310b926508d560fe0148d02a194f38b824122641ef528113d029fcd129f8c"},
|
| 28 |
+
{file = "altair-5.5.0.tar.gz", hash = "sha256:d960ebe6178c56de3855a68c47b516be38640b73fb3b5111c2a9ca90546dd73d"},
|
| 29 |
+
]
|
| 30 |
+
|
| 31 |
+
[[package]]
|
| 32 |
+
name = "attrs"
|
| 33 |
+
version = "25.3.0"
|
| 34 |
+
requires_python = ">=3.8"
|
| 35 |
+
summary = "Classes Without Boilerplate"
|
| 36 |
+
groups = ["default"]
|
| 37 |
+
files = [
|
| 38 |
+
{file = "attrs-25.3.0-py3-none-any.whl", hash = "sha256:427318ce031701fea540783410126f03899a97ffc6f61596ad581ac2e40e3bc3"},
|
| 39 |
+
{file = "attrs-25.3.0.tar.gz", hash = "sha256:75d7cefc7fb576747b2c81b4442d4d4a1ce0900973527c011d1030fd3bf4af1b"},
|
| 40 |
+
]
|
| 41 |
+
|
| 42 |
+
[[package]]
|
| 43 |
+
name = "blinker"
|
| 44 |
+
version = "1.9.0"
|
| 45 |
+
requires_python = ">=3.9"
|
| 46 |
+
summary = "Fast, simple object-to-object and broadcast signaling"
|
| 47 |
+
groups = ["default"]
|
| 48 |
+
files = [
|
| 49 |
+
{file = "blinker-1.9.0-py3-none-any.whl", hash = "sha256:ba0efaa9080b619ff2f3459d1d500c57bddea4a6b424b60a91141db6fd2f08bc"},
|
| 50 |
+
{file = "blinker-1.9.0.tar.gz", hash = "sha256:b4ce2265a7abece45e7cc896e98dbebe6cead56bcf805a3d23136d145f5445bf"},
|
| 51 |
+
]
|
| 52 |
+
|
| 53 |
+
[[package]]
|
| 54 |
+
name = "cachetools"
|
| 55 |
+
version = "6.2.0"
|
| 56 |
+
requires_python = ">=3.9"
|
| 57 |
+
summary = "Extensible memoizing collections and decorators"
|
| 58 |
+
groups = ["default"]
|
| 59 |
+
files = [
|
| 60 |
+
{file = "cachetools-6.2.0-py3-none-any.whl", hash = "sha256:1c76a8960c0041fcc21097e357f882197c79da0dbff766e7317890a65d7d8ba6"},
|
| 61 |
+
{file = "cachetools-6.2.0.tar.gz", hash = "sha256:38b328c0889450f05f5e120f56ab68c8abaf424e1275522b138ffc93253f7e32"},
|
| 62 |
+
]
|
| 63 |
+
|
| 64 |
+
[[package]]
|
| 65 |
+
name = "certifi"
|
| 66 |
+
version = "2025.8.3"
|
| 67 |
+
requires_python = ">=3.7"
|
| 68 |
+
summary = "Python package for providing Mozilla's CA Bundle."
|
| 69 |
+
groups = ["default"]
|
| 70 |
+
files = [
|
| 71 |
+
{file = "certifi-2025.8.3-py3-none-any.whl", hash = "sha256:f6c12493cfb1b06ba2ff328595af9350c65d6644968e5d3a2ffd78699af217a5"},
|
| 72 |
+
{file = "certifi-2025.8.3.tar.gz", hash = "sha256:e564105f78ded564e3ae7c923924435e1daa7463faeab5bb932bc53ffae63407"},
|
| 73 |
+
]
|
| 74 |
+
|
| 75 |
+
[[package]]
|
| 76 |
+
name = "charset-normalizer"
|
| 77 |
+
version = "3.4.3"
|
| 78 |
+
requires_python = ">=3.7"
|
| 79 |
+
summary = "The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet."
|
| 80 |
+
groups = ["default"]
|
| 81 |
+
files = [
|
| 82 |
+
{file = "charset_normalizer-3.4.3-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:b256ee2e749283ef3ddcff51a675ff43798d92d746d1a6e4631bf8c707d22d0b"},
|
| 83 |
+
{file = "charset_normalizer-3.4.3-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:13faeacfe61784e2559e690fc53fa4c5ae97c6fcedb8eb6fb8d0a15b475d2c64"},
|
| 84 |
+
{file = "charset_normalizer-3.4.3-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:00237675befef519d9af72169d8604a067d92755e84fe76492fef5441db05b91"},
|
| 85 |
+
{file = "charset_normalizer-3.4.3-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:585f3b2a80fbd26b048a0be90c5aae8f06605d3c92615911c3a2b03a8a3b796f"},
|
| 86 |
+
{file = "charset_normalizer-3.4.3-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:0e78314bdc32fa80696f72fa16dc61168fda4d6a0c014e0380f9d02f0e5d8a07"},
|
| 87 |
+
{file = "charset_normalizer-3.4.3-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:96b2b3d1a83ad55310de8c7b4a2d04d9277d5591f40761274856635acc5fcb30"},
|
| 88 |
+
{file = "charset_normalizer-3.4.3-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:939578d9d8fd4299220161fdd76e86c6a251987476f5243e8864a7844476ba14"},
|
| 89 |
+
{file = "charset_normalizer-3.4.3-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:fd10de089bcdcd1be95a2f73dbe6254798ec1bda9f450d5828c96f93e2536b9c"},
|
| 90 |
+
{file = "charset_normalizer-3.4.3-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:1e8ac75d72fa3775e0b7cb7e4629cec13b7514d928d15ef8ea06bca03ef01cae"},
|
| 91 |
+
{file = "charset_normalizer-3.4.3-cp311-cp311-win32.whl", hash = "sha256:6cf8fd4c04756b6b60146d98cd8a77d0cdae0e1ca20329da2ac85eed779b6849"},
|
| 92 |
+
{file = "charset_normalizer-3.4.3-cp311-cp311-win_amd64.whl", hash = "sha256:31a9a6f775f9bcd865d88ee350f0ffb0e25936a7f930ca98995c05abf1faf21c"},
|
| 93 |
+
{file = "charset_normalizer-3.4.3-py3-none-any.whl", hash = "sha256:ce571ab16d890d23b5c278547ba694193a45011ff86a9162a71307ed9f86759a"},
|
| 94 |
+
{file = "charset_normalizer-3.4.3.tar.gz", hash = "sha256:6fce4b8500244f6fcb71465d4a4930d132ba9ab8e71a7859e6a5d59851068d14"},
|
| 95 |
+
]
|
| 96 |
+
|
| 97 |
+
[[package]]
|
| 98 |
+
name = "click"
|
| 99 |
+
version = "8.2.1"
|
| 100 |
+
requires_python = ">=3.10"
|
| 101 |
+
summary = "Composable command line interface toolkit"
|
| 102 |
+
groups = ["default"]
|
| 103 |
+
dependencies = [
|
| 104 |
+
"colorama; platform_system == \"Windows\"",
|
| 105 |
+
]
|
| 106 |
+
files = [
|
| 107 |
+
{file = "click-8.2.1-py3-none-any.whl", hash = "sha256:61a3265b914e850b85317d0b3109c7f8cd35a670f963866005d6ef1d5175a12b"},
|
| 108 |
+
{file = "click-8.2.1.tar.gz", hash = "sha256:27c491cc05d968d271d5a1db13e3b5a184636d9d930f148c50b038f0d0646202"},
|
| 109 |
+
]
|
| 110 |
+
|
| 111 |
+
[[package]]
|
| 112 |
+
name = "colorama"
|
| 113 |
+
version = "0.4.6"
|
| 114 |
+
requires_python = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7"
|
| 115 |
+
summary = "Cross-platform colored terminal text."
|
| 116 |
+
groups = ["default"]
|
| 117 |
+
marker = "platform_system == \"Windows\""
|
| 118 |
+
files = [
|
| 119 |
+
{file = "colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6"},
|
| 120 |
+
{file = "colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44"},
|
| 121 |
+
]
|
| 122 |
+
|
| 123 |
+
[[package]]
|
| 124 |
+
name = "contourpy"
|
| 125 |
+
version = "1.3.3"
|
| 126 |
+
requires_python = ">=3.11"
|
| 127 |
+
summary = "Python library for calculating contours of 2D quadrilateral grids"
|
| 128 |
+
groups = ["default"]
|
| 129 |
+
dependencies = [
|
| 130 |
+
"numpy>=1.25",
|
| 131 |
+
]
|
| 132 |
+
files = [
|
| 133 |
+
{file = "contourpy-1.3.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:709a48ef9a690e1343202916450bc48b9e51c049b089c7f79a267b46cffcdaa1"},
|
| 134 |
+
{file = "contourpy-1.3.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:23416f38bfd74d5d28ab8429cc4d63fa67d5068bd711a85edb1c3fb0c3e2f381"},
|
| 135 |
+
{file = "contourpy-1.3.3-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:929ddf8c4c7f348e4c0a5a3a714b5c8542ffaa8c22954862a46ca1813b667ee7"},
|
| 136 |
+
{file = "contourpy-1.3.3-cp311-cp311-manylinux_2_26_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:9e999574eddae35f1312c2b4b717b7885d4edd6cb46700e04f7f02db454e67c1"},
|
| 137 |
+
{file = "contourpy-1.3.3-cp311-cp311-manylinux_2_26_s390x.manylinux_2_28_s390x.whl", hash = "sha256:0bf67e0e3f482cb69779dd3061b534eb35ac9b17f163d851e2a547d56dba0a3a"},
|
| 138 |
+
{file = "contourpy-1.3.3-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:51e79c1f7470158e838808d4a996fa9bac72c498e93d8ebe5119bc1e6becb0db"},
|
| 139 |
+
{file = "contourpy-1.3.3-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:598c3aaece21c503615fd59c92a3598b428b2f01bfb4b8ca9c4edeecc2438620"},
|
| 140 |
+
{file = "contourpy-1.3.3-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:322ab1c99b008dad206d406bb61d014cf0174df491ae9d9d0fac6a6fda4f977f"},
|
| 141 |
+
{file = "contourpy-1.3.3-cp311-cp311-win32.whl", hash = "sha256:fd907ae12cd483cd83e414b12941c632a969171bf90fc937d0c9f268a31cafff"},
|
| 142 |
+
{file = "contourpy-1.3.3-cp311-cp311-win_amd64.whl", hash = "sha256:3519428f6be58431c56581f1694ba8e50626f2dd550af225f82fb5f5814d2a42"},
|
| 143 |
+
{file = "contourpy-1.3.3-cp311-cp311-win_arm64.whl", hash = "sha256:15ff10bfada4bf92ec8b31c62bf7c1834c244019b4a33095a68000d7075df470"},
|
| 144 |
+
{file = "contourpy-1.3.3-pp311-pypy311_pp73-macosx_10_15_x86_64.whl", hash = "sha256:cd5dfcaeb10f7b7f9dc8941717c6c2ade08f587be2226222c12b25f0483ed497"},
|
| 145 |
+
{file = "contourpy-1.3.3-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:0c1fc238306b35f246d61a1d416a627348b5cf0648648a031e14bb8705fcdfe8"},
|
| 146 |
+
{file = "contourpy-1.3.3-pp311-pypy311_pp73-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:70f9aad7de812d6541d29d2bbf8feb22ff7e1c299523db288004e3157ff4674e"},
|
| 147 |
+
{file = "contourpy-1.3.3-pp311-pypy311_pp73-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:5ed3657edf08512fc3fe81b510e35c2012fbd3081d2e26160f27ca28affec989"},
|
| 148 |
+
{file = "contourpy-1.3.3-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:3d1a3799d62d45c18bafd41c5fa05120b96a28079f2393af559b843d1a966a77"},
|
| 149 |
+
{file = "contourpy-1.3.3.tar.gz", hash = "sha256:083e12155b210502d0bca491432bb04d56dc3432f95a979b429f2848c3dbe880"},
|
| 150 |
+
]
|
| 151 |
+
|
| 152 |
+
[[package]]
|
| 153 |
+
name = "cycler"
|
| 154 |
+
version = "0.12.1"
|
| 155 |
+
requires_python = ">=3.8"
|
| 156 |
+
summary = "Composable style cycles"
|
| 157 |
+
groups = ["default"]
|
| 158 |
+
files = [
|
| 159 |
+
{file = "cycler-0.12.1-py3-none-any.whl", hash = "sha256:85cef7cff222d8644161529808465972e51340599459b8ac3ccbac5a854e0d30"},
|
| 160 |
+
{file = "cycler-0.12.1.tar.gz", hash = "sha256:88bb128f02ba341da8ef447245a9e138fae777f6a23943da4540077d3601eb1c"},
|
| 161 |
+
]
|
| 162 |
+
|
| 163 |
+
[[package]]
|
| 164 |
+
name = "decorator"
|
| 165 |
+
version = "5.2.1"
|
| 166 |
+
requires_python = ">=3.8"
|
| 167 |
+
summary = "Decorators for Humans"
|
| 168 |
+
groups = ["default"]
|
| 169 |
+
files = [
|
| 170 |
+
{file = "decorator-5.2.1-py3-none-any.whl", hash = "sha256:d316bb415a2d9e2d2b3abcc4084c6502fc09240e292cd76a76afc106a1c8e04a"},
|
| 171 |
+
{file = "decorator-5.2.1.tar.gz", hash = "sha256:65f266143752f734b0a7cc83c46f4618af75b8c5911b00ccb61d0ac9b6da0360"},
|
| 172 |
+
]
|
| 173 |
+
|
| 174 |
+
[[package]]
|
| 175 |
+
name = "filelock"
|
| 176 |
+
version = "3.19.1"
|
| 177 |
+
requires_python = ">=3.9"
|
| 178 |
+
summary = "A platform independent file lock."
|
| 179 |
+
groups = ["default"]
|
| 180 |
+
files = [
|
| 181 |
+
{file = "filelock-3.19.1-py3-none-any.whl", hash = "sha256:d38e30481def20772f5baf097c122c3babc4fcdb7e14e57049eb9d88c6dc017d"},
|
| 182 |
+
{file = "filelock-3.19.1.tar.gz", hash = "sha256:66eda1888b0171c998b35be2bcc0f6d75c388a7ce20c3f3f37aa8e96c2dddf58"},
|
| 183 |
+
]
|
| 184 |
+
|
| 185 |
+
[[package]]
|
| 186 |
+
name = "fonttools"
|
| 187 |
+
version = "4.59.2"
|
| 188 |
+
requires_python = ">=3.9"
|
| 189 |
+
summary = "Tools to manipulate font files"
|
| 190 |
+
groups = ["default"]
|
| 191 |
+
files = [
|
| 192 |
+
{file = "fonttools-4.59.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:511946e8d7ea5c0d6c7a53c4cb3ee48eda9ab9797cd9bf5d95829a398400354f"},
|
| 193 |
+
{file = "fonttools-4.59.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:8e5e2682cf7be766d84f462ba8828d01e00c8751a8e8e7ce12d7784ccb69a30d"},
|
| 194 |
+
{file = "fonttools-4.59.2-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:5729e12a982dba3eeae650de48b06f3b9ddb51e9aee2fcaf195b7d09a96250e2"},
|
| 195 |
+
{file = "fonttools-4.59.2-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:c52694eae5d652361d59ecdb5a2246bff7cff13b6367a12da8499e9df56d148d"},
|
| 196 |
+
{file = "fonttools-4.59.2-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:f1f1bbc23ba1312bd8959896f46f667753b90216852d2a8cfa2d07e0cb234144"},
|
| 197 |
+
{file = "fonttools-4.59.2-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:1a1bfe5378962825dabe741720885e8b9ae9745ec7ecc4a5ec1f1ce59a6062bf"},
|
| 198 |
+
{file = "fonttools-4.59.2-cp311-cp311-win32.whl", hash = "sha256:e937790f3c2c18a1cbc7da101550a84319eb48023a715914477d2e7faeaba570"},
|
| 199 |
+
{file = "fonttools-4.59.2-cp311-cp311-win_amd64.whl", hash = "sha256:9836394e2f4ce5f9c0a7690ee93bd90aa1adc6b054f1a57b562c5d242c903104"},
|
| 200 |
+
{file = "fonttools-4.59.2-py3-none-any.whl", hash = "sha256:8bd0f759020e87bb5d323e6283914d9bf4ae35a7307dafb2cbd1e379e720ad37"},
|
| 201 |
+
{file = "fonttools-4.59.2.tar.gz", hash = "sha256:e72c0749b06113f50bcb80332364c6be83a9582d6e3db3fe0b280f996dc2ef22"},
|
| 202 |
+
]
|
| 203 |
+
|
| 204 |
+
[[package]]
|
| 205 |
+
name = "fsspec"
|
| 206 |
+
version = "2025.9.0"
|
| 207 |
+
requires_python = ">=3.9"
|
| 208 |
+
summary = "File-system specification"
|
| 209 |
+
groups = ["default"]
|
| 210 |
+
files = [
|
| 211 |
+
{file = "fsspec-2025.9.0-py3-none-any.whl", hash = "sha256:530dc2a2af60a414a832059574df4a6e10cce927f6f4a78209390fe38955cfb7"},
|
| 212 |
+
{file = "fsspec-2025.9.0.tar.gz", hash = "sha256:19fd429483d25d28b65ec68f9f4adc16c17ea2c7c7bf54ec61360d478fb19c19"},
|
| 213 |
+
]
|
| 214 |
+
|
| 215 |
+
[[package]]
|
| 216 |
+
name = "gitdb"
|
| 217 |
+
version = "4.0.12"
|
| 218 |
+
requires_python = ">=3.7"
|
| 219 |
+
summary = "Git Object Database"
|
| 220 |
+
groups = ["default"]
|
| 221 |
+
dependencies = [
|
| 222 |
+
"smmap<6,>=3.0.1",
|
| 223 |
+
]
|
| 224 |
+
files = [
|
| 225 |
+
{file = "gitdb-4.0.12-py3-none-any.whl", hash = "sha256:67073e15955400952c6565cc3e707c554a4eea2e428946f7a4c162fab9bd9bcf"},
|
| 226 |
+
{file = "gitdb-4.0.12.tar.gz", hash = "sha256:5ef71f855d191a3326fcfbc0d5da835f26b13fbcba60c32c21091c349ffdb571"},
|
| 227 |
+
]
|
| 228 |
+
|
| 229 |
+
[[package]]
|
| 230 |
+
name = "gitpython"
|
| 231 |
+
version = "3.1.45"
|
| 232 |
+
requires_python = ">=3.7"
|
| 233 |
+
summary = "GitPython is a Python library used to interact with Git repositories"
|
| 234 |
+
groups = ["default"]
|
| 235 |
+
dependencies = [
|
| 236 |
+
"gitdb<5,>=4.0.1",
|
| 237 |
+
"typing-extensions>=3.10.0.2; python_version < \"3.10\"",
|
| 238 |
+
]
|
| 239 |
+
files = [
|
| 240 |
+
{file = "gitpython-3.1.45-py3-none-any.whl", hash = "sha256:8908cb2e02fb3b93b7eb0f2827125cb699869470432cc885f019b8fd0fccff77"},
|
| 241 |
+
{file = "gitpython-3.1.45.tar.gz", hash = "sha256:85b0ee964ceddf211c41b9f27a49086010a190fd8132a24e21f362a4b36a791c"},
|
| 242 |
+
]
|
| 243 |
+
|
| 244 |
+
[[package]]
|
| 245 |
+
name = "idna"
|
| 246 |
+
version = "3.10"
|
| 247 |
+
requires_python = ">=3.6"
|
| 248 |
+
summary = "Internationalized Domain Names in Applications (IDNA)"
|
| 249 |
+
groups = ["default"]
|
| 250 |
+
files = [
|
| 251 |
+
{file = "idna-3.10-py3-none-any.whl", hash = "sha256:946d195a0d259cbba61165e88e65941f16e9b36ea6ddb97f00452bae8b1287d3"},
|
| 252 |
+
{file = "idna-3.10.tar.gz", hash = "sha256:12f65c9b470abda6dc35cf8e63cc574b1c52b11df2c86030af0ac09b01b13ea9"},
|
| 253 |
+
]
|
| 254 |
+
|
| 255 |
+
[[package]]
|
| 256 |
+
name = "imageio"
|
| 257 |
+
version = "2.37.0"
|
| 258 |
+
requires_python = ">=3.9"
|
| 259 |
+
summary = "Library for reading and writing a wide range of image, video, scientific, and volumetric data formats."
|
| 260 |
+
groups = ["default"]
|
| 261 |
+
dependencies = [
|
| 262 |
+
"numpy",
|
| 263 |
+
"pillow>=8.3.2",
|
| 264 |
+
]
|
| 265 |
+
files = [
|
| 266 |
+
{file = "imageio-2.37.0-py3-none-any.whl", hash = "sha256:11efa15b87bc7871b61590326b2d635439acc321cf7f8ce996f812543ce10eed"},
|
| 267 |
+
{file = "imageio-2.37.0.tar.gz", hash = "sha256:71b57b3669666272c818497aebba2b4c5f20d5b37c81720e5e1a56d59c492996"},
|
| 268 |
+
]
|
| 269 |
+
|
| 270 |
+
[[package]]
|
| 271 |
+
name = "imageio-ffmpeg"
|
| 272 |
+
version = "0.6.0"
|
| 273 |
+
requires_python = ">=3.9"
|
| 274 |
+
summary = "FFMPEG wrapper for Python"
|
| 275 |
+
groups = ["default"]
|
| 276 |
+
files = [
|
| 277 |
+
{file = "imageio_ffmpeg-0.6.0-py3-none-macosx_10_9_intel.macosx_10_9_x86_64.whl", hash = "sha256:9d2baaf867088508d4a3458e61eeb30e945c4ad8016025545f66c4b5aaef0a61"},
|
| 278 |
+
{file = "imageio_ffmpeg-0.6.0-py3-none-macosx_11_0_arm64.whl", hash = "sha256:b1ae3173414b5fc5f538a726c4e48ea97edc0d2cdc11f103afee655c463fa742"},
|
| 279 |
+
{file = "imageio_ffmpeg-0.6.0-py3-none-manylinux2014_aarch64.whl", hash = "sha256:1d47bebd83d2c5fc770720d211855f208af8a596c82d17730aa51e815cdee6dc"},
|
| 280 |
+
{file = "imageio_ffmpeg-0.6.0-py3-none-manylinux2014_x86_64.whl", hash = "sha256:c7e46fcec401dd990405049d2e2f475e2b397779df2519b544b8aab515195282"},
|
| 281 |
+
{file = "imageio_ffmpeg-0.6.0-py3-none-win32.whl", hash = "sha256:196faa79366b4a82f95c0f4053191d2013f4714a715780f0ad2a68ff37483cc2"},
|
| 282 |
+
{file = "imageio_ffmpeg-0.6.0-py3-none-win_amd64.whl", hash = "sha256:02fa47c83703c37df6bfe4896aab339013f62bf02c5ebf2dce6da56af04ffc0a"},
|
| 283 |
+
{file = "imageio_ffmpeg-0.6.0.tar.gz", hash = "sha256:e2556bed8e005564a9f925bb7afa4002d82770d6b08825078b7697ab88ba1755"},
|
| 284 |
+
]
|
| 285 |
+
|
| 286 |
+
[[package]]
|
| 287 |
+
name = "jinja2"
|
| 288 |
+
version = "3.1.6"
|
| 289 |
+
requires_python = ">=3.7"
|
| 290 |
+
summary = "A very fast and expressive template engine."
|
| 291 |
+
groups = ["default"]
|
| 292 |
+
dependencies = [
|
| 293 |
+
"MarkupSafe>=2.0",
|
| 294 |
+
]
|
| 295 |
+
files = [
|
| 296 |
+
{file = "jinja2-3.1.6-py3-none-any.whl", hash = "sha256:85ece4451f492d0c13c5dd7c13a64681a86afae63a5f347908daf103ce6d2f67"},
|
| 297 |
+
{file = "jinja2-3.1.6.tar.gz", hash = "sha256:0137fb05990d35f1275a587e9aee6d56da821fc83491a0fb838183be43f66d6d"},
|
| 298 |
+
]
|
| 299 |
+
|
| 300 |
+
[[package]]
|
| 301 |
+
name = "jsonschema"
|
| 302 |
+
version = "4.25.1"
|
| 303 |
+
requires_python = ">=3.9"
|
| 304 |
+
summary = "An implementation of JSON Schema validation for Python"
|
| 305 |
+
groups = ["default"]
|
| 306 |
+
dependencies = [
|
| 307 |
+
"attrs>=22.2.0",
|
| 308 |
+
"jsonschema-specifications>=2023.03.6",
|
| 309 |
+
"referencing>=0.28.4",
|
| 310 |
+
"rpds-py>=0.7.1",
|
| 311 |
+
]
|
| 312 |
+
files = [
|
| 313 |
+
{file = "jsonschema-4.25.1-py3-none-any.whl", hash = "sha256:3fba0169e345c7175110351d456342c364814cfcf3b964ba4587f22915230a63"},
|
| 314 |
+
{file = "jsonschema-4.25.1.tar.gz", hash = "sha256:e4a9655ce0da0c0b67a085847e00a3a51449e1157f4f75e9fb5aa545e122eb85"},
|
| 315 |
+
]
|
| 316 |
+
|
| 317 |
+
[[package]]
|
| 318 |
+
name = "jsonschema-specifications"
|
| 319 |
+
version = "2025.9.1"
|
| 320 |
+
requires_python = ">=3.9"
|
| 321 |
+
summary = "The JSON Schema meta-schemas and vocabularies, exposed as a Registry"
|
| 322 |
+
groups = ["default"]
|
| 323 |
+
dependencies = [
|
| 324 |
+
"referencing>=0.31.0",
|
| 325 |
+
]
|
| 326 |
+
files = [
|
| 327 |
+
{file = "jsonschema_specifications-2025.9.1-py3-none-any.whl", hash = "sha256:98802fee3a11ee76ecaca44429fda8a41bff98b00a0f2838151b113f210cc6fe"},
|
| 328 |
+
{file = "jsonschema_specifications-2025.9.1.tar.gz", hash = "sha256:b540987f239e745613c7a9176f3edb72b832a4ac465cf02712288397832b5e8d"},
|
| 329 |
+
]
|
| 330 |
+
|
| 331 |
+
[[package]]
|
| 332 |
+
name = "kiwisolver"
|
| 333 |
+
version = "1.4.9"
|
| 334 |
+
requires_python = ">=3.10"
|
| 335 |
+
summary = "A fast implementation of the Cassowary constraint solver"
|
| 336 |
+
groups = ["default"]
|
| 337 |
+
files = [
|
| 338 |
+
{file = "kiwisolver-1.4.9-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:eb14a5da6dc7642b0f3a18f13654847cd8b7a2550e2645a5bda677862b03ba16"},
|
| 339 |
+
{file = "kiwisolver-1.4.9-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:39a219e1c81ae3b103643d2aedb90f1ef22650deb266ff12a19e7773f3e5f089"},
|
| 340 |
+
{file = "kiwisolver-1.4.9-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:2405a7d98604b87f3fc28b1716783534b1b4b8510d8142adca34ee0bc3c87543"},
|
| 341 |
+
{file = "kiwisolver-1.4.9-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:dc1ae486f9abcef254b5618dfb4113dd49f94c68e3e027d03cf0143f3f772b61"},
|
| 342 |
+
{file = "kiwisolver-1.4.9-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:8a1f570ce4d62d718dce3f179ee78dac3b545ac16c0c04bb363b7607a949c0d1"},
|
| 343 |
+
{file = "kiwisolver-1.4.9-cp311-cp311-manylinux_2_24_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:cb27e7b78d716c591e88e0a09a2139c6577865d7f2e152488c2cc6257f460872"},
|
| 344 |
+
{file = "kiwisolver-1.4.9-cp311-cp311-manylinux_2_24_s390x.manylinux_2_28_s390x.whl", hash = "sha256:15163165efc2f627eb9687ea5f3a28137217d217ac4024893d753f46bce9de26"},
|
| 345 |
+
{file = "kiwisolver-1.4.9-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:bdee92c56a71d2b24c33a7d4c2856bd6419d017e08caa7802d2963870e315028"},
|
| 346 |
+
{file = "kiwisolver-1.4.9-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:412f287c55a6f54b0650bd9b6dce5aceddb95864a1a90c87af16979d37c89771"},
|
| 347 |
+
{file = "kiwisolver-1.4.9-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:2c93f00dcba2eea70af2be5f11a830a742fe6b579a1d4e00f47760ef13be247a"},
|
| 348 |
+
{file = "kiwisolver-1.4.9-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:f117e1a089d9411663a3207ba874f31be9ac8eaa5b533787024dc07aeb74f464"},
|
| 349 |
+
{file = "kiwisolver-1.4.9-cp311-cp311-win_amd64.whl", hash = "sha256:be6a04e6c79819c9a8c2373317d19a96048e5a3f90bec587787e86a1153883c2"},
|
| 350 |
+
{file = "kiwisolver-1.4.9-cp311-cp311-win_arm64.whl", hash = "sha256:0ae37737256ba2de764ddc12aed4956460277f00c4996d51a197e72f62f5eec7"},
|
| 351 |
+
{file = "kiwisolver-1.4.9-pp311-pypy311_pp73-macosx_10_15_x86_64.whl", hash = "sha256:720e05574713db64c356e86732c0f3c5252818d05f9df320f0ad8380641acea5"},
|
| 352 |
+
{file = "kiwisolver-1.4.9-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:17680d737d5335b552994a2008fab4c851bcd7de33094a82067ef3a576ff02fa"},
|
| 353 |
+
{file = "kiwisolver-1.4.9-pp311-pypy311_pp73-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:85b5352f94e490c028926ea567fc569c52ec79ce131dadb968d3853e809518c2"},
|
| 354 |
+
{file = "kiwisolver-1.4.9-pp311-pypy311_pp73-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:464415881e4801295659462c49461a24fb107c140de781d55518c4b80cb6790f"},
|
| 355 |
+
{file = "kiwisolver-1.4.9-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:fb940820c63a9590d31d88b815e7a3aa5915cad3ce735ab45f0c730b39547de1"},
|
| 356 |
+
{file = "kiwisolver-1.4.9.tar.gz", hash = "sha256:c3b22c26c6fd6811b0ae8363b95ca8ce4ea3c202d3d0975b2914310ceb1bcc4d"},
|
| 357 |
+
]
|
| 358 |
+
|
| 359 |
+
[[package]]
|
| 360 |
+
name = "markupsafe"
|
| 361 |
+
version = "3.0.2"
|
| 362 |
+
requires_python = ">=3.9"
|
| 363 |
+
summary = "Safely add untrusted strings to HTML/XML markup."
|
| 364 |
+
groups = ["default"]
|
| 365 |
+
files = [
|
| 366 |
+
{file = "MarkupSafe-3.0.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:9025b4018f3a1314059769c7bf15441064b2207cb3f065e6ea1e7359cb46db9d"},
|
| 367 |
+
{file = "MarkupSafe-3.0.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:93335ca3812df2f366e80509ae119189886b0f3c2b81325d39efdb84a1e2ae93"},
|
| 368 |
+
{file = "MarkupSafe-3.0.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2cb8438c3cbb25e220c2ab33bb226559e7afb3baec11c4f218ffa7308603c832"},
|
| 369 |
+
{file = "MarkupSafe-3.0.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a123e330ef0853c6e822384873bef7507557d8e4a082961e1defa947aa59ba84"},
|
| 370 |
+
{file = "MarkupSafe-3.0.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1e084f686b92e5b83186b07e8a17fc09e38fff551f3602b249881fec658d3eca"},
|
| 371 |
+
{file = "MarkupSafe-3.0.2-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:d8213e09c917a951de9d09ecee036d5c7d36cb6cb7dbaece4c71a60d79fb9798"},
|
| 372 |
+
{file = "MarkupSafe-3.0.2-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:5b02fb34468b6aaa40dfc198d813a641e3a63b98c2b05a16b9f80b7ec314185e"},
|
| 373 |
+
{file = "MarkupSafe-3.0.2-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:0bff5e0ae4ef2e1ae4fdf2dfd5b76c75e5c2fa4132d05fc1b0dabcd20c7e28c4"},
|
| 374 |
+
{file = "MarkupSafe-3.0.2-cp311-cp311-win32.whl", hash = "sha256:6c89876f41da747c8d3677a2b540fb32ef5715f97b66eeb0c6b66f5e3ef6f59d"},
|
| 375 |
+
{file = "MarkupSafe-3.0.2-cp311-cp311-win_amd64.whl", hash = "sha256:70a87b411535ccad5ef2f1df5136506a10775d267e197e4cf531ced10537bd6b"},
|
| 376 |
+
{file = "markupsafe-3.0.2.tar.gz", hash = "sha256:ee55d3edf80167e48ea11a923c7386f4669df67d7994554387f84e7d8b0a2bf0"},
|
| 377 |
+
]
|
| 378 |
+
|
| 379 |
+
[[package]]
|
| 380 |
+
name = "matplotlib"
|
| 381 |
+
version = "3.10.6"
|
| 382 |
+
requires_python = ">=3.10"
|
| 383 |
+
summary = "Python plotting package"
|
| 384 |
+
groups = ["default"]
|
| 385 |
+
dependencies = [
|
| 386 |
+
"contourpy>=1.0.1",
|
| 387 |
+
"cycler>=0.10",
|
| 388 |
+
"fonttools>=4.22.0",
|
| 389 |
+
"kiwisolver>=1.3.1",
|
| 390 |
+
"numpy>=1.23",
|
| 391 |
+
"packaging>=20.0",
|
| 392 |
+
"pillow>=8",
|
| 393 |
+
"pyparsing>=2.3.1",
|
| 394 |
+
"python-dateutil>=2.7",
|
| 395 |
+
]
|
| 396 |
+
files = [
|
| 397 |
+
{file = "matplotlib-3.10.6-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:905b60d1cb0ee604ce65b297b61cf8be9f4e6cfecf95a3fe1c388b5266bc8f4f"},
|
| 398 |
+
{file = "matplotlib-3.10.6-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:7bac38d816637343e53d7185d0c66677ff30ffb131044a81898b5792c956ba76"},
|
| 399 |
+
{file = "matplotlib-3.10.6-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:942a8de2b5bfff1de31d95722f702e2966b8a7e31f4e68f7cd963c7cd8861cf6"},
|
| 400 |
+
{file = "matplotlib-3.10.6-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:a3276c85370bc0dfca051ec65c5817d1e0f8f5ce1b7787528ec8ed2d524bbc2f"},
|
| 401 |
+
{file = "matplotlib-3.10.6-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:9df5851b219225731f564e4b9e7f2ac1e13c9e6481f941b5631a0f8e2d9387ce"},
|
| 402 |
+
{file = "matplotlib-3.10.6-cp311-cp311-win_amd64.whl", hash = "sha256:abb5d9478625dd9c9eb51a06d39aae71eda749ae9b3138afb23eb38824026c7e"},
|
| 403 |
+
{file = "matplotlib-3.10.6-cp311-cp311-win_arm64.whl", hash = "sha256:886f989ccfae63659183173bb3fced7fd65e9eb793c3cc21c273add368536951"},
|
| 404 |
+
{file = "matplotlib-3.10.6-pp311-pypy311_pp73-macosx_10_15_x86_64.whl", hash = "sha256:f2d684c3204fa62421bbf770ddfebc6b50130f9cad65531eeba19236d73bb488"},
|
| 405 |
+
{file = "matplotlib-3.10.6-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:6f4a69196e663a41d12a728fab8751177215357906436804217d6d9cf0d4d6cf"},
|
| 406 |
+
{file = "matplotlib-3.10.6-pp311-pypy311_pp73-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:4d6ca6ef03dfd269f4ead566ec6f3fb9becf8dab146fb999022ed85ee9f6b3eb"},
|
| 407 |
+
{file = "matplotlib-3.10.6.tar.gz", hash = "sha256:ec01b645840dd1996df21ee37f208cd8ba57644779fa20464010638013d3203c"},
|
| 408 |
+
]
|
| 409 |
+
|
| 410 |
+
[[package]]
|
| 411 |
+
name = "moviepy"
|
| 412 |
+
version = "2.2.1"
|
| 413 |
+
summary = "Video editing with Python"
|
| 414 |
+
groups = ["default"]
|
| 415 |
+
dependencies = [
|
| 416 |
+
"decorator<6.0,>=4.0.2",
|
| 417 |
+
"imageio-ffmpeg>=0.2.0",
|
| 418 |
+
"imageio<3.0,>=2.5",
|
| 419 |
+
"numpy>=1.25.0",
|
| 420 |
+
"pillow<12.0,>=9.2.0",
|
| 421 |
+
"proglog<=1.0.0",
|
| 422 |
+
"python-dotenv>=0.10",
|
| 423 |
+
]
|
| 424 |
+
files = [
|
| 425 |
+
{file = "moviepy-2.2.1-py3-none-any.whl", hash = "sha256:6b56803fec2ac54b557404126ac1160e65448e03798fa282bd23e8fab3795060"},
|
| 426 |
+
{file = "moviepy-2.2.1.tar.gz", hash = "sha256:c80cb56815ece94e5e3e2d361aa40070eeb30a09d23a24c4e684d03e16deacb1"},
|
| 427 |
+
]
|
| 428 |
+
|
| 429 |
+
[[package]]
|
| 430 |
+
name = "mpmath"
|
| 431 |
+
version = "1.3.0"
|
| 432 |
+
summary = "Python library for arbitrary-precision floating-point arithmetic"
|
| 433 |
+
groups = ["default"]
|
| 434 |
+
files = [
|
| 435 |
+
{file = "mpmath-1.3.0-py3-none-any.whl", hash = "sha256:a0b2b9fe80bbcd81a6647ff13108738cfb482d481d826cc0e02f5b35e5c88d2c"},
|
| 436 |
+
{file = "mpmath-1.3.0.tar.gz", hash = "sha256:7a28eb2a9774d00c7bc92411c19a89209d5da7c4c9a9e227be8330a23a25b91f"},
|
| 437 |
+
]
|
| 438 |
+
|
| 439 |
+
[[package]]
|
| 440 |
+
name = "narwhals"
|
| 441 |
+
version = "2.4.0"
|
| 442 |
+
requires_python = ">=3.9"
|
| 443 |
+
summary = "Extremely lightweight compatibility layer between dataframe libraries"
|
| 444 |
+
groups = ["default"]
|
| 445 |
+
files = [
|
| 446 |
+
{file = "narwhals-2.4.0-py3-none-any.whl", hash = "sha256:06d958b03e3e3725ae16feee6737b4970991bb52e8465ef75f388c574732ac59"},
|
| 447 |
+
{file = "narwhals-2.4.0.tar.gz", hash = "sha256:a71931f7fb3c8e082cbe18ef0740644d87d60eba841ddfa9ba9394de1d43062f"},
|
| 448 |
+
]
|
| 449 |
+
|
| 450 |
+
[[package]]
|
| 451 |
+
name = "networkx"
|
| 452 |
+
version = "3.5"
|
| 453 |
+
requires_python = ">=3.11"
|
| 454 |
+
summary = "Python package for creating and manipulating graphs and networks"
|
| 455 |
+
groups = ["default"]
|
| 456 |
+
files = [
|
| 457 |
+
{file = "networkx-3.5-py3-none-any.whl", hash = "sha256:0030d386a9a06dee3565298b4a734b68589749a544acbb6c412dc9e2489ec6ec"},
|
| 458 |
+
{file = "networkx-3.5.tar.gz", hash = "sha256:d4c6f9cf81f52d69230866796b82afbccdec3db7ae4fbd1b65ea750feed50037"},
|
| 459 |
+
]
|
| 460 |
+
|
| 461 |
+
[[package]]
|
| 462 |
+
name = "numpy"
|
| 463 |
+
version = "2.2.6"
|
| 464 |
+
requires_python = ">=3.10"
|
| 465 |
+
summary = "Fundamental package for array computing in Python"
|
| 466 |
+
groups = ["default"]
|
| 467 |
+
files = [
|
| 468 |
+
{file = "numpy-2.2.6-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:f9f1adb22318e121c5c69a09142811a201ef17ab257a1e66ca3025065b7f53ae"},
|
| 469 |
+
{file = "numpy-2.2.6-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:c820a93b0255bc360f53eca31a0e676fd1101f673dda8da93454a12e23fc5f7a"},
|
| 470 |
+
{file = "numpy-2.2.6-cp311-cp311-macosx_14_0_arm64.whl", hash = "sha256:3d70692235e759f260c3d837193090014aebdf026dfd167834bcba43e30c2a42"},
|
| 471 |
+
{file = "numpy-2.2.6-cp311-cp311-macosx_14_0_x86_64.whl", hash = "sha256:481b49095335f8eed42e39e8041327c05b0f6f4780488f61286ed3c01368d491"},
|
| 472 |
+
{file = "numpy-2.2.6-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b64d8d4d17135e00c8e346e0a738deb17e754230d7e0810ac5012750bbd85a5a"},
|
| 473 |
+
{file = "numpy-2.2.6-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ba10f8411898fc418a521833e014a77d3ca01c15b0c6cdcce6a0d2897e6dbbdf"},
|
| 474 |
+
{file = "numpy-2.2.6-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:bd48227a919f1bafbdda0583705e547892342c26fb127219d60a5c36882609d1"},
|
| 475 |
+
{file = "numpy-2.2.6-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:9551a499bf125c1d4f9e250377c1ee2eddd02e01eac6644c080162c0c51778ab"},
|
| 476 |
+
{file = "numpy-2.2.6-cp311-cp311-win32.whl", hash = "sha256:0678000bb9ac1475cd454c6b8c799206af8107e310843532b04d49649c717a47"},
|
| 477 |
+
{file = "numpy-2.2.6-cp311-cp311-win_amd64.whl", hash = "sha256:e8213002e427c69c45a52bbd94163084025f533a55a59d6f9c5b820774ef3303"},
|
| 478 |
+
{file = "numpy-2.2.6.tar.gz", hash = "sha256:e29554e2bef54a90aa5cc07da6ce955accb83f21ab5de01a62c8478897b264fd"},
|
| 479 |
+
]
|
| 480 |
+
|
| 481 |
+
[[package]]
|
| 482 |
+
name = "nvidia-cublas-cu12"
|
| 483 |
+
version = "12.8.4.1"
|
| 484 |
+
requires_python = ">=3"
|
| 485 |
+
summary = "CUBLAS native runtime libraries"
|
| 486 |
+
groups = ["default"]
|
| 487 |
+
marker = "platform_system == \"Linux\" and platform_machine == \"x86_64\""
|
| 488 |
+
files = [
|
| 489 |
+
{file = "nvidia_cublas_cu12-12.8.4.1-py3-none-manylinux_2_27_aarch64.whl", hash = "sha256:b86f6dd8935884615a0683b663891d43781b819ac4f2ba2b0c9604676af346d0"},
|
| 490 |
+
{file = "nvidia_cublas_cu12-12.8.4.1-py3-none-manylinux_2_27_x86_64.whl", hash = "sha256:8ac4e771d5a348c551b2a426eda6193c19aa630236b418086020df5ba9667142"},
|
| 491 |
+
{file = "nvidia_cublas_cu12-12.8.4.1-py3-none-win_amd64.whl", hash = "sha256:47e9b82132fa8d2b4944e708049229601448aaad7e6f296f630f2d1a32de35af"},
|
| 492 |
+
]
|
| 493 |
+
|
| 494 |
+
[[package]]
|
| 495 |
+
name = "nvidia-cuda-cupti-cu12"
|
| 496 |
+
version = "12.8.90"
|
| 497 |
+
requires_python = ">=3"
|
| 498 |
+
summary = "CUDA profiling tools runtime libs."
|
| 499 |
+
groups = ["default"]
|
| 500 |
+
marker = "platform_system == \"Linux\" and platform_machine == \"x86_64\""
|
| 501 |
+
files = [
|
| 502 |
+
{file = "nvidia_cuda_cupti_cu12-12.8.90-py3-none-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:4412396548808ddfed3f17a467b104ba7751e6b58678a4b840675c56d21cf7ed"},
|
| 503 |
+
{file = "nvidia_cuda_cupti_cu12-12.8.90-py3-none-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:ea0cb07ebda26bb9b29ba82cda34849e73c166c18162d3913575b0c9db9a6182"},
|
| 504 |
+
{file = "nvidia_cuda_cupti_cu12-12.8.90-py3-none-win_amd64.whl", hash = "sha256:bb479dcdf7e6d4f8b0b01b115260399bf34154a1a2e9fe11c85c517d87efd98e"},
|
| 505 |
+
]
|
| 506 |
+
|
| 507 |
+
[[package]]
|
| 508 |
+
name = "nvidia-cuda-nvrtc-cu12"
|
| 509 |
+
version = "12.8.93"
|
| 510 |
+
requires_python = ">=3"
|
| 511 |
+
summary = "NVRTC native runtime libraries"
|
| 512 |
+
groups = ["default"]
|
| 513 |
+
marker = "platform_system == \"Linux\" and platform_machine == \"x86_64\""
|
| 514 |
+
files = [
|
| 515 |
+
{file = "nvidia_cuda_nvrtc_cu12-12.8.93-py3-none-manylinux2010_x86_64.manylinux_2_12_x86_64.whl", hash = "sha256:a7756528852ef889772a84c6cd89d41dfa74667e24cca16bb31f8f061e3e9994"},
|
| 516 |
+
{file = "nvidia_cuda_nvrtc_cu12-12.8.93-py3-none-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:fc1fec1e1637854b4c0a65fb9a8346b51dd9ee69e61ebaccc82058441f15bce8"},
|
| 517 |
+
{file = "nvidia_cuda_nvrtc_cu12-12.8.93-py3-none-win_amd64.whl", hash = "sha256:7a4b6b2904850fe78e0bd179c4b655c404d4bb799ef03ddc60804247099ae909"},
|
| 518 |
+
]
|
| 519 |
+
|
| 520 |
+
[[package]]
|
| 521 |
+
name = "nvidia-cuda-runtime-cu12"
|
| 522 |
+
version = "12.8.90"
|
| 523 |
+
requires_python = ">=3"
|
| 524 |
+
summary = "CUDA Runtime native Libraries"
|
| 525 |
+
groups = ["default"]
|
| 526 |
+
marker = "platform_system == \"Linux\" and platform_machine == \"x86_64\""
|
| 527 |
+
files = [
|
| 528 |
+
{file = "nvidia_cuda_runtime_cu12-12.8.90-py3-none-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:52bf7bbee900262ffefe5e9d5a2a69a30d97e2bc5bb6cc866688caa976966e3d"},
|
| 529 |
+
{file = "nvidia_cuda_runtime_cu12-12.8.90-py3-none-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:adade8dcbd0edf427b7204d480d6066d33902cab2a4707dcfc48a2d0fd44ab90"},
|
| 530 |
+
{file = "nvidia_cuda_runtime_cu12-12.8.90-py3-none-win_amd64.whl", hash = "sha256:c0c6027f01505bfed6c3b21ec546f69c687689aad5f1a377554bc6ca4aa993a8"},
|
| 531 |
+
]
|
| 532 |
+
|
| 533 |
+
[[package]]
|
| 534 |
+
name = "nvidia-cudnn-cu12"
|
| 535 |
+
version = "9.10.2.21"
|
| 536 |
+
requires_python = ">=3"
|
| 537 |
+
summary = "cuDNN runtime libraries"
|
| 538 |
+
groups = ["default"]
|
| 539 |
+
marker = "platform_system == \"Linux\" and platform_machine == \"x86_64\""
|
| 540 |
+
dependencies = [
|
| 541 |
+
"nvidia-cublas-cu12",
|
| 542 |
+
]
|
| 543 |
+
files = [
|
| 544 |
+
{file = "nvidia_cudnn_cu12-9.10.2.21-py3-none-manylinux_2_27_aarch64.whl", hash = "sha256:c9132cc3f8958447b4910a1720036d9eff5928cc3179b0a51fb6d167c6cc87d8"},
|
| 545 |
+
{file = "nvidia_cudnn_cu12-9.10.2.21-py3-none-manylinux_2_27_x86_64.whl", hash = "sha256:949452be657fa16687d0930933f032835951ef0892b37d2d53824d1a84dc97a8"},
|
| 546 |
+
{file = "nvidia_cudnn_cu12-9.10.2.21-py3-none-win_amd64.whl", hash = "sha256:c6288de7d63e6cf62988f0923f96dc339cea362decb1bf5b3141883392a7d65e"},
|
| 547 |
+
]
|
| 548 |
+
|
| 549 |
+
[[package]]
|
| 550 |
+
name = "nvidia-cufft-cu12"
|
| 551 |
+
version = "11.3.3.83"
|
| 552 |
+
requires_python = ">=3"
|
| 553 |
+
summary = "CUFFT native runtime libraries"
|
| 554 |
+
groups = ["default"]
|
| 555 |
+
marker = "platform_system == \"Linux\" and platform_machine == \"x86_64\""
|
| 556 |
+
dependencies = [
|
| 557 |
+
"nvidia-nvjitlink-cu12",
|
| 558 |
+
]
|
| 559 |
+
files = [
|
| 560 |
+
{file = "nvidia_cufft_cu12-11.3.3.83-py3-none-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:848ef7224d6305cdb2a4df928759dca7b1201874787083b6e7550dd6765ce69a"},
|
| 561 |
+
{file = "nvidia_cufft_cu12-11.3.3.83-py3-none-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:4d2dd21ec0b88cf61b62e6b43564355e5222e4a3fb394cac0db101f2dd0d4f74"},
|
| 562 |
+
{file = "nvidia_cufft_cu12-11.3.3.83-py3-none-win_amd64.whl", hash = "sha256:7a64a98ef2a7c47f905aaf8931b69a3a43f27c55530c698bb2ed7c75c0b42cb7"},
|
| 563 |
+
]
|
| 564 |
+
|
| 565 |
+
[[package]]
|
| 566 |
+
name = "nvidia-cufile-cu12"
|
| 567 |
+
version = "1.13.1.3"
|
| 568 |
+
requires_python = ">=3"
|
| 569 |
+
summary = "cuFile GPUDirect libraries"
|
| 570 |
+
groups = ["default"]
|
| 571 |
+
marker = "platform_system == \"Linux\" and platform_machine == \"x86_64\""
|
| 572 |
+
files = [
|
| 573 |
+
{file = "nvidia_cufile_cu12-1.13.1.3-py3-none-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:1d069003be650e131b21c932ec3d8969c1715379251f8d23a1860554b1cb24fc"},
|
| 574 |
+
{file = "nvidia_cufile_cu12-1.13.1.3-py3-none-manylinux_2_27_aarch64.whl", hash = "sha256:4beb6d4cce47c1a0f1013d72e02b0994730359e17801d395bdcbf20cfb3bb00a"},
|
| 575 |
+
]
|
| 576 |
+
|
| 577 |
+
[[package]]
|
| 578 |
+
name = "nvidia-curand-cu12"
|
| 579 |
+
version = "10.3.9.90"
|
| 580 |
+
requires_python = ">=3"
|
| 581 |
+
summary = "CURAND native runtime libraries"
|
| 582 |
+
groups = ["default"]
|
| 583 |
+
marker = "platform_system == \"Linux\" and platform_machine == \"x86_64\""
|
| 584 |
+
files = [
|
| 585 |
+
{file = "nvidia_curand_cu12-10.3.9.90-py3-none-manylinux_2_27_aarch64.whl", hash = "sha256:dfab99248034673b779bc6decafdc3404a8a6f502462201f2f31f11354204acd"},
|
| 586 |
+
{file = "nvidia_curand_cu12-10.3.9.90-py3-none-manylinux_2_27_x86_64.whl", hash = "sha256:b32331d4f4df5d6eefa0554c565b626c7216f87a06a4f56fab27c3b68a830ec9"},
|
| 587 |
+
{file = "nvidia_curand_cu12-10.3.9.90-py3-none-win_amd64.whl", hash = "sha256:f149a8ca457277da854f89cf282d6ef43176861926c7ac85b2a0fbd237c587ec"},
|
| 588 |
+
]
|
| 589 |
+
|
| 590 |
+
[[package]]
|
| 591 |
+
name = "nvidia-cusolver-cu12"
|
| 592 |
+
version = "11.7.3.90"
|
| 593 |
+
requires_python = ">=3"
|
| 594 |
+
summary = "CUDA solver native runtime libraries"
|
| 595 |
+
groups = ["default"]
|
| 596 |
+
marker = "platform_system == \"Linux\" and platform_machine == \"x86_64\""
|
| 597 |
+
dependencies = [
|
| 598 |
+
"nvidia-cublas-cu12",
|
| 599 |
+
"nvidia-cusparse-cu12",
|
| 600 |
+
"nvidia-nvjitlink-cu12",
|
| 601 |
+
]
|
| 602 |
+
files = [
|
| 603 |
+
{file = "nvidia_cusolver_cu12-11.7.3.90-py3-none-manylinux_2_27_aarch64.whl", hash = "sha256:db9ed69dbef9715071232caa9b69c52ac7de3a95773c2db65bdba85916e4e5c0"},
|
| 604 |
+
{file = "nvidia_cusolver_cu12-11.7.3.90-py3-none-manylinux_2_27_x86_64.whl", hash = "sha256:4376c11ad263152bd50ea295c05370360776f8c3427b30991df774f9fb26c450"},
|
| 605 |
+
{file = "nvidia_cusolver_cu12-11.7.3.90-py3-none-win_amd64.whl", hash = "sha256:4a550db115fcabc4d495eb7d39ac8b58d4ab5d8e63274d3754df1c0ad6a22d34"},
|
| 606 |
+
]
|
| 607 |
+
|
| 608 |
+
[[package]]
|
| 609 |
+
name = "nvidia-cusparse-cu12"
|
| 610 |
+
version = "12.5.8.93"
|
| 611 |
+
requires_python = ">=3"
|
| 612 |
+
summary = "CUSPARSE native runtime libraries"
|
| 613 |
+
groups = ["default"]
|
| 614 |
+
marker = "platform_system == \"Linux\" and platform_machine == \"x86_64\""
|
| 615 |
+
dependencies = [
|
| 616 |
+
"nvidia-nvjitlink-cu12",
|
| 617 |
+
]
|
| 618 |
+
files = [
|
| 619 |
+
{file = "nvidia_cusparse_cu12-12.5.8.93-py3-none-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:9b6c161cb130be1a07a27ea6923df8141f3c295852f4b260c65f18f3e0a091dc"},
|
| 620 |
+
{file = "nvidia_cusparse_cu12-12.5.8.93-py3-none-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:1ec05d76bbbd8b61b06a80e1eaf8cf4959c3d4ce8e711b65ebd0443bb0ebb13b"},
|
| 621 |
+
{file = "nvidia_cusparse_cu12-12.5.8.93-py3-none-win_amd64.whl", hash = "sha256:9a33604331cb2cac199f2e7f5104dfbb8a5a898c367a53dfda9ff2acb6b6b4dd"},
|
| 622 |
+
]
|
| 623 |
+
|
| 624 |
+
[[package]]
|
| 625 |
+
name = "nvidia-cusparselt-cu12"
|
| 626 |
+
version = "0.7.1"
|
| 627 |
+
summary = "NVIDIA cuSPARSELt"
|
| 628 |
+
groups = ["default"]
|
| 629 |
+
marker = "platform_system == \"Linux\" and platform_machine == \"x86_64\""
|
| 630 |
+
files = [
|
| 631 |
+
{file = "nvidia_cusparselt_cu12-0.7.1-py3-none-manylinux2014_aarch64.whl", hash = "sha256:8878dce784d0fac90131b6817b607e803c36e629ba34dc5b433471382196b6a5"},
|
| 632 |
+
{file = "nvidia_cusparselt_cu12-0.7.1-py3-none-manylinux2014_x86_64.whl", hash = "sha256:f1bb701d6b930d5a7cea44c19ceb973311500847f81b634d802b7b539dc55623"},
|
| 633 |
+
{file = "nvidia_cusparselt_cu12-0.7.1-py3-none-win_amd64.whl", hash = "sha256:f67fbb5831940ec829c9117b7f33807db9f9678dc2a617fbe781cac17b4e1075"},
|
| 634 |
+
]
|
| 635 |
+
|
| 636 |
+
[[package]]
|
| 637 |
+
name = "nvidia-nccl-cu12"
|
| 638 |
+
version = "2.27.3"
|
| 639 |
+
requires_python = ">=3"
|
| 640 |
+
summary = "NVIDIA Collective Communication Library (NCCL) Runtime"
|
| 641 |
+
groups = ["default"]
|
| 642 |
+
marker = "platform_system == \"Linux\" and platform_machine == \"x86_64\""
|
| 643 |
+
files = [
|
| 644 |
+
{file = "nvidia_nccl_cu12-2.27.3-py3-none-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:9ddf1a245abc36c550870f26d537a9b6087fb2e2e3d6e0ef03374c6fd19d984f"},
|
| 645 |
+
{file = "nvidia_nccl_cu12-2.27.3-py3-none-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:adf27ccf4238253e0b826bce3ff5fa532d65fc42322c8bfdfaf28024c0fbe039"},
|
| 646 |
+
]
|
| 647 |
+
|
| 648 |
+
[[package]]
|
| 649 |
+
name = "nvidia-nvjitlink-cu12"
|
| 650 |
+
version = "12.8.93"
|
| 651 |
+
requires_python = ">=3"
|
| 652 |
+
summary = "Nvidia JIT LTO Library"
|
| 653 |
+
groups = ["default"]
|
| 654 |
+
marker = "platform_system == \"Linux\" and platform_machine == \"x86_64\""
|
| 655 |
+
files = [
|
| 656 |
+
{file = "nvidia_nvjitlink_cu12-12.8.93-py3-none-manylinux2010_x86_64.manylinux_2_12_x86_64.whl", hash = "sha256:81ff63371a7ebd6e6451970684f916be2eab07321b73c9d244dc2b4da7f73b88"},
|
| 657 |
+
{file = "nvidia_nvjitlink_cu12-12.8.93-py3-none-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:adccd7161ace7261e01bb91e44e88da350895c270d23f744f0820c818b7229e7"},
|
| 658 |
+
{file = "nvidia_nvjitlink_cu12-12.8.93-py3-none-win_amd64.whl", hash = "sha256:bd93fbeeee850917903583587f4fc3a4eafa022e34572251368238ab5e6bd67f"},
|
| 659 |
+
]
|
| 660 |
+
|
| 661 |
+
[[package]]
|
| 662 |
+
name = "nvidia-nvtx-cu12"
|
| 663 |
+
version = "12.8.90"
|
| 664 |
+
requires_python = ">=3"
|
| 665 |
+
summary = "NVIDIA Tools Extension"
|
| 666 |
+
groups = ["default"]
|
| 667 |
+
marker = "platform_system == \"Linux\" and platform_machine == \"x86_64\""
|
| 668 |
+
files = [
|
| 669 |
+
{file = "nvidia_nvtx_cu12-12.8.90-py3-none-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:d7ad891da111ebafbf7e015d34879f7112832fc239ff0d7d776b6cb685274615"},
|
| 670 |
+
{file = "nvidia_nvtx_cu12-12.8.90-py3-none-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:5b17e2001cc0d751a5bc2c6ec6d26ad95913324a4adb86788c944f8ce9ba441f"},
|
| 671 |
+
{file = "nvidia_nvtx_cu12-12.8.90-py3-none-win_amd64.whl", hash = "sha256:619c8304aedc69f02ea82dd244541a83c3d9d40993381b3b590f1adaed3db41e"},
|
| 672 |
+
]
|
| 673 |
+
|
| 674 |
+
[[package]]
|
| 675 |
+
name = "opencv-python"
|
| 676 |
+
version = "4.12.0.88"
|
| 677 |
+
requires_python = ">=3.6"
|
| 678 |
+
summary = "Wrapper package for OpenCV python bindings."
|
| 679 |
+
groups = ["default"]
|
| 680 |
+
dependencies = [
|
| 681 |
+
"numpy<2.0; python_version < \"3.9\"",
|
| 682 |
+
"numpy<2.3.0,>=2; python_version >= \"3.9\"",
|
| 683 |
+
]
|
| 684 |
+
files = [
|
| 685 |
+
{file = "opencv-python-4.12.0.88.tar.gz", hash = "sha256:8b738389cede219405f6f3880b851efa3415ccd674752219377353f017d2994d"},
|
| 686 |
+
{file = "opencv_python-4.12.0.88-cp37-abi3-macosx_13_0_arm64.whl", hash = "sha256:f9a1f08883257b95a5764bf517a32d75aec325319c8ed0f89739a57fae9e92a5"},
|
| 687 |
+
{file = "opencv_python-4.12.0.88-cp37-abi3-macosx_13_0_x86_64.whl", hash = "sha256:812eb116ad2b4de43ee116fcd8991c3a687f099ada0b04e68f64899c09448e81"},
|
| 688 |
+
{file = "opencv_python-4.12.0.88-cp37-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:51fd981c7df6af3e8f70b1556696b05224c4e6b6777bdd2a46b3d4fb09de1a92"},
|
| 689 |
+
{file = "opencv_python-4.12.0.88-cp37-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:092c16da4c5a163a818f120c22c5e4a2f96e0db4f24e659c701f1fe629a690f9"},
|
| 690 |
+
{file = "opencv_python-4.12.0.88-cp37-abi3-win32.whl", hash = "sha256:ff554d3f725b39878ac6a2e1fa232ec509c36130927afc18a1719ebf4fbf4357"},
|
| 691 |
+
{file = "opencv_python-4.12.0.88-cp37-abi3-win_amd64.whl", hash = "sha256:d98edb20aa932fd8ebd276a72627dad9dc097695b3d435a4257557bbb49a79d2"},
|
| 692 |
+
]
|
| 693 |
+
|
| 694 |
+
[[package]]
|
| 695 |
+
name = "packaging"
|
| 696 |
+
version = "25.0"
|
| 697 |
+
requires_python = ">=3.8"
|
| 698 |
+
summary = "Core utilities for Python packages"
|
| 699 |
+
groups = ["default"]
|
| 700 |
+
files = [
|
| 701 |
+
{file = "packaging-25.0-py3-none-any.whl", hash = "sha256:29572ef2b1f17581046b3a2227d5c611fb25ec70ca1ba8554b24b0e69331a484"},
|
| 702 |
+
{file = "packaging-25.0.tar.gz", hash = "sha256:d443872c98d677bf60f6a1f2f8c1cb748e8fe762d2bf9d3148b5599295b0fc4f"},
|
| 703 |
+
]
|
| 704 |
+
|
| 705 |
+
[[package]]
|
| 706 |
+
name = "pandas"
|
| 707 |
+
version = "2.3.2"
|
| 708 |
+
requires_python = ">=3.9"
|
| 709 |
+
summary = "Powerful data structures for data analysis, time series, and statistics"
|
| 710 |
+
groups = ["default"]
|
| 711 |
+
dependencies = [
|
| 712 |
+
"numpy>=1.22.4; python_version < \"3.11\"",
|
| 713 |
+
"numpy>=1.23.2; python_version == \"3.11\"",
|
| 714 |
+
"numpy>=1.26.0; python_version >= \"3.12\"",
|
| 715 |
+
"python-dateutil>=2.8.2",
|
| 716 |
+
"pytz>=2020.1",
|
| 717 |
+
"tzdata>=2022.7",
|
| 718 |
+
]
|
| 719 |
+
files = [
|
| 720 |
+
{file = "pandas-2.3.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:1333e9c299adcbb68ee89a9bb568fc3f20f9cbb419f1dd5225071e6cddb2a743"},
|
| 721 |
+
{file = "pandas-2.3.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:76972bcbd7de8e91ad5f0ca884a9f2c477a2125354af624e022c49e5bd0dfff4"},
|
| 722 |
+
{file = "pandas-2.3.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b98bdd7c456a05eef7cd21fd6b29e3ca243591fe531c62be94a2cc987efb5ac2"},
|
| 723 |
+
{file = "pandas-2.3.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1d81573b3f7db40d020983f78721e9bfc425f411e616ef019a10ebf597aedb2e"},
|
| 724 |
+
{file = "pandas-2.3.2-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:e190b738675a73b581736cc8ec71ae113d6c3768d0bd18bffa5b9a0927b0b6ea"},
|
| 725 |
+
{file = "pandas-2.3.2-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:c253828cb08f47488d60f43c5fc95114c771bbfff085da54bfc79cb4f9e3a372"},
|
| 726 |
+
{file = "pandas-2.3.2-cp311-cp311-win_amd64.whl", hash = "sha256:9467697b8083f9667b212633ad6aa4ab32436dcbaf4cd57325debb0ddef2012f"},
|
| 727 |
+
{file = "pandas-2.3.2.tar.gz", hash = "sha256:ab7b58f8f82706890924ccdfb5f48002b83d2b5a3845976a9fb705d36c34dcdb"},
|
| 728 |
+
]
|
| 729 |
+
|
| 730 |
+
[[package]]
|
| 731 |
+
name = "pillow"
|
| 732 |
+
version = "11.3.0"
|
| 733 |
+
requires_python = ">=3.9"
|
| 734 |
+
summary = "Python Imaging Library (Fork)"
|
| 735 |
+
groups = ["default"]
|
| 736 |
+
files = [
|
| 737 |
+
{file = "pillow-11.3.0-cp311-cp311-macosx_10_10_x86_64.whl", hash = "sha256:1cd110edf822773368b396281a2293aeb91c90a2db00d78ea43e7e861631b722"},
|
| 738 |
+
{file = "pillow-11.3.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:9c412fddd1b77a75aa904615ebaa6001f169b26fd467b4be93aded278266b288"},
|
| 739 |
+
{file = "pillow-11.3.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:7d1aa4de119a0ecac0a34a9c8bde33f34022e2e8f99104e47a3ca392fd60e37d"},
|
| 740 |
+
{file = "pillow-11.3.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:91da1d88226663594e3f6b4b8c3c8d85bd504117d043740a8e0ec449087cc494"},
|
| 741 |
+
{file = "pillow-11.3.0-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:643f189248837533073c405ec2f0bb250ba54598cf80e8c1e043381a60632f58"},
|
| 742 |
+
{file = "pillow-11.3.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:106064daa23a745510dabce1d84f29137a37224831d88eb4ce94bb187b1d7e5f"},
|
| 743 |
+
{file = "pillow-11.3.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:cd8ff254faf15591e724dc7c4ddb6bf4793efcbe13802a4ae3e863cd300b493e"},
|
| 744 |
+
{file = "pillow-11.3.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:932c754c2d51ad2b2271fd01c3d121daaa35e27efae2a616f77bf164bc0b3e94"},
|
| 745 |
+
{file = "pillow-11.3.0-cp311-cp311-win32.whl", hash = "sha256:b4b8f3efc8d530a1544e5962bd6b403d5f7fe8b9e08227c6b255f98ad82b4ba0"},
|
| 746 |
+
{file = "pillow-11.3.0-cp311-cp311-win_amd64.whl", hash = "sha256:1a992e86b0dd7aeb1f053cd506508c0999d710a8f07b4c791c63843fc6a807ac"},
|
| 747 |
+
{file = "pillow-11.3.0-cp311-cp311-win_arm64.whl", hash = "sha256:30807c931ff7c095620fe04448e2c2fc673fcbb1ffe2a7da3fb39613489b1ddd"},
|
| 748 |
+
{file = "pillow-11.3.0-pp311-pypy311_pp73-macosx_10_15_x86_64.whl", hash = "sha256:7c8ec7a017ad1bd562f93dbd8505763e688d388cde6e4a010ae1486916e713e6"},
|
| 749 |
+
{file = "pillow-11.3.0-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:9ab6ae226de48019caa8074894544af5b53a117ccb9d3b3dcb2871464c829438"},
|
| 750 |
+
{file = "pillow-11.3.0-pp311-pypy311_pp73-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:fe27fb049cdcca11f11a7bfda64043c37b30e6b91f10cb5bab275806c32f6ab3"},
|
| 751 |
+
{file = "pillow-11.3.0-pp311-pypy311_pp73-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:465b9e8844e3c3519a983d58b80be3f668e2a7a5db97f2784e7079fbc9f9822c"},
|
| 752 |
+
{file = "pillow-11.3.0-pp311-pypy311_pp73-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:5418b53c0d59b3824d05e029669efa023bbef0f3e92e75ec8428f3799487f361"},
|
| 753 |
+
{file = "pillow-11.3.0-pp311-pypy311_pp73-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:504b6f59505f08ae014f724b6207ff6222662aab5cc9542577fb084ed0676ac7"},
|
| 754 |
+
{file = "pillow-11.3.0-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:c84d689db21a1c397d001aa08241044aa2069e7587b398c8cc63020390b1c1b8"},
|
| 755 |
+
{file = "pillow-11.3.0.tar.gz", hash = "sha256:3828ee7586cd0b2091b6209e5ad53e20d0649bbe87164a459d0676e035e8f523"},
|
| 756 |
+
]
|
| 757 |
+
|
| 758 |
+
[[package]]
|
| 759 |
+
name = "polars"
|
| 760 |
+
version = "1.33.1"
|
| 761 |
+
requires_python = ">=3.9"
|
| 762 |
+
summary = "Blazingly fast DataFrame library"
|
| 763 |
+
groups = ["default"]
|
| 764 |
+
files = [
|
| 765 |
+
{file = "polars-1.33.1-cp39-abi3-macosx_10_12_x86_64.whl", hash = "sha256:3881c444b0f14778ba94232f077a709d435977879c1b7d7bd566b55bd1830bb5"},
|
| 766 |
+
{file = "polars-1.33.1-cp39-abi3-macosx_11_0_arm64.whl", hash = "sha256:29200b89c9a461e6f06fc1660bc9c848407640ee30fe0e5ef4947cfd49d55337"},
|
| 767 |
+
{file = "polars-1.33.1-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:444940646e76342abaa47f126c70e3e40b56e8e02a9e89e5c5d1c24b086db58a"},
|
| 768 |
+
{file = "polars-1.33.1-cp39-abi3-manylinux_2_24_aarch64.whl", hash = "sha256:094a37d06789286649f654f229ec4efb9376630645ba8963b70cb9c0b008b3e1"},
|
| 769 |
+
{file = "polars-1.33.1-cp39-abi3-win_amd64.whl", hash = "sha256:c9781c704432a2276a185ee25898aa427f39a904fbe8fde4ae779596cdbd7a9e"},
|
| 770 |
+
{file = "polars-1.33.1-cp39-abi3-win_arm64.whl", hash = "sha256:c3cfddb3b78eae01a218222bdba8048529fef7e14889a71e33a5198644427642"},
|
| 771 |
+
{file = "polars-1.33.1.tar.gz", hash = "sha256:fa3fdc34eab52a71498264d6ff9b0aa6955eb4b0ae8add5d3cb43e4b84644007"},
|
| 772 |
+
]
|
| 773 |
+
|
| 774 |
+
[[package]]
|
| 775 |
+
name = "proglog"
|
| 776 |
+
version = "0.1.12"
|
| 777 |
+
summary = "Log and progress bar manager for console, notebooks, web..."
|
| 778 |
+
groups = ["default"]
|
| 779 |
+
dependencies = [
|
| 780 |
+
"tqdm",
|
| 781 |
+
]
|
| 782 |
+
files = [
|
| 783 |
+
{file = "proglog-0.1.12-py3-none-any.whl", hash = "sha256:ccaafce51e80a81c65dc907a460c07ccb8ec1f78dc660cfd8f9ec3a22f01b84c"},
|
| 784 |
+
{file = "proglog-0.1.12.tar.gz", hash = "sha256:361ee074721c277b89b75c061336cb8c5f287c92b043efa562ccf7866cda931c"},
|
| 785 |
+
]
|
| 786 |
+
|
| 787 |
+
[[package]]
|
| 788 |
+
name = "protobuf"
|
| 789 |
+
version = "6.32.0"
|
| 790 |
+
requires_python = ">=3.9"
|
| 791 |
+
summary = ""
|
| 792 |
+
groups = ["default"]
|
| 793 |
+
files = [
|
| 794 |
+
{file = "protobuf-6.32.0-cp310-abi3-win32.whl", hash = "sha256:84f9e3c1ff6fb0308dbacb0950d8aa90694b0d0ee68e75719cb044b7078fe741"},
|
| 795 |
+
{file = "protobuf-6.32.0-cp310-abi3-win_amd64.whl", hash = "sha256:a8bdbb2f009cfc22a36d031f22a625a38b615b5e19e558a7b756b3279723e68e"},
|
| 796 |
+
{file = "protobuf-6.32.0-cp39-abi3-macosx_10_9_universal2.whl", hash = "sha256:d52691e5bee6c860fff9a1c86ad26a13afbeb4b168cd4445c922b7e2cf85aaf0"},
|
| 797 |
+
{file = "protobuf-6.32.0-cp39-abi3-manylinux2014_aarch64.whl", hash = "sha256:501fe6372fd1c8ea2a30b4d9be8f87955a64d6be9c88a973996cef5ef6f0abf1"},
|
| 798 |
+
{file = "protobuf-6.32.0-cp39-abi3-manylinux2014_x86_64.whl", hash = "sha256:75a2aab2bd1aeb1f5dc7c5f33bcb11d82ea8c055c9becbb41c26a8c43fd7092c"},
|
| 799 |
+
{file = "protobuf-6.32.0-py3-none-any.whl", hash = "sha256:ba377e5b67b908c8f3072a57b63e2c6a4cbd18aea4ed98d2584350dbf46f2783"},
|
| 800 |
+
{file = "protobuf-6.32.0.tar.gz", hash = "sha256:a81439049127067fc49ec1d36e25c6ee1d1a2b7be930675f919258d03c04e7d2"},
|
| 801 |
+
]
|
| 802 |
+
|
| 803 |
+
[[package]]
|
| 804 |
+
name = "psutil"
|
| 805 |
+
version = "7.0.0"
|
| 806 |
+
requires_python = ">=3.6"
|
| 807 |
+
summary = "Cross-platform lib for process and system monitoring in Python. NOTE: the syntax of this script MUST be kept compatible with Python 2.7."
|
| 808 |
+
groups = ["default"]
|
| 809 |
+
files = [
|
| 810 |
+
{file = "psutil-7.0.0-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:101d71dc322e3cffd7cea0650b09b3d08b8e7c4109dd6809fe452dfd00e58b25"},
|
| 811 |
+
{file = "psutil-7.0.0-cp36-abi3-macosx_11_0_arm64.whl", hash = "sha256:39db632f6bb862eeccf56660871433e111b6ea58f2caea825571951d4b6aa3da"},
|
| 812 |
+
{file = "psutil-7.0.0-cp36-abi3-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1fcee592b4c6f146991ca55919ea3d1f8926497a713ed7faaf8225e174581e91"},
|
| 813 |
+
{file = "psutil-7.0.0-cp36-abi3-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4b1388a4f6875d7e2aff5c4ca1cc16c545ed41dd8bb596cefea80111db353a34"},
|
| 814 |
+
{file = "psutil-7.0.0-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a5f098451abc2828f7dc6b58d44b532b22f2088f4999a937557b603ce72b1993"},
|
| 815 |
+
{file = "psutil-7.0.0-cp37-abi3-win32.whl", hash = "sha256:ba3fcef7523064a6c9da440fc4d6bd07da93ac726b5733c29027d7dc95b39d99"},
|
| 816 |
+
{file = "psutil-7.0.0-cp37-abi3-win_amd64.whl", hash = "sha256:4cf3d4eb1aa9b348dec30105c55cd9b7d4629285735a102beb4441e38db90553"},
|
| 817 |
+
{file = "psutil-7.0.0.tar.gz", hash = "sha256:7be9c3eba38beccb6495ea33afd982a44074b78f28c434a1f51cc07fd315c456"},
|
| 818 |
+
]
|
| 819 |
+
|
| 820 |
+
[[package]]
|
| 821 |
+
name = "pyarrow"
|
| 822 |
+
version = "21.0.0"
|
| 823 |
+
requires_python = ">=3.9"
|
| 824 |
+
summary = "Python library for Apache Arrow"
|
| 825 |
+
groups = ["default"]
|
| 826 |
+
files = [
|
| 827 |
+
{file = "pyarrow-21.0.0-cp311-cp311-macosx_12_0_arm64.whl", hash = "sha256:c077f48aab61738c237802836fc3844f85409a46015635198761b0d6a688f87b"},
|
| 828 |
+
{file = "pyarrow-21.0.0-cp311-cp311-macosx_12_0_x86_64.whl", hash = "sha256:689f448066781856237eca8d1975b98cace19b8dd2ab6145bf49475478bcaa10"},
|
| 829 |
+
{file = "pyarrow-21.0.0-cp311-cp311-manylinux_2_28_aarch64.whl", hash = "sha256:479ee41399fcddc46159a551705b89c05f11e8b8cb8e968f7fec64f62d91985e"},
|
| 830 |
+
{file = "pyarrow-21.0.0-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:40ebfcb54a4f11bcde86bc586cbd0272bac0d516cfa539c799c2453768477569"},
|
| 831 |
+
{file = "pyarrow-21.0.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:8d58d8497814274d3d20214fbb24abcad2f7e351474357d552a8d53bce70c70e"},
|
| 832 |
+
{file = "pyarrow-21.0.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:585e7224f21124dd57836b1530ac8f2df2afc43c861d7bf3d58a4870c42ae36c"},
|
| 833 |
+
{file = "pyarrow-21.0.0-cp311-cp311-win_amd64.whl", hash = "sha256:555ca6935b2cbca2c0e932bedd853e9bc523098c39636de9ad4693b5b1df86d6"},
|
| 834 |
+
{file = "pyarrow-21.0.0.tar.gz", hash = "sha256:5051f2dccf0e283ff56335760cbc8622cf52264d67e359d5569541ac11b6d5bc"},
|
| 835 |
+
]
|
| 836 |
+
|
| 837 |
+
[[package]]
|
| 838 |
+
name = "pydeck"
|
| 839 |
+
version = "0.9.1"
|
| 840 |
+
requires_python = ">=3.8"
|
| 841 |
+
summary = "Widget for deck.gl maps"
|
| 842 |
+
groups = ["default"]
|
| 843 |
+
dependencies = [
|
| 844 |
+
"jinja2>=2.10.1",
|
| 845 |
+
"numpy>=1.16.4",
|
| 846 |
+
]
|
| 847 |
+
files = [
|
| 848 |
+
{file = "pydeck-0.9.1-py2.py3-none-any.whl", hash = "sha256:b3f75ba0d273fc917094fa61224f3f6076ca8752b93d46faf3bcfd9f9d59b038"},
|
| 849 |
+
{file = "pydeck-0.9.1.tar.gz", hash = "sha256:f74475ae637951d63f2ee58326757f8d4f9cd9f2a457cf42950715003e2cb605"},
|
| 850 |
+
]
|
| 851 |
+
|
| 852 |
+
[[package]]
|
| 853 |
+
name = "pyparsing"
|
| 854 |
+
version = "3.2.3"
|
| 855 |
+
requires_python = ">=3.9"
|
| 856 |
+
summary = "pyparsing module - Classes and methods to define and execute parsing grammars"
|
| 857 |
+
groups = ["default"]
|
| 858 |
+
files = [
|
| 859 |
+
{file = "pyparsing-3.2.3-py3-none-any.whl", hash = "sha256:a749938e02d6fd0b59b356ca504a24982314bb090c383e3cf201c95ef7e2bfcf"},
|
| 860 |
+
{file = "pyparsing-3.2.3.tar.gz", hash = "sha256:b9c13f1ab8b3b542f72e28f634bad4de758ab3ce4546e4301970ad6fa77c38be"},
|
| 861 |
+
]
|
| 862 |
+
|
| 863 |
+
[[package]]
|
| 864 |
+
name = "python-dateutil"
|
| 865 |
+
version = "2.9.0.post0"
|
| 866 |
+
requires_python = "!=3.0.*,!=3.1.*,!=3.2.*,>=2.7"
|
| 867 |
+
summary = "Extensions to the standard Python datetime module"
|
| 868 |
+
groups = ["default"]
|
| 869 |
+
dependencies = [
|
| 870 |
+
"six>=1.5",
|
| 871 |
+
]
|
| 872 |
+
files = [
|
| 873 |
+
{file = "python-dateutil-2.9.0.post0.tar.gz", hash = "sha256:37dd54208da7e1cd875388217d5e00ebd4179249f90fb72437e91a35459a0ad3"},
|
| 874 |
+
{file = "python_dateutil-2.9.0.post0-py2.py3-none-any.whl", hash = "sha256:a8b2bc7bffae282281c8140a97d3aa9c14da0b136dfe83f850eea9a5f7470427"},
|
| 875 |
+
]
|
| 876 |
+
|
| 877 |
+
[[package]]
|
| 878 |
+
name = "python-dotenv"
|
| 879 |
+
version = "1.1.1"
|
| 880 |
+
requires_python = ">=3.9"
|
| 881 |
+
summary = "Read key-value pairs from a .env file and set them as environment variables"
|
| 882 |
+
groups = ["default"]
|
| 883 |
+
files = [
|
| 884 |
+
{file = "python_dotenv-1.1.1-py3-none-any.whl", hash = "sha256:31f23644fe2602f88ff55e1f5c79ba497e01224ee7737937930c448e4d0e24dc"},
|
| 885 |
+
{file = "python_dotenv-1.1.1.tar.gz", hash = "sha256:a8a6399716257f45be6a007360200409fce5cda2661e3dec71d23dc15f6189ab"},
|
| 886 |
+
]
|
| 887 |
+
|
| 888 |
+
[[package]]
|
| 889 |
+
name = "pytz"
|
| 890 |
+
version = "2025.2"
|
| 891 |
+
summary = "World timezone definitions, modern and historical"
|
| 892 |
+
groups = ["default"]
|
| 893 |
+
files = [
|
| 894 |
+
{file = "pytz-2025.2-py2.py3-none-any.whl", hash = "sha256:5ddf76296dd8c44c26eb8f4b6f35488f3ccbf6fbbd7adee0b7262d43f0ec2f00"},
|
| 895 |
+
{file = "pytz-2025.2.tar.gz", hash = "sha256:360b9e3dbb49a209c21ad61809c7fb453643e048b38924c765813546746e81c3"},
|
| 896 |
+
]
|
| 897 |
+
|
| 898 |
+
[[package]]
|
| 899 |
+
name = "pyyaml"
|
| 900 |
+
version = "6.0.2"
|
| 901 |
+
requires_python = ">=3.8"
|
| 902 |
+
summary = "YAML parser and emitter for Python"
|
| 903 |
+
groups = ["default"]
|
| 904 |
+
files = [
|
| 905 |
+
{file = "PyYAML-6.0.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:cc1c1159b3d456576af7a3e4d1ba7e6924cb39de8f67111c735f6fc832082774"},
|
| 906 |
+
{file = "PyYAML-6.0.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:1e2120ef853f59c7419231f3bf4e7021f1b936f6ebd222406c3b60212205d2ee"},
|
| 907 |
+
{file = "PyYAML-6.0.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5d225db5a45f21e78dd9358e58a98702a0302f2659a3c6cd320564b75b86f47c"},
|
| 908 |
+
{file = "PyYAML-6.0.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5ac9328ec4831237bec75defaf839f7d4564be1e6b25ac710bd1a96321cc8317"},
|
| 909 |
+
{file = "PyYAML-6.0.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3ad2a3decf9aaba3d29c8f537ac4b243e36bef957511b4766cb0057d32b0be85"},
|
| 910 |
+
{file = "PyYAML-6.0.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:ff3824dc5261f50c9b0dfb3be22b4567a6f938ccce4587b38952d85fd9e9afe4"},
|
| 911 |
+
{file = "PyYAML-6.0.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:797b4f722ffa07cc8d62053e4cff1486fa6dc094105d13fea7b1de7d8bf71c9e"},
|
| 912 |
+
{file = "PyYAML-6.0.2-cp311-cp311-win32.whl", hash = "sha256:11d8f3dd2b9c1207dcaf2ee0bbbfd5991f571186ec9cc78427ba5bd32afae4b5"},
|
| 913 |
+
{file = "PyYAML-6.0.2-cp311-cp311-win_amd64.whl", hash = "sha256:e10ce637b18caea04431ce14fabcf5c64a1c61ec9c56b071a4b7ca131ca52d44"},
|
| 914 |
+
{file = "pyyaml-6.0.2.tar.gz", hash = "sha256:d584d9ec91ad65861cc08d42e834324ef890a082e591037abe114850ff7bbc3e"},
|
| 915 |
+
]
|
| 916 |
+
|
| 917 |
+
[[package]]
|
| 918 |
+
name = "referencing"
|
| 919 |
+
version = "0.36.2"
|
| 920 |
+
requires_python = ">=3.9"
|
| 921 |
+
summary = "JSON Referencing + Python"
|
| 922 |
+
groups = ["default"]
|
| 923 |
+
dependencies = [
|
| 924 |
+
"attrs>=22.2.0",
|
| 925 |
+
"rpds-py>=0.7.0",
|
| 926 |
+
"typing-extensions>=4.4.0; python_version < \"3.13\"",
|
| 927 |
+
]
|
| 928 |
+
files = [
|
| 929 |
+
{file = "referencing-0.36.2-py3-none-any.whl", hash = "sha256:e8699adbbf8b5c7de96d8ffa0eb5c158b3beafce084968e2ea8bb08c6794dcd0"},
|
| 930 |
+
{file = "referencing-0.36.2.tar.gz", hash = "sha256:df2e89862cd09deabbdba16944cc3f10feb6b3e6f18e902f7cc25609a34775aa"},
|
| 931 |
+
]
|
| 932 |
+
|
| 933 |
+
[[package]]
|
| 934 |
+
name = "requests"
|
| 935 |
+
version = "2.32.5"
|
| 936 |
+
requires_python = ">=3.9"
|
| 937 |
+
summary = "Python HTTP for Humans."
|
| 938 |
+
groups = ["default"]
|
| 939 |
+
dependencies = [
|
| 940 |
+
"certifi>=2017.4.17",
|
| 941 |
+
"charset-normalizer<4,>=2",
|
| 942 |
+
"idna<4,>=2.5",
|
| 943 |
+
"urllib3<3,>=1.21.1",
|
| 944 |
+
]
|
| 945 |
+
files = [
|
| 946 |
+
{file = "requests-2.32.5-py3-none-any.whl", hash = "sha256:2462f94637a34fd532264295e186976db0f5d453d1cdd31473c85a6a161affb6"},
|
| 947 |
+
{file = "requests-2.32.5.tar.gz", hash = "sha256:dbba0bac56e100853db0ea71b82b4dfd5fe2bf6d3754a8893c3af500cec7d7cf"},
|
| 948 |
+
]
|
| 949 |
+
|
| 950 |
+
[[package]]
|
| 951 |
+
name = "rpds-py"
|
| 952 |
+
version = "0.27.1"
|
| 953 |
+
requires_python = ">=3.9"
|
| 954 |
+
summary = "Python bindings to Rust's persistent data structures (rpds)"
|
| 955 |
+
groups = ["default"]
|
| 956 |
+
files = [
|
| 957 |
+
{file = "rpds_py-0.27.1-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:be898f271f851f68b318872ce6ebebbc62f303b654e43bf72683dbdc25b7c881"},
|
| 958 |
+
{file = "rpds_py-0.27.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:62ac3d4e3e07b58ee0ddecd71d6ce3b1637de2d373501412df395a0ec5f9beb5"},
|
| 959 |
+
{file = "rpds_py-0.27.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4708c5c0ceb2d034f9991623631d3d23cb16e65c83736ea020cdbe28d57c0a0e"},
|
| 960 |
+
{file = "rpds_py-0.27.1-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:abfa1171a9952d2e0002aba2ad3780820b00cc3d9c98c6630f2e93271501f66c"},
|
| 961 |
+
{file = "rpds_py-0.27.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4b507d19f817ebaca79574b16eb2ae412e5c0835542c93fe9983f1e432aca195"},
|
| 962 |
+
{file = "rpds_py-0.27.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:168b025f8fd8d8d10957405f3fdcef3dc20f5982d398f90851f4abc58c566c52"},
|
| 963 |
+
{file = "rpds_py-0.27.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cb56c6210ef77caa58e16e8c17d35c63fe3f5b60fd9ba9d424470c3400bcf9ed"},
|
| 964 |
+
{file = "rpds_py-0.27.1-cp311-cp311-manylinux_2_31_riscv64.whl", hash = "sha256:d252f2d8ca0195faa707f8eb9368955760880b2b42a8ee16d382bf5dd807f89a"},
|
| 965 |
+
{file = "rpds_py-0.27.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:6e5e54da1e74b91dbc7996b56640f79b195d5925c2b78efaa8c5d53e1d88edde"},
|
| 966 |
+
{file = "rpds_py-0.27.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:ffce0481cc6e95e5b3f0a47ee17ffbd234399e6d532f394c8dce320c3b089c21"},
|
| 967 |
+
{file = "rpds_py-0.27.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:a205fdfe55c90c2cd8e540ca9ceba65cbe6629b443bc05db1f590a3db8189ff9"},
|
| 968 |
+
{file = "rpds_py-0.27.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:689fb5200a749db0415b092972e8eba85847c23885c8543a8b0f5c009b1a5948"},
|
| 969 |
+
{file = "rpds_py-0.27.1-cp311-cp311-win32.whl", hash = "sha256:3182af66048c00a075010bc7f4860f33913528a4b6fc09094a6e7598e462fe39"},
|
| 970 |
+
{file = "rpds_py-0.27.1-cp311-cp311-win_amd64.whl", hash = "sha256:b4938466c6b257b2f5c4ff98acd8128ec36b5059e5c8f8372d79316b1c36bb15"},
|
| 971 |
+
{file = "rpds_py-0.27.1-cp311-cp311-win_arm64.whl", hash = "sha256:2f57af9b4d0793e53266ee4325535a31ba48e2f875da81a9177c9926dfa60746"},
|
| 972 |
+
{file = "rpds_py-0.27.1-pp311-pypy311_pp73-macosx_10_12_x86_64.whl", hash = "sha256:cdfe4bb2f9fe7458b7453ad3c33e726d6d1c7c0a72960bcc23800d77384e42df"},
|
| 973 |
+
{file = "rpds_py-0.27.1-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:8fabb8fd848a5f75a2324e4a84501ee3a5e3c78d8603f83475441866e60b94a3"},
|
| 974 |
+
{file = "rpds_py-0.27.1-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:eda8719d598f2f7f3e0f885cba8646644b55a187762bec091fa14a2b819746a9"},
|
| 975 |
+
{file = "rpds_py-0.27.1-pp311-pypy311_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:3c64d07e95606ec402a0a1c511fe003873fa6af630bda59bac77fac8b4318ebc"},
|
| 976 |
+
{file = "rpds_py-0.27.1-pp311-pypy311_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:93a2ed40de81bcff59aabebb626562d48332f3d028ca2036f1d23cbb52750be4"},
|
| 977 |
+
{file = "rpds_py-0.27.1-pp311-pypy311_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:387ce8c44ae94e0ec50532d9cb0edce17311024c9794eb196b90e1058aadeb66"},
|
| 978 |
+
{file = "rpds_py-0.27.1-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:aaf94f812c95b5e60ebaf8bfb1898a7d7cb9c1af5744d4a67fa47796e0465d4e"},
|
| 979 |
+
{file = "rpds_py-0.27.1-pp311-pypy311_pp73-manylinux_2_31_riscv64.whl", hash = "sha256:4848ca84d6ded9b58e474dfdbad4b8bfb450344c0551ddc8d958bf4b36aa837c"},
|
| 980 |
+
{file = "rpds_py-0.27.1-pp311-pypy311_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:2bde09cbcf2248b73c7c323be49b280180ff39fadcfe04e7b6f54a678d02a7cf"},
|
| 981 |
+
{file = "rpds_py-0.27.1-pp311-pypy311_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:94c44ee01fd21c9058f124d2d4f0c9dc7634bec93cd4b38eefc385dabe71acbf"},
|
| 982 |
+
{file = "rpds_py-0.27.1-pp311-pypy311_pp73-musllinux_1_2_i686.whl", hash = "sha256:df8b74962e35c9249425d90144e721eed198e6555a0e22a563d29fe4486b51f6"},
|
| 983 |
+
{file = "rpds_py-0.27.1-pp311-pypy311_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:dc23e6820e3b40847e2f4a7726462ba0cf53089512abe9ee16318c366494c17a"},
|
| 984 |
+
{file = "rpds_py-0.27.1.tar.gz", hash = "sha256:26a1c73171d10b7acccbded82bf6a586ab8203601e565badc74bbbf8bc5a10f8"},
|
| 985 |
+
]
|
| 986 |
+
|
| 987 |
+
[[package]]
|
| 988 |
+
name = "scipy"
|
| 989 |
+
version = "1.16.1"
|
| 990 |
+
requires_python = ">=3.11"
|
| 991 |
+
summary = "Fundamental algorithms for scientific computing in Python"
|
| 992 |
+
groups = ["default"]
|
| 993 |
+
dependencies = [
|
| 994 |
+
"numpy<2.6,>=1.25.2",
|
| 995 |
+
]
|
| 996 |
+
files = [
|
| 997 |
+
{file = "scipy-1.16.1-cp311-cp311-macosx_10_14_x86_64.whl", hash = "sha256:c033fa32bab91dc98ca59d0cf23bb876454e2bb02cbe592d5023138778f70030"},
|
| 998 |
+
{file = "scipy-1.16.1-cp311-cp311-macosx_12_0_arm64.whl", hash = "sha256:6e5c2f74e5df33479b5cd4e97a9104c511518fbd979aa9b8f6aec18b2e9ecae7"},
|
| 999 |
+
{file = "scipy-1.16.1-cp311-cp311-macosx_14_0_arm64.whl", hash = "sha256:0a55ffe0ba0f59666e90951971a884d1ff6f4ec3275a48f472cfb64175570f77"},
|
| 1000 |
+
{file = "scipy-1.16.1-cp311-cp311-macosx_14_0_x86_64.whl", hash = "sha256:f8a5d6cd147acecc2603fbd382fed6c46f474cccfcf69ea32582e033fb54dcfe"},
|
| 1001 |
+
{file = "scipy-1.16.1-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:cb18899127278058bcc09e7b9966d41a5a43740b5bb8dcba401bd983f82e885b"},
|
| 1002 |
+
{file = "scipy-1.16.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:adccd93a2fa937a27aae826d33e3bfa5edf9aa672376a4852d23a7cd67a2e5b7"},
|
| 1003 |
+
{file = "scipy-1.16.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:18aca1646a29ee9a0625a1be5637fa798d4d81fdf426481f06d69af828f16958"},
|
| 1004 |
+
{file = "scipy-1.16.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:d85495cef541729a70cdddbbf3e6b903421bc1af3e8e3a9a72a06751f33b7c39"},
|
| 1005 |
+
{file = "scipy-1.16.1-cp311-cp311-win_amd64.whl", hash = "sha256:226652fca853008119c03a8ce71ffe1b3f6d2844cc1686e8f9806edafae68596"},
|
| 1006 |
+
{file = "scipy-1.16.1.tar.gz", hash = "sha256:44c76f9e8b6e8e488a586190ab38016e4ed2f8a038af7cd3defa903c0a2238b3"},
|
| 1007 |
+
]
|
| 1008 |
+
|
| 1009 |
+
[[package]]
|
| 1010 |
+
name = "setuptools"
|
| 1011 |
+
version = "80.9.0"
|
| 1012 |
+
requires_python = ">=3.9"
|
| 1013 |
+
summary = "Easily download, build, install, upgrade, and uninstall Python packages"
|
| 1014 |
+
groups = ["default"]
|
| 1015 |
+
marker = "platform_system == \"Linux\" and platform_machine == \"x86_64\""
|
| 1016 |
+
files = [
|
| 1017 |
+
{file = "setuptools-80.9.0-py3-none-any.whl", hash = "sha256:062d34222ad13e0cc312a4c02d73f059e86a4acbfbdea8f8f76b28c99f306922"},
|
| 1018 |
+
{file = "setuptools-80.9.0.tar.gz", hash = "sha256:f36b47402ecde768dbfafc46e8e4207b4360c654f1f3bb84475f0a28628fb19c"},
|
| 1019 |
+
]
|
| 1020 |
+
|
| 1021 |
+
[[package]]
|
| 1022 |
+
name = "six"
|
| 1023 |
+
version = "1.17.0"
|
| 1024 |
+
requires_python = "!=3.0.*,!=3.1.*,!=3.2.*,>=2.7"
|
| 1025 |
+
summary = "Python 2 and 3 compatibility utilities"
|
| 1026 |
+
groups = ["default"]
|
| 1027 |
+
files = [
|
| 1028 |
+
{file = "six-1.17.0-py2.py3-none-any.whl", hash = "sha256:4721f391ed90541fddacab5acf947aa0d3dc7d27b2e1e8eda2be8970586c3274"},
|
| 1029 |
+
{file = "six-1.17.0.tar.gz", hash = "sha256:ff70335d468e7eb6ec65b95b99d3a2836546063f63acc5171de367e834932a81"},
|
| 1030 |
+
]
|
| 1031 |
+
|
| 1032 |
+
[[package]]
|
| 1033 |
+
name = "smmap"
|
| 1034 |
+
version = "5.0.2"
|
| 1035 |
+
requires_python = ">=3.7"
|
| 1036 |
+
summary = "A pure Python implementation of a sliding window memory map manager"
|
| 1037 |
+
groups = ["default"]
|
| 1038 |
+
files = [
|
| 1039 |
+
{file = "smmap-5.0.2-py3-none-any.whl", hash = "sha256:b30115f0def7d7531d22a0fb6502488d879e75b260a9db4d0819cfb25403af5e"},
|
| 1040 |
+
{file = "smmap-5.0.2.tar.gz", hash = "sha256:26ea65a03958fa0c8a1c7e8c7a58fdc77221b8910f6be2131affade476898ad5"},
|
| 1041 |
+
]
|
| 1042 |
+
|
| 1043 |
+
[[package]]
|
| 1044 |
+
name = "streamlit"
|
| 1045 |
+
version = "1.49.1"
|
| 1046 |
+
requires_python = "!=3.9.7,>=3.9"
|
| 1047 |
+
summary = "A faster way to build and share data apps"
|
| 1048 |
+
groups = ["default"]
|
| 1049 |
+
dependencies = [
|
| 1050 |
+
"altair!=5.4.0,!=5.4.1,<6,>=4.0",
|
| 1051 |
+
"blinker<2,>=1.5.0",
|
| 1052 |
+
"cachetools<7,>=4.0",
|
| 1053 |
+
"click<9,>=7.0",
|
| 1054 |
+
"gitpython!=3.1.19,<4,>=3.0.7",
|
| 1055 |
+
"numpy<3,>=1.23",
|
| 1056 |
+
"packaging<26,>=20",
|
| 1057 |
+
"pandas<3,>=1.4.0",
|
| 1058 |
+
"pillow<12,>=7.1.0",
|
| 1059 |
+
"protobuf<7,>=3.20",
|
| 1060 |
+
"pyarrow>=7.0",
|
| 1061 |
+
"pydeck<1,>=0.8.0b4",
|
| 1062 |
+
"requests<3,>=2.27",
|
| 1063 |
+
"tenacity<10,>=8.1.0",
|
| 1064 |
+
"toml<2,>=0.10.1",
|
| 1065 |
+
"tornado!=6.5.0,<7,>=6.0.3",
|
| 1066 |
+
"typing-extensions<5,>=4.4.0",
|
| 1067 |
+
"watchdog<7,>=2.1.5; platform_system != \"Darwin\"",
|
| 1068 |
+
]
|
| 1069 |
+
files = [
|
| 1070 |
+
{file = "streamlit-1.49.1-py3-none-any.whl", hash = "sha256:ad7b6d0dc35db168587acf96f80378249467fc057ed739a41c511f6bf5aa173b"},
|
| 1071 |
+
{file = "streamlit-1.49.1.tar.gz", hash = "sha256:6f213f1e43f035143a56f58ad50068d8a09482f0a2dad1050d7e7e99a9689818"},
|
| 1072 |
+
]
|
| 1073 |
+
|
| 1074 |
+
[[package]]
|
| 1075 |
+
name = "sympy"
|
| 1076 |
+
version = "1.14.0"
|
| 1077 |
+
requires_python = ">=3.9"
|
| 1078 |
+
summary = "Computer algebra system (CAS) in Python"
|
| 1079 |
+
groups = ["default"]
|
| 1080 |
+
dependencies = [
|
| 1081 |
+
"mpmath<1.4,>=1.1.0",
|
| 1082 |
+
]
|
| 1083 |
+
files = [
|
| 1084 |
+
{file = "sympy-1.14.0-py3-none-any.whl", hash = "sha256:e091cc3e99d2141a0ba2847328f5479b05d94a6635cb96148ccb3f34671bd8f5"},
|
| 1085 |
+
{file = "sympy-1.14.0.tar.gz", hash = "sha256:d3d3fe8df1e5a0b42f0e7bdf50541697dbe7d23746e894990c030e2b05e72517"},
|
| 1086 |
+
]
|
| 1087 |
+
|
| 1088 |
+
[[package]]
|
| 1089 |
+
name = "tenacity"
|
| 1090 |
+
version = "9.1.2"
|
| 1091 |
+
requires_python = ">=3.9"
|
| 1092 |
+
summary = "Retry code until it succeeds"
|
| 1093 |
+
groups = ["default"]
|
| 1094 |
+
files = [
|
| 1095 |
+
{file = "tenacity-9.1.2-py3-none-any.whl", hash = "sha256:f77bf36710d8b73a50b2dd155c97b870017ad21afe6ab300326b0371b3b05138"},
|
| 1096 |
+
{file = "tenacity-9.1.2.tar.gz", hash = "sha256:1169d376c297e7de388d18b4481760d478b0e99a777cad3a9c86e556f4b697cb"},
|
| 1097 |
+
]
|
| 1098 |
+
|
| 1099 |
+
[[package]]
|
| 1100 |
+
name = "toml"
|
| 1101 |
+
version = "0.10.2"
|
| 1102 |
+
requires_python = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*"
|
| 1103 |
+
summary = "Python Library for Tom's Obvious, Minimal Language"
|
| 1104 |
+
groups = ["default"]
|
| 1105 |
+
files = [
|
| 1106 |
+
{file = "toml-0.10.2-py2.py3-none-any.whl", hash = "sha256:806143ae5bfb6a3c6e736a764057db0e6a0e05e338b5630894a5f779cabb4f9b"},
|
| 1107 |
+
{file = "toml-0.10.2.tar.gz", hash = "sha256:b3bda1d108d5dd99f4a20d24d9c348e91c4db7ab1b749200bded2f839ccbe68f"},
|
| 1108 |
+
]
|
| 1109 |
+
|
| 1110 |
+
[[package]]
|
| 1111 |
+
name = "torch"
|
| 1112 |
+
version = "2.8.0"
|
| 1113 |
+
requires_python = ">=3.9.0"
|
| 1114 |
+
summary = "Tensors and Dynamic neural networks in Python with strong GPU acceleration"
|
| 1115 |
+
groups = ["default"]
|
| 1116 |
+
dependencies = [
|
| 1117 |
+
"filelock",
|
| 1118 |
+
"fsspec",
|
| 1119 |
+
"jinja2",
|
| 1120 |
+
"networkx",
|
| 1121 |
+
"nvidia-cublas-cu12==12.8.4.1; platform_system == \"Linux\" and platform_machine == \"x86_64\"",
|
| 1122 |
+
"nvidia-cuda-cupti-cu12==12.8.90; platform_system == \"Linux\" and platform_machine == \"x86_64\"",
|
| 1123 |
+
"nvidia-cuda-nvrtc-cu12==12.8.93; platform_system == \"Linux\" and platform_machine == \"x86_64\"",
|
| 1124 |
+
"nvidia-cuda-runtime-cu12==12.8.90; platform_system == \"Linux\" and platform_machine == \"x86_64\"",
|
| 1125 |
+
"nvidia-cudnn-cu12==9.10.2.21; platform_system == \"Linux\" and platform_machine == \"x86_64\"",
|
| 1126 |
+
"nvidia-cufft-cu12==11.3.3.83; platform_system == \"Linux\" and platform_machine == \"x86_64\"",
|
| 1127 |
+
"nvidia-cufile-cu12==1.13.1.3; platform_system == \"Linux\" and platform_machine == \"x86_64\"",
|
| 1128 |
+
"nvidia-curand-cu12==10.3.9.90; platform_system == \"Linux\" and platform_machine == \"x86_64\"",
|
| 1129 |
+
"nvidia-cusolver-cu12==11.7.3.90; platform_system == \"Linux\" and platform_machine == \"x86_64\"",
|
| 1130 |
+
"nvidia-cusparse-cu12==12.5.8.93; platform_system == \"Linux\" and platform_machine == \"x86_64\"",
|
| 1131 |
+
"nvidia-cusparselt-cu12==0.7.1; platform_system == \"Linux\" and platform_machine == \"x86_64\"",
|
| 1132 |
+
"nvidia-nccl-cu12==2.27.3; platform_system == \"Linux\" and platform_machine == \"x86_64\"",
|
| 1133 |
+
"nvidia-nvjitlink-cu12==12.8.93; platform_system == \"Linux\" and platform_machine == \"x86_64\"",
|
| 1134 |
+
"nvidia-nvtx-cu12==12.8.90; platform_system == \"Linux\" and platform_machine == \"x86_64\"",
|
| 1135 |
+
"setuptools; python_version >= \"3.12\"",
|
| 1136 |
+
"sympy>=1.13.3",
|
| 1137 |
+
"triton==3.4.0; platform_system == \"Linux\" and platform_machine == \"x86_64\"",
|
| 1138 |
+
"typing-extensions>=4.10.0",
|
| 1139 |
+
]
|
| 1140 |
+
files = [
|
| 1141 |
+
{file = "torch-2.8.0-cp311-cp311-manylinux_2_28_aarch64.whl", hash = "sha256:220a06fd7af8b653c35d359dfe1aaf32f65aa85befa342629f716acb134b9710"},
|
| 1142 |
+
{file = "torch-2.8.0-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:c12fa219f51a933d5f80eeb3a7a5d0cbe9168c0a14bbb4055f1979431660879b"},
|
| 1143 |
+
{file = "torch-2.8.0-cp311-cp311-win_amd64.whl", hash = "sha256:8c7ef765e27551b2fbfc0f41bcf270e1292d9bf79f8e0724848b1682be6e80aa"},
|
| 1144 |
+
{file = "torch-2.8.0-cp311-none-macosx_11_0_arm64.whl", hash = "sha256:5ae0524688fb6707c57a530c2325e13bb0090b745ba7b4a2cd6a3ce262572916"},
|
| 1145 |
+
]
|
| 1146 |
+
|
| 1147 |
+
[[package]]
|
| 1148 |
+
name = "torchvision"
|
| 1149 |
+
version = "0.23.0"
|
| 1150 |
+
requires_python = ">=3.9"
|
| 1151 |
+
summary = "image and video datasets and models for torch deep learning"
|
| 1152 |
+
groups = ["default"]
|
| 1153 |
+
dependencies = [
|
| 1154 |
+
"numpy",
|
| 1155 |
+
"pillow!=8.3.*,>=5.3.0",
|
| 1156 |
+
"torch==2.8.0",
|
| 1157 |
+
]
|
| 1158 |
+
files = [
|
| 1159 |
+
{file = "torchvision-0.23.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:49aa20e21f0c2bd458c71d7b449776cbd5f16693dd5807195a820612b8a229b7"},
|
| 1160 |
+
{file = "torchvision-0.23.0-cp311-cp311-manylinux_2_28_aarch64.whl", hash = "sha256:01dc33ee24c79148aee7cdbcf34ae8a3c9da1674a591e781577b716d233b1fa6"},
|
| 1161 |
+
{file = "torchvision-0.23.0-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:35c27941831b653f5101edfe62c03d196c13f32139310519e8228f35eae0e96a"},
|
| 1162 |
+
{file = "torchvision-0.23.0-cp311-cp311-win_amd64.whl", hash = "sha256:09bfde260e7963a15b80c9e442faa9f021c7e7f877ac0a36ca6561b367185013"},
|
| 1163 |
+
]
|
| 1164 |
+
|
| 1165 |
+
[[package]]
|
| 1166 |
+
name = "tornado"
|
| 1167 |
+
version = "6.5.2"
|
| 1168 |
+
requires_python = ">=3.9"
|
| 1169 |
+
summary = "Tornado is a Python web framework and asynchronous networking library, originally developed at FriendFeed."
|
| 1170 |
+
groups = ["default"]
|
| 1171 |
+
files = [
|
| 1172 |
+
{file = "tornado-6.5.2-cp39-abi3-macosx_10_9_universal2.whl", hash = "sha256:2436822940d37cde62771cff8774f4f00b3c8024fe482e16ca8387b8a2724db6"},
|
| 1173 |
+
{file = "tornado-6.5.2-cp39-abi3-macosx_10_9_x86_64.whl", hash = "sha256:583a52c7aa94ee046854ba81d9ebb6c81ec0fd30386d96f7640c96dad45a03ef"},
|
| 1174 |
+
{file = "tornado-6.5.2-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b0fe179f28d597deab2842b86ed4060deec7388f1fd9c1b4a41adf8af058907e"},
|
| 1175 |
+
{file = "tornado-6.5.2-cp39-abi3-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b186e85d1e3536d69583d2298423744740986018e393d0321df7340e71898882"},
|
| 1176 |
+
{file = "tornado-6.5.2-cp39-abi3-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e792706668c87709709c18b353da1f7662317b563ff69f00bab83595940c7108"},
|
| 1177 |
+
{file = "tornado-6.5.2-cp39-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:06ceb1300fd70cb20e43b1ad8aaee0266e69e7ced38fa910ad2e03285009ce7c"},
|
| 1178 |
+
{file = "tornado-6.5.2-cp39-abi3-musllinux_1_2_i686.whl", hash = "sha256:74db443e0f5251be86cbf37929f84d8c20c27a355dd452a5cfa2aada0d001ec4"},
|
| 1179 |
+
{file = "tornado-6.5.2-cp39-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:b5e735ab2889d7ed33b32a459cac490eda71a1ba6857b0118de476ab6c366c04"},
|
| 1180 |
+
{file = "tornado-6.5.2-cp39-abi3-win32.whl", hash = "sha256:c6f29e94d9b37a95013bb669616352ddb82e3bfe8326fccee50583caebc8a5f0"},
|
| 1181 |
+
{file = "tornado-6.5.2-cp39-abi3-win_amd64.whl", hash = "sha256:e56a5af51cc30dd2cae649429af65ca2f6571da29504a07995175df14c18f35f"},
|
| 1182 |
+
{file = "tornado-6.5.2-cp39-abi3-win_arm64.whl", hash = "sha256:d6c33dc3672e3a1f3618eb63b7ef4683a7688e7b9e6e8f0d9aa5726360a004af"},
|
| 1183 |
+
{file = "tornado-6.5.2.tar.gz", hash = "sha256:ab53c8f9a0fa351e2c0741284e06c7a45da86afb544133201c5cc8578eb076a0"},
|
| 1184 |
+
]
|
| 1185 |
+
|
| 1186 |
+
[[package]]
|
| 1187 |
+
name = "tqdm"
|
| 1188 |
+
version = "4.67.1"
|
| 1189 |
+
requires_python = ">=3.7"
|
| 1190 |
+
summary = "Fast, Extensible Progress Meter"
|
| 1191 |
+
groups = ["default"]
|
| 1192 |
+
dependencies = [
|
| 1193 |
+
"colorama; platform_system == \"Windows\"",
|
| 1194 |
+
]
|
| 1195 |
+
files = [
|
| 1196 |
+
{file = "tqdm-4.67.1-py3-none-any.whl", hash = "sha256:26445eca388f82e72884e0d580d5464cd801a3ea01e63e5601bdff9ba6a48de2"},
|
| 1197 |
+
{file = "tqdm-4.67.1.tar.gz", hash = "sha256:f8aef9c52c08c13a65f30ea34f4e5aac3fd1a34959879d7e59e63027286627f2"},
|
| 1198 |
+
]
|
| 1199 |
+
|
| 1200 |
+
[[package]]
|
| 1201 |
+
name = "triton"
|
| 1202 |
+
version = "3.4.0"
|
| 1203 |
+
requires_python = "<3.14,>=3.9"
|
| 1204 |
+
summary = "A language and compiler for custom Deep Learning operations"
|
| 1205 |
+
groups = ["default"]
|
| 1206 |
+
marker = "platform_system == \"Linux\" and platform_machine == \"x86_64\""
|
| 1207 |
+
dependencies = [
|
| 1208 |
+
"importlib-metadata; python_version < \"3.10\"",
|
| 1209 |
+
"setuptools>=40.8.0",
|
| 1210 |
+
]
|
| 1211 |
+
files = [
|
| 1212 |
+
{file = "triton-3.4.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:7b70f5e6a41e52e48cfc087436c8a28c17ff98db369447bcaff3b887a3ab4467"},
|
| 1213 |
+
]
|
| 1214 |
+
|
| 1215 |
+
[[package]]
|
| 1216 |
+
name = "typing-extensions"
|
| 1217 |
+
version = "4.15.0"
|
| 1218 |
+
requires_python = ">=3.9"
|
| 1219 |
+
summary = "Backported and Experimental Type Hints for Python 3.9+"
|
| 1220 |
+
groups = ["default"]
|
| 1221 |
+
files = [
|
| 1222 |
+
{file = "typing_extensions-4.15.0-py3-none-any.whl", hash = "sha256:f0fa19c6845758ab08074a0cfa8b7aecb71c999ca73d62883bc25cc018c4e548"},
|
| 1223 |
+
{file = "typing_extensions-4.15.0.tar.gz", hash = "sha256:0cea48d173cc12fa28ecabc3b837ea3cf6f38c6d1136f85cbaaf598984861466"},
|
| 1224 |
+
]
|
| 1225 |
+
|
| 1226 |
+
[[package]]
|
| 1227 |
+
name = "tzdata"
|
| 1228 |
+
version = "2025.2"
|
| 1229 |
+
requires_python = ">=2"
|
| 1230 |
+
summary = "Provider of IANA time zone data"
|
| 1231 |
+
groups = ["default"]
|
| 1232 |
+
files = [
|
| 1233 |
+
{file = "tzdata-2025.2-py2.py3-none-any.whl", hash = "sha256:1a403fada01ff9221ca8044d701868fa132215d84beb92242d9acd2147f667a8"},
|
| 1234 |
+
{file = "tzdata-2025.2.tar.gz", hash = "sha256:b60a638fcc0daffadf82fe0f57e53d06bdec2f36c4df66280ae79bce6bd6f2b9"},
|
| 1235 |
+
]
|
| 1236 |
+
|
| 1237 |
+
[[package]]
|
| 1238 |
+
name = "ultralytics"
|
| 1239 |
+
version = "8.3.197"
|
| 1240 |
+
requires_python = ">=3.8"
|
| 1241 |
+
summary = "Ultralytics YOLO 🚀 for SOTA object detection, multi-object tracking, instance segmentation, pose estimation and image classification."
|
| 1242 |
+
groups = ["default"]
|
| 1243 |
+
dependencies = [
|
| 1244 |
+
"matplotlib>=3.3.0",
|
| 1245 |
+
"numpy>=1.23.0",
|
| 1246 |
+
"opencv-python>=4.6.0",
|
| 1247 |
+
"pillow>=7.1.2",
|
| 1248 |
+
"polars",
|
| 1249 |
+
"psutil",
|
| 1250 |
+
"pyyaml>=5.3.1",
|
| 1251 |
+
"requests>=2.23.0",
|
| 1252 |
+
"scipy>=1.4.1",
|
| 1253 |
+
"torch!=2.4.0,>=1.8.0; sys_platform == \"win32\"",
|
| 1254 |
+
"torch>=1.8.0",
|
| 1255 |
+
"torchvision>=0.9.0",
|
| 1256 |
+
"ultralytics-thop>=2.0.0",
|
| 1257 |
+
]
|
| 1258 |
+
files = [
|
| 1259 |
+
{file = "ultralytics-8.3.197-py3-none-any.whl", hash = "sha256:5ee4c3608787b9fe95c39bd80bc5689bcee00ff9530e62c9b58535672e6bd65a"},
|
| 1260 |
+
{file = "ultralytics-8.3.197.tar.gz", hash = "sha256:6fdf8554d609d485463353b060470a56a0ef736c7591c57fb8b648642e4b1b48"},
|
| 1261 |
+
]
|
| 1262 |
+
|
| 1263 |
+
[[package]]
|
| 1264 |
+
name = "ultralytics-thop"
|
| 1265 |
+
version = "2.0.17"
|
| 1266 |
+
requires_python = ">=3.8"
|
| 1267 |
+
summary = "Ultralytics THOP package for fast computation of PyTorch model FLOPs and parameters."
|
| 1268 |
+
groups = ["default"]
|
| 1269 |
+
dependencies = [
|
| 1270 |
+
"numpy",
|
| 1271 |
+
"torch",
|
| 1272 |
+
]
|
| 1273 |
+
files = [
|
| 1274 |
+
{file = "ultralytics_thop-2.0.17-py3-none-any.whl", hash = "sha256:36ba7bd297b26cfd193531f4b8f42075ecf2059d9c0f04907521fee1db94e8c7"},
|
| 1275 |
+
{file = "ultralytics_thop-2.0.17.tar.gz", hash = "sha256:f4572aeb7236939f35c72f966e4e0c3d42fd433ae2974d816865d43e29dc981b"},
|
| 1276 |
+
]
|
| 1277 |
+
|
| 1278 |
+
[[package]]
|
| 1279 |
+
name = "urllib3"
|
| 1280 |
+
version = "2.5.0"
|
| 1281 |
+
requires_python = ">=3.9"
|
| 1282 |
+
summary = "HTTP library with thread-safe connection pooling, file post, and more."
|
| 1283 |
+
groups = ["default"]
|
| 1284 |
+
files = [
|
| 1285 |
+
{file = "urllib3-2.5.0-py3-none-any.whl", hash = "sha256:e6b01673c0fa6a13e374b50871808eb3bf7046c4b125b216f6bf1cc604cff0dc"},
|
| 1286 |
+
{file = "urllib3-2.5.0.tar.gz", hash = "sha256:3fc47733c7e419d4bc3f6b3dc2b4f890bb743906a30d56ba4a5bfa4bbff92760"},
|
| 1287 |
+
]
|
| 1288 |
+
|
| 1289 |
+
[[package]]
|
| 1290 |
+
name = "watchdog"
|
| 1291 |
+
version = "6.0.0"
|
| 1292 |
+
requires_python = ">=3.9"
|
| 1293 |
+
summary = "Filesystem events monitoring"
|
| 1294 |
+
groups = ["default"]
|
| 1295 |
+
marker = "platform_system != \"Darwin\""
|
| 1296 |
+
files = [
|
| 1297 |
+
{file = "watchdog-6.0.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:6eb11feb5a0d452ee41f824e271ca311a09e250441c262ca2fd7ebcf2461a06c"},
|
| 1298 |
+
{file = "watchdog-6.0.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:ef810fbf7b781a5a593894e4f439773830bdecb885e6880d957d5b9382a960d2"},
|
| 1299 |
+
{file = "watchdog-6.0.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:afd0fe1b2270917c5e23c2a65ce50c2a4abb63daafb0d419fde368e272a76b7c"},
|
| 1300 |
+
{file = "watchdog-6.0.0-py3-none-manylinux2014_aarch64.whl", hash = "sha256:7607498efa04a3542ae3e05e64da8202e58159aa1fa4acddf7678d34a35d4f13"},
|
| 1301 |
+
{file = "watchdog-6.0.0-py3-none-manylinux2014_armv7l.whl", hash = "sha256:9041567ee8953024c83343288ccc458fd0a2d811d6a0fd68c4c22609e3490379"},
|
| 1302 |
+
{file = "watchdog-6.0.0-py3-none-manylinux2014_i686.whl", hash = "sha256:82dc3e3143c7e38ec49d61af98d6558288c415eac98486a5c581726e0737c00e"},
|
| 1303 |
+
{file = "watchdog-6.0.0-py3-none-manylinux2014_ppc64.whl", hash = "sha256:212ac9b8bf1161dc91bd09c048048a95ca3a4c4f5e5d4a7d1b1a7d5752a7f96f"},
|
| 1304 |
+
{file = "watchdog-6.0.0-py3-none-manylinux2014_ppc64le.whl", hash = "sha256:e3df4cbb9a450c6d49318f6d14f4bbc80d763fa587ba46ec86f99f9e6876bb26"},
|
| 1305 |
+
{file = "watchdog-6.0.0-py3-none-manylinux2014_s390x.whl", hash = "sha256:2cce7cfc2008eb51feb6aab51251fd79b85d9894e98ba847408f662b3395ca3c"},
|
| 1306 |
+
{file = "watchdog-6.0.0-py3-none-manylinux2014_x86_64.whl", hash = "sha256:20ffe5b202af80ab4266dcd3e91aae72bf2da48c0d33bdb15c66658e685e94e2"},
|
| 1307 |
+
{file = "watchdog-6.0.0-py3-none-win32.whl", hash = "sha256:07df1fdd701c5d4c8e55ef6cf55b8f0120fe1aef7ef39a1c6fc6bc2e606d517a"},
|
| 1308 |
+
{file = "watchdog-6.0.0-py3-none-win_amd64.whl", hash = "sha256:cbafb470cf848d93b5d013e2ecb245d4aa1c8fd0504e863ccefa32445359d680"},
|
| 1309 |
+
{file = "watchdog-6.0.0-py3-none-win_ia64.whl", hash = "sha256:a1914259fa9e1454315171103c6a30961236f508b9b623eae470268bbcc6a22f"},
|
| 1310 |
+
{file = "watchdog-6.0.0.tar.gz", hash = "sha256:9ddf7c82fda3ae8e24decda1338ede66e1c99883db93711d8fb941eaa2d8c282"},
|
| 1311 |
+
]
|
pyproject.toml
ADDED
|
@@ -0,0 +1,140 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
[project]
|
| 2 |
+
name = "object_detection_project"
|
| 3 |
+
version = "0.1.0"
|
| 4 |
+
description = "Default template for PDM package"
|
| 5 |
+
authors = [
|
| 6 |
+
{name = "", email = ""},
|
| 7 |
+
]
|
| 8 |
+
dependencies = [
|
| 9 |
+
"streamlit>=1.49.1",
|
| 10 |
+
"moviepy>=2.2.1",
|
| 11 |
+
"pillow>=10.0.0",
|
| 12 |
+
"ultralytics>=8.3.0",
|
| 13 |
+
]
|
| 14 |
+
requires-python = "==3.11.*"
|
| 15 |
+
readme = "README.md"
|
| 16 |
+
license = {text = "MIT"}
|
| 17 |
+
|
| 18 |
+
|
| 19 |
+
[tool.pdm]
|
| 20 |
+
distribution = false
|
| 21 |
+
|
| 22 |
+
|
| 23 |
+
|
| 24 |
+
[tool.ruff]
|
| 25 |
+
ignore = [
|
| 26 |
+
|
| 27 |
+
# (missing public docstrings) These work off of the Python sense of "public", rather than our
|
| 28 |
+
# bespoke definition based off of `@public`. When ruff supports custom plugins then we can write
|
| 29 |
+
# appropriate rules to require docstrings for `@public`.
|
| 30 |
+
"D100",
|
| 31 |
+
"D101",
|
| 32 |
+
"D102",
|
| 33 |
+
"D103",
|
| 34 |
+
"D104",
|
| 35 |
+
"D105",
|
| 36 |
+
"D106",
|
| 37 |
+
"D107",
|
| 38 |
+
|
| 39 |
+
# (docstring imperative mood) Overly restrictive.
|
| 40 |
+
"D401",
|
| 41 |
+
|
| 42 |
+
# (module level import not at top) There are several places where we use e.g.
|
| 43 |
+
# warnings.filterwarings calls before imports.
|
| 44 |
+
"E402",
|
| 45 |
+
|
| 46 |
+
# (line too long): This fires for comments, which black won't wrap.
|
| 47 |
+
# Disabling until there is an autoformat solution available for comments.
|
| 48 |
+
"E501",
|
| 49 |
+
|
| 50 |
+
# Pandas sometime need `==` for comparison instead of `is`
|
| 51 |
+
# Comparision to `None` should be done with `is` rather than `==`.
|
| 52 |
+
"E712",
|
| 53 |
+
|
| 54 |
+
# (no type comparison): There are a few places where we use `== type(None)` which are more clear
|
| 55 |
+
# than the equivalent `isinstance` check.
|
| 56 |
+
'E721',
|
| 57 |
+
|
| 58 |
+
# (bare exception): There are many places where we want to catch a maximally generic exception.
|
| 59 |
+
'E722',
|
| 60 |
+
|
| 61 |
+
# (no assign lambda): existing code assigns lambdas in a few places. With black formatting
|
| 62 |
+
# requiring extra empty lines between defs, disallowing lambda assignment can make code less
|
| 63 |
+
# readable.
|
| 64 |
+
"E731",
|
| 65 |
+
|
| 66 |
+
# (try-except-in-loop) we use this pattern in many places and the performance impact is negligible
|
| 67 |
+
"PERF203",
|
| 68 |
+
|
| 69 |
+
# (no concatenation) Existing codebase has many concatentations, no reason to disallow them.
|
| 70 |
+
"RUF005",
|
| 71 |
+
|
| 72 |
+
# (use ClassVar for attr declarations with defaults) This is a good rule for vanilla Python, but
|
| 73 |
+
# triggers false positives for many libs that have DSLs that make use of attr defaults.
|
| 74 |
+
"RUF012",
|
| 75 |
+
|
| 76 |
+
|
| 77 |
+
##### TEMPORARY DISABLES
|
| 78 |
+
|
| 79 |
+
# (assorted docstring rules) There are too many violations of these to enable
|
| 80 |
+
# right now, but we should enable after fixing the violations.
|
| 81 |
+
"D200", # (one-line docstring should fit)
|
| 82 |
+
"D205", # (blank line after summary)
|
| 83 |
+
"D417", # (missing arg in docstring)
|
| 84 |
+
# (assorted perf rules) We have a lot of violations, enable when autofix is available
|
| 85 |
+
"PERF401", # (manual-list-comprehension)
|
| 86 |
+
"PERF402", # (manual-list-copy)
|
| 87 |
+
]
|
| 88 |
+
# By default, ruff only uses all "E" (pycodestyle) and "F" (pyflakes) rules.
|
| 89 |
+
# Here we append to the defaults.
|
| 90 |
+
select = [
|
| 91 |
+
# (flake8-builtins) detect shadowing of python builtin symbols by variables and arguments.
|
| 92 |
+
# Attributes are OK (which is why A003) is not included here.
|
| 93 |
+
"A001",
|
| 94 |
+
"A002",
|
| 95 |
+
|
| 96 |
+
# (useless expression): Expressions that aren't assigned to anything are typically bugs.
|
| 97 |
+
"B018",
|
| 98 |
+
|
| 99 |
+
# (pydocstyle) Docstring-related rules. A large subset of these are ignored by the
|
| 100 |
+
# "convention=google" setting, we set under tool.ruff.pydocstyle.
|
| 101 |
+
"D",
|
| 102 |
+
|
| 103 |
+
# (pycodestyle) pycodestyle rules
|
| 104 |
+
"E",
|
| 105 |
+
|
| 106 |
+
# (pyflakes) pyflakes rules
|
| 107 |
+
"F",
|
| 108 |
+
|
| 109 |
+
# (isort) detect improperly sorted imports
|
| 110 |
+
"I001",
|
| 111 |
+
|
| 112 |
+
# (performance) perflint rules
|
| 113 |
+
"PERF",
|
| 114 |
+
|
| 115 |
+
# (pylint) use all pylint rules from categories "Convention", "Error", and "Warning" (ruff
|
| 116 |
+
# currently implements only a subset of pylint's rules)
|
| 117 |
+
"PLE",
|
| 118 |
+
"PLW",
|
| 119 |
+
|
| 120 |
+
# (no commented out code) keep commented out code blocks out of the codebase
|
| 121 |
+
# "ERA001",
|
| 122 |
+
|
| 123 |
+
# (ruff-specific) Enable all ruff-specific checks (i.e. not ports of
|
| 124 |
+
# functionality from an existing linter).
|
| 125 |
+
"RUF",
|
| 126 |
+
|
| 127 |
+
# (private member access) Flag access to `_`-prefixed symbols. By default the various special
|
| 128 |
+
# methods on `NamedTuple` are ignored (e.g. `_replace`).
|
| 129 |
+
"SLF001",
|
| 130 |
+
|
| 131 |
+
# (flake8-type-checking) Auto-sort imports into TYPE_CHECKING blocks depending on whether
|
| 132 |
+
# they are runtime or type-only imports.
|
| 133 |
+
"TCH",
|
| 134 |
+
|
| 135 |
+
# (f-strings) use f-strings instead of .format()
|
| 136 |
+
"UP032",
|
| 137 |
+
|
| 138 |
+
# (invalid escape sequence) flag errant backslashes
|
| 139 |
+
"W605",
|
| 140 |
+
]
|
requirements.txt
DELETED
|
@@ -1,3 +0,0 @@
|
|
| 1 |
-
altair
|
| 2 |
-
pandas
|
| 3 |
-
streamlit
|
|
|
|
|
|
|
|
|
|
|
|
src/.DS_Store
ADDED
|
Binary file (6.15 kB). View file
|
|
|
src/__pycache__/model.cpython-311.pyc
ADDED
|
Binary file (4.1 kB). View file
|
|
|
src/app.py
ADDED
|
@@ -0,0 +1,180 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import os
|
| 2 |
+
import tempfile
|
| 3 |
+
import time
|
| 4 |
+
from pathlib import Path
|
| 5 |
+
from shutil import which
|
| 6 |
+
|
| 7 |
+
import streamlit as st
|
| 8 |
+
from PIL import Image
|
| 9 |
+
|
| 10 |
+
from model import *
|
| 11 |
+
|
| 12 |
+
|
| 13 |
+
def main():
|
| 14 |
+
model = YOLOModelv2()
|
| 15 |
+
minimum_confidence_threshold = 0.5
|
| 16 |
+
|
| 17 |
+
st.set_page_config(page_title="SatSense Demo")
|
| 18 |
+
st.title(":satellite: SatSense Demo")
|
| 19 |
+
st.markdown(
|
| 20 |
+
"""
|
| 21 |
+
The SatSense demo app simplifies annotating images and videos taken by satellites.
|
| 22 |
+
It employs cutting-edge object detection models to automatically analyze and recognize
|
| 23 |
+
various objects in satellite imagery, including vehicles and ships.
|
| 24 |
+
|
| 25 |
+
#### How to get started
|
| 26 |
+
|
| 27 |
+
1. **Upload Satellite Imagery:** Use the sidebar to upload your satellite imagery media
|
| 28 |
+
files for analysis.
|
| 29 |
+
2. **Review Identified Objects:** Explore the annotated objects marked by the model.
|
| 30 |
+
|
| 31 |
+
#### Tips for usage
|
| 32 |
+
|
| 33 |
+
1. Please clear any existing uploads in the sidebar before uploading a new file.
|
| 34 |
+
2. For optimal results, please upload clear and high-resolution satellite media files.
|
| 35 |
+
3. [Location SA Map Viewer](https://location.sa.gov.au/viewer/) provides satellite imagery that can be used as image input.
|
| 36 |
+
|
| 37 |
+
SatSense simplifies the process of annotating satellite imagery and allows you to
|
| 38 |
+
export the annotated media files. Start annotating and discovering objects of interest
|
| 39 |
+
effortlessly!
|
| 40 |
+
|
| 41 |
+
***Note:** In its current MVP stage, the SatSense demo offers a glimpse into the
|
| 42 |
+
world of automatic object detection in satellite imagery. Your feedback can help shape
|
| 43 |
+
its future improvements!*
|
| 44 |
+
"""
|
| 45 |
+
)
|
| 46 |
+
|
| 47 |
+
# Sidebar to set minimum confidence threshold
|
| 48 |
+
st.sidebar.header("Parameters")
|
| 49 |
+
minimum_confidence_threshold = st.sidebar.slider(
|
| 50 |
+
"Minimum confidence threshold",
|
| 51 |
+
min_value=0.0,
|
| 52 |
+
max_value=1.0,
|
| 53 |
+
step=0.1,
|
| 54 |
+
value=minimum_confidence_threshold,
|
| 55 |
+
format="%.1f",
|
| 56 |
+
)
|
| 57 |
+
st.sidebar.markdown("---")
|
| 58 |
+
|
| 59 |
+
# Sidebar for image detection
|
| 60 |
+
st.sidebar.header("Image Detection")
|
| 61 |
+
uploaded_image = st.sidebar.file_uploader(
|
| 62 |
+
"Upload an image", type=["jpg", "jpeg", "png"]
|
| 63 |
+
)
|
| 64 |
+
|
| 65 |
+
st.sidebar.markdown("---")
|
| 66 |
+
|
| 67 |
+
# Sidebar for video detection
|
| 68 |
+
st.sidebar.header("Video Detection")
|
| 69 |
+
uploaded_video = st.sidebar.file_uploader(
|
| 70 |
+
"Upload a video", type=["mp4", "avi", "mov"]
|
| 71 |
+
)
|
| 72 |
+
|
| 73 |
+
if uploaded_image:
|
| 74 |
+
st.markdown("---")
|
| 75 |
+
st.write("")
|
| 76 |
+
|
| 77 |
+
st.markdown("#### Uploaded image")
|
| 78 |
+
image = Image.open(uploaded_image)
|
| 79 |
+
st.image(image, use_column_width=True)
|
| 80 |
+
|
| 81 |
+
st.write("")
|
| 82 |
+
st.write("")
|
| 83 |
+
|
| 84 |
+
with st.spinner("Processing..."):
|
| 85 |
+
annotated_image = model.predict_image(
|
| 86 |
+
image, min_confidence=minimum_confidence_threshold
|
| 87 |
+
)
|
| 88 |
+
|
| 89 |
+
st.markdown("#### Annotated image")
|
| 90 |
+
st.image(annotated_image, use_column_width=True)
|
| 91 |
+
|
| 92 |
+
if uploaded_video:
|
| 93 |
+
st.markdown("---")
|
| 94 |
+
st.write("")
|
| 95 |
+
|
| 96 |
+
temp_dir = tempfile.mkdtemp()
|
| 97 |
+
# Preserve uploaded extension to maximize compatibility with OpenCV/YOLO
|
| 98 |
+
uploaded_ext = Path(uploaded_video.name).suffix.lower() or ".mp4"
|
| 99 |
+
temp_video_path = os.path.join(temp_dir, f"temp_video{uploaded_ext}")
|
| 100 |
+
annotated_dir = "./annotated_video"
|
| 101 |
+
os.makedirs(annotated_dir, exist_ok=True)
|
| 102 |
+
annotated_video_path_input_ext = os.path.join(
|
| 103 |
+
annotated_dir, f"temp_video{uploaded_ext}"
|
| 104 |
+
)
|
| 105 |
+
annotated_video_path_mp4 = os.path.join(annotated_dir, "temp_video.mp4")
|
| 106 |
+
|
| 107 |
+
st.markdown("#### Uploaded video")
|
| 108 |
+
uploaded_video_bytes = uploaded_video.getvalue()
|
| 109 |
+
st.video(uploaded_video_bytes)
|
| 110 |
+
|
| 111 |
+
st.write("")
|
| 112 |
+
st.write("")
|
| 113 |
+
|
| 114 |
+
progress_bar = st.progress(0.3, text="Performing object detection...")
|
| 115 |
+
|
| 116 |
+
with open(temp_video_path, "wb") as video_file:
|
| 117 |
+
video_file.write(uploaded_video.getvalue())
|
| 118 |
+
|
| 119 |
+
model.predict_video(
|
| 120 |
+
temp_video_path,
|
| 121 |
+
min_confidence=minimum_confidence_threshold,
|
| 122 |
+
target_dir_name="annotated_video",
|
| 123 |
+
)
|
| 124 |
+
|
| 125 |
+
final_video_path = annotated_video_path_input_ext
|
| 126 |
+
|
| 127 |
+
# If the annotated output isn't mp4, try converting with ffmpeg if available
|
| 128 |
+
if uploaded_ext != ".mp4":
|
| 129 |
+
progress_bar.progress(0.67, text="Converting video format...")
|
| 130 |
+
if which("ffmpeg"):
|
| 131 |
+
import subprocess
|
| 132 |
+
|
| 133 |
+
try:
|
| 134 |
+
subprocess.run(
|
| 135 |
+
[
|
| 136 |
+
"ffmpeg",
|
| 137 |
+
"-y",
|
| 138 |
+
"-i",
|
| 139 |
+
annotated_video_path_input_ext,
|
| 140 |
+
"-c:v",
|
| 141 |
+
"libx264",
|
| 142 |
+
"-pix_fmt",
|
| 143 |
+
"yuv420p",
|
| 144 |
+
"-crf",
|
| 145 |
+
"23",
|
| 146 |
+
"-preset",
|
| 147 |
+
"veryfast",
|
| 148 |
+
"-an",
|
| 149 |
+
annotated_video_path_mp4,
|
| 150 |
+
],
|
| 151 |
+
check=True,
|
| 152 |
+
stdout=subprocess.DEVNULL,
|
| 153 |
+
stderr=subprocess.STDOUT,
|
| 154 |
+
)
|
| 155 |
+
final_video_path = annotated_video_path_mp4
|
| 156 |
+
except Exception:
|
| 157 |
+
st.warning(
|
| 158 |
+
"ffmpeg failed to convert the video. Attempting to display original format."
|
| 159 |
+
)
|
| 160 |
+
else:
|
| 161 |
+
st.info(
|
| 162 |
+
"Install ffmpeg to enable conversion to mp4 (e.g. `brew install ffmpeg` on macOS) or use the provided Dockerfile."
|
| 163 |
+
)
|
| 164 |
+
|
| 165 |
+
progress_bar.progress(1.0, text="Done!")
|
| 166 |
+
time.sleep(1)
|
| 167 |
+
progress_bar.empty()
|
| 168 |
+
|
| 169 |
+
st.markdown("#### Annotated video")
|
| 170 |
+
annotated_video_file = open(final_video_path, "rb")
|
| 171 |
+
annotated_video_bytes = annotated_video_file.read()
|
| 172 |
+
# Let Streamlit infer format from the file when possible
|
| 173 |
+
st.video(annotated_video_bytes)
|
| 174 |
+
|
| 175 |
+
st.markdown("---")
|
| 176 |
+
st.markdown("Demo built by [Lucid Insights Pty Ltd](https://lucidinsights.com.au).")
|
| 177 |
+
|
| 178 |
+
|
| 179 |
+
if __name__ == "__main__":
|
| 180 |
+
main()
|
src/model.py
ADDED
|
@@ -0,0 +1,79 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
from abc import ABC, abstractmethod
|
| 2 |
+
|
| 3 |
+
from PIL import Image
|
| 4 |
+
from ultralytics import YOLO
|
| 5 |
+
|
| 6 |
+
|
| 7 |
+
class BaseModel(ABC):
|
| 8 |
+
@abstractmethod
|
| 9 |
+
def __init__(self):
|
| 10 |
+
pass
|
| 11 |
+
|
| 12 |
+
@abstractmethod
|
| 13 |
+
def predict_image(self, image):
|
| 14 |
+
pass
|
| 15 |
+
|
| 16 |
+
@abstractmethod
|
| 17 |
+
def predict_video(self, video):
|
| 18 |
+
pass
|
| 19 |
+
|
| 20 |
+
|
| 21 |
+
class YOLOModelv1(BaseModel):
|
| 22 |
+
"""Model: modelYOLOv8n_datasetDOTAv2_epochs5_batch1.pt"""
|
| 23 |
+
|
| 24 |
+
def __init__(self):
|
| 25 |
+
self.model = YOLO(
|
| 26 |
+
"./models/modelYOLOv8n_datasetDOTAv2_epochs5_batch1.pt", task="detect"
|
| 27 |
+
)
|
| 28 |
+
|
| 29 |
+
def predict_image(self, image, min_confidence):
|
| 30 |
+
results = self.model.predict(image, save=False, imgsz=640, conf=min_confidence)
|
| 31 |
+
annotated_image_filename = "annotated_image.png"
|
| 32 |
+
for result in results:
|
| 33 |
+
im_array = result.plot()
|
| 34 |
+
im = Image.fromarray(im_array[..., ::-1]) # RGB PIL image
|
| 35 |
+
im.save(annotated_image_filename)
|
| 36 |
+
return annotated_image_filename
|
| 37 |
+
|
| 38 |
+
def predict_video(self, video, min_confidence, target_dir_name="annotated_video"):
|
| 39 |
+
self.model.predict(
|
| 40 |
+
video,
|
| 41 |
+
save=True,
|
| 42 |
+
project=".",
|
| 43 |
+
name=target_dir_name,
|
| 44 |
+
exist_ok=True,
|
| 45 |
+
imgsz=640,
|
| 46 |
+
conf=min_confidence,
|
| 47 |
+
)
|
| 48 |
+
|
| 49 |
+
|
| 50 |
+
class YOLOModelv2(BaseModel):
|
| 51 |
+
"""Model: modelYOLOv8n_datasetDIOR_epochs50_batch16.pt"""
|
| 52 |
+
|
| 53 |
+
def __init__(self):
|
| 54 |
+
self.model = YOLO(
|
| 55 |
+
"./models/modelYOLOv8n_datasetDIOR_epochs50_batch16.pt", task="detect"
|
| 56 |
+
)
|
| 57 |
+
|
| 58 |
+
def predict_image(self, image, min_confidence, classes=None):
|
| 59 |
+
results = self.model.predict(
|
| 60 |
+
image, save=False, imgsz=800, conf=min_confidence, classes=classes
|
| 61 |
+
)
|
| 62 |
+
annotated_image_filename = "annotated_image.png"
|
| 63 |
+
for result in results:
|
| 64 |
+
im_array = result.plot()
|
| 65 |
+
im = Image.fromarray(im_array[..., ::-1]) # RGB PIL image
|
| 66 |
+
im.save(annotated_image_filename)
|
| 67 |
+
return annotated_image_filename
|
| 68 |
+
|
| 69 |
+
def predict_video(self, video, min_confidence, target_dir_name="annotated_video", classes=None):
|
| 70 |
+
self.model.predict(
|
| 71 |
+
video,
|
| 72 |
+
save=True,
|
| 73 |
+
project=".",
|
| 74 |
+
name=target_dir_name,
|
| 75 |
+
exist_ok=True,
|
| 76 |
+
imgsz=800,
|
| 77 |
+
conf=min_confidence,
|
| 78 |
+
classes=classes,
|
| 79 |
+
)
|
src/streamlit_app.py
DELETED
|
@@ -1,40 +0,0 @@
|
|
| 1 |
-
import altair as alt
|
| 2 |
-
import numpy as np
|
| 3 |
-
import pandas as pd
|
| 4 |
-
import streamlit as st
|
| 5 |
-
|
| 6 |
-
"""
|
| 7 |
-
# Welcome to Streamlit!
|
| 8 |
-
|
| 9 |
-
Edit `/streamlit_app.py` to customize this app to your heart's desire :heart:.
|
| 10 |
-
If you have any questions, checkout our [documentation](https://docs.streamlit.io) and [community
|
| 11 |
-
forums](https://discuss.streamlit.io).
|
| 12 |
-
|
| 13 |
-
In the meantime, below is an example of what you can do with just a few lines of code:
|
| 14 |
-
"""
|
| 15 |
-
|
| 16 |
-
num_points = st.slider("Number of points in spiral", 1, 10000, 1100)
|
| 17 |
-
num_turns = st.slider("Number of turns in spiral", 1, 300, 31)
|
| 18 |
-
|
| 19 |
-
indices = np.linspace(0, 1, num_points)
|
| 20 |
-
theta = 2 * np.pi * num_turns * indices
|
| 21 |
-
radius = indices
|
| 22 |
-
|
| 23 |
-
x = radius * np.cos(theta)
|
| 24 |
-
y = radius * np.sin(theta)
|
| 25 |
-
|
| 26 |
-
df = pd.DataFrame({
|
| 27 |
-
"x": x,
|
| 28 |
-
"y": y,
|
| 29 |
-
"idx": indices,
|
| 30 |
-
"rand": np.random.randn(num_points),
|
| 31 |
-
})
|
| 32 |
-
|
| 33 |
-
st.altair_chart(alt.Chart(df, height=700, width=700)
|
| 34 |
-
.mark_point(filled=True)
|
| 35 |
-
.encode(
|
| 36 |
-
x=alt.X("x", axis=None),
|
| 37 |
-
y=alt.Y("y", axis=None),
|
| 38 |
-
color=alt.Color("idx", legend=None, scale=alt.Scale()),
|
| 39 |
-
size=alt.Size("rand", legend=None, scale=alt.Scale(range=[1, 150])),
|
| 40 |
-
))
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|