deploy: 63a85616f5fc427cf1e1e7b425293131f2fce2b8
Browse files- README.md +167 -1
- layout-underlay-effectiveness.py +26 -9
- requirements.txt +134 -89
README.md
CHANGED
|
@@ -8,4 +8,170 @@ sdk_version: 4.36.1
|
|
| 8 |
app_file: app.py
|
| 9 |
pinned: false
|
| 10 |
---
|
| 11 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 8 |
app_file: app.py
|
| 9 |
pinned: false
|
| 10 |
---
|
| 11 |
+
|
| 12 |
+
# Layout Underlay Effectiveness
|
| 13 |
+
|
| 14 |
+
## Description
|
| 15 |
+
|
| 16 |
+
The Layout Underlay Effectiveness metric evaluates how well underlay (decoration/background) elements are placed in a layout. Underlay elements should be positioned underneath other layout elements to serve their intended purpose as background or decorative layers. This metric measures what proportion of underlay elements correctly have other elements placed on top of them.
|
| 17 |
+
|
| 18 |
+
## What It Measures
|
| 19 |
+
|
| 20 |
+
This metric computes:
|
| 21 |
+
|
| 22 |
+
- **Valid underlay ratio**: Proportion of underlay elements that correctly have foreground elements on top
|
| 23 |
+
- **Underlay functionality**: Whether decoration elements serve their background purpose
|
| 24 |
+
- **Layer correctness**: How well the layout respects foreground/background hierarchy
|
| 25 |
+
|
| 26 |
+
Higher scores indicate better underlay placement where decoration elements properly support foreground content.
|
| 27 |
+
|
| 28 |
+
## Metric Details
|
| 29 |
+
|
| 30 |
+
Two calculation modes:
|
| 31 |
+
|
| 32 |
+
1. **Strict mode**: Underlay scores 1 if there's a non-underlay element completely inside it, 0 otherwise
|
| 33 |
+
2. **Loose mode**: Calculates ratio of intersection area to underlay area (ai/a2)
|
| 34 |
+
|
| 35 |
+
- Filters out text and other underlay elements when evaluating each underlay
|
| 36 |
+
- From PosterLayout (Hsu et al., CVPR 2023) for poster design evaluation
|
| 37 |
+
- Typical underlay class index: 3 (decoration/background)
|
| 38 |
+
|
| 39 |
+
## Usage
|
| 40 |
+
|
| 41 |
+
### Installation
|
| 42 |
+
|
| 43 |
+
```bash
|
| 44 |
+
pip install evaluate
|
| 45 |
+
```
|
| 46 |
+
|
| 47 |
+
### Basic Example
|
| 48 |
+
|
| 49 |
+
```python
|
| 50 |
+
import evaluate
|
| 51 |
+
import numpy as np
|
| 52 |
+
|
| 53 |
+
# Load the metric with canvas dimensions
|
| 54 |
+
metric = evaluate.load(
|
| 55 |
+
"creative-graphic-design/layout-underlay-effectiveness",
|
| 56 |
+
canvas_width=360,
|
| 57 |
+
canvas_height=504,
|
| 58 |
+
text_label_index=1,
|
| 59 |
+
decoration_label_index=3
|
| 60 |
+
)
|
| 61 |
+
|
| 62 |
+
# Prepare data
|
| 63 |
+
predictions = np.random.rand(1, 25, 4) # normalized ltrb coordinates
|
| 64 |
+
gold_labels = np.random.randint(0, 4, size=(1, 25)) # class labels
|
| 65 |
+
score = metric.compute(predictions=predictions, gold_labels=gold_labels)
|
| 66 |
+
print(score)
|
| 67 |
+
```
|
| 68 |
+
|
| 69 |
+
### Batch Processing Example
|
| 70 |
+
|
| 71 |
+
```python
|
| 72 |
+
import evaluate
|
| 73 |
+
import numpy as np
|
| 74 |
+
|
| 75 |
+
# Load the metric
|
| 76 |
+
metric = evaluate.load(
|
| 77 |
+
"creative-graphic-design/layout-underlay-effectiveness",
|
| 78 |
+
canvas_width=360,
|
| 79 |
+
canvas_height=504,
|
| 80 |
+
text_label_index=1,
|
| 81 |
+
decoration_label_index=3
|
| 82 |
+
)
|
| 83 |
+
|
| 84 |
+
# Batch processing
|
| 85 |
+
batch_size = 128
|
| 86 |
+
predictions = np.random.rand(batch_size, 25, 4)
|
| 87 |
+
gold_labels = np.random.randint(0, 4, size=(batch_size, 25))
|
| 88 |
+
score = metric.compute(predictions=predictions, gold_labels=gold_labels)
|
| 89 |
+
print(score)
|
| 90 |
+
```
|
| 91 |
+
|
| 92 |
+
## Parameters
|
| 93 |
+
|
| 94 |
+
### Initialization Parameters
|
| 95 |
+
|
| 96 |
+
- **canvas_width** (`int`, required): Width of the canvas in pixels
|
| 97 |
+
- **canvas_height** (`int`, required): Height of the canvas in pixels
|
| 98 |
+
- **text_label_index** (`int`, optional, default=1): Class index for text elements
|
| 99 |
+
- **decoration_label_index** (`int`, optional, default=3): Class index for underlay/decoration elements
|
| 100 |
+
|
| 101 |
+
### Computation Parameters
|
| 102 |
+
|
| 103 |
+
- **predictions** (`list` of `lists` of `float`): Normalized bounding boxes in ltrb format (0.0 to 1.0)
|
| 104 |
+
- **gold_labels** (`list` of `lists` of `int`): Class labels for each element (0 = padding)
|
| 105 |
+
|
| 106 |
+
**Note**:
|
| 107 |
+
|
| 108 |
+
- Elements with label == 0 are treated as padding
|
| 109 |
+
- Text elements (text_label_index) and other underlays are excluded when checking each underlay
|
| 110 |
+
- Very small elements (< 0.1% of canvas) are filtered out
|
| 111 |
+
|
| 112 |
+
## Returns
|
| 113 |
+
|
| 114 |
+
Returns a dictionary containing:
|
| 115 |
+
|
| 116 |
+
- **underlay-effectiveness-strict** (`float`): Strict mode score (0.0 to 1.0)
|
| 117 |
+
- **underlay-effectiveness-loose** (`float`): Loose mode score (0.0 to 1.0)
|
| 118 |
+
|
| 119 |
+
## Interpretation
|
| 120 |
+
|
| 121 |
+
- **Higher is better** (range: 0.0 to 1.0)
|
| 122 |
+
- **Value of 1.0**: All underlay elements have foreground content on top (perfect)
|
| 123 |
+
- **Value of 0.7-1.0**: Most underlays are effective
|
| 124 |
+
- **Value of 0.5-0.7**: Some underlays are not effectively used
|
| 125 |
+
- **Value < 0.5**: Many underlays lack foreground content (poor design)
|
| 126 |
+
- **Value of 0.0**: No underlays have elements on top (problematic)
|
| 127 |
+
|
| 128 |
+
### Mode Differences
|
| 129 |
+
|
| 130 |
+
**Strict Mode**:
|
| 131 |
+
|
| 132 |
+
- Binary scoring (0 or 1 per underlay)
|
| 133 |
+
- Requires complete containment of a foreground element
|
| 134 |
+
- More conservative evaluation
|
| 135 |
+
|
| 136 |
+
**Loose Mode**:
|
| 137 |
+
|
| 138 |
+
- Continuous scoring based on overlap ratio
|
| 139 |
+
- Partial overlaps count proportionally
|
| 140 |
+
- More lenient evaluation
|
| 141 |
+
|
| 142 |
+
### Use Cases
|
| 143 |
+
|
| 144 |
+
- **Poster/presentation layout evaluation**: Ensure decoration layers function properly
|
| 145 |
+
- **Multi-layer designs**: Validate foreground/background hierarchy
|
| 146 |
+
- **Content-aware generation**: Assess whether models understand layer relationships
|
| 147 |
+
- **Design quality**: Identify layouts with ineffective underlay usage
|
| 148 |
+
|
| 149 |
+
### Key Insights
|
| 150 |
+
|
| 151 |
+
- **Purpose of underlay**: Should support foreground content, not exist independently
|
| 152 |
+
- **Layout hierarchy matters**: Underlay effectiveness indicates proper layer understanding
|
| 153 |
+
- **Design intent**: Some layouts intentionally have standalone decorative elements
|
| 154 |
+
- **Context-specific**: Most relevant for poster, flyer, and presentation layouts
|
| 155 |
+
|
| 156 |
+
## Citations
|
| 157 |
+
|
| 158 |
+
```bibtex
|
| 159 |
+
@inproceedings{hsu2023posterlayout,
|
| 160 |
+
title={Posterlayout: A new benchmark and approach for content-aware visual-textual presentation layout},
|
| 161 |
+
author={Hsu, Hsiao Yuan and He, Xiangteng and Peng, Yuxin and Kong, Hao and Zhang, Qing},
|
| 162 |
+
booktitle={Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition},
|
| 163 |
+
pages={6018--6026},
|
| 164 |
+
year={2023}
|
| 165 |
+
}
|
| 166 |
+
```
|
| 167 |
+
|
| 168 |
+
## References
|
| 169 |
+
|
| 170 |
+
- **Paper**: [PosterLayout (Hsu et al., CVPR 2023)](https://arxiv.org/abs/2303.15937)
|
| 171 |
+
- **Reference Implementation**: [PosterLayout eval.py](https://github.com/PKU-ICST-MIPL/PosterLayout-CVPR2023/blob/main/eval.py)
|
| 172 |
+
|
| 173 |
+
## Related Metrics
|
| 174 |
+
|
| 175 |
+
- [Layout Overlay](../layout_overlay/): Measures overlap excluding underlay
|
| 176 |
+
- [Layout Occlusion](../layout_occlusion/): Evaluates coverage of salient regions
|
| 177 |
+
- [Layout Validity](../layout_validity/): Checks basic validity constraints
|
layout-underlay-effectiveness.py
CHANGED
|
@@ -4,10 +4,9 @@ import datasets as ds
|
|
| 4 |
import evaluate
|
| 5 |
import numpy as np
|
| 6 |
import numpy.typing as npt
|
|
|
|
| 7 |
|
| 8 |
_DESCRIPTION = r"""\
|
| 9 |
-
Computes the non-flatness of regions that text elements are solely put on, referring to CGL-GAN.
|
| 10 |
-
|
| 11 |
Computes the ratio of valid underlay elements to total underlay elements used in PosterLayout. Intuitively, underlay should be placed under other non-underlay elements.
|
| 12 |
- strict: scoring the underlay as:
|
| 13 |
- 1: there is a non-underlay element completely inside
|
|
@@ -16,7 +15,15 @@ Computes the ratio of valid underlay elements to total underlay elements used in
|
|
| 16 |
"""
|
| 17 |
|
| 18 |
_KWARGS_DESCRIPTION = """\
|
| 19 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 20 |
"""
|
| 21 |
|
| 22 |
_CITATION = """\
|
|
@@ -30,6 +37,7 @@ _CITATION = """\
|
|
| 30 |
"""
|
| 31 |
|
| 32 |
|
|
|
|
| 33 |
class LayoutUnderlayEffectiveness(evaluate.Metric):
|
| 34 |
def __init__(
|
| 35 |
self,
|
|
@@ -106,7 +114,9 @@ class LayoutUnderlayEffectiveness(evaluate.Metric):
|
|
| 106 |
def _compute_und_l(
|
| 107 |
self, predictions: npt.NDArray[np.float64], gold_labels: npt.NDArray[np.int64]
|
| 108 |
) -> float:
|
| 109 |
-
metrics, avali = 0.0, 0
|
|
|
|
|
|
|
| 110 |
|
| 111 |
for gold_label, prediction in zip(gold_labels, predictions):
|
| 112 |
und = 0
|
|
@@ -127,9 +137,12 @@ class LayoutUnderlayEffectiveness(evaluate.Metric):
|
|
| 127 |
ios = self.metrics_inter_oneside(bb1, bb2)
|
| 128 |
max_ios = max(max_ios, ios)
|
| 129 |
und += max_ios
|
| 130 |
-
metrics += und / n1
|
|
|
|
| 131 |
|
| 132 |
-
return metrics / avali if avali > 0 else 0.0
|
|
|
|
|
|
|
| 133 |
|
| 134 |
def _compute_und_s(
|
| 135 |
self, predictions: npt.NDArray[np.float64], gold_labels: npt.NDArray[np.int64]
|
|
@@ -145,7 +158,9 @@ class LayoutUnderlayEffectiveness(evaluate.Metric):
|
|
| 145 |
|
| 146 |
return c1 and c2 and c3 and c4
|
| 147 |
|
| 148 |
-
metrics, avali = 0.0, 0
|
|
|
|
|
|
|
| 149 |
|
| 150 |
for gold_label, prediction in zip(gold_labels, predictions):
|
| 151 |
und = 0
|
|
@@ -165,9 +180,11 @@ class LayoutUnderlayEffectiveness(evaluate.Metric):
|
|
| 165 |
if is_contain(bb1, bb2):
|
| 166 |
und += 1
|
| 167 |
break
|
| 168 |
-
metrics += und / n1
|
|
|
|
| 169 |
|
| 170 |
-
return metrics / avali if avali > 0 else 0.0
|
|
|
|
| 171 |
|
| 172 |
def _compute(
|
| 173 |
self,
|
|
|
|
| 4 |
import evaluate
|
| 5 |
import numpy as np
|
| 6 |
import numpy.typing as npt
|
| 7 |
+
from evaluate.utils.file_utils import add_start_docstrings
|
| 8 |
|
| 9 |
_DESCRIPTION = r"""\
|
|
|
|
|
|
|
| 10 |
Computes the ratio of valid underlay elements to total underlay elements used in PosterLayout. Intuitively, underlay should be placed under other non-underlay elements.
|
| 11 |
- strict: scoring the underlay as:
|
| 12 |
- 1: there is a non-underlay element completely inside
|
|
|
|
| 15 |
"""
|
| 16 |
|
| 17 |
_KWARGS_DESCRIPTION = """\
|
| 18 |
+
Args:
|
| 19 |
+
predictions (`list` of `lists` of `float`): A list of lists of floats representing normalized `ltrb`-format bounding boxes.
|
| 20 |
+
gold_labels (`list` of `lists` of `int`): A list of lists of integers representing class labels.
|
| 21 |
+
|
| 22 |
+
Returns:
|
| 23 |
+
float: The ratio of valid underlay elements to total underlay elements.
|
| 24 |
+
|
| 25 |
+
Examples:
|
| 26 |
+
FIXME
|
| 27 |
"""
|
| 28 |
|
| 29 |
_CITATION = """\
|
|
|
|
| 37 |
"""
|
| 38 |
|
| 39 |
|
| 40 |
+
@add_start_docstrings(_DESCRIPTION, _KWARGS_DESCRIPTION)
|
| 41 |
class LayoutUnderlayEffectiveness(evaluate.Metric):
|
| 42 |
def __init__(
|
| 43 |
self,
|
|
|
|
| 114 |
def _compute_und_l(
|
| 115 |
self, predictions: npt.NDArray[np.float64], gold_labels: npt.NDArray[np.int64]
|
| 116 |
) -> float:
|
| 117 |
+
# metrics, avali = 0.0, 0
|
| 118 |
+
metrics = []
|
| 119 |
+
avali = 0
|
| 120 |
|
| 121 |
for gold_label, prediction in zip(gold_labels, predictions):
|
| 122 |
und = 0
|
|
|
|
| 137 |
ios = self.metrics_inter_oneside(bb1, bb2)
|
| 138 |
max_ios = max(max_ios, ios)
|
| 139 |
und += max_ios
|
| 140 |
+
# metrics += und / n1
|
| 141 |
+
metrics.append(und / n1)
|
| 142 |
|
| 143 |
+
# return metrics / avali if avali > 0 else 0.0
|
| 144 |
+
# return {"mean": np.mean(metrics), "std": np.std(metrics)}
|
| 145 |
+
return float(np.mean(metrics))
|
| 146 |
|
| 147 |
def _compute_und_s(
|
| 148 |
self, predictions: npt.NDArray[np.float64], gold_labels: npt.NDArray[np.int64]
|
|
|
|
| 158 |
|
| 159 |
return c1 and c2 and c3 and c4
|
| 160 |
|
| 161 |
+
# metrics, avali = 0.0, 0
|
| 162 |
+
metrics = []
|
| 163 |
+
avali = 0
|
| 164 |
|
| 165 |
for gold_label, prediction in zip(gold_labels, predictions):
|
| 166 |
und = 0
|
|
|
|
| 180 |
if is_contain(bb1, bb2):
|
| 181 |
und += 1
|
| 182 |
break
|
| 183 |
+
# metrics += und / n1
|
| 184 |
+
metrics.append(und / n1)
|
| 185 |
|
| 186 |
+
# return metrics / avali if avali > 0 else 0.0
|
| 187 |
+
return float(np.mean(metrics))
|
| 188 |
|
| 189 |
def _compute(
|
| 190 |
self,
|
requirements.txt
CHANGED
|
@@ -1,89 +1,134 @@
|
|
| 1 |
-
|
| 2 |
-
|
| 3 |
-
|
| 4 |
-
|
| 5 |
-
|
| 6 |
-
|
| 7 |
-
|
| 8 |
-
|
| 9 |
-
|
| 10 |
-
|
| 11 |
-
|
| 12 |
-
|
| 13 |
-
|
| 14 |
-
|
| 15 |
-
|
| 16 |
-
|
| 17 |
-
|
| 18 |
-
|
| 19 |
-
|
| 20 |
-
|
| 21 |
-
|
| 22 |
-
|
| 23 |
-
|
| 24 |
-
|
| 25 |
-
|
| 26 |
-
|
| 27 |
-
|
| 28 |
-
|
| 29 |
-
|
| 30 |
-
|
| 31 |
-
|
| 32 |
-
|
| 33 |
-
|
| 34 |
-
|
| 35 |
-
|
| 36 |
-
|
| 37 |
-
|
| 38 |
-
|
| 39 |
-
|
| 40 |
-
|
| 41 |
-
|
| 42 |
-
|
| 43 |
-
|
| 44 |
-
|
| 45 |
-
|
| 46 |
-
|
| 47 |
-
|
| 48 |
-
|
| 49 |
-
|
| 50 |
-
|
| 51 |
-
|
| 52 |
-
|
| 53 |
-
|
| 54 |
-
|
| 55 |
-
|
| 56 |
-
|
| 57 |
-
|
| 58 |
-
|
| 59 |
-
|
| 60 |
-
|
| 61 |
-
|
| 62 |
-
|
| 63 |
-
|
| 64 |
-
|
| 65 |
-
|
| 66 |
-
requests
|
| 67 |
-
|
| 68 |
-
|
| 69 |
-
|
| 70 |
-
|
| 71 |
-
|
| 72 |
-
|
| 73 |
-
|
| 74 |
-
|
| 75 |
-
|
| 76 |
-
|
| 77 |
-
|
| 78 |
-
|
| 79 |
-
|
| 80 |
-
|
| 81 |
-
|
| 82 |
-
|
| 83 |
-
|
| 84 |
-
|
| 85 |
-
|
| 86 |
-
|
| 87 |
-
|
| 88 |
-
|
| 89 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# This file was autogenerated by uv via the following command:
|
| 2 |
+
# uv export --package layout_underlay_effectiveness --no-dev --no-hashes --format requirements-txt
|
| 3 |
+
aiohappyeyeballs==2.6.1
|
| 4 |
+
# via aiohttp
|
| 5 |
+
aiohttp==3.13.2
|
| 6 |
+
# via fsspec
|
| 7 |
+
aiosignal==1.4.0
|
| 8 |
+
# via aiohttp
|
| 9 |
+
anyio==4.12.0
|
| 10 |
+
# via httpx
|
| 11 |
+
attrs==25.4.0
|
| 12 |
+
# via aiohttp
|
| 13 |
+
certifi==2025.11.12
|
| 14 |
+
# via
|
| 15 |
+
# httpcore
|
| 16 |
+
# httpx
|
| 17 |
+
# requests
|
| 18 |
+
charset-normalizer==3.4.4
|
| 19 |
+
# via requests
|
| 20 |
+
click==8.3.1
|
| 21 |
+
# via typer-slim
|
| 22 |
+
colorama==0.4.6 ; sys_platform == 'win32'
|
| 23 |
+
# via
|
| 24 |
+
# click
|
| 25 |
+
# tqdm
|
| 26 |
+
datasets==4.4.2
|
| 27 |
+
# via evaluate
|
| 28 |
+
dill==0.4.0
|
| 29 |
+
# via
|
| 30 |
+
# datasets
|
| 31 |
+
# evaluate
|
| 32 |
+
# multiprocess
|
| 33 |
+
evaluate==0.4.6
|
| 34 |
+
# via layout-underlay-effectiveness
|
| 35 |
+
filelock==3.20.1
|
| 36 |
+
# via
|
| 37 |
+
# datasets
|
| 38 |
+
# huggingface-hub
|
| 39 |
+
frozenlist==1.8.0
|
| 40 |
+
# via
|
| 41 |
+
# aiohttp
|
| 42 |
+
# aiosignal
|
| 43 |
+
fsspec==2025.10.0
|
| 44 |
+
# via
|
| 45 |
+
# datasets
|
| 46 |
+
# evaluate
|
| 47 |
+
# huggingface-hub
|
| 48 |
+
h11==0.16.0
|
| 49 |
+
# via httpcore
|
| 50 |
+
hf-xet==1.2.0 ; platform_machine == 'AMD64' or platform_machine == 'aarch64' or platform_machine == 'amd64' or platform_machine == 'arm64' or platform_machine == 'x86_64'
|
| 51 |
+
# via huggingface-hub
|
| 52 |
+
httpcore==1.0.9
|
| 53 |
+
# via httpx
|
| 54 |
+
httpx==0.28.1
|
| 55 |
+
# via
|
| 56 |
+
# datasets
|
| 57 |
+
# huggingface-hub
|
| 58 |
+
huggingface-hub==1.2.3
|
| 59 |
+
# via
|
| 60 |
+
# datasets
|
| 61 |
+
# evaluate
|
| 62 |
+
idna==3.11
|
| 63 |
+
# via
|
| 64 |
+
# anyio
|
| 65 |
+
# httpx
|
| 66 |
+
# requests
|
| 67 |
+
# yarl
|
| 68 |
+
multidict==6.7.0
|
| 69 |
+
# via
|
| 70 |
+
# aiohttp
|
| 71 |
+
# yarl
|
| 72 |
+
multiprocess==0.70.18
|
| 73 |
+
# via
|
| 74 |
+
# datasets
|
| 75 |
+
# evaluate
|
| 76 |
+
numpy==2.2.6
|
| 77 |
+
# via
|
| 78 |
+
# datasets
|
| 79 |
+
# evaluate
|
| 80 |
+
# pandas
|
| 81 |
+
packaging==25.0
|
| 82 |
+
# via
|
| 83 |
+
# datasets
|
| 84 |
+
# evaluate
|
| 85 |
+
# huggingface-hub
|
| 86 |
+
pandas==2.3.3
|
| 87 |
+
# via
|
| 88 |
+
# datasets
|
| 89 |
+
# evaluate
|
| 90 |
+
propcache==0.4.1
|
| 91 |
+
# via
|
| 92 |
+
# aiohttp
|
| 93 |
+
# yarl
|
| 94 |
+
pyarrow==22.0.0
|
| 95 |
+
# via datasets
|
| 96 |
+
python-dateutil==2.9.0.post0
|
| 97 |
+
# via pandas
|
| 98 |
+
pytz==2025.2
|
| 99 |
+
# via pandas
|
| 100 |
+
pyyaml==6.0.3
|
| 101 |
+
# via
|
| 102 |
+
# datasets
|
| 103 |
+
# huggingface-hub
|
| 104 |
+
requests==2.32.5
|
| 105 |
+
# via
|
| 106 |
+
# datasets
|
| 107 |
+
# evaluate
|
| 108 |
+
shellingham==1.5.4
|
| 109 |
+
# via huggingface-hub
|
| 110 |
+
six==1.17.0
|
| 111 |
+
# via python-dateutil
|
| 112 |
+
tqdm==4.67.1
|
| 113 |
+
# via
|
| 114 |
+
# datasets
|
| 115 |
+
# evaluate
|
| 116 |
+
# huggingface-hub
|
| 117 |
+
typer-slim==0.21.0
|
| 118 |
+
# via huggingface-hub
|
| 119 |
+
typing-extensions==4.15.0
|
| 120 |
+
# via
|
| 121 |
+
# aiosignal
|
| 122 |
+
# anyio
|
| 123 |
+
# huggingface-hub
|
| 124 |
+
# typer-slim
|
| 125 |
+
tzdata==2025.3
|
| 126 |
+
# via pandas
|
| 127 |
+
urllib3==2.6.2
|
| 128 |
+
# via requests
|
| 129 |
+
xxhash==3.6.0
|
| 130 |
+
# via
|
| 131 |
+
# datasets
|
| 132 |
+
# evaluate
|
| 133 |
+
yarl==1.22.0
|
| 134 |
+
# via aiohttp
|