def METHOD_NAME(obj: Any,
                       attrs: Mapping[Union[str, bytes], Any],
                       ) -> 'core.TreeNeuron':
    """Convert nat neuron/catmaidneuron to navis TreeNeuron."""
    # Data to skip
    DO_NOT_USE = ['nTrees', 'SegList', 'NumPoints', 'StartPoint', 'EndPoints',
                  'BranchPoints', 'NumSegs']
    # Construct neuron from just the nodes
    n = core.TreeNeuron(obj.pop('d'))
    # R uses diameter, not radius - let's fix that
    if 'radius' in n.nodes.columns:
        has_rad = n.nodes.radius.fillna(0) > 0
        n.nodes.loc[has_rad, 'radius'] = n.nodes.loc[has_rad, 'radius'] / 2
    # If this is a CATMAID neuron, we assume it's in nanometers
    if 'catmaidneuron' in attrs.get('class', []):
        n.units = 'nm'
    # Reuse ID
    if 'skid' in obj:
        skid = obj.pop('skid')
        if utils.is_iterable(skid):
            n.id = skid[0]
        else:
            n.id = skid
    # Try attaching other data
    for k, v in obj.items():
        if k in DO_NOT_USE:
            continue
        try:
            setattr(n, k, v)
        except BaseException:
            pass
    return n