Spaces:
Runtime error
Runtime error
File size: 1,305 Bytes
e51e8f8 |
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 |
#!/usr/bin/env python
from __future__ import annotations
import pathlib
import tempfile
import git
import tqdm.auto
import yaml
repo_dir = pathlib.Path(__file__).parents[1]
yaml_path = repo_dir / 'list.yaml'
def add_creation_timestamps() -> None:
with open(yaml_path) as f:
data = yaml.safe_load(f)
urls = list(data.keys())
for url in tqdm.auto.tqdm(urls):
info = data[url]
if 'created' in info:
continue
with tempfile.TemporaryDirectory() as temp_dir:
repo = git.Repo.clone_from(url, temp_dir)
commits = list(repo.iter_commits())
initial_commit = commits[-1]
date = initial_commit.authored_datetime
date_str = date.strftime('%Y-%m-%d-%H-%M-%S')
info['created'] = date_str
with open(yaml_path, 'w') as f:
yaml.dump(data, f)
def sort_by_creation_date() -> None:
with open(yaml_path) as f:
data = yaml.safe_load(f)
keys = sorted(data.keys(), key=lambda x: data[x]['created'])
sorted_data = dict()
for key in keys[::-1]:
sorted_data[key] = data[key]
with open(yaml_path, 'w') as f:
yaml.dump(sorted_data, f, sort_keys=False)
if __name__ == '__main__':
add_creation_timestamps()
sort_by_creation_date()
|