{"record":{"id":"891acaea75b04492","repo":"arduino/Arduino","slug":"no-such-move-r","errorCode":null,"errorMessage":"no such move, %r","messagePattern":"no such move, %r","errorType":"exception","errorClass":"AttributeError","httpStatus":null,"severity":"warning","filePath":"arduino-core/src/processing/app/i18n/python/requests/packages/urllib3/packages/six.py","lineNumber":202,"sourceCode":"del attr\n\nmoves = sys.modules[__name__ + \".moves\"] = _MovedItems(\"moves\")\n\n\ndef add_move(move):\n    \"\"\"Add an item to six.moves.\"\"\"\n    setattr(_MovedItems, move.name, move)\n\n\ndef remove_move(name):\n    \"\"\"Remove item from six.moves.\"\"\"\n    try:\n        delattr(_MovedItems, name)\n    except AttributeError:\n        try:\n            del moves.__dict__[name]\n        except KeyError:\n            raise AttributeError(\"no such move, %r\" % (name,))\n\n\nif PY3:\n    _meth_func = \"__func__\"\n    _meth_self = \"__self__\"\n\n    _func_code = \"__code__\"\n    _func_defaults = \"__defaults__\"\n\n    _iterkeys = \"keys\"\n    _itervalues = \"values\"\n    _iteritems = \"items\"\nelse:\n    _meth_func = \"im_func\"\n    _meth_self = \"im_self\"\n\n    _func_code = \"func_code\"\n    _func_defaults = \"func_defaults\"","sourceCodeStart":184,"sourceCodeEnd":220,"githubUrl":"https://github.com/arduino/Arduino/blob/a0df6e0e83b652c72bc78b0a1376c54d6ebc3bee/arduino-core/src/processing/app/i18n/python/requests/packages/urllib3/packages/six.py#L184-L220","documentation":"six.remove_move(name) removes a name from six's MovedItems/moves mapping and raises AttributeError('no such move, %r') when the name is not registered — neither as an attribute of _MovedItems nor as a key in moves.__dict__. This API exists for third parties to undo specific moves and only fails when given an unknown or already-removed name.","triggerScenarios":"Calling six.remove_move('name_not_in_six'); calling remove_move twice for the same name; passing names that exist only on a different six version's move map.","commonSituations":"Compatibility shims uninstalling six moves that were already removed; copy-pasted cleanup code referencing a misspelled move name; six version differences between environments.","solutions":["Verify the name first: `if hasattr(six.moves, name): six.remove_move(name)`.","Wrap in try/except AttributeError and treat absence as success.","Check six.__version__ to confirm the move exists in your installed six."],"exampleFix":"// before\nsix.remove_move('zip')\n// after\nif hasattr(six.moves, 'zip'):\n    six.remove_move('zip')","handlingStrategy":"try-catch","validationCode":"if not hasattr(six.moves, name):\n    return  # nothing to remove","typeGuard":"def move_exists(name):\n    return hasattr(six._MovedItems, name) or name in six.moves.__dict__","tryCatchPattern":"try:\n    six.remove_move(name)\nexcept AttributeError:\n    pass  # move already removed or never existed","preventionTips":["Guard remove_move with hasattr(six.moves, name).","Make move-removal idempotent by swallowing AttributeError.","Pin your six version; move names vary across six releases."],"tags":["python","six","attributeerror","compatibility"],"backgroundTag":"resource-not-found","analyzedSha":"a0df6e0e83b652c72bc78b0a1376c54d6ebc3bee","analyzedAt":"2026-09-06T10:13:38.901Z","contentChangedAt":"2026-09-06T10:13:38.901Z","schemaVersion":2},"datasetVersion":"2026-09-14T05:17:10.506Z"}