Actually, on a second reading, couldn't you save on lines of code by having only `csr_row_scale` and `csr_column_scale`, then transpose if you find CSC? E.g.

```python
def _sparse_column_scale(X, scale):
    if is_csc:
        _csr_row_scale(X.T, scale)
    else:
        _csr_column_scale(X, scale)

def _sparse_row_scale(X, scale):
    if is_csc:
        _csr_row_scale(X.T, scale)
    else:
        _csr_column_scale(X, scale)
```