added logical_sort_key to sort files
This commit is contained in:
@@ -4,6 +4,7 @@ import datetime
|
||||
import importlib
|
||||
import json
|
||||
import os
|
||||
import re
|
||||
from dataclasses import dataclass
|
||||
from pathlib import Path
|
||||
from typing import BinaryIO, Protocol, Sequence
|
||||
@@ -327,3 +328,19 @@ def get_symb(right: bool, rel_i, abs_j, line_pos, max_ind):
|
||||
return "╮╭"[right]
|
||||
else:
|
||||
raise ValueError("top of left columns cannot be below line")
|
||||
|
||||
|
||||
def _to_num(s: str) -> str | float | int:
|
||||
for f in int, float:
|
||||
try:
|
||||
return f(s)
|
||||
except ValueError:
|
||||
pass
|
||||
return s
|
||||
|
||||
|
||||
NUM_REGEX = r"[+-]?[\d]+(?:\.?[\d]+)?(?:[eE][+-]?\d+)?"
|
||||
|
||||
|
||||
def logical_sort_key(s: os.PathLike | str) -> tuple:
|
||||
return tuple(_to_num(el) for el in re.split(f"({NUM_REGEX})", str(s)) if el)
|
||||
|
||||
Reference in New Issue
Block a user