File: release.py

package info (click to toggle)
pysynphot 2.0.0%2Bdfsg-1
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 36,140 kB
  • sloc: python: 80,414; csh: 349; makefile: 222; ansic: 94
file content (52 lines) | stat: -rw-r--r-- 1,739 bytes parent folder | download | duplicates (6)
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
from collections import namedtuple
import datetime
import dateutil.parser
import os
from debian import changelog

template = """
__all__ = [
    '__version__',
    '__version_short__',
    '__version_long__',
    '__version_post__',
    '__version_commit__',
    '__version_date__',
    '__version_dirty__',
    '__build_date__',
    '__build_status__'
]
__version__ = '{pep386}'
__version_short__ = '{short}'
__version_long__ = '{long}'
__version_post__ = ''
__version_commit__ = ''
__version_date__ = '{date}'
__version_dirty__ = {dirty}
__build_date__ = '{build_date}'
__build_time__ = '{build_time}'
__build_status__ = 'release' if not __version_dirty__ else 'development'
"""

def get_info():
    DebVersion = namedtuple('DebVersion', ['pep386', 'short', 'long',
                                           'date', 'dirty'])
    with open('debian/changelog') as cl_file:
        cl = changelog.Changelog(cl_file)
        return DebVersion(pep386=cl.upstream_version,
                          short=cl.upstream_version,
                          long=cl.version,
                          date=dateutil.parser.parse(cl.date),
                          dirty=(cl.distributions=='UNRELEASED'))

def write_template(info, module_path, filename='version.py'):
    path = os.path.join(module_path, filename)
    with open(path, 'w+') as f:
        output = template.format(pep386=info.pep386,
                                 short=info.short,
                                 long=info.long,
                                 date=info.date,
                                 build_date=info.date.date(),
                                 build_time=info.date.time(),
                                 dirty=info.dirty)
        f.write(output)