Force mypy to ignore a bunch of simple situations it's not smart enough to reason about

This commit is contained in:
Jan Petykiewicz 2020-04-18 15:52:36 -07:00
parent 25b2cecec9
commit 4c5f649eec

View File

@ -978,13 +978,13 @@ class Property(Record):
size += write_byte(stream, (u << 4) | (v << 3) | (c << 2) | (n << 1) | s) size += write_byte(stream, (u << 4) | (v << 3) | (c << 2) | (n << 1) | s)
if c: if c:
if n: if n:
size += write_uint(stream, self.name) size += write_uint(stream, self.name) # type: ignore
else: else:
size += self.name.write(stream) size += self.name.write(stream) # type: ignore
if not v: if not v:
if u == 0x0f: if u == 0x0f:
size += write_uint(stream, self.name) size += write_uint(stream, self.name) # type: ignore
size += sum(write_property_value(stream, p) for p in self.values) size += sum(write_property_value(stream, p) for p in self.values) # type: ignore
return size return size
@ -1188,16 +1188,16 @@ class XGeometry(Record):
size += write_bool_byte(stream, (0, 0, 0, x, y, r, d, l)) size += write_bool_byte(stream, (0, 0, 0, x, y, r, d, l))
size += write_uint(stream, self.attribute) size += write_uint(stream, self.attribute)
if l: if l:
size += write_uint(stream, self.layer) size += write_uint(stream, self.layer) # type: ignore
if d: if d:
size += write_uint(stream, self.datatype) size += write_uint(stream, self.datatype) # type: ignore
size += write_bstring(stream, self.bstring) size += write_bstring(stream, self.bstring)
if x: if x:
size += write_sint(stream, self.x) size += write_sint(stream, self.x) # type: ignore
if y: if y:
size += write_sint(stream, self.y) size += write_sint(stream, self.y) # type: ignore
if r: if r:
size += self.repetition.write(stream) size += self.repetition.write(stream) # type: ignore
return size return size
@ -1353,7 +1353,7 @@ class Placement(Record):
if self.angle is not None and self.angle % 90 == 0 and \ if self.angle is not None and self.angle % 90 == 0 and \
self.magnification is None or self.magnification == 1: self.magnification is None or self.magnification == 1:
aa = int((self.angle / 90) % 4) aa = int((self.angle / 90) % 4) # type: ignore
bools = (c, n, x, y, r, aa & 0b10, aa & 0b01, f) bools = (c, n, x, y, r, aa & 0b10, aa & 0b01, f)
m = False m = False
a = False a = False
@ -1368,19 +1368,19 @@ class Placement(Record):
size += write_bool_byte(stream, bools) size += write_bool_byte(stream, bools)
if c: if c:
if n: if n:
size += write_uint(stream, self.name) size += write_uint(stream, self.name) # type: ignore
else: else:
size += self.name.write(stream) size += self.name.write(stream) # type: ignore
if m: if m:
size += write_real(stream, self.magnification) size += write_real(stream, self.magnification) # type: ignore
if a: if a:
size += write_real(stream, self.angle) size += write_real(stream, self.angle) # type: ignore
if x: if x:
size += write_sint(stream, self.x) size += write_sint(stream, self.x) # type: ignore
if y: if y:
size += write_sint(stream, self.y) size += write_sint(stream, self.y) # type: ignore
if r: if r:
size += self.repetition.write(stream) size += self.repetition.write(stream) # type: ignore
return size return size
@ -1484,19 +1484,19 @@ class Text(Record):
size += write_bool_byte(stream, (0, c, n, x, y, r, d, l)) size += write_bool_byte(stream, (0, c, n, x, y, r, d, l))
if c: if c:
if n: if n:
size += write_uint(stream, self.string) size += write_uint(stream, self.string) # type: ignore
else: else:
size += self.string.write(stream) size += self.string.write(stream) # type: ignore
if l: if l:
size += write_uint(stream, self.layer) size += write_uint(stream, self.layer) # type: ignore
if d: if d:
size += write_uint(stream, self.datatype) size += write_uint(stream, self.datatype) # type: ignore
if x: if x:
size += write_sint(stream, self.x) size += write_sint(stream, self.x) # type: ignore
if y: if y:
size += write_sint(stream, self.y) size += write_sint(stream, self.y) # type: ignore
if r: if r:
size += self.repetition.write(stream) size += self.repetition.write(stream) # type: ignore
return size return size
@ -1619,19 +1619,19 @@ class Rectangle(Record):
size = write_uint(stream, 20) size = write_uint(stream, 20)
size += write_bool_byte(stream, (s, w, h, x, y, r, d, l)) size += write_bool_byte(stream, (s, w, h, x, y, r, d, l))
if l: if l:
size += write_uint(stream, self.layer) size += write_uint(stream, self.layer) # type: ignore
if d: if d:
size += write_uint(stream, self.datatype) size += write_uint(stream, self.datatype) # type: ignore
if w: if w:
size += write_uint(stream, self.width) size += write_uint(stream, self.width) # type: ignore
if h: if h:
size += write_uint(stream, self.height) size += write_uint(stream, self.height) # type: ignore
if x: if x:
size += write_sint(stream, self.x) size += write_sint(stream, self.x) # type: ignore
if y: if y:
size += write_sint(stream, self.y) size += write_sint(stream, self.y) # type: ignore
if r: if r:
size += self.repetition.write(stream) size += self.repetition.write(stream) # type: ignore
return size return size
@ -1737,17 +1737,18 @@ class Polygon(Record):
size = write_uint(stream, 21) size = write_uint(stream, 21)
size += write_bool_byte(stream, (0, 0, p, x, y, r, d, l)) size += write_bool_byte(stream, (0, 0, p, x, y, r, d, l))
if l: if l:
size += write_uint(stream, self.layer) size += write_uint(stream, self.layer) # type: ignore
if d: if d:
size += write_uint(stream, self.datatype) size += write_uint(stream, self.datatype) # type: ignore
if p: if p:
size += write_point_list(stream, self.point_list, implicit_closed=True, fast=fast) size += write_point_list(stream, self.point_list, # type: ignore
implicit_closed=True, fast=fast)
if x: if x:
size += write_sint(stream, self.x) size += write_sint(stream, self.x) # type: ignore
if y: if y:
size += write_sint(stream, self.y) size += write_sint(stream, self.y) # type: ignore
if r: if r:
size += self.repetition.write(stream) size += self.repetition.write(stream) # type: ignore
return size return size
@ -1898,11 +1899,11 @@ class Path(Record):
size = write_uint(stream, 21) size = write_uint(stream, 21)
size += write_bool_byte(stream, (e, w, p, x, y, r, d, l)) size += write_bool_byte(stream, (e, w, p, x, y, r, d, l))
if l: if l:
size += write_uint(stream, self.layer) size += write_uint(stream, self.layer) # type: ignore
if d: if d:
size += write_uint(stream, self.datatype) size += write_uint(stream, self.datatype) # type: ignore
if w: if w:
size += write_uint(stream, self.half_width) size += write_uint(stream, self.half_width) # type: ignore
if e: if e:
scheme = 0 scheme = 0
if self.extension_start is not None: if self.extension_start is not None:
@ -1911,17 +1912,18 @@ class Path(Record):
scheme += self.extension_end[0].value scheme += self.extension_end[0].value
size += write_uint(stream, scheme) size += write_uint(stream, scheme)
if scheme & 0b1100 == 0b1100: if scheme & 0b1100 == 0b1100:
size += write_sint(stream, self.extension_start[1]) size += write_sint(stream, self.extension_start[1]) # type: ignore
if scheme & 0b0011 == 0b0011: if scheme & 0b0011 == 0b0011:
size += write_sint(stream, self.extension_end[1]) size += write_sint(stream, self.extension_end[1]) # type: ignore
if p: if p:
size += write_point_list(stream, self.point_list, implicit_closed=False, fast=fast) size += write_point_list(stream, self.point_list, # type: ignore
implicit_closed=False, fast=fast)
if x: if x:
size += write_sint(stream, self.x) size += write_sint(stream, self.x) # type: ignore
if y: if y:
size += write_sint(stream, self.y) size += write_sint(stream, self.y) # type: ignore
if r: if r:
size += self.repetition.write(stream) size += self.repetition.write(stream) # type: ignore
return size return size
@ -2080,23 +2082,23 @@ class Trapezoid(Record):
size = write_uint(stream, record_id) size = write_uint(stream, record_id)
size += write_bool_byte(stream, (v, w, h, x, y, r, d, l)) size += write_bool_byte(stream, (v, w, h, x, y, r, d, l))
if l: if l:
size += write_uint(stream, self.layer) size += write_uint(stream, self.layer) # type: ignore
if d: if d:
size += write_uint(stream, self.datatype) size += write_uint(stream, self.datatype) # type: ignore
if w: if w:
size += write_uint(stream, self.width) size += write_uint(stream, self.width) # type: ignore
if h: if h:
size += write_uint(stream, self.height) size += write_uint(stream, self.height) # type: ignore
if record_id != 25: if record_id != 25:
size += write_sint(stream, self.delta_a) size += write_sint(stream, self.delta_a) # type: ignore
if record_id != 24: if record_id != 24:
size += write_sint(stream, self.delta_b) size += write_sint(stream, self.delta_b) # type: ignore
if x: if x:
size += write_sint(stream, self.x) size += write_sint(stream, self.x) # type: ignore
if y: if y:
size += write_sint(stream, self.y) size += write_sint(stream, self.y) # type: ignore
if r: if r:
size += self.repetition.write(stream) size += self.repetition.write(stream) # type: ignore
return size return size
@ -2248,21 +2250,21 @@ class CTrapezoid(Record):
size = write_uint(stream, 26) size = write_uint(stream, 26)
size += write_bool_byte(stream, (t, w, h, x, y, r, d, l)) size += write_bool_byte(stream, (t, w, h, x, y, r, d, l))
if l: if l:
size += write_uint(stream, self.layer) size += write_uint(stream, self.layer) # type: ignore
if d: if d:
size += write_uint(stream, self.datatype) size += write_uint(stream, self.datatype) # type: ignore
if t: if t:
size += write_uint(stream, self.ctrapezoid_type) size += write_uint(stream, self.ctrapezoid_type) # type: ignore
if w: if w:
size += write_uint(stream, self.width) size += write_uint(stream, self.width) # type: ignore
if h: if h:
size += write_uint(stream, self.height) size += write_uint(stream, self.height) # type: ignore
if x: if x:
size += write_sint(stream, self.x) size += write_sint(stream, self.x) # type: ignore
if y: if y:
size += write_sint(stream, self.y) size += write_sint(stream, self.y) # type: ignore
if r: if r:
size += self.repetition.write(stream) size += self.repetition.write(stream) # type: ignore
return size return size
@ -2394,17 +2396,17 @@ class Circle(Record):
size = write_uint(stream, 27) size = write_uint(stream, 27)
size += write_bool_byte(stream, (0, 0, s, x, y, r, d, l)) size += write_bool_byte(stream, (0, 0, s, x, y, r, d, l))
if l: if l:
size += write_uint(stream, self.layer) size += write_uint(stream, self.layer) # type: ignore
if d: if d:
size += write_uint(stream, self.datatype) size += write_uint(stream, self.datatype) # type: ignore
if s: if s:
size += write_uint(stream, self.radius) size += write_uint(stream, self.radius) # type: ignore
if x: if x:
size += write_sint(stream, self.x) size += write_sint(stream, self.x) # type: ignore
if y: if y:
size += write_sint(stream, self.y) size += write_sint(stream, self.y) # type: ignore
if r: if r:
size += self.repetition.write(stream) size += self.repetition.write(stream) # type: ignore
return size return size