Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
def test_equality():
assert (1, 'text') == DXFTag(1, 'text'), 'should be equal to tuple'
# Python 2.7 Issue
assert ((1, 'text') != DXFTag(1, 'text')) is False
assert (1, 'text') != DXFTag(1, 'text2'), 'should be not equal to tuple'
assert DXFTag(1, 'text') == (1, 'text'), 'should be equal to tuple'
assert DXFTag(1, 'text') != (1, 'text2'), 'should be not equal to tuple'
assert DXFTag(1, 'text') == DXFTag(1, 'text')
assert DXFTag(1, 'text') != DXFTag(1, 'text2')
def dxftags(self) -> List[DXFTag]:
tags = [
DXFTag(72, 4), # edge type
DXFTag(94, int(self.degree)),
DXFTag(73, int(self.rational)),
DXFTag(74, int(self.periodic)),
DXFTag(95, len(self.knot_values)), # number of knots
DXFTag(96, len(self.control_points)), # number of control points
]
# build knot values list
# knot values have to be present and valid, otherwise AutoCAD crashes
if len(self.knot_values):
tags.extend([DXFTag(40, float(value)) for value in self.knot_values])
else:
raise DXFValueError("SplineEdge: missing required knot values")
# build control points
# control points have to be present and valid, otherwise AutoCAD crashes
tags.extend([DXFVertex(10, (float(value[0]), float(value[1]))) for value in self.control_points])
# build weights list, optional
tags.extend([DXFTag(42, float(value)) for value in self.weights])
def dxftags(self) -> List[DXFTag]:
tags = [
DXFTag(53, self.angle),
DXFTag(43, self.base_point[0]),
DXFTag(44, self.base_point[1]),
DXFTag(45, self.offset[0]),
DXFTag(46, self.offset[1]),
DXFTag(79, len(self.dash_length_items)),
]
tags.extend(DXFTag(49, item) for item in self.dash_length_items)
return tags
def dxftags(self) -> List[DXFTag]:
tags = [
DXFTag(53, self.angle),
DXFTag(43, self.base_point[0]),
DXFTag(44, self.base_point[1]),
DXFTag(45, self.offset[0]),
DXFTag(46, self.offset[1]),
DXFTag(79, len(self.dash_length_items)),
]
tags.extend(DXFTag(49, item) for item in self.dash_length_items)
return tags
tokens = lin_compiler(pattern)
subclass = self.tags.get_subclass('AcDbLinetypeTableRecord')
subclass.append(DXFTag(73, 0)) # temp length of 0
subclass.append(DXFTag(40, length))
count = 0
for token in tokens:
if isinstance(token, DXFTag):
if subclass[-1].code == 49: # useless 74 only after 49 :))
subclass.append(DXFTag(74, 0))
subclass.append(token)
count += 1
else: # TEXT or SHAPE
tags = cast('ComplexLineTypePart', token).complex_ltype_tags(self.drawing)
subclass.extend(tags)
subclass.append(DXFTag(74, 0)) # useless 74 at the end :))
subclass.update(DXFTag(73, count))
def _setup_complex_pattern(self, pattern: str, length: float) -> Tags:
tokens = lin_compiler(pattern)
tags = Tags([
DXFTag(72, 65), # letter 'A'
])
tags2 = [DXFTag(73, 0), DXFTag(40, length)] # temp length of 0
count = 0
for token in tokens:
if isinstance(token, DXFTag):
if tags2[-1].code == 49: # useless 74 only after 49 :))
tags2.append(DXFTag(74, 0))
tags2.append(token)
count += 1
else: # TEXT or SHAPE
tags2.extend(cast('ComplexLineTypePart', token).complex_ltype_tags(self.doc))
tags2.append(DXFTag(74, 0)) # useless 74 at the end :))
tags2[0] = DXFTag(73, count)
tags.extend(tags2)
return tags
def _setup_complex_pattern(self, pattern: str, length: float) -> None:
tokens = lin_compiler(pattern)
subclass = self.tags.get_subclass('AcDbLinetypeTableRecord')
subclass.append(DXFTag(73, 0)) # temp length of 0
subclass.append(DXFTag(40, length))
count = 0
for token in tokens:
if isinstance(token, DXFTag):
if subclass[-1].code == 49: # useless 74 only after 49 :))
subclass.append(DXFTag(74, 0))
subclass.append(token)
count += 1
else: # TEXT or SHAPE
tags = cast('ComplexLineTypePart', token).complex_ltype_tags(self.drawing)
subclass.extend(tags)
subclass.append(DXFTag(74, 0)) # useless 74 at the end :))
subclass.update(DXFTag(73, count))
if len(self.knot_values):
tags.extend([DXFTag(40, float(value)) for value in self.knot_values])
else:
raise DXFValueError("SplineEdge: missing required knot values")
# build control points
# control points have to be present and valid, otherwise AutoCAD crashes
tags.extend([DXFVertex(10, (float(value[0]), float(value[1]))) for value in self.control_points])
# build weights list, optional
tags.extend([DXFTag(42, float(value)) for value in self.weights])
# build fit points
# fit points have to be present and valid, otherwise AutoCAD crashes
# edit 2016-12-20: this is not true - there are cases with no fit points and without crashing AutoCAD
tags.append(DXFTag(97, len(self.fit_points)))
tags.extend([DXFVertex(11, (float(value[0]), float(value[1]))) for value in self.fit_points])
tags.append(DXFVertex(12, (float(self.start_tangent[0]), float(self.start_tangent[1]))))
tags.append(DXFVertex(13, (float(self.end_tangent[0]), float(self.end_tangent[1]))))
return tags
DXFTag(1070, flag(const.VSF_ISOMETRIC_SNAP_STYLE)),
DXFTag(1070, 0), # snap isopair ???
DXFTag(1040, dxf.snap_angle),
DXFTag(1040, dxf.snap_base_point[0]),
DXFTag(1040, dxf.snap_base_point[1]),
DXFTag(1040, dxf.snap_spacing[0]),
DXFTag(1040, dxf.snap_spacing[1]),
DXFTag(1040, dxf.grid_spacing[0]),
DXFTag(1040, dxf.grid_spacing[1]),
DXFTag(1070, flag(const.VSF_HIDE_PLOT_MODE)),
DXFTag(1002, '{'), # start frozen layer list
]
tags.extend(DXFTag(1003, layer_name) for layer_name in self.frozen_layers)
tags.extend([
DXFTag(1002, '}'), # end of frozen layer list
DXFTag(1002, '}'), # MVIEW
])
return Tags(tags)
def dxftags(self) -> List[DXFTag]:
return [
DXFTag(450, 1), # gradient
DXFTag(451, 0), # reserved for the future
DXFTag(452, self.one_color), # one (1) or two (0) color gradient
DXFTag(453, 2), # number of colors
DXFTag(460, (self.rotation / 180.) * math.pi), # rotation angle in radians
DXFTag(461, self.centered), # see DXF standard
DXFTag(462, self.tint), # see DXF standard
DXFTag(463, 0), # first value, see DXF standard
# code == 63 "color as ACI" can be left off
DXFTag(421, rgb2int(self.color1)), # first color
DXFTag(463, 1), # second value, see DXF standard
# code == 63 "color as ACI" can be left off
DXFTag(421, rgb2int(self.color2)), # second color
DXFTag(470, self.name),
]