Skip to content

Commit ccf76d2

Browse files
committed
Sort file names by lang, os, variant, version
1 parent dfd3556 commit ccf76d2

File tree

2 files changed

+16
-3
lines changed

2 files changed

+16
-3
lines changed

app.py

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -113,4 +113,15 @@ def get_language_priority(language_code: str) -> int:
113113
enable_filter = st.checkbox(label=_("Filter available files by DF variant, operating system, language"), value=True)
114114
glob_filter = f"*_{df_variant}_{operating_system}_{dict_entry.code}.zip" if enable_filter else "*.zip"
115115

116-
show_file_list(root_dir, glob_filter=glob_filter)
116+
117+
def file_sort_key(file_path: Path) -> tuple[str, str, str, str]:
118+
_, version, variant, os, language = file_path.name.split("_")
119+
return (
120+
language,
121+
os,
122+
variant,
123+
version,
124+
)
125+
126+
127+
show_file_list(root_dir, glob_filter=glob_filter, sort_key=file_sort_key)

package_build/file_list.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
1+
from collections.abc import Callable
12
from datetime import datetime, timezone
23
from pathlib import Path
4+
from typing import Any
35

46
import streamlit as st
57

@@ -8,7 +10,7 @@
810
from package_build.package import get_file_modification_datetime, package_up_to_date
911

1012

11-
def show_file_list(root_dir: Path, glob_filter: str) -> None:
13+
def show_file_list(root_dir: Path, glob_filter: str, sort_key: Callable[[Path], Any] | None=None) -> None:
1214
st.subheader(_("Package files available to download"))
1315

1416
file_list = [file for file in root_dir.glob(glob_filter) if package_up_to_date(file)]
@@ -21,7 +23,7 @@ def show_file_list(root_dir: Path, glob_filter: str) -> None:
2123
column1.write("**{}**".format(_("Package name")))
2224
column2.write("**{}**".format(_("When created")))
2325

24-
for package_path in sorted(file_list):
26+
for package_path in sorted(file_list, key=sort_key):
2527
column1, column2, column3 = st.columns([4, 3, 2], vertical_alignment="center")
2628
column1.write(package_path.relative_to(root_dir).name)
2729
hours_ago = (datetime.now(tz=timezone.utc) - get_file_modification_datetime(package_path)).seconds // 3600

0 commit comments

Comments
 (0)