Sparse Ops Cleanup
State: closed

This is in preparation for implementing the direct-pinning discussed [here](https://github.com/pandas-dev/pandas/pull/19649#discussion_r167527010).  The main roadblock to that is SparseSeries which calls ops.add_special_arithmetic_methods twice.  This PR gets rid of the double-call, so the follow-up will be straight-forward.

A handful of cleanups are done here too:
 - unrelated docstring fix for TimedeltaIndex.replace
 - minor formatting improvements
 - remove an unused kwarg for DataFrame._compare_frame
 - remove a loop in add_flex_arithmetic_methods, replace with an assertion that it is unnecessary
 - fix names for some SparseArray method names, e.g. ATM `SparseArray.__eq__.__name__ == 'eq'`


Labels:
name: Sparse
description: Sparse Data Type
name: Clean

Comments:
# [Codecov](https://codecov.io/gh/pandas-dev/pandas/pull/19782?src=pr&el=h1) Report
> Merging [#19782](https://codecov.io/gh/pandas-dev/pandas/pull/19782?src=pr&el=desc) into [master](https://codecov.io/gh/pandas-dev/pandas/commit/af5e8ecc800493c0f2578daa25354ae32e08b544?src=pr&el=desc) will **increase** coverage by `<.01%`.
> The diff coverage is `100%`.

[![Impacted file tree graph](https://codecov.io/gh/pandas-dev/pandas/pull/19782/graphs/tree.svg?token=eZ4WkYLtcO&src=pr&width=650&height=150)](https://codecov.io/gh/pandas-dev/pandas/pull/19782?src=pr&el=tree)

```diff
@@            Coverage Diff             @@
##           master   #19782      +/-   ##
==========================================
+ Coverage   91.61%   91.61%   +<.01%     
==========================================
  Files         150      150              
  Lines       48887    48882       -5     
==========================================
- Hits        44786    44782       -4     
+ Misses       4101     4100       -1
```

| Flag | Coverage Δ | |
|---|---|---|
| #multiple | `89.98% <100%> (ø)` | :arrow_up: |
| #single | `41.79% <28.57%> (-0.01%)` | :arrow_down: |

| [Impacted Files](https://codecov.io/gh/pandas-dev/pandas/pull/19782?src=pr&el=tree) | Coverage Δ | |
|---|---|---|
| [pandas/core/indexes/timedeltas.py](https://codecov.io/gh/pandas-dev/pandas/pull/19782/diff?src=pr&el=tree#diff-cGFuZGFzL2NvcmUvaW5kZXhlcy90aW1lZGVsdGFzLnB5) | `90.56% <ø> (ø)` | :arrow_up: |
| [pandas/core/sparse/series.py](https://codecov.io/gh/pandas-dev/pandas/pull/19782/diff?src=pr&el=tree#diff-cGFuZGFzL2NvcmUvc3BhcnNlL3Nlcmllcy5weQ==) | `95.25% <ø> (-0.02%)` | :arrow_down: |
| [pandas/core/ops.py](https://codecov.io/gh/pandas-dev/pandas/pull/19782/diff?src=pr&el=tree#diff-cGFuZGFzL2NvcmUvb3BzLnB5) | `96.86% <100%> (+0.12%)` | :arrow_up: |
| [pandas/core/sparse/frame.py](https://codecov.io/gh/pandas-dev/pandas/pull/19782/diff?src=pr&el=tree#diff-cGFuZGFzL2NvcmUvc3BhcnNlL2ZyYW1lLnB5) | `94.81% <100%> (ø)` | :arrow_up: |
| [pandas/core/frame.py](https://codecov.io/gh/pandas-dev/pandas/pull/19782/diff?src=pr&el=tree#diff-cGFuZGFzL2NvcmUvZnJhbWUucHk=) | `97.22% <100%> (ø)` | :arrow_up: |
| [pandas/core/sparse/array.py](https://codecov.io/gh/pandas-dev/pandas/pull/19782/diff?src=pr&el=tree#diff-cGFuZGFzL2NvcmUvc3BhcnNlL2FycmF5LnB5) | `91.46% <100%> (+0.08%)` | :arrow_up: |

------

[Continue to review full report at Codecov](https://codecov.io/gh/pandas-dev/pandas/pull/19782?src=pr&el=continue).
> **Legend** - [Click here to learn more](https://docs.codecov.io/docs/codecov-delta)
> `Δ = absolute <relative> (impact)`, `ø = not affected`, `? = missing data`
> Powered by [Codecov](https://codecov.io/gh/pandas-dev/pandas/pull/19782?src=pr&el=footer). Last update [af5e8ec...2b81a5c](https://codecov.io/gh/pandas-dev/pandas/pull/19782?src=pr&el=lastupdated). Read the [comment docs](https://docs.codecov.io/docs/pull-request-comments).

thanks