psutil

Форк
0
/
print_timeline.py 
53 строки · 1.4 Кб
1
#!/usr/bin/env python3
2

3
# Copyright (c) 2009 Giampaolo Rodola'. All rights reserved.
4
# Use of this source code is governed by a BSD-style license that can be
5
# found in the LICENSE file.
6

7
"""Prints releases' timeline in RST format."""
8

9
import shlex
10
import subprocess
11

12

13
entry = """\
14
- {date}:
15
  `{ver} <https://pypi.org/project/psutil/{ver}/#files>`__ -
16
  `what's new <https://github.com/giampaolo/psutil/blob/master/HISTORY.rst#{nodotver}>`__ -
17
  `diff <https://github.com/giampaolo/psutil/compare/{prevtag}...{tag}#files_bucket>`__"""  # NOQA
18

19

20
def sh(cmd):
21
    return subprocess.check_output(
22
        shlex.split(cmd), universal_newlines=True
23
    ).strip()
24

25

26
def get_tag_date(tag):
27
    out = sh(r"git log -1 --format=%ai {}".format(tag))
28
    return out.split(' ')[0]
29

30

31
def main():
32
    releases = []
33
    out = sh("git tag")
34
    for line in out.split('\n'):
35
        tag = line.split(' ')[0]
36
        ver = tag.replace('release-', '')
37
        nodotver = ver.replace('.', '')
38
        date = get_tag_date(tag)
39
        releases.append((tag, ver, nodotver, date))
40
    releases.sort(reverse=True)
41

42
    for i, rel in enumerate(releases):
43
        tag, ver, nodotver, date = rel
44
        try:
45
            prevtag = releases[i + 1][0]
46
        except IndexError:
47
            # get first commit
48
            prevtag = sh("git rev-list --max-parents=0 HEAD")
49
        print(entry.format(**locals()))
50

51

52
if __name__ == '__main__':
53
    main()
54

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.