SYMBOL INDEX (1444 symbols across 204 files) FILE: io_xplane2blender/__init__.py function menu_func (line 64) | def menu_func(self, context): function register (line 72) | def register(): function unregister (line 83) | def unregister(): FILE: io_xplane2blender/tests/__init__.py class TemporarilyMakeRootExportable (line 36) | class TemporarilyMakeRootExportable: method __init__ (line 43) | def __init__( method __enter__ (line 85) | def __enter__(self): method __exit__ (line 88) | def __exit__(self, exc_type, value, traceback): class XPlaneTestCase (line 104) | class XPlaneTestCase(unittest.TestCase): method setUp (line 105) | def setUp(self, useLogger=True): method useLogger (line 115) | def useLogger(self): method assertImagesEqual (line 126) | def assertImagesEqual( method assertMatricesEqual (line 189) | def assertMatricesEqual(self, mA, mB, tolerance=FLOAT_TOLERANCE): method assertObjectsInXPlaneFile (line 194) | def assertObjectsInXPlaneFile(self, xplaneFile, objectNames): method assertXPlaneBoneTreeEqual (line 209) | def assertXPlaneBoneTreeEqual( method assertFloatsEqual (line 247) | def assertFloatsEqual(self, a: float, b: float, tolerance: float = FLO... method assertFloatVectorsEqual (line 257) | def assertFloatVectorsEqual( method parseFileToLines (line 264) | def parseFileToLines(self, data: str) -> List[Tuple[Union[float, str]]]: method assertFilesEqual (line 289) | def assertFilesEqual( method assertFileOutputEqualsFixture (line 415) | def assertFileOutputEqualsFixture( method assertFileTmpEqualsFixture (line 436) | def assertFileTmpEqualsFixture( method assertLoggerErrors (line 451) | def assertLoggerErrors(self, expected_logger_errors: int) -> None: method assertLayerExportEqualsFixture (line 475) | def assertLayerExportEqualsFixture( method assertExportableRootExportEqualsFixture (line 498) | def assertExportableRootExportEqualsFixture( method assertAttributesEqualDict (line 519) | def assertAttributesEqualDict( method createXPlaneFileFromPotentialRoot (line 573) | def createXPlaneFileFromPotentialRoot( method exportLayer (line 596) | def exportLayer( method exportExportableRoot (line 609) | def exportExportableRoot( method get_XPlane2Blender_log_content (line 657) | def get_XPlane2Blender_log_content() -> List[str]: class XPlaneAnimationTestCase (line 665) | class XPlaneAnimationTestCase(XPlaneTestCase): method setUp (line 666) | def setUp(self): method exportAnimationTestCase (line 669) | def exportAnimationTestCase(self, name, dest): method runAnimationTestCase (line 695) | def runAnimationTestCase(self, name, __dirname__): function get_source_folder (line 725) | def get_source_folder() -> pathlib.Path: function get_project_folder (line 730) | def get_project_folder() -> pathlib.Path: function get_tests_folder (line 735) | def get_tests_folder() -> pathlib.Path: function get_tmp_folder (line 739) | def get_tmp_folder() -> pathlib.Path: function make_fixture_path (line 743) | def make_fixture_path(dirname, filename, sub_dir=""): function runTestCases (line 747) | def runTestCases(testCases): FILE: io_xplane2blender/tests/test_creation_helpers.py class AxisDetentRangeInfo (line 63) | class AxisDetentRangeInfo: method __init__ (line 64) | def __init__(self, start: float, end: float, height: float): class BoneInfo (line 70) | class BoneInfo: method __init__ (line 71) | def __init__(self, name: str, head: Vector, tail: Vector, parent: str): class DatablockInfo (line 84) | class DatablockInfo: method __init__ (line 96) | def __init__( class KeyframeInfo (line 147) | class KeyframeInfo: method __init__ (line 148) | def __init__( method __str__ (line 180) | def __str__(self) -> str: class ParentInfo (line 256) | class ParentInfo: method __init__ (line 257) | def __init__( function create_bone (line 276) | def create_bone(armature: bpy.types.Object, bone_info: BoneInfo) -> str: function create_datablock_collection (line 303) | def create_datablock_collection( function create_datablock_armature (line 334) | def create_datablock_armature( function create_datablock_empty (line 403) | def create_datablock_empty( function create_datablock_mesh (line 430) | def create_datablock_mesh( function create_datablock_light (line 489) | def create_datablock_light( function create_datablock_image_from_disk (line 516) | def create_datablock_image_from_disk(filepath: Union[Path, str]) -> bpy.... function create_material (line 530) | def create_material(material_name: str): function create_material_default (line 537) | def create_material_default() -> bpy.types.Material: function create_scene (line 544) | def create_scene(name: str) -> bpy.types.Scene: function get_image (line 552) | def get_image(name: str) -> Optional[bpy.types.Image]: function get_light (line 559) | def get_light(name: str) -> Optional[bpy.types.Light]: function get_material (line 567) | def get_material(material_name: str) -> Optional[bpy.types.Material]: function get_material_default (line 571) | def get_material_default() -> bpy.types.Material: function delete_all_collections (line 579) | def delete_all_collections(): function delete_all_images (line 584) | def delete_all_images(): function delete_all_lights (line 590) | def delete_all_lights(): function delete_all_materials (line 596) | def delete_all_materials(): function delete_all_objects (line 602) | def delete_all_objects(): function delete_all_other_scenes (line 608) | def delete_all_other_scenes(): function delete_all_text_files (line 617) | def delete_all_text_files(): function delete_everything (line 623) | def delete_everything(): function lookup_potential_root_from_name (line 636) | def lookup_potential_root_from_name(name: str) -> PotentialRoot: function make_root_exportable (line 654) | def make_root_exportable( function make_root_unexportable (line 688) | def make_root_unexportable( function set_animation_data (line 719) | def set_animation_data( function set_collection (line 840) | def set_collection( function set_manipulator_settings (line 861) | def set_manipulator_settings( function set_material (line 902) | def set_material( function set_parent (line 919) | def set_parent(blender_object: bpy.types.Object, parent_info: ParentInfo... function set_rotation (line 934) | def set_rotation( function set_xplane_layer (line 954) | def set_xplane_layer( class TemporaryStartFile (line 969) | class TemporaryStartFile: method __init__ (line 970) | def __init__(self, temporary_startup_path: str): method __enter__ (line 973) | def __enter__(self) -> None: method __exit__ (line 986) | def __exit__(self, type, value, traceback) -> None: function create_initial_test_setup (line 994) | def create_initial_test_setup(): FILE: io_xplane2blender/xplane_config.py function getDebug (line 28) | def getDebug() -> bool: function setDebug (line 32) | def setDebug(debug: bool) -> None: FILE: io_xplane2blender/xplane_constants.py function _get_addon_folder (line 16) | def _get_addon_folder() -> str: function _get_resources_folder (line 25) | def _get_resources_folder() -> str: function _get_all_manipulators (line 171) | def _get_all_manipulators(): FILE: io_xplane2blender/xplane_export.py class XPLANE_MT_xplane_export_log (line 19) | class XPLANE_MT_xplane_export_log(bpy.types.Menu): method draw (line 23) | def draw(self, context): function showLogDialog (line 30) | def showLogDialog(): class EXPORT_OT_ExportXPlane (line 35) | class EXPORT_OT_ExportXPlane(bpy.types.Operator, ExportHelper): method execute (line 68) | def execute(self, context): method _startLogging (line 146) | def _startLogging(self): method _endLogging (line 176) | def _endLogging(self): method _writeXPlaneFile (line 180) | def _writeXPlaneFile( method invoke (line 239) | def invoke(self, context, event): FILE: io_xplane2blender/xplane_helpers.py class UnwriteableXPlaneType (line 38) | class UnwriteableXPlaneType(ValueError): function floatToStr (line 42) | def floatToStr(n: float) -> str: function resolveBlenderPath (line 58) | def resolveBlenderPath(path: str) -> str: function effective_normal_metalness (line 67) | def effective_normal_metalness(xp_file: "xplane_file.XPlaneFile") -> bool: function effective_normal_metalness_draped (line 74) | def effective_normal_metalness_draped(xp_file: "xplane_file.XPlaneFile")... function is_path_decal_lib (line 81) | def is_path_decal_lib(file_path: str) -> bool: function get_plugin_resources_folder (line 85) | def get_plugin_resources_folder() -> str: function get_potential_objects_in_exportable_root (line 89) | def get_potential_objects_in_exportable_root( function get_rotation_from_rotatable (line 109) | def get_rotation_from_rotatable( function get_collections_in_scene (line 123) | def get_collections_in_scene(scene: bpy.types.Scene) -> List[bpy.types.C... function get_layer_collections_in_view_layer (line 141) | def get_layer_collections_in_view_layer( function get_exportable_roots_in_scene (line 162) | def get_exportable_roots_in_scene( function is_visible_in_viewport (line 174) | def is_visible_in_viewport( function is_exportable_root (line 187) | def is_exportable_root( function round_vec (line 200) | def round_vec(v: mathutils.Vector, ndigits: int) -> mathutils.Vector: function vec_b_to_x (line 204) | def vec_b_to_x(v) -> mathutils.Vector: function vec_x_to_b (line 208) | def vec_x_to_b(v) -> mathutils.Vector: class VerStruct (line 214) | class VerStruct: method __init__ (line 215) | def __init__( method __eq__ (line 231) | def __eq__(self, other): method __ne__ (line 239) | def __ne__(self, other): method __lt__ (line 242) | def __lt__(self, other): method __gt__ (line 255) | def __gt__(self, other): method __ge__ (line 268) | def __ge__(self, other): method __le__ (line 271) | def __le__(self, other): method __repr__ (line 275) | def __repr__(self): method __str__ (line 285) | def __str__(self): method is_valid (line 301) | def is_valid(self) -> bool: method add_to_version_history (line 382) | def add_to_version_history( method current (line 413) | def current(): method from_version_entry (line 423) | def from_version_entry( method make_new_build_number (line 435) | def make_new_build_number(): method parse_version (line 451) | def parse_version(version_str: str) -> Optional["VerStruct"]: class XPlaneLogger (line 533) | class XPlaneLogger: method __init__ (line 534) | def __init__(self): method addTransport (line 538) | def addTransport( method clear (line 543) | def clear(self): method clearTransports (line 547) | def clearTransports(self): method clearMessages (line 550) | def clearMessages(self): method messagesToString (line 553) | def messagesToString(self, messages=None): method log (line 569) | def log(self, messageType, message, context=None): method error (line 578) | def error(self, message, context=None): method warn (line 581) | def warn(self, message, context=None): method info (line 584) | def info(self, message, context=None): method success (line 587) | def success(self, message, context=None): method findOfType (line 590) | def findOfType(self, messageType): method hasOfType (line 599) | def hasOfType(self, messageType): method findErrors (line 606) | def findErrors(self): method hasErrors (line 609) | def hasErrors(self): method findWarnings (line 612) | def findWarnings(self): method hasWarnings (line 615) | def hasWarnings(self): method findInfos (line 618) | def findInfos(self): method messageToString (line 622) | def messageToString(messageType, message, context=None): method InternalTextTransport (line 627) | def InternalTextTransport(name="XPlane2Blender.log"): method ConsoleTransport (line 643) | def ConsoleTransport(): method FileTransport (line 652) | def FileTransport(filehandle): FILE: io_xplane2blender/xplane_ops.py function findFCurveByPath (line 33) | def findFCurveByPath(fcurves, path): function makeKeyframesLinear (line 55) | def makeKeyframesLinear(obj, path): function getDatarefValuePath (line 80) | def getDatarefValuePath(index: int, bone: Optional[bpy.types.Bone] = Non... class OBJECT_OT_add_xplane_axis_detent_range (line 93) | class OBJECT_OT_add_xplane_axis_detent_range(bpy.types.Operator): method execute (line 98) | def execute(self, context): class OBJECT_OT_remove_xplane_axis_detent_range (line 104) | class OBJECT_OT_remove_xplane_axis_detent_range(bpy.types.Operator): method execute (line 111) | def execute(self, context): class COLLECTION_OT_add_xplane_layer_attribute (line 117) | class COLLECTION_OT_add_xplane_layer_attribute(bpy.types.Operator): method execute (line 124) | def execute(self, context): class COLLECTION_OT_remove_xplane_layer_attribute (line 130) | class COLLECTION_OT_remove_xplane_layer_attribute(bpy.types.Operator): method execute (line 138) | def execute(self, context): class OBJECT_OT_add_xplane_layer_attribute (line 144) | class OBJECT_OT_add_xplane_layer_attribute(bpy.types.Operator): method execute (line 151) | def execute(self, context): class OBJECT_OT_remove_xplane_layer_attribute (line 157) | class OBJECT_OT_remove_xplane_layer_attribute(bpy.types.Operator): method execute (line 164) | def execute(self, context): class OBJECT_OT_add_xplane_object_attribute (line 172) | class OBJECT_OT_add_xplane_object_attribute(bpy.types.Operator): method execute (line 177) | def execute(self, context): class OBJECT_OT_remove_xplane_object_attribute (line 185) | class OBJECT_OT_remove_xplane_object_attribute(bpy.types.Operator): method execute (line 192) | def execute(self, context): class OBJECT_OT_add_xplane_object_anim_attribute (line 200) | class OBJECT_OT_add_xplane_object_anim_attribute(bpy.types.Operator): method execute (line 205) | def execute(self, context): class OBJECT_OT_remove_xplane_object_anim_attribute (line 213) | class OBJECT_OT_remove_xplane_object_anim_attribute(bpy.types.Operator): method execute (line 220) | def execute(self, context): class OBJECT_OT_add_xplane_material_attribute (line 228) | class OBJECT_OT_add_xplane_material_attribute(bpy.types.Operator): method execute (line 233) | def execute(self, context): class OBJECT_OT_remove_xplane_material_attribute (line 241) | class OBJECT_OT_remove_xplane_material_attribute(bpy.types.Operator): method execute (line 248) | def execute(self, context): class OBJECT_OT_add_xplane_light_attribute (line 256) | class OBJECT_OT_add_xplane_light_attribute(bpy.types.Operator): method execute (line 261) | def execute(self, context): class OBJECT_OT_remove_xplane_light_attribute (line 269) | class OBJECT_OT_remove_xplane_light_attribute(bpy.types.Operator): method execute (line 276) | def execute(self, context): class OBJECT_OT_add_xplane_dataref (line 284) | class OBJECT_OT_add_xplane_dataref(bpy.types.Operator): method execute (line 289) | def execute(self, context): class OBJECT_OT_remove_xplane_dataref (line 297) | class OBJECT_OT_remove_xplane_dataref(bpy.types.Operator): method execute (line 304) | def execute(self, context): class OBJECT_OT_add_xplane_dataref_keyframe (line 325) | class OBJECT_OT_add_xplane_dataref_keyframe(bpy.types.Operator): method execute (line 334) | def execute(self, context): class OBJECT_OT_remove_xplane_dataref_keyframe (line 352) | class OBJECT_OT_remove_xplane_dataref_keyframe(bpy.types.Operator): method execute (line 361) | def execute(self, context): class COLLECTION_OT_add_xplane_export_path_directive (line 371) | class COLLECTION_OT_add_xplane_export_path_directive(bpy.types.Operator): method execute (line 378) | def execute(self, context): class COLLECTION_OT_remove_xplane_export_path_directive (line 384) | class COLLECTION_OT_remove_xplane_export_path_directive(bpy.types.Operat... method execute (line 392) | def execute(self, context): class OBJECT_OT_add_xplane_export_path_directive (line 398) | class OBJECT_OT_add_xplane_export_path_directive(bpy.types.Operator): method execute (line 403) | def execute(self, context): class OBJECT_OT_remove_xplane_export_path_directive (line 409) | class OBJECT_OT_remove_xplane_export_path_directive(bpy.types.Operator): method execute (line 416) | def execute(self, context): class BONE_OT_add_xplane_dataref (line 424) | class BONE_OT_add_xplane_dataref(bpy.types.Operator): method execute (line 429) | def execute(self, context): class BONE_OT_remove_xplane_dataref (line 438) | class BONE_OT_remove_xplane_dataref(bpy.types.Operator): method execute (line 445) | def execute(self, context): class BONE_OT_add_xplane_dataref_keyframe (line 466) | class BONE_OT_add_xplane_dataref_keyframe(bpy.types.Operator): method execute (line 476) | def execute(self, context): class BONE_OT_remove_xplane_dataref_keyframe (line 497) | class BONE_OT_remove_xplane_dataref_keyframe(bpy.types.Operator): method execute (line 506) | def execute(self, context): class OBJECT_OT_add_xplane_object_condition (line 520) | class OBJECT_OT_add_xplane_object_condition(bpy.types.Operator): method execute (line 525) | def execute(self, context): class OBJECT_OT_remove_xplane_object_condition (line 533) | class OBJECT_OT_remove_xplane_object_condition(bpy.types.Operator): method execute (line 540) | def execute(self, context): class OBJECT_OT_add_xplane_material_condition (line 549) | class OBJECT_OT_add_xplane_material_condition(bpy.types.Operator): method execute (line 554) | def execute(self, context): class OBJECT_OT_remove_xplane_material_condition (line 562) | class OBJECT_OT_remove_xplane_material_condition(bpy.types.Operator): method execute (line 569) | def execute(self, context): class SCENE_OT_export_to_relative_dir (line 577) | class SCENE_OT_export_to_relative_dir(bpy.types.Operator): method execute (line 585) | def execute(self, context): class XPLANE_OT_CommandSearchToggle (line 590) | class XPLANE_OT_CommandSearchToggle(bpy.types.Operator): method execute (line 603) | def execute(self, context): class XPLANE_OT_DatarefSearchToggle (line 642) | class XPLANE_OT_DatarefSearchToggle(bpy.types.Operator): method execute (line 655) | def execute(self, context): class XPLANE_OT_XPlaneMessage (line 698) | class XPLANE_OT_XPlaneMessage(bpy.types.Operator): method execute (line 716) | def execute(self, context): method invoke (line 719) | def invoke(self, context, event): method draw (line 723) | def draw(self, context): class XPLANE_OT_bake_wiper_gradient_texture (line 730) | class XPLANE_OT_bake_wiper_gradient_texture(bpy.types.Operator): method execute (line 762) | def execute(self, context): method poll (line 994) | def poll(cls, context): FILE: io_xplane2blender/xplane_ops_dev.py class SCENE_OT_dev_apply_default_material_to_all (line 16) | class SCENE_OT_dev_apply_default_material_to_all(bpy.types.Operator): method execute (line 21) | def execute(self, context): class SCENE_OT_dev_create_lights_txt_summary (line 34) | class SCENE_OT_dev_create_lights_txt_summary(bpy.types.Operator): method execute (line 41) | def execute(self, context): class SCENE_OT_dev_root_names_from_objects (line 92) | class SCENE_OT_dev_root_names_from_objects(bpy.types.Operator): method execute (line 101) | def execute(self, context: bpy.types.Context): class SCENE_OT_dev_rerun_updater (line 109) | class SCENE_OT_dev_rerun_updater(bpy.types.Operator): method execute (line 116) | def execute(self, context): FILE: io_xplane2blender/xplane_props.py class XPlane2BlenderVersion (line 93) | class XPlane2BlenderVersion(bpy.types.PropertyGroup): method update_version_property (line 103) | def update_version_property(self, context): method safe_set_version_data (line 170) | def safe_set_version_data( method make_struct (line 214) | def make_struct(self): method addon_version_clean_str (line 224) | def addon_version_clean_str(self): method __repr__ (line 230) | def __repr__(self) -> str: method __str__ (line 242) | def __str__(self) -> str: class XPlaneAxisDetentRange (line 253) | class XPlaneAxisDetentRange(bpy.types.PropertyGroup): method __str__ (line 274) | def __str__(self): class XPlaneCustomAttribute (line 284) | class XPlaneCustomAttribute(bpy.types.PropertyGroup): class ListItemCommand (line 312) | class ListItemCommand(bpy.types.PropertyGroup): class ListItemDataref (line 328) | class ListItemDataref(bpy.types.PropertyGroup): class XPlaneCommandSearchWindow (line 352) | class XPlaneCommandSearchWindow(bpy.types.PropertyGroup): method onclick_command (line 363) | def onclick_command(self, context): class XPlaneDatarefSearchWindow (line 409) | class XPlaneDatarefSearchWindow(bpy.types.PropertyGroup): method onclick_dataref (line 420) | def onclick_dataref(self, context): class XPlaneExportPathDirective (line 467) | class XPlaneExportPathDirective(bpy.types.PropertyGroup): class XPlaneEmitter (line 474) | class XPlaneEmitter(bpy.types.PropertyGroup): class XPlaneMagnet (line 492) | class XPlaneMagnet(bpy.types.PropertyGroup): class XPlaneWheel (line 508) | class XPlaneWheel(bpy.types.PropertyGroup): class XPlaneEmpty (line 521) | class XPlaneEmpty(bpy.types.PropertyGroup): class XPlaneDataref (line 560) | class XPlaneDataref(bpy.types.PropertyGroup): class XPlaneCondition (line 614) | class XPlaneCondition(bpy.types.PropertyGroup): class XPlaneManipulatorSettings (line 661) | class XPlaneManipulatorSettings(bpy.types.PropertyGroup): method get_manip_types_for_this_version (line 688) | def get_manip_types_for_this_version(self,context): method get_effective_type_desc (line 926) | def get_effective_type_desc(self) -> str: method get_effective_type_name (line 934) | def get_effective_type_name(self) -> str: class XPlaneCockpitRegion (line 950) | class XPlaneCockpitRegion(bpy.types.PropertyGroup): class XPlaneLOD (line 992) | class XPlaneLOD(bpy.types.PropertyGroup): method __str__ (line 1013) | def __str__(self)->str: class XPlaneThermalSourceSettings (line 1016) | class XPlaneThermalSourceSettings(bpy.types.PropertyGroup): class XPlaneWiperSettings (line 1026) | class XPlaneWiperSettings(bpy.types.PropertyGroup): class XPlaneRainSettings (line 1054) | class XPlaneRainSettings(bpy.types.PropertyGroup): class XPlaneLayer (line 1132) | class XPlaneLayer(bpy.types.PropertyGroup): method update_cockpit_regions (line 1146) | def update_cockpit_regions(self, context)->None: method update_lods (line 1152) | def update_lods(self, context): class XPlaneCollectionSettings (line 1944) | class XPlaneCollectionSettings(bpy.types.PropertyGroup): class XPlaneSceneSettings (line 1957) | class XPlaneSceneSettings(bpy.types.PropertyGroup): class XPlaneObjectSettings (line 2055) | class XPlaneObjectSettings(bpy.types.PropertyGroup): class XPlaneBoneSettings (line 2197) | class XPlaneBoneSettings(bpy.types.PropertyGroup): class XPlaneMaterialSettings (line 2236) | class XPlaneMaterialSettings(bpy.types.PropertyGroup): method get_cockpit_feature_types_for_this_version (line 2365) | def get_cockpit_feature_types_for_this_version(self, context) -> List[... class XPlaneLightSettings (line 2496) | class XPlaneLightSettings(bpy.types.PropertyGroup): function register (line 2641) | def register(): function unregister (line 2679) | def unregister(): FILE: io_xplane2blender/xplane_types/xplane_attribute.py class XPlaneAttributeName (line 15) | class XPlaneAttributeName(str): method __new__ (line 16) | def __new__( method __eq__ (line 24) | def __eq__( method __lt__ (line 32) | def __lt__( method __hash__ (line 43) | def __hash__( class XPlaneAttribute (line 51) | class XPlaneAttribute: method __init__ (line 57) | def __init__( method addValue (line 69) | def addValue(self, value: Optional[AttributeValueType]) -> None: method addValues (line 76) | def addValues(self, values: AttributeValueTypeList): method setValue (line 85) | def setValue(self, value: AttributeValueType, i: int = 0): method getValue (line 89) | def getValue(self, i: int = 0) -> Optional[AttributeValueType]: method getValueAsString (line 96) | def getValueAsString(self, i: int = 0) -> str: method getValues (line 141) | def getValues(self) -> AttributeValueTypeList: method getValuesAsString (line 148) | def getValuesAsString(self) -> str: method removeValues (line 155) | def removeValues(self): FILE: io_xplane2blender/xplane_types/xplane_attributes.py class XPlaneAttributes (line 9) | class XPlaneAttributes(OrderedDict): method __init__ (line 10) | def __init__(self): method order (line 13) | def order(self): method add (line 19) | def add(self, attr: XPlaneAttribute): method get (line 25) | def get(self, name: str) -> Optional[XPlaneAttribute]: method set (line 31) | def set(self, attr: XPlaneAttribute) -> None: method __str__ (line 35) | def __str__(self) -> str: FILE: io_xplane2blender/xplane_types/xplane_bone.py class XPlaneBone (line 46) | class XPlaneBone: method __init__ (line 47) | def __init__( method sortChildren (line 111) | def sortChildren(self) -> None: method isDataRefAnimatedForTranslation (line 122) | def isDataRefAnimatedForTranslation(self) -> bool: method isDataRefAnimatedForRotation (line 140) | def isDataRefAnimatedForRotation(self) -> bool: method isAnimated (line 156) | def isAnimated(self) -> bool: method collectAnimations (line 163) | def collectAnimations(self) -> None: method getName (line 241) | def getName(self, ignore_indent_level: bool = False) -> str: method getBlenderName (line 267) | def getBlenderName(self) -> str: method getIndent (line 275) | def getIndent(self) -> str: method getFirstAnimatedParent (line 281) | def getFirstAnimatedParent(self) -> Optional[str]: method getBlenderWorldMatrix (line 296) | def getBlenderWorldMatrix(self) -> mathutils.Matrix: method getPreAnimationMatrix (line 330) | def getPreAnimationMatrix(self) -> mathutils.Matrix: method getPostAnimationMatrix (line 418) | def getPostAnimationMatrix(self) -> mathutils.Matrix: method getBakeMatrixForMyAnimations (line 484) | def getBakeMatrixForMyAnimations(self) -> mathutils.Matrix: method getBakeMatrixForAttached (line 505) | def getBakeMatrixForAttached(self) -> mathutils.Matrix: method __str__ (line 524) | def __str__(self) -> str: method writeAnimationPrefix (line 536) | def writeAnimationPrefix(self) -> None: method _writeStaticTranslation (line 598) | def _writeStaticTranslation(self, bakeMatrix: mathutils.Matrix) -> None: method _writeStaticRotation (line 628) | def _writeStaticRotation(self, bakeMatrix: mathutils.Matrix) -> str: method _writeKeyframesLoop (line 677) | def _writeKeyframesLoop(self, dataref: str) -> str: method _writeTranslationKeyframes (line 686) | def _writeTranslationKeyframes(self, dataref: str) -> str: method _writeAxisAngleRotationKeyframes (line 727) | def _writeAxisAngleRotationKeyframes(self, dataref, keyframes) -> str: method _writeQuaternionRotationKeyframes (line 764) | def _writeQuaternionRotationKeyframes(self, dataref, keyframes) -> str: method _writeEulerRotationKeyframes (line 768) | def _writeEulerRotationKeyframes(self, dataref, keyframes) -> str: method _writeRotationKeyframes (line 807) | def _writeRotationKeyframes(self, dataref) -> str: method _writeAnimAttributes (line 829) | def _writeAnimAttributes(self) -> str: method writeAnimationSuffix (line 842) | def writeAnimationSuffix(self) -> str: FILE: io_xplane2blender/xplane_types/xplane_commands.py class XPlaneCommands (line 76) | class XPlaneCommands: method __init__ (line 83) | def __init__(self, xplaneFile) -> None: method write (line 118) | def write(self, *, lod_bucket_index: Optional[int]) -> str: method writeXPlaneBone (line 135) | def writeXPlaneBone( method _writeXPlaneObjectPrefix (line 177) | def _writeXPlaneObjectPrefix(self, xplaneObject): method _writeXPlaneObjectSuffix (line 192) | def _writeXPlaneObjectSuffix(self, xplaneObject: xplane_object.XPlaneO... method writeAttribute (line 206) | def writeAttribute( method canWriteAttribute (line 250) | def canWriteAttribute( method addReseter (line 260) | def addReseter(self, attr: str, reseter: str) -> None: method getAllAttributesForReseter (line 272) | def getAllAttributesForReseter(self, attr): method getAttributeCounterparts (line 279) | def getAttributeCounterparts(self, attr) -> List[str]: method writeReseters (line 310) | def writeReseters(self, xplaneObject: xplane_object.XPlaneObject) -> str: method _writeConditions (line 413) | def _writeConditions(self, conditions, xplaneObject, close=False): FILE: io_xplane2blender/xplane_types/xplane_empty.py class XPlaneEmpty (line 13) | class XPlaneEmpty(XPlaneObject): method __init__ (line 14) | def __init__(self, blenderObject): method collect (line 19) | def collect(self) -> None: method write (line 50) | def write(self) -> str: FILE: io_xplane2blender/xplane_types/xplane_face.py class XPlaneFace (line 3) | class XPlaneFace: method __init__ (line 19) | def __init__(self): FILE: io_xplane2blender/xplane_types/xplane_file.py class NotExportableRootError (line 49) | class NotExportableRootError(ValueError): function createFilesFromBlenderRootObjects (line 53) | def createFilesFromBlenderRootObjects( function createFileFromBlenderRootObject (line 88) | def createFileFromBlenderRootObject( class LocRotPerFrame (line 139) | class LocRotPerFrame: function _pre_scan_all_keyframes (line 163) | def _pre_scan_all_keyframes(): class XPlaneFile (line 222) | class XPlaneFile: method __init__ (line 228) | def __init__(self, filename: str, options: xplane_props.XPlaneLayer) -... method create_xplane_bone_hiearchy (line 254) | def create_xplane_bone_hiearchy( method get_xplane_objects (line 627) | def get_xplane_objects(self) -> List["XPlaneObject"]: method validateMaterials (line 646) | def validateMaterials(self) -> bool: method validateOptions (line 680) | def validateOptions(self) -> bool: method getMaterials (line 695) | def getMaterials(self) -> List[bpy.types.Material]: method compareMaterials (line 714) | def compareMaterials(self, refMaterials): method writeFooter (line 752) | def writeFooter(self): method write (line 759) | def write(self) -> str: method _writeLods (line 822) | def _writeLods(self) -> str: FILE: io_xplane2blender/xplane_types/xplane_header.py class XPlaneHeader (line 27) | class XPlaneHeader: method __init__ (line 33) | def __init__(self, xplaneFile: "XPlaneFile", obj_version: int) -> None: method _init (line 158) | def _init(self): method get_path_relative_to_dir (line 1028) | def get_path_relative_to_dir(self, res_path: str, export_dir: str) -> ... method _getCanonicalTexturePath (line 1111) | def _getCanonicalTexturePath(self, texpath) -> str: method write (line 1124) | def write(self) -> str: FILE: io_xplane2blender/xplane_types/xplane_keyframe.py class XPlaneKeyframe (line 11) | class XPlaneKeyframe: method __init__ (line 12) | def __init__( method __str__ (line 88) | def __str__(self) -> str: method asAA (line 100) | def asAA(self) -> "XPlaneKeyframe": method asEuler (line 131) | def asEuler(self) -> "XPlaneKeyframe": method asQuaternion (line 152) | def asQuaternion(self) -> "XPlaneKeyframe": FILE: io_xplane2blender/xplane_types/xplane_keyframe_collection.py class XPlaneKeyframeCollection (line 20) | class XPlaneKeyframeCollection(MutableSequence): method __init__ (line 30) | def __init__(self, data: List[XPlaneKeyframe]): method __repr__ (line 114) | def __repr__(self): method __len__ (line 117) | def __len__(self): method __getitem__ (line 121) | def __getitem__(self, i): method __delitem__ (line 125) | def __delitem__(self, i): method __setitem__ (line 129) | def __setitem__(self, i, val): method __str__ (line 132) | def __str__(self): method insert (line 135) | def insert(self, i, val): method append (line 138) | def append(self, val): method getReferenceAxes (line 141) | def getReferenceAxes(self): method getDataref (line 148) | def getDataref(self): method getRotationMode (line 151) | def getRotationMode(self): method getRotationKeyframeTables (line 163) | def getRotationKeyframeTables( method getRotationKeyframeTablesNoClamps (line 216) | def getRotationKeyframeTablesNoClamps( method getTranslationKeyframeTable (line 228) | def getTranslationKeyframeTable(self): method getTranslationKeyframeTableNoClamps (line 238) | def getTranslationKeyframeTableNoClamps(self): method getTranslationKeyframeTableWScale (line 249) | def getTranslationKeyframeTableWScale(self): method asAA (line 256) | def asAA(self) -> "XPlaneKeyframeCollection": method asEuler (line 259) | def asEuler(self) -> "XPlaneKeyframeCollection": method asQuaternion (line 262) | def asQuaternion(self) -> "XPlaneKeyframeCollection": method toAA (line 265) | def toAA(self) -> "XPlaneKeyframeCollection": method toEuler (line 269) | def toEuler(self) -> "XPlaneKeyframeCollection": method toQuaternion (line 273) | def toQuaternion(self) -> "XPlaneKeyframeCollection": method filter_clamping_keyframes (line 278) | def filter_clamping_keyframes( FILE: io_xplane2blender/xplane_types/xplane_light.py class _LightSpillCustomParams (line 22) | class _LightSpillCustomParams: method a (line 28) | def a(self): method __str__ (line 38) | def __str__(self): class XPlaneLight (line 60) | class XPlaneLight(xplane_object.XPlaneObject): method __init__ (line 61) | def __init__(self, blenderObject: bpy.types.Object): method collect (line 123) | def collect(self) -> None: method write (line 516) | def write(self) -> None: method get_light_direction_b (line 716) | def get_light_direction_b(self) -> Vector: method DIR_MAG_for_billboard (line 728) | def DIR_MAG_for_billboard(spot_size: float): method WIDTH_for_billboard (line 732) | def WIDTH_for_billboard(spot_size: float): method WIDTH_for_spill (line 738) | def WIDTH_for_spill(spot_size: float): FILE: io_xplane2blender/xplane_types/xplane_manipulator.py function round_vector (line 30) | def round_vector(vec, ndigits=5) -> Vector: function check_bone_has_n_datarefs (line 43) | def check_bone_has_n_datarefs( function check_bone_has_parent (line 84) | def check_bone_has_parent( function check_bone_is_animated_for_rotation (line 102) | def check_bone_is_animated_for_rotation( function check_bone_is_animated_for_translation (line 131) | def check_bone_is_animated_for_translation( function check_bone_is_animated_on_n_axes (line 153) | def check_bone_is_animated_on_n_axes( function check_bone_is_leaf (line 198) | def check_bone_is_leaf( function check_bone_is_not_animated_for_rotation (line 216) | def check_bone_is_not_animated_for_rotation( function check_bone_is_not_animated_for_translation (line 234) | def check_bone_is_not_animated_for_translation( function check_bone_parent_is_animated_for_rotation (line 252) | def check_bone_parent_is_animated_for_rotation( function check_bone_parent_is_animated_for_translation (line 268) | def check_bone_parent_is_animated_for_translation( function check_bones_drag_detent_are_orthogonal (line 284) | def check_bones_drag_detent_are_orthogonal( function check_bones_rotation_translation_animations_are_orthogonal (line 331) | def check_bones_rotation_translation_animations_are_orthogonal( function _check_keyframe_translation_count (line 364) | def _check_keyframe_translation_count( function check_keyframe_translation_eq_count (line 411) | def check_keyframe_translation_eq_count( function check_keyframe_translation_ge_count (line 429) | def check_keyframe_translation_ge_count( function check_keyframes_rotation_are_orderered (line 447) | def check_keyframes_rotation_are_orderered( function check_manip_has_axis_detent_ranges (line 477) | def check_manip_has_axis_detent_ranges( function find_armature_datablock (line 498) | def find_armature_datablock(bone: XPlaneBone) -> Optional[bpy.types.Obje... function get_lift_at_max (line 508) | def get_lift_at_max(translation_bone: XPlaneBone) -> float: function check_spec_drag_axis_bone (line 517) | def check_spec_drag_axis_bone( function get_information_sources (line 559) | def get_information_sources( function check_spec_rotation_bone (line 807) | def check_spec_rotation_bone( function check_spec_detent_bone (line 839) | def check_spec_detent_bone( class XPlaneManipulator (line 881) | class XPlaneManipulator: method __init__ (line 888) | def __init__(self, xplanePrimative: "XPlanePrimitive"): method collect (line 895) | def collect(self) -> None: FILE: io_xplane2blender/xplane_types/xplane_material.py class XPlaneMaterial (line 22) | class XPlaneMaterial: method __init__ (line 45) | def __init__(self, xplaneObject: xplane_object.XPlaneObject): method collect (line 96) | def collect(self) -> None: method collectCustomAttributes (line 204) | def collectCustomAttributes(self, mat: bpy.types.Material) -> None: method collectCockpitAttributes (line 214) | def collectCockpitAttributes(self, mat: bpy.types.Material) -> None: method collectLightLevelAttributes (line 295) | def collectLightLevelAttributes(self, mat: bpy.types.Material) -> None: method collectConditions (line 311) | def collectConditions(self, mat: bpy.types.Material) -> None: method write (line 315) | def write(self) -> str: method isCompatibleTo (line 350) | def isCompatibleTo( method isValid (line 359) | def isValid(self, exportType: str) -> Tuple[List[str], List[str]]: FILE: io_xplane2blender/xplane_types/xplane_material_utils.py function compare (line 19) | def compare( function compareScenery (line 33) | def compareScenery( function compareInstanced (line 65) | def compareInstanced( function compareAircraft (line 106) | def compareAircraft( function validate (line 133) | def validate(mat: XPlaneMaterial, exportType: str) -> MaterialValidation... function validateScenery (line 171) | def validateScenery(mat: XPlaneMaterial) -> MaterialValidationMsgs: function validateInstanced (line 190) | def validateInstanced(mat: XPlaneMaterial) -> MaterialValidationMsgs: function validatePanel (line 215) | def validatePanel(mat: XPlaneMaterial) -> MaterialValidationMsgs: function validateCockpit (line 241) | def validateCockpit(mat: XPlaneMaterial) -> MaterialValidationMsgs: function validateAircraft (line 258) | def validateAircraft(mat: XPlaneMaterial) -> MaterialValidationMsgs: function validateDraped (line 278) | def validateDraped(mat: XPlaneMaterial) -> MaterialValidationMsgs: function getFirstMatchingMaterial (line 309) | def getFirstMatchingMaterial( function getReferenceMaterials (line 321) | def getReferenceMaterials( FILE: io_xplane2blender/xplane_types/xplane_mesh.py class XPlaneMesh (line 19) | class XPlaneMesh: method __init__ (line 27) | def __init__(self): method collectXPlaneObjects (line 44) | def collectXPlaneObjects(self, xplaneObjects: List[XPlaneObject]) -> N... method writeVertices (line 159) | def writeVertices(self) -> str: method writeIndices (line 188) | def writeIndices(self) -> str: method write (line 220) | def write(self): FILE: io_xplane2blender/xplane_types/xplane_object.py class XPlaneObject (line 16) | class XPlaneObject: method __init__ (line 22) | def __init__(self, blenderObject: bpy.types.Object) -> None: method __str__ (line 52) | def __str__(self): method setWeight (line 63) | def setWeight(self, defaultWeight: int = 0) -> None: method collect (line 82) | def collect(self) -> None: method collectCustomAttributes (line 102) | def collectCustomAttributes(self): method collectAnimAttributes (line 121) | def collectAnimAttributes(self): method collectConditions (line 136) | def collectConditions(self): method write (line 141) | def write(self) -> str: FILE: io_xplane2blender/xplane_types/xplane_primitive.py class XPlanePrimitive (line 25) | class XPlanePrimitive(XPlaneObject): method __init__ (line 30) | def __init__(self, blenderObject: bpy.types.Object): method setWeight (line 45) | def setWeight(self, defaultWeight:int = 0)->None: method collect (line 69) | def collect(self) -> None: method collectLightLevelAttributes (line 88) | def collectLightLevelAttributes(self) -> None: method write (line 102) | def write(self) -> str: FILE: io_xplane2blender/xplane_types/xplane_vlights.py class XPlaneVLights (line 12) | class XPlaneVLights: method __init__ (line 20) | def __init__(self) -> None: method append (line 30) | def append(self, light: xplane_light.XPlaneLight) -> None: method write (line 50) | def write(self) -> str: FILE: io_xplane2blender/xplane_ui.py class DATA_PT_xplane (line 20) | class DATA_PT_xplane(bpy.types.Panel): method draw (line 28) | def draw(self, context): class MATERIAL_PT_xplane (line 40) | class MATERIAL_PT_xplane(bpy.types.Panel): method poll (line 49) | def poll(self, context): method draw (line 53) | def draw(self, context): class RENDER_PT_xplane (line 67) | class RENDER_PT_xplane(bpy.types.Panel): method poll (line 76) | def poll(self, context): method draw (line 79) | def draw(self, context): class SCENE_PT_xplane (line 109) | class SCENE_PT_xplane(bpy.types.Panel): method poll (line 118) | def poll(self, context): method draw (line 121) | def draw(self, context): function light_level_layout (line 126) | def light_level_layout( class OBJECT_PT_xplane (line 170) | class OBJECT_PT_xplane(bpy.types.Panel): method poll (line 179) | def poll(self, context): method draw (line 187) | def draw(self, context): class BONE_PT_xplane (line 219) | class BONE_PT_xplane(bpy.types.Panel): method poll (line 228) | def poll(self, context): method draw (line 236) | def draw(self, context): function empty_layout (line 243) | def empty_layout(layout: bpy.types.UILayout, empty_obj: bpy.types.Object): function rain_layout (line 284) | def rain_layout( function scene_layout (line 334) | def scene_layout(layout: bpy.types.UILayout, scene: bpy.types.Scene): function scene_dev_layout (line 418) | def scene_dev_layout(layout: bpy.types.UILayout, scene: bpy.types.Scene): function collection_layer_layout (line 468) | def collection_layer_layout( function object_layer_layout (line 497) | def object_layer_layout(layout: bpy.types.UILayout, obj: bpy.types.Object): function layer_layout (line 530) | def layer_layout( function custom_layer_layout (line 941) | def custom_layer_layout( function command_search_window_layout (line 986) | def command_search_window_layout(layout): function dataref_search_window_layout (line 999) | def dataref_search_window_layout(layout): function export_path_dir_layer_layout (line 1012) | def export_path_dir_layer_layout( function mesh_layout (line 1054) | def mesh_layout(layout: bpy.types.UILayout, obj: bpy.types.Object) -> None: function light_layout (line 1061) | def light_layout(layout: bpy.types.UILayout, obj: bpy.types.Object) -> N... function material_layout (line 1276) | def material_layout(layout: UILayout, active_material: bpy.types.Materia... function custom_layout (line 1397) | def custom_layout( function animation_layout (line 1462) | def animation_layout( function cockpit_layout (line 1554) | def cockpit_layout( function axis_detent_ranges_layout (line 1596) | def axis_detent_ranges_layout( function manipulator_layout (line 1621) | def manipulator_layout(layout: bpy.types.UILayout, obj: bpy.types.Object... function conditions_layout (line 1879) | def conditions_layout( function lod_layout (line 1911) | def lod_layout(layout: bpy.types.UILayout, obj: bpy.types.Object) -> None: function weight_layout (line 1919) | def weight_layout(layout: bpy.types.UILayout, obj: bpy.types.Object) -> ... class XPLANE_UL_CommandSearchList (line 1926) | class XPLANE_UL_CommandSearchList(bpy.types.UIList): method draw_item (line 1929) | def draw_item( method draw_filter (line 1959) | def draw_filter(self, context, layout): method filter_items (line 1965) | def filter_items(self, context, data, propname): class XPLANE_UL_DatarefSearchList (line 2002) | class XPLANE_UL_DatarefSearchList(bpy.types.UIList): method draw_item (line 2005) | def draw_item( method draw_filter (line 2039) | def draw_filter(self, context, layout): method filter_items (line 2045) | def filter_items(self, context, data, propname): FILE: io_xplane2blender/xplane_updater.py function _layers_to_collection (line 58) | def _layers_to_collection(logger: xplane_helpers.XPlaneLogger) -> None: function _change_pre_3_3_0_properties (line 180) | def _change_pre_3_3_0_properties(logger: xplane_helpers.XPlaneLogger) ->... function _update_LocRot (line 213) | def _update_LocRot( function _rollback_blend_glass (line 266) | def _rollback_blend_glass(logger: XPlaneLogger) -> None: function _set_shadow_local_and_delete_global_shadow (line 306) | def _set_shadow_local_and_delete_global_shadow( function _move_global_material_props (line 416) | def _move_global_material_props( function _panel_to_cockpit_feature (line 495) | def _panel_to_cockpit_feature(logger: xplane_helpers.XPlaneLogger): function _regions_change_panel_mode (line 504) | def _regions_change_panel_mode(logger: xplane_helpers.XPlaneLogger): function _update_light_intensities (line 512) | def _update_light_intensities(logger: xplane_helpers.XPlaneLogger): function update (line 519) | def update( function _synchronize_last_version_across_histories (line 613) | def _synchronize_last_version_across_histories(last_version: xplane_help... function load_handler (line 621) | def load_handler(dummy): function save_handler (line 764) | def save_handler(dummy): FILE: io_xplane2blender/xplane_utils/xplane_commands_txt_parser.py class CommandInfoStruct (line 36) | class CommandInfoStruct: method __init__ (line 37) | def __init__(self, command: str, description: Optional[str]): method is_invalid (line 41) | def is_invalid(self) -> str: function parse_commands_txt (line 50) | def parse_commands_txt(filepath: str) -> Union[List[CommandInfoStruct], ... function get_commands_txt_file_content (line 91) | def get_commands_txt_file_content(filepath: str) -> Union[List[CommandIn... FILE: io_xplane2blender/xplane_utils/xplane_datarefs_txt_parser.py class DatarefInfoStruct (line 32) | class DatarefInfoStruct: method __init__ (line 33) | def __init__( method is_invalid (line 60) | def is_invalid(self) -> str: method __repr__ (line 85) | def __repr__(self) -> str: function parse_datarefs_txt (line 94) | def parse_datarefs_txt(filepath: str) -> Union[List[DatarefInfoStruct], ... function get_datarefs_txt_file_content (line 151) | def get_datarefs_txt_file_content(filepath: str) -> Union[List[DatarefIn... FILE: io_xplane2blender/xplane_utils/xplane_effective_gloss.py function ggx_distribution_cdf (line 4) | def ggx_distribution_cdf(x, alpha): function get_effective_gloss (line 12) | def get_effective_gloss(file_path) -> float: FILE: io_xplane2blender/xplane_utils/xplane_lights_txt_parser.py class ColumnName (line 140) | class ColumnName(enum.Enum): method param_to_canonical_column_name (line 172) | def param_to_canonical_column_name( function get_overload_column_info (line 216) | def get_overload_column_info(overload_type: str) -> Dict[ColumnName, bool]: function _replace_columns_via_values (line 308) | def _replace_columns_via_values( function _do_rgb_to_dxyz_w_calc (line 315) | def _do_rgb_to_dxyz_w_calc(overload: "ParsedLightOverload") -> None: function _do_rgb_to_dxyz_dir_mag_calc (line 326) | def _do_rgb_to_dxyz_dir_mag_calc(overload: "ParsedLightOverload") -> None: function _do_rgba_to_dxyz_w (line 342) | def _do_rgba_to_dxyz_w(overload: "ParsedLightOverload") -> None: function _do_force_WIDTH_1 (line 350) | def _do_force_WIDTH_1(overload: "ParsedLightOverload") -> None: class ParsedLightOverload (line 403) | class ParsedLightOverload: method __contains__ (line 423) | def __contains__(self, item: str) -> bool: method __getitem__ (line 429) | def __getitem__(self, key: Union[ColumnName, int, str]) -> Union[float... method __setitem__ (line 456) | def __setitem__(self, key: Union[ColumnName, int, str], value: float) ... method __str__ (line 477) | def __str__(self) -> str: method __iter__ (line 480) | def __iter__(self) -> Iterator[Union[float, str]]: method apply_sw_callback (line 483) | def apply_sw_callback(self) -> None: method is_omni (line 497) | def is_omni(self) -> bool: method get (line 608) | def get( method prototype (line 618) | def prototype(self) -> Tuple[str, ...]: method replace_parameterization_argument (line 621) | def replace_parameterization_argument( class ParsedLight (line 631) | class ParsedLight: method __init__ (line 643) | def __init__(self, name: str) -> None: method __str__ (line 648) | def __str__(self) -> str: method best_overload (line 651) | def best_overload(self) -> ParsedLightOverload: function is_automatic_light_compatible (line 658) | def is_automatic_light_compatible(light_name: str) -> bool: function get_parsed_light (line 697) | def get_parsed_light(light_name: str) -> ParsedLight: class LightsTxtFileParsingError (line 708) | class LightsTxtFileParsingError(Exception): function parse_lights_file (line 712) | def parse_lights_file(): FILE: io_xplane2blender/xplane_utils/xplane_updater_helpers.py function _get_enum_item (line 11) | def _get_enum_item( function check_property_group_has_non_default (line 38) | def check_property_group_has_non_default( function copy_property_group (line 83) | def copy_property_group( function copy_former_property_group_to_property_group (line 146) | def copy_former_property_group_to_property_group( function delete_property_from_datablock (line 157) | def delete_property_from_datablock( function delete_property_from_blend_file (line 175) | def delete_property_from_blend_file(idprop_groups: List[Any], prop: str)... function reorder_enum_prop (line 191) | def reorder_enum_prop( function rename_prop (line 204) | def rename_prop( FILE: io_xplane2blender/xplane_utils/xplane_wiper_gradient.py function _get_pixel (line 18) | def _get_pixel( function _put_pixel (line 26) | def _put_pixel( function make_wiper_images (line 36) | def make_wiper_images( FILE: mkbuild.py function _build_number_sanity_check (line 13) | def _build_number_sanity_check(string: str): function _raise (line 37) | def _raise(ex): function _number_check_ge (line 41) | def _number_check_ge(n): function _make_parser (line 49) | def _make_parser() -> argparse.ArgumentParser: class VerData (line 149) | class VerData: method __init__ (line 154) | def __init__( method make_new_build_number (line 169) | def make_new_build_number(): function _change_version_info (line 174) | def _change_version_info(new_version: VerData) -> Optional[VerData]: function _run_tests (line 260) | def _run_tests(test_args) -> None: function _delete_unwanted_contents (line 269) | def _delete_unwanted_contents(keep_files: str) -> None: function _make_and_place_zip (line 315) | def _make_and_place_zip(new_version: VerData, tmp_build_folder: str, des... function main (line 361) | def main(argv=None): FILE: run.py function _make_argparse (line 13) | def _make_argparse(): function main (line 37) | def main(argv=None) -> int: FILE: tests.py function clean_tmp_folder (line 11) | def clean_tmp_folder(): function _make_argparse (line 25) | def _make_argparse(): function main (line 94) | def main(argv=None) -> int: FILE: tests/addon/addon.test.py class TestAddon (line 4) | class TestAddon(XPlaneTestCase): method test_addon_enabled (line 5) | def test_addon_enabled(self): FILE: tests/addon/multiple_export_works.test.py function filterLines (line 13) | def filterLines(line:Tuple[str])->bool: class TestMultipleExportWorks (line 18) | class TestMultipleExportWorks(XPlaneTestCase): method test_multiple_export_works_simple (line 19) | def test_multiple_export_works_simple(self)->None: method test_multiple_export_works_uv_map (line 30) | def test_multiple_export_works_uv_map(self)->None: method test_multiple_export_works_anim_bone (line 41) | def test_multiple_export_works_anim_bone(self)->None: FILE: tests/animation/TestCase1.test.py class TestCase1 (line 9) | class TestCase1(XPlaneAnimationTestCase): method test_TestCase1 (line 10) | def test_TestCase1(self): FILE: tests/animation/TestCase2.test.py class TestCase2 (line 9) | class TestCase2(XPlaneAnimationTestCase): method test_TestCase2 (line 10) | def test_TestCase2(self): FILE: tests/animation/TestCase3.test.py class TestCase3 (line 9) | class TestCase3(XPlaneAnimationTestCase): method test_TestCase3 (line 10) | def test_TestCase3(self): FILE: tests/animation/TestCase4.test.py class TestCase4 (line 9) | class TestCase4(XPlaneAnimationTestCase): method test_TestCase4 (line 10) | def test_TestCase4(self): FILE: tests/animation/TestCase5_nested_sets.test.py class TestCase5_nested_sets (line 9) | class TestCase5_nested_sets(XPlaneAnimationTestCase): method test_TestCase5_nested_sets (line 10) | def test_TestCase5_nested_sets(self): FILE: tests/animation/TestCase6_scaling_rot.test.py class TestCase6_scaling_rot (line 9) | class TestCase6_scaling_rot(XPlaneAnimationTestCase): method test_TestCase6_scaling_rot (line 10) | def test_TestCase6_scaling_rot(self): FILE: tests/animation/TestCase7_scaling_rotloc.test.py class TestCase7_scaling_rotloc (line 9) | class TestCase7_scaling_rotloc(XPlaneAnimationTestCase): method test_TestCase7_scaling_rotloc (line 10) | def test_TestCase7_scaling_rotloc(self): FILE: tests/animation/TestCase8_bone_optimization.test.py class TestCase8_bone_optimization (line 9) | class TestCase8_bone_optimization(XPlaneAnimationTestCase): method test_TestCase8_bone_optimization (line 10) | def test_TestCase8_bone_optimization(self): FILE: tests/animation/TestCase9_keyframe_loops.test.py class TestCase9_keyframe_loops (line 9) | class TestCase9_keyframe_loops(XPlaneAnimationTestCase): method test_TestCase9_keyframe_loops (line 10) | def test_TestCase9_keyframe_loops(self): FILE: tests/animation/armature_bone_block_parent_relationships.test.py function filterLines (line 11) | def filterLines(line): class TestArmatureBoneBlockParentRelationships (line 18) | class TestArmatureBoneBlockParentRelationships(XPlaneTestCase): method test_Armature_arm_anim_bone_anim (line 19) | def test_Armature_arm_anim_bone_anim(self): method test_Armature_arm_anim_bone_no_anim (line 28) | def test_Armature_arm_anim_bone_no_anim(self): method test_Armature_arm_no_anim_bone_anim (line 37) | def test_Armature_arm_no_anim_bone_anim(self): method test_Armature_arm_no_anim_bone_no_anim (line 46) | def test_Armature_arm_no_anim_bone_no_anim(self): method test_no_parent (line 55) | def test_no_parent(self): FILE: tests/animation/armature_nested_offset.test.py function filterLines (line 11) | def filterLines(line): class TestArmatureNestedOffset (line 16) | class TestArmatureNestedOffset(XPlaneTestCase): method test_01_datablock_datablock (line 17) | def test_01_datablock_datablock(self): method test_02_bone_datablock (line 26) | def test_02_bone_datablock(self): method test_03_bone_bone_connected_offset_translation (line 35) | def test_03_bone_bone_connected_offset_translation(self): method test_05_bone_bone_connected_no_offset_translation (line 44) | def test_05_bone_bone_connected_no_offset_translation(self): FILE: tests/animation/axis.test.disabled.py class TestAxis (line 10) | class TestAxis(XPlaneTestCase): method test_axis (line 11) | def test_axis(self): FILE: tests/animation/bone_animations.test.py class TestBoneAnimations (line 9) | class TestBoneAnimations(XPlaneTestCase): method test_bone_animations (line 10) | def test_bone_animations(self): method test_nested_bone_animations (line 22) | def test_nested_bone_animations(self): FILE: tests/animation/multiple_armatures.test.py class TestMultipleArmatures (line 9) | class TestMultipleArmatures(XPlaneTestCase): method setUp (line 10) | def setUp(self): method test_multiple_armatures (line 13) | def test_multiple_armatures(self): FILE: tests/animation/nested_armatures.test.py class TestNestedArmatures (line 9) | class TestNestedArmatures(XPlaneTestCase): method setUp (line 10) | def setUp(self): method test_nested_armatures (line 13) | def test_nested_armatures(self): FILE: tests/animation/nested_bones.test.py function filterLines (line 11) | def filterLines(line): class TestNestedBones (line 16) | class TestNestedBones(XPlaneTestCase): method test_1_Armature_child_bones_one_leaf_mesh (line 17) | def test_1_Armature_child_bones_one_leaf_mesh(self): method test_2_Armature_child_bones_mesh_on_each (line 26) | def test_2_Armature_child_bones_mesh_on_each(self): method test_3_Armature_multiple_arms_one_leaf_mesh (line 35) | def test_3_Armature_multiple_arms_one_leaf_mesh(self): method test_4_Armature_multiple_arms_child_bones_on_each (line 44) | def test_4_Armature_multiple_arms_child_bones_on_each(self): FILE: tests/animation/no_dropped_dup_keys.test.py class TestNoDroppedDupKeys (line 9) | class TestNoDroppedDupKeys(XPlaneTestCase): method test_no_drop_dup_keys (line 10) | def test_no_drop_dup_keys(self): FILE: tests/animation/one_kf_point_fcurve_ignored.test.py class OneKFPointFCurveIgnored (line 14) | class OneKFPointFCurveIgnored(XPlaneTestCase): method test_kf_points_1_ignored_2_used (line 15) | def test_kf_points_1_ignored_2_used(self)->None: FILE: tests/animation/show_hide_anim_types.test.py class TestShowHideAnimTypes (line 9) | class TestShowHideAnimTypes(XPlaneTestCase): method setUp (line 10) | def setUp(self): method test_show_hide_anim_types (line 13) | def test_show_hide_anim_types(self): FILE: tests/animation/single_bone_initial_rotation.test.py class TestSingleBoneInitialRotation (line 9) | class TestSingleBoneInitialRotation(XPlaneTestCase): method setUp (line 10) | def setUp(self): method test_single_bone_initial_rotation (line 13) | def test_single_bone_initial_rotation(self): FILE: tests/animation/transform_stack_w_parent.test.py class TestTransformStackWParent (line 9) | class TestTransformStackWParent(XPlaneTestCase): method setUp (line 10) | def setUp(self): method test_transform_stack_w (line 13) | def test_transform_stack_w(self): FILE: tests/animation/transform_stack_wo_parent.test.py class TestTransformStackWOParent (line 9) | class TestTransformStackWOParent(XPlaneTestCase): method setUp (line 10) | def setUp(self): method test_transform_stack_wo (line 13) | def test_transform_stack_wo(self): FILE: tests/build_system/build_number_obj_footer.test.py class TestBlendBuildNumberObjFooter (line 11) | class TestBlendBuildNumberObjFooter(XPlaneTestCase): method test_build_number_obj_footer (line 12) | def test_build_number_obj_footer(self): FILE: tests/build_system/build_number_prop.test.py class TestBuildNumberProp (line 14) | class TestBuildNumberProp(XPlaneTestCase): method test_safe_set_version_data (line 17) | def test_safe_set_version_data(self): FILE: tests/build_system/build_number_updater.test.py class TestBuildNumberUpdater (line 14) | class TestBuildNumberUpdater(XPlaneTestCase): method run_update_cycle (line 16) | def run_update_cycle(self, filename: str, to_parse: str): method test_update_from_3_2_14 (line 53) | def test_update_from_3_2_14(self): method test_update_from_3_3_13 (line 60) | def test_update_from_3_3_13(self): method test_update_from_3_4_0 (line 67) | def test_update_from_3_4_0(self): method test_update_from_new_file (line 73) | def test_update_from_new_file(self): FILE: tests/build_system/build_number_verstruct.test.py class TestBuildNumberVerStruct (line 15) | class TestBuildNumberVerStruct(XPlaneTestCase): method test_constructor_defaults_correct (line 19) | def test_constructor_defaults_correct(self): method test_repr_makes_struct_in_eval (line 53) | def test_repr_makes_struct_in_eval(self): method test_xplane2blender_str (line 63) | def test_xplane2blender_str(self): method test_invalid_ver_addition (line 71) | def test_invalid_ver_addition(self): method test_valid_ver_addition (line 83) | def test_valid_ver_addition(self): method test_make_new_build_number (line 95) | def test_make_new_build_number(self): method test_parse_version (line 103) | def test_parse_version(self): method test_rich_compare (line 207) | def test_rich_compare(self): FILE: tests/features/cockpit_features/cockpit_device.test.py class TestCockpitDevice (line 15) | class TestCockpitDevice(XPlaneTestCase): method test_passing_cases (line 16) | def test_passing_cases(self) -> None: method test_failing_cases (line 34) | def test_failing_cases(self) -> None: FILE: tests/features/cockpit_features/cockpit_lit_only.test.py class TestCockpitLitOnly (line 15) | class TestCockpitLitOnly(XPlaneTestCase): method test_Scene_1100 (line 16) | def test_Scene_1100(self) -> None: method test_Scene_1110 (line 27) | def test_Scene_1110(self) -> None: method test_Scene_default_version (line 48) | def test_Scene_default_version(self) -> None: FILE: tests/features/cockpit_features/cockpit_material.test.py class TestCockpitMaterial (line 13) | class TestCockpitMaterial(XPlaneTestCase): method test_cockpit_export (line 14) | def test_cockpit_export(self): method test_aircraft_material (line 25) | def test_aircraft_material(self): FILE: tests/features/cockpit_features/cockpit_panel_luminance.test.py class TestCockpitFeatureLuminance (line 15) | class TestCockpitFeatureLuminance(XPlaneTestCase): method test_cockpit_feature_luminance (line 16) | def test_cockpit_feature_luminance(self)->None: FILE: tests/features/cockpit_features/cockpit_regions.test.py class TestCockpitRegions (line 15) | class TestCockpitRegions(XPlaneTestCase): method test_cockpit_regions (line 16) | def test_cockpit_regions(self) -> None: FILE: tests/features/cockpit_features/hud_glass.test.py class TestHudGlass (line 15) | class TestHudGlass(XPlaneTestCase): method test_hud_glass (line 16) | def test_hud_glass(self)->None: FILE: tests/features/draped.test.py class TestDraped (line 10) | class TestDraped(XPlaneTestCase): method test_draped_export (line 11) | def test_draped_export(self): FILE: tests/features/draw_enabled.test.py class TestDrawEnabled (line 10) | class TestDrawEnabled(XPlaneTestCase): method test_draped_export (line 11) | def test_draped_export(self): FILE: tests/features/export_control_methods.test.py class TestExportControlMethods (line 14) | class TestExportControlMethods(XPlaneTestCase): method test_ExpCollectionDisabledInViewport (line 15) | def test_ExpCollectionDisabledInViewport(self)->None: method test_ExpCollectionHiddenInViewport (line 19) | def test_ExpCollectionHiddenInViewport(self)->None: method test_ExpCollectionNotMarkedExportable (line 23) | def test_ExpCollectionNotMarkedExportable(self)->None: method test_ExpCollectionParentDisabledInViewport (line 27) | def test_ExpCollectionParentDisabledInViewport(self)->None: method test_ExpCollectionParentHiddenInViewport (line 31) | def test_ExpCollectionParentHiddenInViewport(self)->None: method test_CubeNotMarkedExportable (line 35) | def test_CubeNotMarkedExportable(self)->None: method test_ExpObjectDisabledInViewport (line 39) | def test_ExpObjectDisabledInViewport(self)->None: method test_ExpObjectHiddenInViewport (line 43) | def test_ExpObjectHiddenInViewport(self)->None: FILE: tests/features/export_control_methods_lights.test.py class TestExportControlMethodsLights (line 14) | class TestExportControlMethodsLights(XPlaneTestCase): method test_NotAnimated (line 15) | def test_NotAnimated(self)->None: method test_Animated (line 30) | def test_Animated(self)->None: FILE: tests/features/export_control_methods_object.test.py class TestExportControlMethodsObject (line 14) | class TestExportControlMethodsObject(XPlaneTestCase): method test_DisabledInViewport (line 15) | def test_DisabledInViewport(self)->None: method test_HiddenInViewport (line 25) | def test_HiddenInViewport(self)->None: FILE: tests/features/export_path_dir/Custom Scenery/Kansas City/cars/honda_1.test.py function filterLines (line 9) | def filterLines(line): class TestExportPathCustomScene_1 (line 12) | class TestExportPathCustomScene_1(XPlaneTestCase): method test_find_custom_scenery (line 13) | def test_find_custom_scenery(self): FILE: tests/features/export_path_dir/default_scenery/Kansas City/cars/honda_2.test.py function filterLines (line 9) | def filterLines(line): class TestExportPathCustomScene_2 (line 12) | class TestExportPathCustomScene_2(XPlaneTestCase): method test_find_default_scenery (line 13) | def test_find_default_scenery(self): FILE: tests/features/export_path_dir/default_scenery/Kansas City/honda_3.test.py function filterLines (line 9) | def filterLines(line): class TestExportPathCustomScene_3 (line 12) | class TestExportPathCustomScene_3(XPlaneTestCase): method test_no_second_folder_works (line 13) | def test_no_second_folder_works(self): FILE: tests/features/export_path_dir/default_scenery/four/levels/deep/cars/honda_5.test.py function filterLines (line 9) | def filterLines(line): class TestExportPathCustomScene_5 (line 12) | class TestExportPathCustomScene_5(XPlaneTestCase): method test_deeply_nested_still_works (line 13) | def test_deeply_nested_still_works(self): FILE: tests/features/export_path_dir/default_scenery/honda_4.test.py function filterLines (line 9) | def filterLines(line): class TestExportPathCustomScene_4 (line 12) | class TestExportPathCustomScene_4(XPlaneTestCase): method test_missing_one_dir_after_fails (line 13) | def test_missing_one_dir_after_fails(self): FILE: tests/features/float_prop_follows_precision.test.py class TestFloatPropFollowsPrecision (line 16) | class TestFloatPropFollowsPrecision(XPlaneTestCase): method test_float_prec_start_end_height_cmp (line 17) | def test_float_prec_start_end_height_cmp(self) -> None: method test_float_prec_manip_props_wysiwyg (line 25) | def test_float_prec_manip_props_wysiwyg(self) -> None: FILE: tests/features/global_luminance.test.py class TestGlobalLuminance (line 16) | class TestGlobalLuminance(XPlaneTestCase): method test_global_luminance (line 17) | def test_global_luminance(self)->None: FILE: tests/features/instanced.test.py class TestInstanced (line 10) | class TestInstanced(XPlaneTestCase): method test_instanced_export (line 11) | def test_instanced_export(self): FILE: tests/features/instant_export_from_menu.test.py class TestInstantExportFromMenu (line 13) | class TestInstantExportFromMenu(XPlaneTestCase): method assert_file_exists (line 14) | def assert_file_exists(self,layer_num:int,relpath:str): method test_ensure_append (line 25) | def test_ensure_append(self): method test_ensure_no_append (line 28) | def test_ensure_no_append(self): method test_ensure_no_folder_named_filename (line 31) | def test_ensure_no_folder_named_filename(self): method test_ensure_no_abs_path_filename (line 38) | def test_ensure_no_abs_path_filename(self): method test_ensure_paths_are_normalized_filename (line 48) | def test_ensure_paths_are_normalized_filename(self): method test_ensure_blender_paths_resolve_filename (line 51) | def test_ensure_blender_paths_resolve_filename(self): method test_ensure_lazy_paths_resolve_filename (line 56) | def test_ensure_lazy_paths_resolve_filename(self): method test_ensure_dot_paths_are_created_filename (line 60) | def test_ensure_dot_paths_are_created_filename(self): FILE: tests/features/light_level_photometric.test.py class TestLightLevelPhotometric (line 16) | class TestLightLevelPhotometric(XPlaneTestCase): method test_feature_exports (line 17) | def test_feature_exports(self) -> None: method test_wrong_export_types (line 35) | def test_wrong_export_types(self): method test_exports_with_photometric_ignored (line 43) | def test_exports_with_photometric_ignored(self) -> None: FILE: tests/features/light_level_reset.test.py class TestLightLevelReset (line 15) | class TestLightLevelReset(XPlaneTestCase): method test_light_level_reset_directives (line 16) | def test_light_level_reset_directives(self) -> None: FILE: tests/features/lights.test.py class TestLights (line 10) | class TestLights(XPlaneTestCase): method test_lights_export (line 11) | def test_lights_export(self): FILE: tests/features/lod.test.py class TestLODs (line 95) | class TestLODs(XPlaneTestCase): method test_lods_export (line 96) | def test_lods_export(self): FILE: tests/features/lod_overrides/lod_overrides_applied.test.py function filterLines (line 13) | def filterLines(line:Tuple[str])->bool: class TestLodOverridesApplied (line 19) | class TestLodOverridesApplied(XPlaneTestCase): method _assert_root (line 20) | def _assert_root(self, filename:str)->None: method test_AllIgnored (line 33) | def test_AllIgnored(self)->None: method test_IncludeAndIgnore (line 37) | def test_IncludeAndIgnore(self)->None: method test_NestedDuplicateOverrides (line 41) | def test_NestedDuplicateOverrides(self)->None: method test_NonSequentialOverrides (line 45) | def test_NonSequentialOverrides(self)->None: method test_NoOverridesTakesParents (line 49) | def test_NoOverridesTakesParents(self)->None: method test_OverridesAppliedToAllChildren (line 53) | def test_OverridesAppliedToAllChildren(self)->None: method test_OverridesCombined (line 57) | def test_OverridesCombined(self)->None: method test_ExportableObjectOverride_object_special_1_2_3 (line 61) | def test_ExportableObjectOverride_object_special_1_2_3(self)->None: FILE: tests/features/lod_validation.test.py function filterLines (line 13) | def filterLines(line:Tuple[str])->bool: class TestLodValidation (line 18) | class TestLodValidation(XPlaneTestCase): method _test_fail_case (line 19) | def _test_fail_case(self, name:str, num_errors:int=1): method _test_passing_case (line 23) | def _test_passing_case(self, filename:str): method test_fail_2a_additive_ordered_backwards (line 31) | def test_fail_2a_additive_ordered_backwards(self)->None: method test_fail_2b_additive_ordered_out_of_order (line 35) | def test_fail_2b_additive_ordered_out_of_order(self)->None: method test_fail_3a_selective_ordered_backwards (line 39) | def test_fail_3a_selective_ordered_backwards(self)->None: method test_fail_3b_selective_ordered_out_of_order (line 43) | def test_fail_3b_selective_ordered_out_of_order(self)->None: method test_fail_3c_selective_ordered_out_of_order_decreasing_ranges (line 47) | def test_fail_3c_selective_ordered_out_of_order_decreasing_ranges(self... method test_fail_4a_additive_to_selective_mixed (line 51) | def test_fail_4a_additive_to_selective_mixed(self)->None: method test_fail_4b_selective_to_additive_mixed (line 55) | def test_fail_4b_selective_to_additive_mixed(self)->None: method test_fail_5a_selective_far_near_equal_gap (line 59) | def test_fail_5a_selective_far_near_equal_gap(self)->None: method test_fail_5b_selective_far_near_equal_overlap (line 63) | def test_fail_5b_selective_far_near_equal_overlap(self)->None: method test_fail_6a_selective_1st_near_is_0 (line 67) | def test_fail_6a_selective_1st_near_is_0(self)->None: method test_fail_7a_additive_bucket_near_is_far (line 71) | def test_fail_7a_additive_bucket_near_is_far(self)->None: method test_fail_7b_selective_bucket_near_is_far (line 75) | def test_fail_7b_selective_bucket_near_is_far(self)->None: method test_pass_1_validations_not_applied (line 79) | def test_pass_1_validations_not_applied(self)->None: method test_pass_2a_additive_ordered (line 83) | def test_pass_2a_additive_ordered(self)->None: method test_pass_3a_selective_ordered (line 87) | def test_pass_3a_selective_ordered(self)->None: method test_pass_4a_additive_not_mixed (line 91) | def test_pass_4a_additive_not_mixed(self)->None: method test_pass_4b_selective_not_mixed (line 95) | def test_pass_4b_selective_not_mixed(self)->None: method test_pass_5a_selective_far_near_equal (line 99) | def test_pass_5a_selective_far_near_equal(self)->None: method test_pass_6a_selective_1st_near_is_0 (line 103) | def test_pass_6a_selective_1st_near_is_0(self)->None: method test_pass_7a_1st_lod_is_1st_command (line 107) | def test_pass_7a_1st_lod_is_1st_command(self)->None: FILE: tests/features/magnets.test.py function filterLines (line 11) | def filterLines(line): class TestMagnets (line 16) | class TestMagnets(XPlaneTestCase): method test_passing_magnets (line 17) | def test_passing_magnets(self): method test_no_type (line 26) | def test_no_type(self): method test_blank_debug_name (line 30) | def test_blank_debug_name(self): method test_wrong_export_type (line 34) | def test_wrong_export_type(self): FILE: tests/features/manipulators.test.py class TestMaterials (line 13) | class TestMaterials(XPlaneTestCase): method test_manipulator_attributes (line 14) | def test_manipulator_attributes(self): method test_export_manipulators (line 268) | def test_export_manipulators(self): FILE: tests/features/materials.test.py class TestMaterials (line 13) | class TestMaterials(XPlaneTestCase): method test_material_attributes (line 14) | def test_material_attributes(self): method test_export_materials (line 150) | def test_export_materials(self): FILE: tests/features/no_material.test.py class TestNoMaterial (line 11) | class TestNoMaterial(XPlaneTestCase): method test_no_material (line 12) | def test_no_material(self): FILE: tests/features/passive_resetting.test.py function filterLines (line 11) | def filterLines(line): class TestPassiveResetting (line 18) | class TestPassiveResetting(XPlaneTestCase): method test_cube_empty_cube (line 19) | def test_cube_empty_cube(self): method test_instanced_header_empty_cube (line 28) | def test_instanced_header_empty_cube(self): FILE: tests/features/rain/bake_wiper_texture.test.py class TestBakeWiperTexture (line 17) | class TestBakeWiperTexture(XPlaneTestCase): method setUp (line 18) | def setUp(self): method _test_bake_op (line 37) | def _test_bake_op(self, slot: str) -> None: method test_bake_systems (line 108) | def test_bake_systems(self) -> None: FILE: tests/features/rain/bake_wiper_texture_bad_rgb_only.test.py class TestBakeWiperTextureBadRGBOnly (line 17) | class TestBakeWiperTextureBadRGBOnly(XPlaneTestCase): method test_bad_wiper_image_rgb_only (line 18) | def test_bad_wiper_image_rgb_only(self)->None: FILE: tests/features/rain/rain_header_props.test.py class TestRainHeaderProps (line 16) | class TestRainHeaderProps(XPlaneTestCase): method test_thermal_wiper_fixtures (line 17) | def test_thermal_wiper_fixtures(self) -> None: method test_no_options (line 36) | def test_no_options(self) -> None: method test_errors (line 56) | def test_errors(self) -> None: FILE: tests/features/various.test.py class TestMaterials (line 10) | class TestMaterials(XPlaneTestCase): method test_custom_prop_export (line 12) | def test_custom_prop_export(self): method test_conditions_export (line 25) | def test_conditions_export(self): method test_optimize_export (line 39) | def test_optimize_export(self): method test_texture_coords_export (line 56) | def test_texture_coords_export(self): method test_group_instances_export (line 71) | def test_group_instances_export(self): method test_custom_header_props_export (line 86) | def test_custom_header_props_export(self): method test_custom_anim_prop_export (line 99) | def test_custom_anim_prop_export(self): method test_show_hide_animation_export (line 112) | def test_show_hide_animation_export(self): FILE: tests/lights/aim_non_spot_light.test.py function filterLines (line 11) | def filterLines(line): class TestAimNonSpotLight (line 16) | class TestAimNonSpotLight(XPlaneTestCase): method test_aim_non_spot_light (line 17) | def test_aim_non_spot_light(self): FILE: tests/lights/anim_vs_non_anim_vs_is_nested.test.py function filterLines (line 11) | def filterLines(line): class TestAnimVsNonAnimVsIsNested (line 16) | class TestAnimVsNonAnimVsIsNested(XPlaneTestCase): method test_anim_vs_non_anim_vs_has_parent (line 17) | def test_anim_vs_non_anim_vs_has_parent(self): FILE: tests/lights/automatic_detect/automatic_ignore_old_lights.test.py class TestAutomaticIgnoreOldLights (line 15) | class TestAutomaticIgnoreOldLights(XPlaneTestCase): method test_automatic_ignore_old_lights (line 16) | def test_automatic_ignore_old_lights(self)->None: FILE: tests/lights/automatic_detect/automatic_is_omni_light.test.py class TestAutomaticIsOmniLight (line 15) | class TestAutomaticIsOmniLight(XPlaneTestCase): method test_omni_lights (line 16) | def test_omni_lights(self)->None: method test_non_omni_lights (line 25) | def test_non_omni_lights(self)->None: method test_is_omni_api (line 34) | def test_is_omni_api(self)->None: method test_is_non_omni_api (line 51) | def test_is_non_omni_api(self)->None: FILE: tests/lights/automatic_detect/automatic_light_properties.test.py class TestAutomaticLightProperties (line 15) | class TestAutomaticLightProperties(XPlaneTestCase): method test_automatic_light_properties (line 16) | def test_automatic_light_properties(self)->None: FILE: tests/lights/automatic_detect/automatic_parent_and_self_animated.test.py class TestAutomaticParentAndSelfAnimated (line 15) | class TestAutomaticParentAndSelfAnimated(XPlaneTestCase): method test_self_animated_lights (line 16) | def test_self_animated_lights(self)->None: method test_parent_animated_lights (line 26) | def test_parent_animated_lights(self)->None: FILE: tests/lights/automatic_detect/automatic_point_vs_spot.test.py class TestAutomaticPointVsSpot (line 15) | class TestAutomaticPointVsSpot(XPlaneTestCase): method test_automatic_point_vs_spot_error (line 16) | def test_automatic_point_vs_spot_error(self)->None: method test_automatic_point_vs_spot_okay (line 21) | def test_automatic_point_vs_spot_okay(self)->None: FILE: tests/lights/automatic_detect/automatic_special_animation_cases.test.py class TestAutomaticSpecialAnimationCases (line 15) | class TestAutomaticSpecialAnimationCases(XPlaneTestCase): method test_automatic_special_animation_cases (line 16) | def test_automatic_special_animation_cases(self)->None: method test_automatic_special_animation_dir_mag_calc_cases (line 26) | def test_automatic_special_animation_dir_mag_calc_cases(self)->None: FILE: tests/lights/automatic_detect/automatic_width_recalc.test.py class TestAutomaticWidthRecalc (line 15) | class TestAutomaticWidthRecalc(XPlaneTestCase): method test_spot_params_bb (line 16) | def test_spot_params_bb(self)->None: method test_spot_params_bb_rotated_90 (line 26) | def test_spot_params_bb_rotated_90(self)->None: method test_spot_params_bb_rotated_off_axis (line 36) | def test_spot_params_bb_rotated_off_axis(self)->None: FILE: tests/lights/custom_light_rgb_override.test.py function filterLines (line 11) | def filterLines(line): class TestCustomLightRGBOverride (line 15) | class TestCustomLightRGBOverride(XPlaneTestCase): method test_Custom_Spot_RGB_values_disabled (line 16) | def test_Custom_Spot_RGB_values_disabled(self): method test_Custom_Spot_RGB_values_enabled (line 25) | def test_Custom_Spot_RGB_values_enabled(self): FILE: tests/lights/known_vs_unknown_named_vs_param.test.py class TestKnownVsUnknownNamedVsParam (line 16) | class TestKnownVsUnknownNamedVsParam(XPlaneTestCase): method test_01_known_param_should_error (line 17) | def test_01_known_param_should_error(self): method test_02_known_named_should_pass (line 21) | def test_02_known_named_should_pass(self): method test_03_unknown_should_pass_no_auto (line 26) | def test_03_unknown_should_pass_no_auto(self): method test_04_known_param_enough_params_should_pass (line 31) | def test_04_known_param_enough_params_should_pass(self): method test_05_known_param_not_enough_params_should_error (line 35) | def test_05_known_param_not_enough_params_should_error(self): method test_06_known_named_fake_params_should_error (line 39) | def test_06_known_named_fake_params_should_error(self): method test_07_known_named_empty_param_should_error (line 43) | def test_07_known_named_empty_param_should_error(self): method test_08_unknown_params (line 47) | def test_08_unknown_params(self): method test_09_unknown_empty_params (line 51) | def test_09_unknown_empty_params(self): method test_10_custom_light_not_autocorrected (line 55) | def test_10_custom_light_not_autocorrected(self): FILE: tests/lights/light_spill_custom_attributes.test.py class TestLightSpillCustomAttributes (line 14) | class TestLightSpillCustomAttributes(XPlaneTestCase): method test_light_attributes (line 15) | def test_light_attributes(self)->None: method test_incompatible_light_types (line 33) | def test_incompatible_light_types(self): FILE: tests/lights/light_type_vs_is_omni_vs_is_optimized.test.py function filterLines (line 11) | def filterLines(line): class TestLightTypeVsIsOmniVsIsOptimized (line 16) | class TestLightTypeVsIsOmniVsIsOptimized(XPlaneTestCase): method test_point_vs_is_omni_vs_is_optimized (line 17) | def test_point_vs_is_omni_vs_is_optimized(self): method test_spot_vs_is_omni_vs_is_optimized (line 26) | def test_spot_vs_is_omni_vs_is_optimized(self): FILE: tests/lights/omni_dir_param_name_bb_sp_both.test.py function filterLines (line 10) | def filterLines(line): class TestOmniDirParamNameBbSpBoth (line 15) | class TestOmniDirParamNameBbSpBoth(XPlaneTestCase): method test_bb_and_sp_both (line 16) | def test_bb_and_sp_both(self): method test_bb_omni_param (line 25) | def test_bb_omni_param(self): method test_dir_and_sp (line 34) | def test_dir_and_sp(self): method test_named (line 43) | def test_named(self): FILE: tests/lights/param_light_params.test.py class TestParamLightParams (line 12) | class TestParamLightParams(XPlaneTestCase): method test_comment_correct (line 13) | def test_comment_correct(self): method test_illegal_params_content (line 19) | def test_illegal_params_content(self): method test_unused_param_pass (line 23) | def test_unused_param_pass(self): method test_unused_param_fail (line 33) | def test_unused_param_fail(self): FILE: tests/lights/rotation_delta_autocorrect.test.py function filterLines (line 10) | def filterLines(line): class TestRotationDeltaAutoCorrect (line 15) | class TestRotationDeltaAutoCorrect(XPlaneTestCase): method test_rotation_delta_autocorrect (line 16) | def test_rotation_delta_autocorrect(self): FILE: tests/lights/sw_light_callback_applied.test.py class TestSwLightCallbackApplied (line 15) | class TestSwLightCallbackApplied(XPlaneTestCase): method test_sw_light_callback_used (line 16) | def test_sw_light_callback_used(self): FILE: tests/lights/v12_lights_cd_export.test.py class TestV12LightsCDExport (line 16) | class TestV12LightsCDExport(XPlaneTestCase): method test_v12_lights_have_candela (line 17) | def test_v12_lights_have_candela(self) -> None: FILE: tests/materials/blend_glass/blend_glass.test.py function filterLines (line 12) | def filterLines(line): class TestBlendGlass (line 16) | class TestBlendGlass(XPlaneTestCase): method test_air_glass_off_expect_no_dir (line 17) | def test_air_glass_off_expect_no_dir(self): method test_air_glass_on_expect_dir (line 26) | def test_air_glass_on_expect_dir(self): method test_ckpt_glass_off_expect_no_dir (line 35) | def test_ckpt_glass_off_expect_no_dir(self): method test_ckpt_glass_on_expect_dir (line 44) | def test_ckpt_glass_on_expect_dir(self): method test_panel_glass_off_expect_no_dir (line 53) | def test_panel_glass_off_expect_no_dir(self): method test_panel_glass_on_expect_dir (line 62) | def test_panel_glass_on_expect_dir(self): method test_instanced_glass_illegal (line 71) | def test_instanced_glass_illegal(self): method test_scenery_glass_illegal (line 78) | def test_scenery_glass_illegal(self): FILE: tests/materials/normal_metalness/norm_met_basic.test.py function get_image (line 27) | def get_image(name): function create_images (line 40) | def create_images(): function get_texture_name (line 46) | def get_texture_name(is_draped,is_normal): function get_texture (line 59) | def get_texture(is_draped,is_normal): function create_textures (line 68) | def create_textures(): function get_material_name (line 75) | def get_material_name(is_metal,is_draped): function get_material (line 79) | def get_material(is_metal,is_draped): function create_materials (line 108) | def create_materials(): function create_object_names (line 115) | def create_object_names(): function delete_scene_data (line 126) | def delete_scene_data(): function create_partial_test_setup (line 146) | def create_partial_test_setup(): function filterLines (line 210) | def filterLines(line): class TestNormMetBasic (line 225) | class TestNormMetBasic(XPlaneTestCase): method test_D_metal_NON_D_metal (line 226) | def test_D_metal_NON_D_metal(self): method test_D_metal_NON_D_non_metal (line 233) | def test_D_metal_NON_D_non_metal(self): method test_D_metal_NON_D_none (line 240) | def test_D_metal_NON_D_none(self): method test_D_non_metal_NON_D_metal (line 247) | def test_D_non_metal_NON_D_metal(self): method test_D_non_metal_NON_D_non_metal (line 255) | def test_D_non_metal_NON_D_non_metal(self): method test_D_non_metal_NON_D_none (line 262) | def test_D_non_metal_NON_D_none(self): method test_D_none_NON_D_metal (line 269) | def test_D_none_NON_D_metal(self): method test_D_none_NON_D_non_metal (line 277) | def test_D_none_NON_D_non_metal(self): method test_D_none_NON_D_none (line 284) | def test_D_none_NON_D_none(self): FILE: tests/materials/normal_metalness/norm_met_draped_spec_scenery.test.py function filterLines (line 12) | def filterLines(line): class TestNormMetDrapedSpecScenery (line 23) | class TestNormMetDrapedSpecScenery(XPlaneTestCase): method test_norm_met_off_one_drap_inst (line 24) | def test_norm_met_off_one_drap_inst(self): method test_norm_met_off_one_drap_scen (line 28) | def test_norm_met_off_one_drap_scen(self): method test_norm_met_off_two_drap_inst (line 32) | def test_norm_met_off_two_drap_inst(self): method test_norm_met_off_two_drap_scen (line 37) | def test_norm_met_off_two_drap_scen(self): method test_norm_met_on_one_drap_inst (line 42) | def test_norm_met_on_one_drap_inst(self): method test_norm_met_on_one_drap_scen (line 46) | def test_norm_met_on_one_drap_scen(self): method test_norm_met_on_two_drap_inst (line 50) | def test_norm_met_on_two_drap_inst(self): method test_norm_met_on_two_drap_scen (line 54) | def test_norm_met_on_two_drap_scen(self): FILE: tests/materials/normal_metalness/norm_met_spec.test.py function create_partial_test_env (line 6) | def create_partial_test_env(self): function filterLines (line 49) | def filterLines(line): class TestNormMetSpec (line 59) | class TestNormMetSpec(XPlaneTestCase): method test_none_1_mat_inst (line 60) | def test_none_1_mat_inst(self): method test_none_1_mat_scen (line 68) | def test_none_1_mat_scen(self): method test_none_2_mat_inst (line 76) | def test_none_2_mat_inst(self): method test_none_2_mat_scen (line 80) | def test_none_2_mat_scen(self): method test_norm_1_mat_inst (line 88) | def test_norm_1_mat_inst(self): method test_norm_1_mat_scen (line 96) | def test_norm_1_mat_scen(self): method test_norm_2_mat_inst (line 104) | def test_norm_2_mat_inst(self): method test_norm_2_mat_scen (line 112) | def test_norm_2_mat_scen(self): FILE: tests/materials/normal_metalness/norm_met_validations.test.py class TestNormMetValidations (line 11) | class TestNormMetValidations(XPlaneTestCase): method test_01_mismatching_metalness_error (line 12) | def test_01_mismatching_metalness_error(self): method test_02_03_warn_no_nml_tex (line 16) | def test_02_03_warn_no_nml_tex(self): method test_06_Mixed_panel_metal_on (line 24) | def test_06_Mixed_panel_metal_on(self): method test_07_Mixed_panel_metal_on (line 28) | def test_07_Mixed_panel_metal_on(self): FILE: tests/materials/objects/AOTC_2Mat_ManipRJECT.test.py class TestAOTC_2Mat_ManipRJECT (line 11) | class TestAOTC_2Mat_ManipRJECT(XPlaneTestCase): method test_export (line 12) | def test_export(self): FILE: tests/materials/objects/AOTC_2Mats_PNL.test.py class TestAOTC_2Mats_PNL (line 11) | class TestAOTC_2Mats_PNL(XPlaneTestCase): method test_export (line 12) | def test_export(self): FILE: tests/materials/objects/AOTC_Draped_RJECT.test.py class TestAOTC_Draped_RJECT (line 11) | class TestAOTC_Draped_RJECT(XPlaneTestCase): method test_export (line 12) | def test_export(self): FILE: tests/materials/objects/COTC_2Mat_Draped.test.py class TestCOTC_2Mat_Draped (line 11) | class TestCOTC_2Mat_Draped(XPlaneTestCase): method test_export (line 12) | def test_export(self): FILE: tests/materials/objects/COTC_2Mat_Hard.test.py class TestCOTC_2Mat_Hard (line 11) | class TestCOTC_2Mat_Hard(XPlaneTestCase): method test_export (line 12) | def test_export(self): FILE: tests/materials/objects/COTC_2Mat_Manip_SolidCamera.test.py class TestCOTC_2Mat_Manip_SolidCamera (line 11) | class TestCOTC_2Mat_Manip_SolidCamera(XPlaneTestCase): method test_export (line 12) | def test_export(self): FILE: tests/materials/objects/IST_2Mats_SameSPEC_DifSURF.test.py class TestIST_2MatsSameSPECDifSURF (line 11) | class TestIST_2MatsSameSPECDifSURF(XPlaneTestCase): method test_export (line 12) | def test_export(self): FILE: tests/materials/objects/IST_2Mats_VarSPEC.test.py class TestIST_2Mats_VarSPEC (line 11) | class TestIST_2Mats_VarSPEC(XPlaneTestCase): method test_export (line 12) | def test_export(self): FILE: tests/materials/objects/IST_2Mats_wDraping.test.py class TestIST_2Mats_wDraping (line 11) | class TestIST_2Mats_wDraping(XPlaneTestCase): method test_export (line 12) | def test_export(self): FILE: tests/materials/objects/SSO_2compatibleMats_Draped.test.py class TestSSO_2compatibleMats_Draped (line 10) | class TestSSO_2compatibleMats_Draped(XPlaneTestCase): method test_export (line 11) | def test_export(self): FILE: tests/materials/objects/SSO_2incompatibleATTRs_Draped.test.py class TestSSO_2incompatibleATTRsDrapedMats (line 11) | class TestSSO_2incompatibleATTRsDrapedMats(XPlaneTestCase): method test_export (line 12) | def test_export(self): FILE: tests/materials/objects/SSO_2incompatibleDraped_Mats.test.py class TestSSO_2incompatibleDrapedMats (line 11) | class TestSSO_2incompatibleDrapedMats(XPlaneTestCase): method test_export (line 12) | def test_export(self): FILE: tests/materials/objects/SSO_illegal_usePanel_tex.test.py class TestSSO_IllegalUsePanelTex (line 11) | class TestSSO_IllegalUsePanelTex(XPlaneTestCase): method test_export (line 12) | def test_export(self): FILE: tests/materials/objects/TEXTURE_MAP.test.py class TestTEXTURE_MAP_export (line 10) | class TestTEXTURE_MAP_export(XPlaneTestCase): method test_export (line 11) | def test_export(self): method test_mixed_source_error (line 28) | def test_mixed_source_error(self): FILE: tests/materials/objects/blend_ratio.test.py class TestBlendRatio (line 15) | class TestBlendRatio(XPlaneTestCase): method test_blend_ratio (line 16) | def test_blend_ratio(self) -> None: FILE: tests/materials/shadow/shadow_no_shadow.test.py function filterLines (line 11) | def filterLines(line): class TestShadowNoShadow (line 16) | class TestShadowNoShadow(XPlaneTestCase): method test_01_all_cast_shadows_off (line 17) | def test_01_all_cast_shadows_off(self): method test_02_all_cast_shadows_on (line 26) | def test_02_all_cast_shadows_on(self): method test_03_1_cast_shadows_off (line 35) | def test_03_1_cast_shadows_off(self): method test_04_1_or_more_but_not_all_off (line 44) | def test_04_1_or_more_but_not_all_off(self): method test_05_all_cast_shadows_off_non_scenery (line 54) | def test_05_all_cast_shadows_off_non_scenery(self): FILE: tests/materials/shadow/shadow_no_shadow_non_scenery_type.test.py function filterLines (line 11) | def filterLines(line): class TestShadowNoShadowNonSceneryType (line 17) | class TestShadowNoShadowNonSceneryType(XPlaneTestCase): method test_01_all_cast_local_off (line 18) | def test_01_all_cast_local_off(self): method test_02_all_cast_local_on (line 27) | def test_02_all_cast_local_on(self): method test_03a_1_cast_local_off (line 36) | def test_03a_1_cast_local_off(self): method test_03b_1_or_more_cast_local_off_on_off (line 45) | def test_03b_1_or_more_cast_local_off_on_off(self): FILE: tests/monkey/monkey.test.py class MonkeyTest (line 10) | class MonkeyTest(XPlaneTestCase): method filterLines (line 11) | def filterLines(self, line): method test_monkey_export (line 15) | def test_monkey_export(self): FILE: tests/object/axis_detent_ranges.test.py function filterLines (line 11) | def filterLines(line): class TestAxisDetentRanges (line 17) | class TestAxisDetentRanges(XPlaneTestCase): method test_01_known_good_test (line 18) | def test_01_known_good_test(self): method test_02_gen_range_list_not_start_at_v1_min (line 26) | def test_02_gen_range_list_not_start_at_v1_min(self): method test_03_gen_range_list_not_end_at_v1_max (line 30) | def test_03_gen_range_list_not_end_at_v1_max(self): method test_04_gen_range_list_has_gap (line 34) | def test_04_gen_range_list_has_gap(self): method test_05_gen_range_start_greater_than_end (line 38) | def test_05_gen_range_start_greater_than_end(self): method test_06_gen_range_height_greater_than_max_lift (line 42) | def test_06_gen_range_height_greater_than_max_lift(self): method test_07_pit_list_of_one_cannot_be_stop_pit (line 46) | def test_07_pit_list_of_one_cannot_be_stop_pit(self): method test_08_pit_at_start_and_end (line 50) | def test_08_pit_at_start_and_end(self): method test_09_pit_stop_pit_taller_than_neighbors (line 58) | def test_09_pit_stop_pit_taller_than_neighbors(self): FILE: tests/object/bone_configurations_drag_axis.test.py class TestBoneConfigurationsDragAxis (line 15) | class TestBoneConfigurationsDragAxis(XPlaneTestCase): method test_drag_axis_case_01 (line 17) | def test_drag_axis_case_01(self): method test_drag_axis_case_02 (line 32) | def test_drag_axis_case_02(self): method test_drag_axis_case_03 (line 49) | def test_drag_axis_case_03(self): method test_drag_axis_case_04 (line 66) | def test_drag_axis_case_04(self): method test_drag_axis_case_05 (line 83) | def test_drag_axis_case_05(self): method test_drag_axis_case_06 (line 101) | def test_drag_axis_case_06(self): method test_drag_axis_case_07 (line 119) | def test_drag_axis_case_07(self): method test_drag_axis_case_08 (line 137) | def test_drag_axis_case_08(self): method test_drag_axis_case_09 (line 153) | def test_drag_axis_case_09(self): method test_drag_axis_case_10 (line 169) | def test_drag_axis_case_10(self): method test_drag_axis_case_11 (line 184) | def test_drag_axis_case_11(self): method test_drag_axis_case_12 (line 200) | def test_drag_axis_case_12(self): FILE: tests/object/bone_configurations_drag_axis_detent.test.py class TestBoneConfigurationsDragAxisDetent (line 15) | class TestBoneConfigurationsDragAxisDetent(XPlaneTestCase): method test_drag_axis_detent_case_01 (line 17) | def test_drag_axis_detent_case_01(self): method test_drag_axis_detent_case_02 (line 35) | def test_drag_axis_detent_case_02(self): method test_drag_axis_detent_case_03 (line 54) | def test_drag_axis_detent_case_03(self): method test_drag_axis_detent_case_04 (line 74) | def test_drag_axis_detent_case_04(self): method test_drag_axis_detent_case_05 (line 94) | def test_drag_axis_detent_case_05(self): method test_drag_axis_detent_case_06 (line 113) | def test_drag_axis_detent_case_06(self): method test_drag_axis_detent_case_07 (line 135) | def test_drag_axis_detent_case_07(self): method test_drag_axis_detent_case_08 (line 153) | def test_drag_axis_detent_case_08(self): method test_drag_axis_detent_case_09 (line 170) | def test_drag_axis_detent_case_09(self): method test_drag_axis_detent_case_10 (line 187) | def test_drag_axis_detent_case_10(self): method test_drag_axis_detent_case_11 (line 203) | def test_drag_axis_detent_case_11(self): method test_drag_axis_detent_case_12 (line 217) | def test_drag_axis_detent_case_12(self): method test_drag_axis_detent_case_13 (line 235) | def test_drag_axis_detent_case_13(self): method test_drag_axis_detent_case_14 (line 254) | def test_drag_axis_detent_case_14(self): method test_drag_axis_detent_case_15 (line 273) | def test_drag_axis_detent_case_15(self): method test_drag_axis_detent_case_16 (line 293) | def test_drag_axis_detent_case_16(self): FILE: tests/object/bone_configurations_drag_rotate.test.py class TestBoneConfigurationsDragRotate (line 15) | class TestBoneConfigurationsDragRotate(XPlaneTestCase): method test_drag_rotate_case_01 (line 17) | def test_drag_rotate_case_01(self): method test_drag_rotate_case_02 (line 32) | def test_drag_rotate_case_02(self): method test_drag_rotate_case_03 (line 49) | def test_drag_rotate_case_03(self): method test_drag_rotate_case_04 (line 66) | def test_drag_rotate_case_04(self): method test_drag_rotate_case_05 (line 83) | def test_drag_rotate_case_05(self): method test_drag_rotate_case_06 (line 101) | def test_drag_rotate_case_06(self): method test_drag_rotate_case_07 (line 119) | def test_drag_rotate_case_07(self): method test_drag_rotate_case_08 (line 137) | def test_drag_rotate_case_08(self): method test_drag_rotate_case_09 (line 156) | def test_drag_rotate_case_09(self): method test_drag_rotate_case_10 (line 171) | def test_drag_rotate_case_10(self): method test_drag_rotate_case_11 (line 186) | def test_drag_rotate_case_11(self): method test_drag_rotate_case_12 (line 202) | def test_drag_rotate_case_12(self): FILE: tests/object/bone_configurations_drag_rotate_detent.test.py class TestBoneConfigurationsDragRotateDetent (line 15) | class TestBoneConfigurationsDragRotateDetent(XPlaneTestCase): method test_drag_rotate_detent_case_01 (line 17) | def test_drag_rotate_detent_case_01(self): method test_drag_rotate_detent_case_02 (line 35) | def test_drag_rotate_detent_case_02(self): method test_drag_rotate_detent_case_03 (line 54) | def test_drag_rotate_detent_case_03(self): method test_drag_rotate_detent_case_04 (line 74) | def test_drag_rotate_detent_case_04(self): method test_drag_rotate_detent_case_05 (line 94) | def test_drag_rotate_detent_case_05(self): method test_drag_rotate_detent_case_06 (line 113) | def test_drag_rotate_detent_case_06(self): method test_drag_rotate_detent_case_07 (line 135) | def test_drag_rotate_detent_case_07(self): method test_drag_rotate_detent_case_08 (line 153) | def test_drag_rotate_detent_case_08(self): method test_drag_rotate_detent_case_09 (line 170) | def test_drag_rotate_detent_case_09(self): method test_drag_rotate_detent_case_10 (line 187) | def test_drag_rotate_detent_case_10(self): method test_drag_rotate_detent_case_11 (line 203) | def test_drag_rotate_detent_case_11(self): method test_drag_rotate_detent_case_12 (line 220) | def test_drag_rotate_detent_case_12(self): method test_drag_rotate_detent_case_13 (line 237) | def test_drag_rotate_detent_case_13(self): method test_drag_rotate_detent_case_14 (line 253) | def test_drag_rotate_detent_case_14(self): method test_drag_rotate_detent_case_15 (line 266) | def test_drag_rotate_detent_case_15(self): method test_drag_rotate_detent_case_16 (line 284) | def test_drag_rotate_detent_case_16(self): method test_drag_rotate_detent_case_17 (line 303) | def test_drag_rotate_detent_case_17(self): method test_drag_rotate_detent_case_18 (line 322) | def test_drag_rotate_detent_case_18(self): method test_drag_rotate_detent_case_19 (line 342) | def test_drag_rotate_detent_case_19(self): method test_drag_rotate_detent_case_20 (line 362) | def test_drag_rotate_detent_case_20(self): FILE: tests/object/bone_configurations_drag_rotate_detent_arm.test.py class TestBoneConfigurationsDragRotateDetentArm (line 23) | class TestBoneConfigurationsDragRotateDetentArm(XPlaneTestCase): method test_drag_rotate_detent_arm_case_01 (line 25) | def test_drag_rotate_detent_arm_case_01(self): method test_drag_rotate_detent_arm_case_02 (line 43) | def test_drag_rotate_detent_arm_case_02(self): method test_drag_rotate_detent_arm_case_03 (line 62) | def test_drag_rotate_detent_arm_case_03(self): method test_drag_rotate_detent_arm_case_04 (line 82) | def test_drag_rotate_detent_arm_case_04(self): method test_drag_rotate_detent_arm_case_05 (line 102) | def test_drag_rotate_detent_arm_case_05(self): method test_drag_rotate_detent_arm_case_06 (line 121) | def test_drag_rotate_detent_arm_case_06(self): method test_drag_rotate_detent_arm_case_07 (line 143) | def test_drag_rotate_detent_arm_case_07(self): method test_drag_rotate_detent_arm_case_08 (line 161) | def test_drag_rotate_detent_arm_case_08(self): method test_drag_rotate_detent_arm_case_09 (line 178) | def test_drag_rotate_detent_arm_case_09(self): method test_drag_rotate_detent_arm_case_10 (line 195) | def test_drag_rotate_detent_arm_case_10(self): method test_drag_rotate_detent_arm_case_11 (line 211) | def test_drag_rotate_detent_arm_case_11(self): method test_drag_rotate_detent_arm_case_12 (line 228) | def test_drag_rotate_detent_arm_case_12(self): method test_drag_rotate_detent_arm_case_13 (line 245) | def test_drag_rotate_detent_arm_case_13(self): method test_drag_rotate_detent_arm_case_14 (line 261) | def test_drag_rotate_detent_arm_case_14(self): method test_drag_rotate_detent_arm_case_15 (line 274) | def test_drag_rotate_detent_arm_case_15(self): method test_drag_rotate_detent_arm_case_16 (line 292) | def test_drag_rotate_detent_arm_case_16(self): method test_drag_rotate_detent_arm_case_17 (line 311) | def test_drag_rotate_detent_arm_case_17(self): method test_drag_rotate_detent_arm_case_18 (line 330) | def test_drag_rotate_detent_arm_case_18(self): method test_drag_rotate_detent_arm_case_19 (line 350) | def test_drag_rotate_detent_arm_case_19(self): FILE: tests/object/bone_configurations_drag_rotate_detent_bone.test.py class TestBoneConfigurationsDragRotateDetentBone (line 22) | class TestBoneConfigurationsDragRotateDetentBone(XPlaneTestCase): method test_drag_rotate_detent_bone_case_01 (line 24) | def test_drag_rotate_detent_bone_case_01(self): method test_drag_rotate_detent_bone_case_02 (line 42) | def test_drag_rotate_detent_bone_case_02(self): method test_drag_rotate_detent_bone_case_03 (line 61) | def test_drag_rotate_detent_bone_case_03(self): method test_drag_rotate_detent_bone_case_04 (line 81) | def test_drag_rotate_detent_bone_case_04(self): method test_drag_rotate_detent_bone_case_05 (line 101) | def test_drag_rotate_detent_bone_case_05(self): method test_drag_rotate_detent_bone_case_06 (line 120) | def test_drag_rotate_detent_bone_case_06(self): method test_drag_rotate_detent_bone_case_07 (line 142) | def test_drag_rotate_detent_bone_case_07(self): method test_drag_rotate_detent_bone_case_08 (line 160) | def test_drag_rotate_detent_bone_case_08(self): method test_drag_rotate_detent_bone_case_09 (line 177) | def test_drag_rotate_detent_bone_case_09(self): method test_drag_rotate_detent_bone_case_10 (line 194) | def test_drag_rotate_detent_bone_case_10(self): method test_drag_rotate_detent_bone_case_11 (line 210) | def test_drag_rotate_detent_bone_case_11(self): method test_drag_rotate_detent_bone_case_12 (line 227) | def test_drag_rotate_detent_bone_case_12(self): method test_drag_rotate_detent_bone_case_13 (line 244) | def test_drag_rotate_detent_bone_case_13(self): method test_drag_rotate_detent_bone_case_14 (line 260) | def test_drag_rotate_detent_bone_case_14(self): method test_drag_rotate_detent_bone_case_15 (line 273) | def test_drag_rotate_detent_bone_case_15(self): method test_drag_rotate_detent_bone_case_16 (line 291) | def test_drag_rotate_detent_bone_case_16(self): method test_drag_rotate_detent_bone_case_17 (line 310) | def test_drag_rotate_detent_bone_case_17(self): method test_drag_rotate_detent_bone_case_18 (line 329) | def test_drag_rotate_detent_bone_case_18(self): method test_drag_rotate_detent_bone_case_19 (line 349) | def test_drag_rotate_detent_bone_case_19(self): FILE: tests/object/drag_axis_autodetect.test.py function filterLines (line 11) | def filterLines(line): class TestDragAxisAutoDetect (line 16) | class TestDragAxisAutoDetect(XPlaneTestCase): method test_01_not_driven_by_one_dataref (line 17) | def test_01_not_driven_by_one_dataref(self): method test_02_doesnt_have_two_non_clamping_keyframes (line 21) | def test_02_doesnt_have_two_non_clamping_keyframes(self): method test_03_not_leaf_bone (line 25) | def test_03_not_leaf_bone(self): method test_04_known_good_drag_axis_autodetect (line 29) | def test_04_known_good_drag_axis_autodetect(self): FILE: tests/object/drag_axis_w_detents.test.py function filterLines (line 11) | def filterLines(line): class TestDragAxisWDetents (line 18) | class TestDragAxisWDetents(XPlaneTestCase): method test_01_parent_driven_by_two_datarefs (line 19) | def test_01_parent_driven_by_two_datarefs(self): method test_02_parent_has_three_non_clamping_keyframes (line 23) | def test_02_parent_has_three_non_clamping_keyframes(self): method test_03_translation_bone_driven_by_two_datarefs (line 27) | def test_03_translation_bone_driven_by_two_datarefs(self): method test_04_translation_bone_has_three_non_clamping_keyframes (line 31) | def test_04_translation_bone_has_three_non_clamping_keyframes(self): method test_05_translation_bone_not_a_leaf (line 35) | def test_05_translation_bone_not_a_leaf(self): method test_06_translation_bone_has_non_anim_parent (line 39) | def test_06_translation_bone_has_non_anim_parent(self): method test_07_translation_bone_not_orthogonal (line 43) | def test_07_translation_bone_not_orthogonal(self): method test_08_translation_bone_pos_not_both_zero (line 47) | def test_08_translation_bone_pos_not_both_zero(self): method test_09_translation_bone_must_have_axis_detent_ranges (line 51) | def test_09_translation_bone_must_have_axis_detent_ranges(self): method test_10_known_good_drag_axis_w_detents (line 55) | def test_10_known_good_drag_axis_w_detents(self): FILE: tests/object/drag_rotate_start_end_the_same.test.py class TestDragRotateStartEndTheSame (line 14) | class TestDragRotateStartEndTheSame(XPlaneTestCase): method test_drag_rotate_start_end_the_same (line 15) | def test_drag_rotate_start_end_the_same(self)->None: FILE: tests/object/manip_keyframe.test.py function filterLines (line 11) | def filterLines(line): class TestManipKeyframe (line 18) | class TestManipKeyframe(XPlaneTestCase): method test_01_2_rot_kf_0_detents_0_manip_kf (line 19) | def test_01_2_rot_kf_0_detents_0_manip_kf(self): method test_02_3_rot_kf_0_detents_1_manip_kf (line 28) | def test_02_3_rot_kf_0_detents_1_manip_kf(self): method test_03_4_rot_kf_0_detents_2_manip_kf (line 37) | def test_03_4_rot_kf_0_detents_2_manip_kf(self): method test_04_5_rot_kf_3_detents_3_manip_kf (line 46) | def test_04_5_rot_kf_3_detents_3_manip_kf(self): method test_05_6_rot_kf_4_detents_1_pit_4_manip_kf (line 55) | def test_05_6_rot_kf_4_detents_1_pit_4_manip_kf(self): FILE: tests/object/object_ll_override.test.py class TestObjectLLOverride (line 15) | class TestObjectLLOverride(XPlaneTestCase): method test_01_mesh_ll_overload_emits (line 16) | def test_01_mesh_ll_overload_emits(self) -> None: method test_02_mesh_ll_overload_emits_not_material (line 26) | def test_02_mesh_ll_overload_emits_not_material(self) -> None: method test_03_mesh_ll_overload_weird_cases (line 36) | def test_03_mesh_ll_overload_weird_cases(self) -> None: method test_04_mesh_ll_overload_emits_not_material_nts (line 46) | def test_04_mesh_ll_overload_emits_not_material_nts(self)->None: FILE: tests/object/override_autodetect_datarefs.test.py function filterLines (line 11) | def filterLines(line): class TestOverrideAutodetectDatarefs (line 16) | class TestOverrideAutodetectDatarefs(XPlaneTestCase): method test_override_autodetect_datarefs_drag_axis (line 17) | def test_override_autodetect_datarefs_drag_axis(self): method test_override_autodetect_datarefs_drag_axis_w_detents (line 26) | def test_override_autodetect_datarefs_drag_axis_w_detents(self): method test_override_autodetect_datarefs_drag_rotate (line 35) | def test_override_autodetect_datarefs_drag_rotate(self): method test_override_autodetect_datarefs_drag_rotate_dentent (line 44) | def test_override_autodetect_datarefs_drag_rotate_dentent(self): FILE: tests/object/rotation_bone_rules.test.py function filterLines (line 11) | def filterLines(line): class TestRotationBoneRules (line 16) | class TestRotationBoneRules(XPlaneTestCase): method test_01_no_animated_rotation_bone (line 17) | def test_01_no_animated_rotation_bone(self): method test_02_only_rotated_around_one_axis (line 20) | def test_02_only_rotated_around_one_axis(self): method test_03_rot_keyframes_must_be_sorted (line 23) | def test_03_rot_keyframes_must_be_sorted(self): method test_04_must_be_driven_by_only_1_dataref (line 27) | def test_04_must_be_driven_by_only_1_dataref(self): method test_05_must_have_at_least_2_non_clamping_keyframes (line 31) | def test_05_must_have_at_least_2_non_clamping_keyframes(self): method test_06_0_degree_rotation_not_allowed (line 35) | def test_06_0_degree_rotation_not_allowed(self): method test_07_counter_clockwise_also_allowed (line 39) | def test_07_counter_clockwise_also_allowed(self): method test_08_neg_15_15_degree_animation_allowed (line 48) | def test_08_neg_15_15_degree_animation_allowed(self): method test_09_dataref_values_descending_allowed (line 56) | def test_09_dataref_values_descending_allowed(self): method test_10_no_rounding_bug_from_unnormalized_vector (line 60) | def test_10_no_rounding_bug_from_unnormalized_vector(self): method test_11_known_good_rotation_bone (line 64) | def test_11_known_good_rotation_bone(self): FILE: tests/object/translation_bone_rules.test.py function filterLines (line 11) | def filterLines(line): class TestTranslationBoneRules (line 16) | class TestTranslationBoneRules(XPlaneTestCase): method test_01_bone_must_be_leaf_bone (line 19) | def test_01_bone_must_be_leaf_bone(self): method test_02_bone_must_have_parent_w_rotation (line 23) | def test_02_bone_must_have_parent_w_rotation(self): method test_03_must_only_be_driven_by_only_1_dataref (line 27) | def test_03_must_only_be_driven_by_only_1_dataref(self): method test_04_must_have_exactly_2_keyframes (line 31) | def test_04_must_have_exactly_2_keyframes(self): method test_05_must_not_animate_along_rotation_axis (line 35) | def test_05_must_not_animate_along_rotation_axis(self): method test_06_positions_at_each_keyframe_must_not_be_same (line 39) | def test_06_positions_at_each_keyframe_must_not_be_same(self): method test_07_position_at_each_keyframe_must_not_both_be_0 (line 43) | def test_07_position_at_each_keyframe_must_not_both_be_0(self): method test_08_must_not_be_animated_for_rotation (line 47) | def test_08_must_not_be_animated_for_rotation(self): method test_09_must_have_axis_detent_ranges (line 51) | def test_09_must_have_axis_detent_ranges(self): method test_10_known_good_translation_bone (line 55) | def test_10_known_good_translation_bone(self): FILE: tests/particles/particle_name_and_index.test.py function filterLines (line 11) | def filterLines(line): class TestParticleNameAndIndex (line 16) | class TestParticleNameAndIndex(XPlaneTestCase): method test_01_Empty_blank_name_fails (line 17) | def test_01_Empty_blank_name_fails(self): method test_02_Empty_index_enabled (line 21) | def test_02_Empty_index_enabled(self): method test_03_Empty_index_disabled (line 30) | def test_03_Empty_index_disabled(self): FILE: tests/particles/particle_non_colocated_anim.test.py function filterLines (line 11) | def filterLines(line): class TestParticleNonColocatedAnim (line 17) | class TestParticleNonColocatedAnim(XPlaneTestCase): method test_particle_non_colocated_anim (line 18) | def test_particle_non_colocated_anim(self): FILE: tests/particles/particle_pss_file.test.py function filterLines (line 11) | def filterLines(line): class TestParticlePssFile (line 15) | class TestParticlePssFile(XPlaneTestCase): method test_file_not_dot_pss (line 16) | def test_file_not_dot_pss(self): method test_file_pss_but_not_real (line 20) | def test_file_pss_but_not_real(self): method test_file_pss_and_real (line 29) | def test_file_pss_and_real(self): method test_empties_without_pss_fails (line 38) | def test_empties_without_pss_fails(self): FILE: tests/particles/particle_static_anim.test.py function filterLines (line 11) | def filterLines(line): class TestParticleStaticAnim (line 16) | class TestParticleStaticAnim(XPlaneTestCase): method test_particle_emitter_animated (line 17) | def test_particle_emitter_animated(self): method test_particle_emitter_static (line 26) | def test_particle_emitter_static(self): FILE: tests/template.py class TestBlendFileNameCamelCaseNoPunctuation (line 32) | class TestBlendFileNameCamelCaseNoPunctuation(XPlaneTestCase): method test_fixture_or_layer_name_snake_case (line 34) | def test_fixture_or_layer_name_snake_case(self)->None: FILE: tests/updater/blend_mode_blend_glass_update.test.py class TestBlendModeBlendGlassUpdate (line 14) | class TestBlendModeBlendGlassUpdate(XPlaneTestCase): method test_blend_mode_blend_glass_update (line 15) | def test_blend_mode_blend_glass_update(self): FILE: tests/updater/in_place_update.test.py class TestInPlaceUpdate (line 11) | class TestInPlaceUpdate(XPlaneTestCase): method test_anim_type_to_anim_type (line 12) | def test_anim_type_to_anim_type(self): FILE: tests/updater/layers_to_collections.test.py class TestLayersToCollections (line 16) | class TestLayersToCollections(XPlaneTestCase): method assertXPlaneLayerEqual (line 17) | def assertXPlaneLayerEqual( method get_default_xplane_layer_props_dict (line 87) | def get_default_xplane_layer_props_dict(self) -> Dict[str, Any]: method test_collections_renamed (line 156) | def test_collections_renamed(self) -> None: method test_no_extras_created (line 185) | def test_no_extras_created(self) -> None: method test_is_exportable_correct (line 211) | def test_is_exportable_correct(self) -> None: method test_is_not_hide_viewport (line 235) | def test_is_not_hide_viewport(self) -> None: method test_layer_4_properties_copied (line 245) | def test_layer_4_properties_copied(self) -> None: method test_layer_5_properties_copied (line 255) | def test_layer_5_properties_copied(self) -> None: method test_layer_6_properties_copied (line 277) | def test_layer_6_properties_copied(self) -> None: method test_layer_7_properties_copied (line 320) | def test_layer_7_properties_copied(self) -> None: method test_layer_8_properties_copied (line 354) | def test_layer_8_properties_copied(self) -> None: method test_layer_9_properties_copied (line 377) | def test_layer_9_properties_copied(self) -> None: method test_layer_10_properties_copied (line 387) | def test_layer_10_properties_copied(self) -> None: method test_layer_10_in_Scene_fourth_copied (line 397) | def test_layer_10_in_Scene_fourth_copied(self) -> None: method test_root_objects_mode_layer_1 (line 405) | def test_root_objects_mode_layer_1(self) -> None: method test_root_objects_mode_layer_2 (line 415) | def test_root_objects_mode_layer_2(self) -> None: method test_layers_deleted (line 422) | def test_layers_deleted(self) -> None: FILE: tests/updater/move_global_mat_props.test.py class TestMoveGlobalMatProps (line 15) | class TestMoveGlobalMatProps(XPlaneTestCase): method test_properties_updated (line 16) | def test_properties_updated(self): FILE: tests/updater/part_of_panel_to_cockpit_feature.test.py class TestPartOfPanelToCockpitFeature (line 15) | class TestPartOfPanelToCockpitFeature(XPlaneTestCase): method test_post_update (line 16) | def test_post_update(self) -> None: FILE: tests/updater/pre_4_0_0_alpha_6.test.py class TestPre4_0_0_alpha_6PropsUpdated (line 13) | class TestPre4_0_0_alpha_6PropsUpdated(XPlaneTestCase): method test_autodetectTexturesFalse (line 14) | def test_autodetectTexturesFalse(self)->None: method test_exportMode_deleted (line 18) | def test_exportMode_deleted(self)->None: method test_index_deleted (line 27) | def test_index_deleted(self)->None: method test_export_mesh_deleted (line 36) | def test_export_mesh_deleted(self)->None: method test_export_deleted (line 45) | def test_export_deleted(self)->None: FILE: tests/updater/pre_4_1_0_beta_1_regions_changes_panel_mode.test.py class TestPre_4_1_0_Beta_1_RegionsChangesPanelMode (line 15) | class TestPre_4_1_0_Beta_1_RegionsChangesPanelMode(XPlaneTestCase): method test_cockpit_regions_changes_panel_mode (line 16) | def test_cockpit_regions_changes_panel_mode(self) -> None: FILE: tests/updater/pre_automatic_default_lights_as_default.test.py class TestPreAutomaticDefaultLightsAsDefault (line 13) | class TestPreAutomaticDefaultLightsAsDefault(XPlaneTestCase): method test_update_preserves_default_light_type (line 14) | def test_update_preserves_default_light_type(self)->None: FILE: tests/updater/shadow/shadow_local_off_non_scenery.test.py function filterLines (line 14) | def filterLines(line:Tuple[str])->bool: class TestShadowLocalOffNonScenery (line 20) | class TestShadowLocalOffNonScenery(XPlaneTestCase): method test_properties_correct (line 21) | def test_properties_correct(self): method test_01_aircraft_force_global_shadows (line 32) | def test_01_aircraft_force_global_shadows(self): method test_02_cockpit_force_global_shadows (line 42) | def test_02_cockpit_force_global_shadows(self): method test_01_aircraft_force_global_shadows_root (line 52) | def test_01_aircraft_force_global_shadows_root(self): method test_02_cockpit_force_global_shadows_root (line 62) | def test_02_cockpit_force_global_shadows_root(self): FILE: tests/updater/shadow/update_cast_shadow.test.py function filterLines (line 14) | def filterLines(line:Tuple[str])->bool: class TestUpdateCastShadow (line 20) | class TestUpdateCastShadow(XPlaneTestCase): method test_properties_correct (line 21) | def test_properties_correct(self): method test_01_global_off_layers (line 40) | def test_01_global_off_layers(self): method test_02_global_on_layers (line 51) | def test_02_global_on_layers(self): method test_01_global_off_root_objects (line 82) | def test_01_global_off_root_objects(self): method test_02_global_on_root_objects (line 93) | def test_02_global_on_root_objects(self): FILE: tests/updater/shadow/update_cast_shadow_table_output.test.py class TestUpdateCastShadowTableOutput (line 14) | class TestUpdateCastShadowTableOutput(XPlaneTestCase): method test_updater_logger_output (line 15) | def test_updater_logger_output(self): FILE: tests/updater/synchronize_version_numbers.test.py class TestSynchronizeVersionNumbers (line 15) | class TestSynchronizeVersionNumbers(XPlaneTestCase): method assertVersionHistoryEqual (line 16) | def assertVersionHistoryEqual( method assertVersionsSynchronize (line 30) | def assertVersionsSynchronize(self) -> None: method assertIdPropIsDeprecated (line 42) | def assertIdPropIsDeprecated(self) -> None: method test_syncronize (line 51) | def test_syncronize(self) -> None: FILE: tests/updater/updater.test.disabled.py class TestUpdater (line 6) | class TestUpdater(XPlaneTestCase): method test_updater_stores_current_version (line 7) | def test_updater_stores_current_version(self): FILE: tests/utils/command_parser.test.py class TestCommandsTxtParser (line 12) | class TestCommandsTxtParser(XPlaneTestCase): method test_Commands_empty_line (line 16) | def test_Commands_empty_line(self): method test_Commands_empty_file (line 22) | def test_Commands_empty_file(self): method test_Commands_line_starts_with_whitespace (line 28) | def test_Commands_line_starts_with_whitespace(self): method test_Commands_no_desc_line_has_trailing_whitespace (line 34) | def test_Commands_no_desc_line_has_trailing_whitespace(self): method test_Commands_desc_line_has_trailing_whitespace (line 40) | def test_Commands_desc_line_has_trailing_whitespace(self): method test_Commands_no_description_passes (line 46) | def test_Commands_no_description_passes(self): method test_Commands_missing (line 55) | def test_Commands_missing(self): method test_Commands_in_resource_passes (line 61) | def test_Commands_in_resource_passes(self): FILE: tests/utils/dataref_parser.test.py class TestDatarefTxtParser (line 12) | class TestDatarefTxtParser(XPlaneTestCase): method test_DataRefs_empty (line 15) | def test_DataRefs_empty(self): method test_DataRefs_header_completely_wrong (line 21) | def test_DataRefs_header_completely_wrong(self): method test_DataRefs_header_file_version_is_one (line 27) | def test_DataRefs_header_file_version_is_one(self): method test_DataRefs_header_xp_version_is_wrong (line 34) | def test_DataRefs_header_xp_version_is_wrong(self): method test_DataRefs_invalid_array_type (line 40) | def test_DataRefs_invalid_array_type(self): method test_DataRefs_invalid_array_type_index_wrong (line 46) | def test_DataRefs_invalid_array_type_index_wrong(self): method test_DataRefs_invalid_iswritable (line 52) | def test_DataRefs_invalid_iswritable(self): method test_DataRefs_invalid_type_wrong (line 58) | def test_DataRefs_invalid_type_wrong(self): method test_DataRefs_line_starts_with_whitespace (line 64) | def test_DataRefs_line_starts_with_whitespace(self): method test_DataRefs_no_blank_second_line (line 70) | def test_DataRefs_no_blank_second_line(self): method test_DataRefs_no_datarefs_in_it (line 76) | def test_DataRefs_no_datarefs_in_it(self): method test_DataRefs_missing (line 82) | def test_DataRefs_missing(self): FILE: tests/utils/lights_column_name.test.py class TestColumnName (line 18) | class TestColumnName(XPlaneTestCase): method setUp (line 19) | def setUp(self): method test_ColumnName_enum (line 22) | def test_ColumnName_enum(self) -> None: method test_param_to_canonical_column_name (line 45) | def test_param_to_canonical_column_name(self)->None: method test_parsed_light_overload (line 58) | def test_parsed_light_overload(self) -> None: FILE: tests/utils/lights_parser.test.py class _ReplaceLightsFile (line 24) | class _ReplaceLightsFile: method __init__ (line 25) | def __init__(self, *, temporary_lights_txt_path:pathlib.Path=None, tem... method __enter__ (line 30) | def __enter__(self)->None: method __exit__ (line 42) | def __exit__(self, type, value, traceback)->None: class TestLightsParser (line 47) | class TestLightsParser(XPlaneTestCase): method setUp (line 48) | def setUp(self): method _test (line 60) | def _test(self, content:str, expected_errors:int)->None: method test_arguments_sorted_well (line 68) | def test_arguments_sorted_well(self): method test_real_lights_txt_parses (line 88) | def test_real_lights_txt_parses(self): method test_light_repeatable_cases_parse (line 96) | def test_light_repeatable_cases_parse(self)->None: method test_light_nonstandard_params_parse (line 106) | def test_light_nonstandard_params_parse(self)->None: method test_no_lights_file (line 116) | def test_no_lights_file(self)->None: method test_file_empty (line 125) | def test_file_empty(self)->None: method test_no_valid_records (line 131) | def test_no_valid_records(self)->None: method test_comments_ignored (line 148) | def test_comments_ignored(self)->None: method test_light_name_is_invalid (line 155) | def test_light_name_is_invalid(self)->None: method test_unknown_record_types (line 163) | def test_unknown_record_types(self)->None: method test_incomplete_record_type (line 183) | def test_incomplete_record_type(self): method test_arguments_not_standard_notation (line 199) | def test_arguments_not_standard_notation(self): method test_arguments_len_doesnt_match_type (line 207) | def test_arguments_len_doesnt_match_type(self): method test_arguments_noop_and_dref_not_in_correct_column (line 229) | def test_arguments_noop_and_dref_not_in_correct_column(self): method test_parameterization_arg_in_non_param_light (line 237) | def test_parameterization_arg_in_non_param_light(self): method test_unknown_parameterization_arg_in_param_light (line 245) | def test_unknown_parameterization_arg_in_param_light(self): method test_parameterization_arg_in_wrong_column (line 254) | def test_parameterization_arg_in_wrong_column(self): method test_light_param_count_is_not_an_int (line 273) | def test_light_param_count_is_not_an_int(self): method test_light_param_has_duplicate_params (line 286) | def test_light_param_has_duplicate_params(self): method test_duplicate_light_param_defs (line 298) | def test_duplicate_light_param_defs(self): method test_unknown_param_names (line 313) | def test_unknown_param_names(self): method test_has_light_param_def_but_no_overloads (line 322) | def test_has_light_param_def_but_no_overloads(self): FILE: tests/xplane_export.test.disabled.py class TestExportXPlaneFiles (line 9) | class TestExportXPlaneFiles(XPlaneTestCase): method setUp (line 10) | def setUp(self): method beforeEach (line 13) | def beforeEach(self): method test_export_layers_from_fresh_blend_file (line 16) | def test_export_layers_from_fresh_blend_file(self): method test_export_root_objects_from_fresh_blend_file (line 31) | def test_export_root_objects_from_fresh_blend_file(self): FILE: tests/xplane_types/xplane_bone/collect_animations.test.py class TestAnimations (line 10) | class TestAnimations(XPlaneTestCase): method test_bone_animations (line 11) | def test_bone_animations(self): FILE: tests/xplane_types/xplane_bone/object_matrices.test.py class TestMatrices (line 18) | class TestMatrices(XPlaneTestCase): method getBoneByBlenderName (line 19) | def getBoneByBlenderName(self, name: str, parent: xplane_bone.XPlaneBo... method test_bone_root_matrices (line 34) | def test_bone_root_matrices(self): method test_child_bone_matrices (line 59) | def test_child_bone_matrices(self): FILE: tests/xplane_types/xplane_file/bad_nested_exportable_roots.test.py class TestBadNestedExportableRoots (line 15) | class TestBadNestedExportableRoots(XPlaneTestCase): method test_nested_exportable_roots_caught (line 16) | def test_nested_exportable_roots_caught(self)->None: FILE: tests/xplane_types/xplane_file/create_from_layers.test.py class TestCreateFromLayers (line 8) | class TestCreateFromLayers(XPlaneTestCase): method test_create_files_from_single_layer (line 9) | def test_create_files_from_single_layer(self): FILE: tests/xplane_types/xplane_file/create_from_root_objects.test.py function filterLines (line 10) | def filterLines(line:Tuple[str])->bool: class TestCreateFromRootObjects (line 18) | class TestCreateFromRootObjects(XPlaneTestCase): method test_create_files_from_root_objects (line 19) | def test_create_files_from_root_objects(self): FILE: tests/xplane_types/xplane_file/current_scene_exclusive_collection.test.py function filterLines (line 11) | def filterLines(line): class TestCurrentSceneExclusiveCollection (line 15) | class TestCurrentSceneExclusiveCollection(XPlaneTestCase): method test_current_scene_exclusive_collection (line 16) | def test_current_scene_exclusive_collection(self): FILE: tests/xplane_types/xplane_file/frame_set_optimization.test.py class TestFrameSetOptimization (line 17) | class TestFrameSetOptimization(XPlaneTestCase): method test_time_test (line 18) | def test_time_test(self) -> None: method test_cache_results (line 34) | def test_cache_results(self) -> None: method _edit_export_edit_export (line 78) | def _edit_export_edit_export(self, suffix: str): method test_edit_export_animate_export_unittest (line 103) | def test_edit_export_animate_export_unittest(self): method test_edit_export_animate_export_operators (line 120) | def test_edit_export_animate_export_operators(self): method test_one_of_each_animation_type (line 142) | def test_one_of_each_animation_type(self): FILE: tests/xplane_types/xplane_file/performance_spheres_no_anim.test.disabled.py class TestPerformanceSpheresNoAnim (line 12) | class TestPerformanceSpheresNoAnim(XPlaneTestCase): method test_performance_spheres_no_anim (line 13) | def test_performance_spheres_no_anim(self): FILE: tests/xplane_types/xplane_file/recursive_collection_collects.test.py function filterLines (line 13) | def filterLines(line:Tuple[str])->bool: class TestRecursiveCollectionCollects (line 17) | class TestRecursiveCollectionCollects(XPlaneTestCase): method test_ExportableCollection (line 18) | def test_ExportableCollection(self)->None: method test_ExportableObject (line 28) | def test_ExportableObject(self)->None: method test_ExportableObjectArmatureCases (line 38) | def test_ExportableObjectArmatureCases(self)->None: FILE: tests/xplane_types/xplane_file/recursive_collection_edge_cases.test.py class TestRecursiveCollectionEdgeCases (line 16) | class TestRecursiveCollectionEdgeCases(XPlaneTestCase): method test_Exportable_no_convert_makes_bones (line 17) | def test_Exportable_no_convert_makes_bones(self)->None: method test_Exportable_out_of_collection_no_error (line 28) | def test_Exportable_out_of_collection_no_error(self): method test_Exportable_child_out_of_scene_warn_and_ignore (line 44) | def test_Exportable_child_out_of_scene_warn_and_ignore(self): FILE: tests/xplane_types/xplane_file/resource_path_new_file.test.py class TestResourcePathNewFile (line 16) | class TestResourcePathNewFile(XPlaneTestCase): method test_new_file_cwd_1_and_2 (line 17) | def test_new_file_cwd_1_and_2(self) -> None: FILE: tests/xplane_types/xplane_file/resource_paths.test.py class TestResourcePaths (line 22) | class TestResourcePaths(XPlaneTestCase): method test_resource_paths_cases_1_4 (line 23) | def test_resource_paths_cases_1_4(self) -> None: method test_resource_paths_cases_5_and_10 (line 33) | def test_resource_paths_cases_5_and_10(self) -> None: method test_errors_6_7 (line 43) | def test_errors_6_7(self) -> None: FILE: tests/xplane_types/xplane_file/root_object_offsets.test.py class TestRootObjectOffsets (line 11) | class TestRootObjectOffsets(XPlaneTestCase): method test_root_object_offsets (line 12) | def test_root_object_offsets(self): FILE: tests/xplane_types/xplane_file/root_object_offsets_animated.test.py class TestRootObjectOffsetsAnimated (line 10) | class TestRootObjectOffsetsAnimated(XPlaneTestCase): method test_root_object_offsets_animated (line 11) | def test_root_object_offsets_animated(self): FILE: tests/xplane_types/xplane_file/sort_by_weight.test.py class TestSortByWeight (line 19) | class TestSortByWeight(XPlaneTestCase): method test_sort_by_weight_objects (line 20) | def test_sort_by_weight_objects(self)->None: FILE: tests/xplane_types/xplane_file/split_parent/parent_out_of_collection_find_anim.test.py function filterLines (line 13) | def filterLines(line:Tuple[str])->bool: class TestParentOutOfCollectionFindAnim (line 19) | class TestParentOutOfCollectionFindAnim(XPlaneTestCase): method _runAssert (line 20) | def _runAssert(self)->None: method test_AAA (line 35) | def test_AAA(self)->None: method test_AAn (line 38) | def test_AAn(self)->None: method test_AnA (line 41) | def test_AnA(self)->None: method test_Ann (line 44) | def test_Ann(self)->None: method test_nAA (line 47) | def test_nAA(self)->None: method test_nAn (line 50) | def test_nAn(self)->None: method test_nnA (line 53) | def test_nnA(self)->None: FILE: tests/xplane_types/xplane_file/split_parent/parent_out_of_collection_index_preserved.test.py class TestParentOutOfCollectionIndexPreserved (line 14) | class TestParentOutOfCollectionIndexPreserved(XPlaneTestCase): method test_new_branch_index_0 (line 15) | def test_new_branch_index_0(self) -> None: method test_new_branch_index_1 (line 25) | def test_new_branch_index_1(self) -> None: method test_new_branch_index_2 (line 35) | def test_new_branch_index_2(self) -> None: method test_new_branch_index_last (line 45) | def test_new_branch_index_last(self) -> None: method test_1_reuse_of_parent (line 55) | def test_1_reuse_of_parent(self) -> None: method test_1_reuse_of_parent_out_of_order (line 65) | def test_1_reuse_of_parent_out_of_order(self) -> None: method test_2_reuse_of_parent (line 75) | def test_2_reuse_of_parent(self) -> None: FILE: tests/xplane_types/xplane_file/split_parent/parent_out_of_collection_no_attr_share.test.py class TestParentOutOfCollectionNoAttrShare (line 14) | class TestParentOutOfCollectionNoAttrShare(XPlaneTestCase): method test_HasManip_Exp (line 15) | def test_HasManip_Exp(self)->None: method test_HasVisuals_Exp (line 25) | def test_HasVisuals_Exp(self)->None: FILE: tests/xplane_types/xplane_file/split_parent/parent_out_of_collection_not_anim.test.py function filterLines (line 13) | def filterLines(line:Tuple[str])->bool: class ParentOutOfCollectionNotAnim (line 19) | class ParentOutOfCollectionNotAnim(XPlaneTestCase): method test_ExpCollection_not_really_animated (line 20) | def test_ExpCollection_not_really_animated(self)->None: FILE: tests/xplane_types/xplane_file/split_parent/parent_out_of_collection_snake_out.test.py class TestBlendFileNameCamelCaseNoPunctuation (line 14) | class TestBlendFileNameCamelCaseNoPunctuation(XPlaneTestCase): method test_SnakeOut_Exp (line 15) | def test_SnakeOut_Exp(self)->None: FILE: tests/xplane_types/xplane_file/split_parent/parent_out_of_collection_will_walk_up.test.py function filterLines (line 13) | def filterLines(line:Tuple[str])->bool: class TestParentOutOfCollectionWillWalkUp (line 18) | class TestParentOutOfCollectionWillWalkUp(XPlaneTestCase): method test_ExpCollWalkToColl (line 19) | def test_ExpCollWalkToColl(self)->None: method test_ExpCollWalkToExpColl (line 29) | def test_ExpCollWalkToExpColl(self)->None: method test_ExpCollWalkToMasterCollection (line 39) | def test_ExpCollWalkToMasterCollection(self)->None: method test_ExpCollWalkToRoot (line 49) | def test_ExpCollWalkToRoot(self)->None: method test_ParentOutOfScene (line 59) | def test_ParentOutOfScene(self)->None: FILE: tests/xplane_types/xplane_file/split_parent/parent_out_of_collection_workflows.test.py function filterLines (line 13) | def filterLines(line:Tuple[str])->bool: class TestParentOutOfCollectionWorkflows (line 19) | class TestParentOutOfCollectionWorkflows(XPlaneTestCase): method test_1_LandingGearCollection (line 20) | def test_1_LandingGearCollection(self)->None: method test_1_WheelCollection (line 29) | def test_1_WheelCollection(self)->None: method test_2_LandingGearExpObject (line 38) | def test_2_LandingGearExpObject(self)->None: method test_2_WheelCollection (line 47) | def test_2_WheelCollection(self)->None: method test_3_ButtonCollection (line 56) | def test_3_ButtonCollection(self)->None: method test_4_ExportableCollection (line 65) | def test_4_ExportableCollection(self)->None: FILE: tests/xplane_types/xplane_file/write.test.py class TestWriteXPlaneFiles (line 10) | class TestWriteXPlaneFiles(XPlaneTestCase): method setUp (line 11) | def setUp(self): method test_write_static (line 14) | def test_write_static(self): method test_write_trans_animated (line 20) | def test_write_trans_animated(self): method test_write_transrot_animated (line 24) | def test_write_transrot_animated(self):