Fix filelock: use current umask for filelock >= 3.10
State: closed | Author: lhoestq (MEMBER)

reported in https://github.com/huggingface/evaluate/issues/542

cc @stas00 @williamberrios

close https://github.com/huggingface/datasets/issues/6589

Comments: The docs for this PR live [here](https://moon-ci-docs.huggingface.co/docs/datasets/pr_6631). All of your documentation changes will be reflected on that endpoint. The docs are available until 30 days after the last update.

<details>
<summary>Show benchmarks</summary>

PyArrow==8.0.0

<details>
<summary>Show updated benchmarks!</summary>

### Benchmark: benchmark_array_xd.json

| metric | read_batch_formatted_as_numpy after write_array2d | read_batch_formatted_as_numpy after write_flattened_sequence | read_batch_formatted_as_numpy after write_nested_sequence | read_batch_unformated after write_array2d | read_batch_unformated after write_flattened_sequence | read_batch_unformated after write_nested_sequence | read_col_formatted_as_numpy after write_array2d | read_col_formatted_as_numpy after write_flattened_sequence | read_col_formatted_as_numpy after write_nested_sequence | read_col_unformated after write_array2d | read_col_unformated after write_flattened_sequence | read_col_unformated after write_nested_sequence | read_formatted_as_numpy after write_array2d | read_formatted_as_numpy after write_flattened_sequence | read_formatted_as_numpy after write_nested_sequence | read_unformated after write_array2d | read_unformated after write_flattened_sequence | read_unformated after write_nested_sequence | write_array2d | write_flattened_sequence | write_nested_sequence |
|--------|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| new / old (diff) | 0.005076 / 0.011353 (-0.006277) | 0.003665 / 0.011008 (-0.007343) | 0.063602 / 0.038508 (0.025094) | 0.029103 / 0.023109 (0.005993) | 0.233133 / 0.275898 (-0.042765) | 0.257000 / 0.323480 (-0.066480) | 0.003059 / 0.007986 (-0.004926) | 0.004007 / 0.004328 (-0.000321) | 0.049804 / 0.004250 (0.045553) | 0.039946 / 0.037052 (0.002893) | 0.248003 / 0.258489 (-0.010486) | 0.272729 / 0.293841 (-0.021112) | 0.027542 / 0.128546 (-0.101004) | 0.010745 / 0.075646 (-0.064901) | 0.207686 / 0.419271 (-0.211586) | 0.035438 / 0.043533 (-0.008095) | 0.236864 / 0.255139 (-0.018275) | 0.258610 / 0.283200 (-0.024590) | 0.017225 / 0.141683 (-0.124458) | 1.130894 / 1.452155 (-0.321261) | 1.171266 / 1.492716 (-0.321450) |

### Benchmark: benchmark_getitem\_100B.json

| metric | get_batch_of\_1024\_random_rows | get_batch_of\_1024\_rows | get_first_row | get_last_row |
|--------|---|---|---|---|
| new / old (diff) | 0.092532 / 0.018006 (0.074525) | 0.301650 / 0.000490 (0.301161) | 0.000216 / 0.000200 (0.000016) | 0.000045 / 0.000054 (-0.000010) |

### Benchmark: benchmark_indices_mapping.json

| metric | select | shard | shuffle | sort | train_test_split |
|--------|---|---|---|---|---|
| new / old (diff) | 0.018175 / 0.037411 (-0.019237) | 0.061538 / 0.014526 (0.047012) | 0.073673 / 0.176557 (-0.102884) | 0.120676 / 0.737135 (-0.616460) | 0.074753 / 0.296338 (-0.221586) |

### Benchmark: benchmark_iterating.json

| metric | read 5000 | read 50000 | read_batch 50000 10 | read_batch 50000 100 | read_batch 50000 1000 | read_formatted numpy 5000 | read_formatted pandas 5000 | read_formatted tensorflow 5000 | read_formatted torch 5000 | read_formatted_batch numpy 5000 10 | read_formatted_batch numpy 5000 1000 | shuffled read 5000 | shuffled read 50000 | shuffled read_batch 50000 10 | shuffled read_batch 50000 100 | shuffled read_batch 50000 1000 | shuffled read_formatted numpy 5000 | shuffled read_formatted_batch numpy 5000 10 | shuffled read_formatted_batch numpy 5000 1000 |
|--------|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| new / old (diff) | 0.283625 / 0.215209 (0.068416) | 2.794903 / 2.077655 (0.717248) | 1.485149 / 1.504120 (-0.018970) | 1.361154 / 1.541195 (-0.180041) | 1.371436 / 1.468490 (-0.097054) | 0.580401 / 4.584777 (-4.004376) | 2.457068 / 3.745712 (-1.288644) | 2.760878 / 5.269862 (-2.508984) | 1.725507 / 4.565676 (-2.840169) | 0.063632 / 0.424275 (-0.360644) | 0.005036 / 0.007607 (-0.002572) | 0.337167 / 0.226044 (0.111122) | 3.314508 / 2.268929 (1.045579) | 1.863412 / 55.444624 (-53.581213) | 1.621966 / 6.876477 (-5.254511) | 1.600422 / 2.142072 (-0.541651) | 0.647753 / 4.805227 (-4.157475) | 0.117169 / 6.500664 (-6.383495) | 0.042338 / 0.075469 (-0.033131) |

### Benchmark: benchmark_map_filter.json

| metric | filter | map fast-tokenizer batched | map identity | map identity batched | map no-op batched | map no-op batched numpy | map no-op batched pandas | map no-op batched pytorch | map no-op batched tensorflow |
|--------|---|---|---|---|---|---|---|---|---|
| new / old (diff) | 0.981818 / 1.841788 (-0.859969) | 12.044657 / 8.074308 (3.970349) | 10.654091 / 10.191392 (0.462699) | 0.130693 / 0.680424 (-0.549731) | 0.014733 / 0.534201 (-0.519468) | 0.317432 / 0.579283 (-0.261851) | 0.267196 / 0.434364 (-0.167168) | 0.329310 / 0.540337 (-0.211028) | 0.433379 / 1.386936 (-0.953557) |

</details>
PyArrow==latest

<details>
<summary>Show updated benchmarks!</summary>

### Benchmark: benchmark_array_xd.json

| metric | read_batch_formatted_as_numpy after write_array2d | read_batch_formatted_as_numpy after write_flattened_sequence | read_batch_formatted_as_numpy after write_nested_sequence | read_batch_unformated after write_array2d | read_batch_unformated after write_flattened_sequence | read_batch_unformated after write_nested_sequence | read_col_formatted_as_numpy after write_array2d | read_col_formatted_as_numpy after write_flattened_sequence | read_col_formatted_as_numpy after write_nested_sequence | read_col_unformated after write_array2d | read_col_unformated after write_flattened_sequence | read_col_unformated after write_nested_sequence | read_formatted_as_numpy after write_array2d | read_formatted_as_numpy after write_flattened_sequence | read_formatted_as_numpy after write_nested_sequence | read_unformated after write_array2d | read_unformated after write_flattened_sequence | read_unformated after write_nested_sequence | write_array2d | write_flattened_sequence | write_nested_sequence |
|--------|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| new / old (diff) | 0.005502 / 0.011353 (-0.005851) | 0.003951 / 0.011008 (-0.007057) | 0.050651 / 0.038508 (0.012143) | 0.031802 / 0.023109 (0.008693) | 0.281384 / 0.275898 (0.005485) | 0.303900 / 0.323480 (-0.019580) | 0.004451 / 0.007986 (-0.003534) | 0.002801 / 0.004328 (-0.001527) | 0.048688 / 0.004250 (0.044438) | 0.044717 / 0.037052 (0.007664) | 0.295017 / 0.258489 (0.036528) | 0.328003 / 0.293841 (0.034162) | 0.048421 / 0.128546 (-0.080125) | 0.011254 / 0.075646 (-0.064392) | 0.058223 / 0.419271 (-0.361048) | 0.033915 / 0.043533 (-0.009618) | 0.279893 / 0.255139 (0.024754) | 0.297605 / 0.283200 (0.014405) | 0.017115 / 0.141683 (-0.124568) | 1.146966 / 1.452155 (-0.305189) | 1.191650 / 1.492716 (-0.301066) |

### Benchmark: benchmark_getitem\_100B.json

| metric | get_batch_of\_1024\_random_rows | get_batch_of\_1024\_rows | get_first_row | get_last_row |
|--------|---|---|---|---|
| new / old (diff) | 0.092524 / 0.018006 (0.074518) | 0.309332 / 0.000490 (0.308842) | 0.000212 / 0.000200 (0.000012) | 0.000044 / 0.000054 (-0.000011) |

### Benchmark: benchmark_indices_mapping.json

| metric | select | shard | shuffle | sort | train_test_split |
|--------|---|---|---|---|---|
| new / old (diff) | 0.022265 / 0.037411 (-0.015146) | 0.075732 / 0.014526 (0.061206) | 0.087340 / 0.176557 (-0.089217) | 0.126079 / 0.737135 (-0.611056) | 0.090349 / 0.296338 (-0.205990) |

### Benchmark: benchmark_iterating.json

| metric | read 5000 | read 50000 | read_batch 50000 10 | read_batch 50000 100 | read_batch 50000 1000 | read_formatted numpy 5000 | read_formatted pandas 5000 | read_formatted tensorflow 5000 | read_formatted torch 5000 | read_formatted_batch numpy 5000 10 | read_formatted_batch numpy 5000 1000 | shuffled read 5000 | shuffled read 50000 | shuffled read_batch 50000 10 | shuffled read_batch 50000 100 | shuffled read_batch 50000 1000 | shuffled read_formatted numpy 5000 | shuffled read_formatted_batch numpy 5000 10 | shuffled read_formatted_batch numpy 5000 1000 |
|--------|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| new / old (diff) | 0.288882 / 0.215209 (0.073673) | 2.833046 / 2.077655 (0.755392) | 1.602905 / 1.504120 (0.098785) | 1.473110 / 1.541195 (-0.068085) | 1.491300 / 1.468490 (0.022810) | 0.557799 / 4.584777 (-4.026978) | 2.439526 / 3.745712 (-1.306186) | 2.669336 / 5.269862 (-2.600526) | 1.719472 / 4.565676 (-2.846204) | 0.062456 / 0.424275 (-0.361819) | 0.005058 / 0.007607 (-0.002549) | 0.343706 / 0.226044 (0.117662) | 3.422397 / 2.268929 (1.153469) | 1.983679 / 55.444624 (-53.460946) | 1.673784 / 6.876477 (-5.202693) | 1.785144 / 2.142072 (-0.356928) | 0.643127 / 4.805227 (-4.162100) | 0.115254 / 6.500664 (-6.385410) | 0.041235 / 0.075469 (-0.034235) |

### Benchmark: benchmark_map_filter.json

| metric | filter | map fast-tokenizer batched | map identity | map identity batched | map no-op batched | map no-op batched numpy | map no-op batched pandas | map no-op batched pytorch | map no-op batched tensorflow |
|--------|---|---|---|---|---|---|---|---|---|
| new / old (diff) | 1.005448 / 1.841788 (-0.836340) | 12.240100 / 8.074308 (4.165792) | 11.051965 / 10.191392 (0.860573) | 0.130438 / 0.680424 (-0.549986) | 0.015918 / 0.534201 (-0.518283) | 0.287468 / 0.579283 (-0.291815) | 0.287699 / 0.434364 (-0.146665) | 0.324561 / 0.540337 (-0.215777) | 0.418820 / 1.386936 (-0.968116) |

</details>
</details>

![](https://cml.dev/watermark.png#237a2a688155e23cfbcdfadd2d491ce1667fa494 "CML watermark")