parameters: (left, right)
return_statement: return True
docstring: Returns True if left shape is at least as specific as right shape.
docstring_summary: Returns True if left shape is at least as specific as right shape.
docstring_tokens: Returns True if left shape is at least as specific as right shape .
function: def _is_subshape(left, right):
    """Returns True if left shape is at least as specific as right shape."""
    # TODO(mdan): This code should be in TensorShape.
    # Note: this is not the same as TensorShape.is_compatible_with, which is
    # symmetric.
    # This code also duplicates _ShapeLessThanOrEqual from  control_flow_ops.py.
    if right.dims is None:
      return True
    if left.ndims != right.ndims:
      return False
    for ldim, rdim in zip(left.dims, right.dims):
      if rdim.value is not None and ldim.value != rdim.value:
        return False
    return True
function_tokens: def _is_subshape ( left , right ) : # TODO(mdan): This code should be in TensorShape. # Note: this is not the same as TensorShape.is_compatible_with, which is # symmetric. # This code also duplicates _ShapeLessThanOrEqual from  control_flow_ops.py. if right . dims is None : return True if left . ndims != right . ndims : return False for ldim , rdim in zip ( left . dims , right . dims ) : if rdim . value is not None and ldim . value != rdim . value : return False return True