{"record":{"id":"e00261444873bb72","repo":"apache/beam","slug":"name-is-not-yet-supported-reason-data-explanation","errorCode":null,"errorMessage":"'{name}' is not yet supported {reason_data['explanation']}","messagePattern":"'(.+?)' is not yet supported (.+?)","errorType":"exception","errorClass":"WontImplementError","httpStatus":null,"severity":"error","filePath":"sdks/python/apache_beam/dataframe/frame_base.py","lineNumber":400,"sourceCode":"           ``_WONT_IMPLEMENT_REASONS`` to generate a helpful exception message\n           and docstring for the method.\n      explanation: If specified, use this string as an explanation for why\n           this operation is not supported when generating an exception message\n           and docstring.\n  \"\"\"\n  if reason is not None:\n    if reason not in _WONT_IMPLEMENT_REASONS:\n      raise AssertionError(\n          f\"reason must be one of {list(_WONT_IMPLEMENT_REASONS.keys())}, \"\n          f\"got {reason!r}\")\n    reason_data = _WONT_IMPLEMENT_REASONS[reason]\n  elif explanation is not None:\n    reason_data = {'explanation': explanation}\n  else:\n    raise ValueError(\"One of (reason, explanation) must be specified\")\n\n  def wrapper(*args, **kwargs):\n    raise WontImplementError(\n        f\"'{name}' is not yet supported {reason_data['explanation']}\",\n        reason=reason)\n\n  wrapper.__name__ = name\n  wrapper.__doc__ = (\n      f\":meth:`{_prettify_pandas_type(base_type)}.{name}` is not yet supported \"\n      f\"in the Beam DataFrame API {reason_data['explanation']}\")\n\n  if 'url' in reason_data:\n    wrapper.__doc__ += f\"\\n\\n For more information see {reason_data['url']}.\"\n\n  return wrapper\n\n\ndef not_implemented_method(op, issue='20318', base_type=None):\n  \"\"\"Generate a stub method for ``op`` that simply raises a NotImplementedError.\n\n  For internal use only. No backwards compatibility guarantees.\"\"\"","sourceCodeStart":382,"sourceCodeEnd":418,"githubUrl":"https://github.com/apache/beam/blob/12126d8942aaf848030c478b4c6a28c6af861c66/sdks/python/apache_beam/dataframe/frame_base.py#L382-L418","documentation":"The @frame_base.with_keyboard (not_yet_implemented) decorator replaces a pandas method with a stub that always raises WontImplementError. This marks operations the Beam DataFrame API has decided it cannot or will not support (e.g. in-place mutation, update, or operations fundamentally incompatible with deferred/distributed execution).","triggerScenarios":"Calling any pandas method that is decorated as not-yet-implemented with an explicit reason, e.g. df.update(...), df.to_csv on a deferred frame, df.insert, in-place operations (inplace=True paths).","commonSituations":"Direct ports of pandas scripts that mutate dataframes in place; operations requiring side effects or eager evaluation; discovering unsupported methods while migrating large pandas codebases.","solutions":["Replace the unsupported call with a supported functional equivalent (e.g. use .where/.combine_first instead of update).","Materialize the data (to_pcollection/to a concrete pandas DataFrame) and perform the operation with real pandas.","Drop the operation and restructure the pipeline; consult the Beam DataFrame API roadmap for the method."],"exampleFix":"// before\ndf.update(other)\n// after\ndf = df.combine_first(other)\n# or materialize:\npdf = convert.to_pandas(df)\npdf.update(other)","handlingStrategy":"try-catch","validationCode":"UNSUPPORTED = {'update', 'insert', 'to_csv'}\nif method_name in UNSUPPORTED:\n    plan_alternative(method_name)","typeGuard":null,"tryCatchPattern":"from apache_beam.dataframe.frame_base import WontImplementError\ntry:\n    df.update(other)\nexcept WontImplementError:\n    df = df.combine_first(other)","preventionTips":["Run new pipelines on small local data first to surface WontImplementError early.","Check the Beam DataFrame API roadmap for methods marked not-supported.","Favor functional/immutable dataframe style (no inplace=True) when targeting Beam."],"tags":["python","apache-beam","dataframe-api","not-implemented"],"backgroundTag":"method-not-implemented","analyzedSha":"12126d8942aaf848030c478b4c6a28c6af861c66","analyzedAt":"2026-09-13T01:50:10.254Z","contentChangedAt":"2026-09-13T01:50:10.254Z","schemaVersion":2},"datasetVersion":"2026-09-14T16:17:12.679Z"}