Revisit `torch._six.string_classes` removal (#94709) (#97863)
Revisit `torch._six.string_classes` (which is `(str, bytes)`) removal: `isinstance(obj, string_classes) -> isinstance(obj, str)`.
Both `str` and `bytes` are `Sequence` classes.
```python
In [1]: from typing import Sequence
In [2]: issubclass(bytes, Sequence)
Out[2]: True
In [3]: issubclass(str, Sequence)
Out[3]: True
```
Re-add `bytes` to type guards like:
```python
def is_seq(obj):
return isinstance(obj, Sequence) and not isinstance(obj, (str, bytes))
```
Ref:
- https://github.com/pytorch/pytorch/pull/94709#issuecomment-1487282912
- #97737
- #97789
Pull Request resolved: https://github.com/pytorch/pytorch/pull/97863
Approved by: https://github.com/Skylion007, https://github.com/albanD