File: dist_name.py

package info (click to toggle)
tree-sitter-sdml 0.4.5-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 1,504 kB
  • sloc: ansic: 21,145; javascript: 1,141; lisp: 304; makefile: 250; python: 112; cpp: 14; sh: 1
file content (72 lines) | stat: -rw-r--r-- 2,052 bytes parent folder | download | duplicates (4)
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
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
import re, sys, sysconfig

__string_assign=re.compile(r"""^(\w+)\s*=\s*"([^"]*)"$""")
__in_project=False
__project_name=""
__project_version=""

with open("pyproject.toml", "rt") as fp:
    for line in fp:
        if (not __in_project) and line.strip() == "[project]":
            __in_project=1
        elif __in_project:
            __match = __string_assign.match(line.strip())
            if not __match is None:
                if __match.group(1) == "name":
                    __project_name = __match.group(2)
                elif __match.group(1) == "version":
                    __project_version = __match.group(2)
        elif __in_project and line.lstrip().starts_with("["):
            break

def name():
    return __project_name.replace('-', '_')

def version():
    return __project_version

def python_tag():
    # See https://packaging.python.org/en/latest/specifications/platform-compatibility-tags/
    if sys.implementation.name.startswith('cp'):
        return "cp38"
    else:
        return sys.implementation.name

def abi_tag():
    return "abi3"

def wheel_file_name():
    platform_tag = sysconfig.get_platform().replace('-', '_').replace('.', '_')
    parts = (name(), version(), python_tag(), abi_tag(), platform_tag)
    return "-".join(parts) + ".whl"

def bdist_file_name():
    parts = (name(), version(), sysconfig.get_platform())
    return "-".join(parts) + ".tar.gz"

def sdist_file_name():
    parts = (name(), version())
    return "-".join(parts) + ".tar.gz"

def usage():
    print("Usage python3 dist_name.py (source | binary | wheel) [dist-dir]")

if len(sys.argv) > 2:
    dist_dir = sys.argv[2]
    if not dist_dir.endswith("/"):
        dist_dir += "/"
else:
    dist_dir = "./dist/"

if len(sys.argv) == 1:
    usage()
elif sys.argv[1] == "source":
    print(dist_dir + sdist_file_name())
elif sys.argv[1] == "binary":
    print(dist_dir + bdist_file_name())
elif sys.argv[1] == "wheel":
    print(dist_dir + wheel_file_name())
else:
    print("Unknown distribution type: " + sys.argv[1])
    usage()