Rollup merge of #68947 - chrissimpkins:python-fmt, r=alexcrichton
Python script PEP8 style guide space formatting and minor Python source cleanup This PR includes the following changes in the Python sources based on a flake8 3.7.9 (mccabe: 0.6.1, pycodestyle: 2.5.0, pyflakes: 2.1.1) CPython 3.7.6 on Darwin lint: - PEP8 style guide spacing updates *without* line length changes - removal of unused local variable assignments in context managers and exception handling - removal of unused Python import statements - removal of unnecessary semicolons
This commit is contained in:
commit
931005d549
12 changed files with 114 additions and 85 deletions
|
@ -80,7 +80,7 @@ def _download(path, url, probably_big, verbose, exception):
|
|||
option = "-s"
|
||||
run(["curl", option,
|
||||
"-y", "30", "-Y", "10", # timeout if speed is < 10 bytes/sec for > 30 seconds
|
||||
"--connect-timeout", "30", # timeout if cannot connect within 30 seconds
|
||||
"--connect-timeout", "30", # timeout if cannot connect within 30 seconds
|
||||
"--retry", "3", "-Sf", "-o", path, url],
|
||||
verbose=verbose,
|
||||
exception=exception)
|
||||
|
@ -332,7 +332,6 @@ class RustBuild(object):
|
|||
self.use_vendored_sources = ''
|
||||
self.verbose = False
|
||||
|
||||
|
||||
def download_stage0(self):
|
||||
"""Fetch the build system for Rust, written in Rust
|
||||
|
||||
|
@ -351,7 +350,7 @@ class RustBuild(object):
|
|||
try:
|
||||
with tempfile.NamedTemporaryFile(delete=False) as temp_file:
|
||||
temp_path = temp_file.name
|
||||
with tarfile.open(temp_path, "w:xz") as tar:
|
||||
with tarfile.open(temp_path, "w:xz"):
|
||||
pass
|
||||
return True
|
||||
except tarfile.CompressionError:
|
||||
|
@ -825,7 +824,7 @@ class RustBuild(object):
|
|||
if not os.path.exists(vendor_dir):
|
||||
print('error: vendoring required, but vendor directory does not exist.')
|
||||
print(' Run `cargo vendor` without sudo to initialize the '
|
||||
'vendor directory.')
|
||||
'vendor directory.')
|
||||
raise Exception("{} not found".format(vendor_dir))
|
||||
|
||||
if self.use_vendored_sources:
|
||||
|
@ -839,7 +838,7 @@ class RustBuild(object):
|
|||
"\n"
|
||||
"[source.vendored-sources]\n"
|
||||
"directory = '{}/vendor'\n"
|
||||
.format(self.rust_root))
|
||||
.format(self.rust_root))
|
||||
else:
|
||||
if os.path.exists('.cargo'):
|
||||
shutil.rmtree('.cargo')
|
||||
|
|
|
@ -393,11 +393,12 @@ for target in configured_targets:
|
|||
|
||||
|
||||
def is_number(value):
|
||||
try:
|
||||
float(value)
|
||||
return True
|
||||
except ValueError:
|
||||
return False
|
||||
try:
|
||||
float(value)
|
||||
return True
|
||||
except ValueError:
|
||||
return False
|
||||
|
||||
|
||||
# Here we walk through the constructed configuration we have from the parsed
|
||||
# command line arguments. We then apply each piece of configuration by
|
||||
|
|
|
@ -148,11 +148,11 @@ else:
|
|||
print('unknown platform', sys.platform)
|
||||
sys.exit(1)
|
||||
|
||||
cur_state = State();
|
||||
cur_state = State()
|
||||
print("Time,Idle")
|
||||
while True:
|
||||
time.sleep(1);
|
||||
next_state = State();
|
||||
time.sleep(1)
|
||||
next_state = State()
|
||||
now = datetime.datetime.utcnow().isoformat()
|
||||
idle = next_state.idle_since(cur_state)
|
||||
print("%s,%s" % (now, idle))
|
||||
|
|
|
@ -212,7 +212,6 @@ class Type(object):
|
|||
# REGULAR STRUCT
|
||||
return TYPE_KIND_REGULAR_STRUCT
|
||||
|
||||
|
||||
def __classify_union(self):
|
||||
assert self.get_dwarf_type_kind() == DWARF_TYPE_CODE_UNION
|
||||
|
||||
|
@ -233,7 +232,6 @@ class Type(object):
|
|||
else:
|
||||
return TYPE_KIND_REGULAR_UNION
|
||||
|
||||
|
||||
def __conforms_to_field_layout(self, expected_fields):
|
||||
actual_fields = self.get_fields()
|
||||
actual_field_count = len(actual_fields)
|
||||
|
@ -363,6 +361,7 @@ def extract_tail_head_ptr_and_cap_from_std_vecdeque(vec_val):
|
|||
assert data_ptr.type.get_dwarf_type_kind() == DWARF_TYPE_CODE_PTR
|
||||
return (tail, head, data_ptr, capacity)
|
||||
|
||||
|
||||
def extract_length_and_ptr_from_slice(slice_val):
|
||||
assert (slice_val.type.get_type_kind() == TYPE_KIND_SLICE or
|
||||
slice_val.type.get_type_kind() == TYPE_KIND_STR_SLICE)
|
||||
|
@ -376,8 +375,10 @@ def extract_length_and_ptr_from_slice(slice_val):
|
|||
assert data_ptr.type.get_dwarf_type_kind() == DWARF_TYPE_CODE_PTR
|
||||
return (length, data_ptr)
|
||||
|
||||
|
||||
UNQUALIFIED_TYPE_MARKERS = frozenset(["(", "[", "&", "*"])
|
||||
|
||||
|
||||
def extract_type_name(qualified_type_name):
|
||||
"""Extracts the type name from a fully qualified path"""
|
||||
if qualified_type_name[0] in UNQUALIFIED_TYPE_MARKERS:
|
||||
|
@ -393,6 +394,7 @@ def extract_type_name(qualified_type_name):
|
|||
else:
|
||||
return qualified_type_name[index + 2:]
|
||||
|
||||
|
||||
try:
|
||||
compat_str = unicode # Python 2
|
||||
except NameError:
|
||||
|
|
|
@ -14,7 +14,6 @@ is used because (u64, i16) has a ton of padding which would make the table
|
|||
even larger, and it's already uncomfortably large (6 KiB).
|
||||
"""
|
||||
from __future__ import print_function
|
||||
import sys
|
||||
from math import ceil, log
|
||||
from fractions import Fraction
|
||||
from collections import namedtuple
|
||||
|
@ -82,6 +81,7 @@ def error(f, e, z):
|
|||
ulp_err = abs_err / Fraction(2) ** z.exp
|
||||
return float(ulp_err)
|
||||
|
||||
|
||||
HEADER = """
|
||||
//! Tables of approximations of powers of ten.
|
||||
//! DO NOT MODIFY: Generated by `src/etc/dec2flt_table.py`
|
||||
|
|
|
@ -9,7 +9,7 @@ import debugger_pretty_printers_common as rustpp
|
|||
if sys.version_info[0] >= 3:
|
||||
xrange = range
|
||||
|
||||
rust_enabled = 'set language rust' in gdb.execute('complete set language ru', to_string = True)
|
||||
rust_enabled = 'set language rust' in gdb.execute('complete set language ru', to_string=True)
|
||||
|
||||
# The btree pretty-printers fail in a confusing way unless
|
||||
# https://sourceware.org/bugzilla/show_bug.cgi?id=21763 is fixed.
|
||||
|
@ -21,9 +21,10 @@ if _match:
|
|||
if int(_match.group(1)) > 8 or (int(_match.group(1)) == 8 and int(_match.group(2)) >= 1):
|
||||
gdb_81 = True
|
||||
|
||||
#===============================================================================
|
||||
# ===============================================================================
|
||||
# GDB Pretty Printing Module for Rust
|
||||
#===============================================================================
|
||||
# ===============================================================================
|
||||
|
||||
|
||||
class GdbType(rustpp.Type):
|
||||
|
||||
|
@ -133,39 +134,39 @@ def rust_pretty_printer_lookup_function(gdb_val):
|
|||
|
||||
if type_kind == rustpp.TYPE_KIND_REGULAR_STRUCT:
|
||||
return RustStructPrinter(val,
|
||||
omit_first_field = False,
|
||||
omit_type_name = False,
|
||||
is_tuple_like = False)
|
||||
omit_first_field=False,
|
||||
omit_type_name=False,
|
||||
is_tuple_like=False)
|
||||
|
||||
if type_kind == rustpp.TYPE_KIND_STRUCT_VARIANT:
|
||||
return RustStructPrinter(val,
|
||||
omit_first_field = True,
|
||||
omit_type_name = False,
|
||||
is_tuple_like = False)
|
||||
omit_first_field=True,
|
||||
omit_type_name=False,
|
||||
is_tuple_like=False)
|
||||
|
||||
if type_kind == rustpp.TYPE_KIND_STR_SLICE:
|
||||
return RustStringSlicePrinter(val)
|
||||
|
||||
if type_kind == rustpp.TYPE_KIND_TUPLE:
|
||||
return RustStructPrinter(val,
|
||||
omit_first_field = False,
|
||||
omit_type_name = True,
|
||||
is_tuple_like = True)
|
||||
omit_first_field=False,
|
||||
omit_type_name=True,
|
||||
is_tuple_like=True)
|
||||
|
||||
if type_kind == rustpp.TYPE_KIND_TUPLE_STRUCT:
|
||||
return RustStructPrinter(val,
|
||||
omit_first_field = False,
|
||||
omit_type_name = False,
|
||||
is_tuple_like = True)
|
||||
omit_first_field=False,
|
||||
omit_type_name=False,
|
||||
is_tuple_like=True)
|
||||
|
||||
if type_kind == rustpp.TYPE_KIND_CSTYLE_VARIANT:
|
||||
return RustCStyleVariantPrinter(val.get_child_at_index(0))
|
||||
|
||||
if type_kind == rustpp.TYPE_KIND_TUPLE_VARIANT:
|
||||
return RustStructPrinter(val,
|
||||
omit_first_field = True,
|
||||
omit_type_name = False,
|
||||
is_tuple_like = True)
|
||||
omit_first_field=True,
|
||||
omit_type_name=False,
|
||||
is_tuple_like=True)
|
||||
|
||||
if type_kind == rustpp.TYPE_KIND_SINGLETON_ENUM:
|
||||
variant = get_field_at_index(gdb_val, 0)
|
||||
|
@ -189,9 +190,9 @@ def rust_pretty_printer_lookup_function(gdb_val):
|
|||
return None
|
||||
|
||||
|
||||
#=------------------------------------------------------------------------------
|
||||
# =------------------------------------------------------------------------------
|
||||
# Pretty Printer Classes
|
||||
#=------------------------------------------------------------------------------
|
||||
# =------------------------------------------------------------------------------
|
||||
class RustEmptyPrinter(object):
|
||||
def __init__(self, val):
|
||||
self.__val = val
|
||||
|
@ -355,6 +356,7 @@ def children_of_node(boxed_node, height, want_values):
|
|||
else:
|
||||
yield keys[i]['value']['value']
|
||||
|
||||
|
||||
class RustStdBTreeSetPrinter(object):
|
||||
def __init__(self, val):
|
||||
self.__val = val
|
||||
|
@ -429,6 +431,7 @@ class RustOsStringPrinter(object):
|
|||
def display_hint(self):
|
||||
return "string"
|
||||
|
||||
|
||||
class RustCStyleVariantPrinter(object):
|
||||
def __init__(self, val):
|
||||
assert val.type.get_dwarf_type_kind() == rustpp.DWARF_TYPE_CODE_ENUM
|
||||
|
|
|
@ -8,7 +8,8 @@ derives have spans that point to the fields, rather than the
|
|||
sample usage: src/etc/generate-deriving-span-tests.py
|
||||
"""
|
||||
|
||||
import os, stat
|
||||
import os
|
||||
import stat
|
||||
|
||||
TEST_DIR = os.path.abspath(
|
||||
os.path.join(os.path.dirname(__file__), '../test/ui/derives/'))
|
||||
|
@ -56,6 +57,7 @@ struct Struct(
|
|||
|
||||
ENUM_TUPLE, ENUM_STRUCT, STRUCT_FIELDS, STRUCT_TUPLE = range(4)
|
||||
|
||||
|
||||
def create_test_case(type, trait, super_traits, error_count):
|
||||
string = [ENUM_STRING, ENUM_STRUCT_VARIANT_STRING, STRUCT_STRING, STRUCT_TUPLE_STRING][type]
|
||||
all_traits = ','.join([trait] + super_traits)
|
||||
|
@ -63,8 +65,9 @@ def create_test_case(type, trait, super_traits, error_count):
|
|||
error_deriving = '#[derive(%s)]' % super_traits if super_traits else ''
|
||||
|
||||
errors = '\n'.join('//~%s ERROR' % ('^' * n) for n in range(error_count))
|
||||
code = string.format(traits = all_traits, errors = errors)
|
||||
return TEMPLATE.format(error_deriving=error_deriving, code = code)
|
||||
code = string.format(traits=all_traits, errors=errors)
|
||||
return TEMPLATE.format(error_deriving=error_deriving, code=code)
|
||||
|
||||
|
||||
def write_file(name, string):
|
||||
test_file = os.path.join(TEST_DIR, 'derives-span-%s.rs' % name)
|
||||
|
@ -86,10 +89,10 @@ ALL = STRUCT | ENUM
|
|||
|
||||
traits = {
|
||||
'Default': (STRUCT, [], 1),
|
||||
'FromPrimitive': (0, [], 0), # only works for C-like enums
|
||||
'FromPrimitive': (0, [], 0), # only works for C-like enums
|
||||
|
||||
'Decodable': (0, [], 0), # FIXME: quoting gives horrible spans
|
||||
'Encodable': (0, [], 0), # FIXME: quoting gives horrible spans
|
||||
'Decodable': (0, [], 0), # FIXME: quoting gives horrible spans
|
||||
'Encodable': (0, [], 0), # FIXME: quoting gives horrible spans
|
||||
}
|
||||
|
||||
for (trait, supers, errs) in [('Clone', [], 1),
|
||||
|
|
|
@ -11,7 +11,6 @@ sample usage: src/etc/generate-keyword-tests.py as break
|
|||
|
||||
import sys
|
||||
import os
|
||||
import datetime
|
||||
import stat
|
||||
|
||||
|
||||
|
|
|
@ -131,6 +131,7 @@ try:
|
|||
except NameError:
|
||||
unichr = chr
|
||||
|
||||
|
||||
class CustomHTMLParser(HTMLParser):
|
||||
"""simplified HTML parser.
|
||||
|
||||
|
@ -169,21 +170,25 @@ class CustomHTMLParser(HTMLParser):
|
|||
HTMLParser.close(self)
|
||||
return self.__builder.close()
|
||||
|
||||
|
||||
Command = namedtuple('Command', 'negated cmd args lineno context')
|
||||
|
||||
|
||||
class FailedCheck(Exception):
|
||||
pass
|
||||
|
||||
|
||||
class InvalidCheck(Exception):
|
||||
pass
|
||||
|
||||
|
||||
def concat_multi_lines(f):
|
||||
"""returns a generator out of the file object, which
|
||||
- removes `\\` then `\n` then a shared prefix with the previous line then
|
||||
optional whitespace;
|
||||
- keeps a line number (starting from 0) of the first line being
|
||||
concatenated."""
|
||||
lastline = None # set to the last line when the last line has a backslash
|
||||
lastline = None # set to the last line when the last line has a backslash
|
||||
firstlineno = None
|
||||
catenated = ''
|
||||
for lineno, line in enumerate(f):
|
||||
|
@ -208,6 +213,7 @@ def concat_multi_lines(f):
|
|||
if lastline is not None:
|
||||
print_err(lineno, line, 'Trailing backslash at the end of the file')
|
||||
|
||||
|
||||
LINE_PATTERN = re.compile(r'''
|
||||
(?<=(?<!\S)@)(?P<negated>!?)
|
||||
(?P<cmd>[A-Za-z]+(?:-[A-Za-z]+)*)
|
||||
|
@ -252,7 +258,7 @@ def flatten(node):
|
|||
|
||||
def normalize_xpath(path):
|
||||
if path.startswith('//'):
|
||||
return '.' + path # avoid warnings
|
||||
return '.' + path # avoid warnings
|
||||
elif path.startswith('.//'):
|
||||
return path
|
||||
else:
|
||||
|
@ -316,7 +322,7 @@ class CachedFiles(object):
|
|||
|
||||
def check_string(data, pat, regexp):
|
||||
if not pat:
|
||||
return True # special case a presence testing
|
||||
return True # special case a presence testing
|
||||
elif regexp:
|
||||
return re.search(pat, data, flags=re.UNICODE) is not None
|
||||
else:
|
||||
|
@ -353,7 +359,7 @@ def check_tree_text(tree, path, pat, regexp):
|
|||
ret = check_string(value, pat, regexp)
|
||||
if ret:
|
||||
break
|
||||
except Exception as e:
|
||||
except Exception:
|
||||
print('Failed to get path "{}"'.format(path))
|
||||
raise
|
||||
return ret
|
||||
|
@ -363,6 +369,7 @@ def get_tree_count(tree, path):
|
|||
path = normalize_xpath(path)
|
||||
return len(tree.findall(path))
|
||||
|
||||
|
||||
def stderr(*args):
|
||||
if sys.version_info.major < 3:
|
||||
file = codecs.getwriter('utf-8')(sys.stderr)
|
||||
|
@ -371,6 +378,7 @@ def stderr(*args):
|
|||
|
||||
print(*args, file=file)
|
||||
|
||||
|
||||
def print_err(lineno, context, err, message=None):
|
||||
global ERR_COUNT
|
||||
ERR_COUNT += 1
|
||||
|
@ -381,31 +389,33 @@ def print_err(lineno, context, err, message=None):
|
|||
if context:
|
||||
stderr("\t{}".format(context))
|
||||
|
||||
|
||||
ERR_COUNT = 0
|
||||
|
||||
|
||||
def check_command(c, cache):
|
||||
try:
|
||||
cerr = ""
|
||||
if c.cmd == 'has' or c.cmd == 'matches': # string test
|
||||
if c.cmd == 'has' or c.cmd == 'matches': # string test
|
||||
regexp = (c.cmd == 'matches')
|
||||
if len(c.args) == 1 and not regexp: # @has <path> = file existence
|
||||
if len(c.args) == 1 and not regexp: # @has <path> = file existence
|
||||
try:
|
||||
cache.get_file(c.args[0])
|
||||
ret = True
|
||||
except FailedCheck as err:
|
||||
cerr = str(err)
|
||||
ret = False
|
||||
elif len(c.args) == 2: # @has/matches <path> <pat> = string test
|
||||
elif len(c.args) == 2: # @has/matches <path> <pat> = string test
|
||||
cerr = "`PATTERN` did not match"
|
||||
ret = check_string(cache.get_file(c.args[0]), c.args[1], regexp)
|
||||
elif len(c.args) == 3: # @has/matches <path> <pat> <match> = XML tree test
|
||||
elif len(c.args) == 3: # @has/matches <path> <pat> <match> = XML tree test
|
||||
cerr = "`XPATH PATTERN` did not match"
|
||||
tree = cache.get_tree(c.args[0])
|
||||
pat, sep, attr = c.args[1].partition('/@')
|
||||
if sep: # attribute
|
||||
if sep: # attribute
|
||||
tree = cache.get_tree(c.args[0])
|
||||
ret = check_tree_attr(tree, pat, attr, c.args[2], regexp)
|
||||
else: # normalized text
|
||||
else: # normalized text
|
||||
pat = c.args[1]
|
||||
if pat.endswith('/text()'):
|
||||
pat = pat[:-7]
|
||||
|
@ -413,16 +423,16 @@ def check_command(c, cache):
|
|||
else:
|
||||
raise InvalidCheck('Invalid number of @{} arguments'.format(c.cmd))
|
||||
|
||||
elif c.cmd == 'count': # count test
|
||||
if len(c.args) == 3: # @count <path> <pat> <count> = count test
|
||||
elif c.cmd == 'count': # count test
|
||||
if len(c.args) == 3: # @count <path> <pat> <count> = count test
|
||||
expected = int(c.args[2])
|
||||
found = get_tree_count(cache.get_tree(c.args[0]), c.args[1])
|
||||
cerr = "Expected {} occurrences but found {}".format(expected, found)
|
||||
ret = expected == found
|
||||
else:
|
||||
raise InvalidCheck('Invalid number of @{} arguments'.format(c.cmd))
|
||||
elif c.cmd == 'has-dir': # has-dir test
|
||||
if len(c.args) == 1: # @has-dir <path> = has-dir test
|
||||
elif c.cmd == 'has-dir': # has-dir test
|
||||
if len(c.args) == 1: # @has-dir <path> = has-dir test
|
||||
try:
|
||||
cache.get_dir(c.args[0])
|
||||
ret = True
|
||||
|
@ -448,11 +458,13 @@ def check_command(c, cache):
|
|||
except InvalidCheck as err:
|
||||
print_err(c.lineno, c.context, str(err))
|
||||
|
||||
|
||||
def check(target, commands):
|
||||
cache = CachedFiles(target)
|
||||
for c in commands:
|
||||
check_command(c, cache)
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
if len(sys.argv) != 3:
|
||||
stderr('Usage: {} <doc dir> <template>'.format(sys.argv[0]))
|
||||
|
|
|
@ -157,6 +157,7 @@ def start_watchdog():
|
|||
# ~main
|
||||
####################################################################################################
|
||||
|
||||
|
||||
if len(sys.argv) != 3:
|
||||
print("usage: python lldb_batchmode.py target-path script-path")
|
||||
sys.exit(1)
|
||||
|
|
|
@ -1,10 +1,10 @@
|
|||
import lldb
|
||||
import re
|
||||
import debugger_pretty_printers_common as rustpp
|
||||
|
||||
#===============================================================================
|
||||
# ===============================================================================
|
||||
# LLDB Pretty Printing Module for Rust
|
||||
#===============================================================================
|
||||
# ===============================================================================
|
||||
|
||||
|
||||
class LldbType(rustpp.Type):
|
||||
|
||||
|
@ -84,16 +84,16 @@ def print_val(lldb_val, internal_dict):
|
|||
type_kind == rustpp.TYPE_KIND_EMPTY):
|
||||
return print_struct_val(val,
|
||||
internal_dict,
|
||||
omit_first_field = False,
|
||||
omit_type_name = False,
|
||||
is_tuple_like = False)
|
||||
omit_first_field=False,
|
||||
omit_type_name=False,
|
||||
is_tuple_like=False)
|
||||
|
||||
if type_kind == rustpp.TYPE_KIND_STRUCT_VARIANT:
|
||||
return print_struct_val(val,
|
||||
internal_dict,
|
||||
omit_first_field = True,
|
||||
omit_type_name = False,
|
||||
is_tuple_like = False)
|
||||
omit_first_field=True,
|
||||
omit_type_name=False,
|
||||
is_tuple_like=False)
|
||||
|
||||
if type_kind == rustpp.TYPE_KIND_SLICE:
|
||||
return print_vec_slice_val(val, internal_dict)
|
||||
|
@ -110,16 +110,16 @@ def print_val(lldb_val, internal_dict):
|
|||
if type_kind == rustpp.TYPE_KIND_TUPLE:
|
||||
return print_struct_val(val,
|
||||
internal_dict,
|
||||
omit_first_field = False,
|
||||
omit_type_name = True,
|
||||
is_tuple_like = True)
|
||||
omit_first_field=False,
|
||||
omit_type_name=True,
|
||||
is_tuple_like=True)
|
||||
|
||||
if type_kind == rustpp.TYPE_KIND_TUPLE_STRUCT:
|
||||
return print_struct_val(val,
|
||||
internal_dict,
|
||||
omit_first_field = False,
|
||||
omit_type_name = False,
|
||||
is_tuple_like = True)
|
||||
omit_first_field=False,
|
||||
omit_type_name=False,
|
||||
is_tuple_like=True)
|
||||
|
||||
if type_kind == rustpp.TYPE_KIND_CSTYLE_VARIANT:
|
||||
return val.type.get_unqualified_type_name()
|
||||
|
@ -127,9 +127,9 @@ def print_val(lldb_val, internal_dict):
|
|||
if type_kind == rustpp.TYPE_KIND_TUPLE_VARIANT:
|
||||
return print_struct_val(val,
|
||||
internal_dict,
|
||||
omit_first_field = True,
|
||||
omit_type_name = False,
|
||||
is_tuple_like = True)
|
||||
omit_first_field=True,
|
||||
omit_type_name=False,
|
||||
is_tuple_like=True)
|
||||
|
||||
if type_kind == rustpp.TYPE_KIND_SINGLETON_ENUM:
|
||||
return print_val(lldb_val.GetChildAtIndex(0), internal_dict)
|
||||
|
@ -157,9 +157,9 @@ def print_val(lldb_val, internal_dict):
|
|||
return lldb_val.GetValue()
|
||||
|
||||
|
||||
#=--------------------------------------------------------------------------------------------------
|
||||
# =---------------------------------------------------------------------------------------
|
||||
# Type-Specialized Printing Functions
|
||||
#=--------------------------------------------------------------------------------------------------
|
||||
# =---------------------------------------------------------------------------------------
|
||||
|
||||
def print_struct_val(val, internal_dict, omit_first_field, omit_type_name, is_tuple_like):
|
||||
"""
|
||||
|
@ -212,6 +212,7 @@ def print_struct_val(val, internal_dict, omit_first_field, omit_type_name, is_tu
|
|||
return template % {"type_name": type_name,
|
||||
"body": body}
|
||||
|
||||
|
||||
def print_pointer_val(val, internal_dict):
|
||||
"""Prints a pointer value with Rust syntax"""
|
||||
assert val.type.get_dwarf_type_kind() == rustpp.DWARF_TYPE_CODE_PTR
|
||||
|
@ -253,18 +254,21 @@ def print_std_vec_val(val, internal_dict):
|
|||
length,
|
||||
internal_dict)
|
||||
|
||||
|
||||
def print_str_slice_val(val, internal_dict):
|
||||
(length, data_ptr) = rustpp.extract_length_and_ptr_from_slice(val)
|
||||
return read_utf8_string(data_ptr, length)
|
||||
|
||||
|
||||
def print_std_string_val(val, internal_dict):
|
||||
vec = val.get_child_at_index(0)
|
||||
(length, data_ptr, cap) = rustpp.extract_length_ptr_and_cap_from_std_vec(vec)
|
||||
return read_utf8_string(data_ptr, length)
|
||||
|
||||
#=--------------------------------------------------------------------------------------------------
|
||||
# =-----------------------------------------------------------------------
|
||||
# Helper Functions
|
||||
#=--------------------------------------------------------------------------------------------------
|
||||
# =-----------------------------------------------------------------------
|
||||
|
||||
|
||||
def print_array_of_values(array_name, data_ptr_val, length, internal_dict):
|
||||
"""Prints a contiguous memory range, interpreting it as values of the
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
#!/usr/bin/env python
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
## This script publishes the new "current" toolstate in the toolstate repo (not to be
|
||||
## confused with publishing the test results, which happens in
|
||||
## `src/ci/docker/x86_64-gnu-tools/checktools.sh`).
|
||||
## It is set as callback for `src/ci/docker/x86_64-gnu-tools/repo.sh` by the CI scripts
|
||||
## when a new commit lands on `master` (i.e., after it passed all checks on `auto`).
|
||||
# This script publishes the new "current" toolstate in the toolstate repo (not to be
|
||||
# confused with publishing the test results, which happens in
|
||||
# `src/ci/docker/x86_64-gnu-tools/checktools.sh`).
|
||||
# It is set as callback for `src/ci/docker/x86_64-gnu-tools/repo.sh` by the CI scripts
|
||||
# when a new commit lands on `master` (i.e., after it passed all checks on `auto`).
|
||||
|
||||
from __future__ import print_function
|
||||
|
||||
|
@ -103,6 +103,7 @@ def validate_maintainers(repo, github_token):
|
|||
print("The build will fail due to this.")
|
||||
exit(1)
|
||||
|
||||
|
||||
def read_current_status(current_commit, path):
|
||||
'''Reads build status of `current_commit` from content of `history/*.tsv`
|
||||
'''
|
||||
|
@ -113,14 +114,17 @@ def read_current_status(current_commit, path):
|
|||
return json.loads(status)
|
||||
return {}
|
||||
|
||||
|
||||
def gh_url():
|
||||
return os.environ['TOOLSTATE_ISSUES_API_URL']
|
||||
|
||||
|
||||
def maybe_delink(message):
|
||||
if os.environ.get('TOOLSTATE_SKIP_MENTIONS') is not None:
|
||||
return message.replace("@", "")
|
||||
return message
|
||||
|
||||
|
||||
def issue(
|
||||
tool,
|
||||
status,
|
||||
|
@ -164,6 +168,7 @@ def issue(
|
|||
))
|
||||
response.read()
|
||||
|
||||
|
||||
def update_latest(
|
||||
current_commit,
|
||||
relevant_pr_number,
|
||||
|
@ -194,7 +199,7 @@ def update_latest(
|
|||
for status in latest:
|
||||
tool = status['tool']
|
||||
changed = False
|
||||
create_issue_for_status = None # set to the status that caused the issue
|
||||
create_issue_for_status = None # set to the status that caused the issue
|
||||
|
||||
for os, s in current_status.items():
|
||||
old = status[os]
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue