Code Duplication    Length = 27-28 lines in 2 locations

bbarchivist/scriptutils.py 2 locations

@@ 143-170 (lines=28) @@
140
    :param parser: Parser to modify.
141
    :type parser: argparse.ArgumentParser
142
143
    :param addition: What to add.
144
    :type addition: str
145
    """
146
    verarg = [arg for arg in parser._actions if isinstance(arg, argparse._VersionAction)][0]
147
    verarg.version = "{1}{0}".format(addition, verarg.version)
148
    return parser
149
150
151
def return_radio_version(osversion, radioversion=None):
152
    """
153
    Increment radio version, if need be.
154
155
    :param osversion: OS version.
156
    :type osversion: str
157
158
    :param radioversion: Radio version, None if incremented.
159
    :type radioversion: str
160
    """
161
    if radioversion is None:
162
        radioversion = utilities.increment(osversion, 1)
163
    return radioversion
164
165
166
def return_sw_checked(softwareversion, osversion):
167
    """
168
    Check software existence, return boolean.
169
170
    :param softwareversion: Software release version.
171
    :type softwareversion: str
172
173
    :param osversion: OS version.
@@ 114-140 (lines=27) @@
111
    """
112
    Generic CFP/CAP runner; Windows only.
113
114
    :param scriptname: Script name, 'bb-something'.
115
    :type scriptname: str
116
117
    :param scriptdesc: Script description, i.e. scriptname -h.
118
    :type scriptdesc: str
119
120
    :param target: Path to file to execute.
121
    :type target: str
122
123
    :param version: Version of target.
124
    :type version: str
125
    """
126
    parser = default_parser(scriptname, scriptdesc)
127
    capver = "|{0}".format(version)
128
    parser = external_version(parser, capver)
129
    parser.parse_known_args(sys.argv[1:])
130
    if utilities.is_windows():
131
        subprocess.call([target] + sys.argv[1:])
132
    else:
133
        print("Sorry, Windows only.")
134
135
136
def external_version(parser, addition):
137
    """
138
    Modify the version string of argparse.ArgumentParser, adding something.
139
140
    :param parser: Parser to modify.
141
    :type parser: argparse.ArgumentParser
142
143
    :param addition: What to add.