Spaces:
Runtime error
Runtime error
| #!/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() | |