File: __main__.py

package info (click to toggle)
python-art 6.5-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 5,076 kB
  • sloc: python: 73,473; makefile: 7; sh: 4
file content (116 lines) | stat: -rw-r--r-- 3,689 bytes parent folder | download | duplicates (2)
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
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
# -*- coding: utf-8 -*-
"""Art main."""
from .functions import tprint, tsave, aprint, art_list, font_list, help_func
from .errors import artError
from .params import FONT_MAP
from .params import ART_ENVIRONMENT_WARNING, FONT_ENVIRONMENT_WARNING
import sys
import doctest
import os
import zipfile


def select_test(test_name="TEST"):
    """
    Select proper test mode.

    :param test_name: test name
    :type test_name: str
    :return: None
    """
    error_flag_2 = 0
    error_flag_1 = doctest.testfile(
        os.path.join("tests", "test.py"),
        optionflags=doctest.NORMALIZE_WHITESPACE | doctest.ELLIPSIS
        | doctest.IGNORE_EXCEPTION_DETAIL,
        verbose=False)[0]
    if test_name == "TEST2":
        error_flag_2 = doctest.testfile(
            os.path.join("tests", "test2.py"),
            optionflags=doctest.NORMALIZE_WHITESPACE | doctest.ELLIPSIS | doctest.IGNORE_EXCEPTION_DETAIL,
            verbose=False)[0]
    error_flag = error_flag_1 + error_flag_2
    if error_flag == 0:
        print("\n" + test_name + " Passed")
        sys.exit(error_flag)
    else:
        print("\n" + test_name + " Failed")
        sys.exit(error_flag)


def main():
    """
    CLI main function.

    :return: None
    """
    args = sys.argv
    if len(args) > 1:
        if args[1].upper() == "TEST":
            select_test("TEST")
        elif args[1].upper() == "TEST2":
            select_test("TEST2")
        elif args[1].upper() in ["LIST", "ARTS"]:
            art_list()
        elif args[1].upper() == "FONTS":
            font_list()
        elif len(args) > 2:
            if args[1].upper() == "ALL":
                if "ARTFonts" not in os.listdir(os.getcwd()):
                    os.mkdir("ARTFonts")
                zipf = zipfile.ZipFile(
                    os.path.join(
                        "ARTFonts",
                        "ALL_FONT" + '.zip'),
                    'w',
                    zipfile.ZIP_DEFLATED)
                print("Generating . . . ")
                for font in FONT_MAP:
                    tsave(
                        args[2],
                        filename=os.path.join(
                            "ARTFonts",
                            font + ".txt"),
                        print_status=False,
                        font=font)
                    zipf.write(
                        os.path.join(
                            "ARTFonts",
                            font + ".txt"),
                        font + ".txt")
                zipf.close()
                print("Done!")
                print("File -- > " +
                      str(os.path.join("ARTFonts", "ALL_FONT" + '.zip')))
            elif args[1].upper() == "TEXT":
                if len(args) > 3:
                    try:
                        tprint(args[2], font=args[3])
                    except artError as e:
                        print(str(e))
                    except UnicodeEncodeError:
                        print(FONT_ENVIRONMENT_WARNING)
                else:
                    tprint(args[2])
            elif args[1].upper() == "SAVE":
                if len(args) > 3:
                    tsave(args[2], font=args[3])
                else:
                    tsave(args[2])
            elif args[1].upper() in ["SHAPE", "ART"]:
                try:
                    aprint(args[2])
                except artError as e:
                    print(str(e))
                except UnicodeEncodeError:
                    print(ART_ENVIRONMENT_WARNING)
            else:
                help_func()
        else:
            help_func()
    else:
        help_func()


if __name__ == "__main__":
    main()