DOC: Add ignore-deprecate argument to validate_docstrings.py
State: closed

- [X] closes #23631 
- [x] tests added / passed
- [x] passes `git diff upstream/master -u -- "*.py" | flake8 --diff`
- [ ] whatsnew entry


Labels:
name: Docs
name: CI
description: Continuous Integration

Comments:
Hello @charlesdong1991! Thanks for updating the PR.

 - There are no PEP8 issues in the file [`scripts/tests/test_validate_docstrings.py`](https://github.com/charlesdong1991/pandas/blob/a3a040e39e692688a72402fefc6205f44957df59/scripts/tests/test_validate_docstrings.py) !

 - There are no PEP8 issues in the file [`scripts/validate_docstrings.py`](https://github.com/charlesdong1991/pandas/blob/a3a040e39e692688a72402fefc6205f44957df59/scripts/validate_docstrings.py) !



##### Comment last updated on November 13, 2018 at 12:55 Hours UTC
Thanks for the PR. Sorry the issue wasn't clear. Let me explain clear better...

`validate_docstrings.py` can be called for a single method, or for all them. If called for a single method, there is nothing to skip or do, as the most reasonable thing is to show all the errors for the requested docstring.

This is useful only when validating all the docstrings. That, instead of validating 100% of them, we can validate only the ones not deprecated (we don't care that much about errors in the docstrings of deprecated methods, as we are going to delete them in few weeks).

I think you did something different here, if I'm not wrong.

Btw, you should replace in the pull request description the `#xxxx` by the issue number you're fixing. Then, for every element in the checklist that applies, you should replace `[ ]` by `[X]`, so we know which items in the list you did.

Please let me know if you need additional info.
thank you @datapythonista  excited to learn from you!!
HI, @datapythonista  sorry to bother, i have struggle at this point for a while and tried quite many times to complete the pytest, however, seems that this deprecated is not working... https://travis-ci.org/charlesdong1991/pandas/jobs/454651182
as far as i understand, since the first one's deprecated is True, so error messages of this one will be ignored, thus exit_status should be 2 instead of 3... can you take a look and give me some hints? thanks a lot!
If I remember correctly, the exit status is the number of errors, not the number of docstrings failing. So, it should be 3, as one docstring generates 2 errors, the other 1, and the other is ignored because it's deprecated, so it will generate 0.

Does that make sense?
Hello, @datapythonista thank you very much for your quick response! Yes, i think exit status is the number of errors, however, in my case, i specified the error parameter to "ER01" which means it will only count the errors that are ER01, so in this case, only two will be chosen, because although the first docstring contains ER01, it's deprecated, so should not be counted. please correct me if i understand incorrectly.
I think the problem with the test is that the filtering is happening inside of `validate_all`, but you are actually testing `main` assuming that `validate_all` returns what's being mocked, which does not filter the deprecated docstrings. Does that make sense?
@datapythonista agree! i am thinking about the same, i also doubt if i should test the main... but i haven't found any test class or functions for validate_all? any suggestions on which is the best way to test? shall i create mock data as input and set deprecated to True, and then count the length of dictionary of outcome to see if the length is reduced accordingly to the deprecation? 
I do think we have tests where we mock `validate_one` and test `validate_all`. Can you take a look? If we don't, we should create them anyway, but I think you should have them implemented so you can base the new one on those.
Hi, @datapythonista sorry to bother you again, i made new changes on pytest, and yesterday it seemed work and passed tests... however, today when i am trying to complete PR, i see some other errors that should not be caused by my change...
https://travis-ci.org/charlesdong1991/pandas/jobs/454724363, is it because the master branch has been updated? should i do git reset to catch the latest master before pushing?
i removed the test part, and the error remains the same
(https://travis-ci.org/charlesdong1991/pandas/jobs/455118383), which looks `from pyarrow import feather` and others imported from pyarrow are wrong... do you have any thoughts how these errors appear? thanks so much, and sorry for the problems i bring... @datapythonista 
Can't check the travis log from my phone, but it happens some times that things fail because of things unrelated to your PR.

Just leave your changes ready, and merge master in to your branch after some hours since the failure, and see if it's fixed.

Sometimes it can be that Anaconda is failing to download, a dependency released a new version that breaks something, problems in the Travis servers, something broken merged into master...
# [Codecov](https://codecov.io/gh/pandas-dev/pandas/pull/23650?src=pr&el=h1) Report
> Merging [#23650](https://codecov.io/gh/pandas-dev/pandas/pull/23650?src=pr&el=desc) into [master](https://codecov.io/gh/pandas-dev/pandas/commit/c55057f79b0cbe47cf73f0fd8141e6c84f1e7370?src=pr&el=desc) will **increase** coverage by `<.01%`.
> The diff coverage is `n/a`.

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

```diff
@@            Coverage Diff             @@
##           master   #23650      +/-   ##
==========================================
+ Coverage   92.24%   92.25%   +<.01%     
==========================================
  Files         161      161              
  Lines       51336    51383      +47     
==========================================
+ Hits        47357    47404      +47     
  Misses       3979     3979
```

| Flag | Coverage Δ | |
|---|---|---|
| #multiple | `90.64% <ø> (ø)` | :arrow_up: |
| #single | `42.31% <ø> (-0.03%)` | :arrow_down: |

| [Impacted Files](https://codecov.io/gh/pandas-dev/pandas/pull/23650?src=pr&el=tree) | Coverage Δ | |
|---|---|---|
| [pandas/io/formats/format.py](https://codecov.io/gh/pandas-dev/pandas/pull/23650/diff?src=pr&el=tree#diff-cGFuZGFzL2lvL2Zvcm1hdHMvZm9ybWF0LnB5) | `97.87% <0%> (-0.01%)` | :arrow_down: |
| [pandas/core/strings.py](https://codecov.io/gh/pandas-dev/pandas/pull/23650/diff?src=pr&el=tree#diff-cGFuZGFzL2NvcmUvc3RyaW5ncy5weQ==) | `98.58% <0%> (ø)` | :arrow_up: |
| [pandas/plotting/\_core.py](https://codecov.io/gh/pandas-dev/pandas/pull/23650/diff?src=pr&el=tree#diff-cGFuZGFzL3Bsb3R0aW5nL19jb3JlLnB5) | `83.63% <0%> (ø)` | :arrow_up: |
| [pandas/core/indexing.py](https://codecov.io/gh/pandas-dev/pandas/pull/23650/diff?src=pr&el=tree#diff-cGFuZGFzL2NvcmUvaW5kZXhpbmcucHk=) | `93.87% <0%> (ø)` | :arrow_up: |
| [pandas/core/generic.py](https://codecov.io/gh/pandas-dev/pandas/pull/23650/diff?src=pr&el=tree#diff-cGFuZGFzL2NvcmUvZ2VuZXJpYy5weQ==) | `96.82% <0%> (ø)` | :arrow_up: |
| [pandas/core/arrays/categorical.py](https://codecov.io/gh/pandas-dev/pandas/pull/23650/diff?src=pr&el=tree#diff-cGFuZGFzL2NvcmUvYXJyYXlzL2NhdGVnb3JpY2FsLnB5) | `95.34% <0%> (ø)` | :arrow_up: |
| [pandas/core/window.py](https://codecov.io/gh/pandas-dev/pandas/pull/23650/diff?src=pr&el=tree#diff-cGFuZGFzL2NvcmUvd2luZG93LnB5) | `96.4% <0%> (ø)` | :arrow_up: |
| [pandas/core/arrays/datetimes.py](https://codecov.io/gh/pandas-dev/pandas/pull/23650/diff?src=pr&el=tree#diff-cGFuZGFzL2NvcmUvYXJyYXlzL2RhdGV0aW1lcy5weQ==) | `98.47% <0%> (ø)` | :arrow_up: |
| [pandas/core/frame.py](https://codecov.io/gh/pandas-dev/pandas/pull/23650/diff?src=pr&el=tree#diff-cGFuZGFzL2NvcmUvZnJhbWUucHk=) | `97.02% <0%> (ø)` | :arrow_up: |
| [pandas/core/panel.py](https://codecov.io/gh/pandas-dev/pandas/pull/23650/diff?src=pr&el=tree#diff-cGFuZGFzL2NvcmUvcGFuZWwucHk=) | `97.92% <0%> (+0.01%)` | :arrow_up: |
| ... and [3 more](https://codecov.io/gh/pandas-dev/pandas/pull/23650/diff?src=pr&el=tree-more) | |

------

[Continue to review full report at Codecov](https://codecov.io/gh/pandas-dev/pandas/pull/23650?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/23650?src=pr&el=footer). Last update [c55057f...f20fee1](https://codecov.io/gh/pandas-dev/pandas/pull/23650?src=pr&el=lastupdated). Read the [comment docs](https://docs.codecov.io/docs/pull-request-comments).

Hi, @datapythonista from my side, it looks like it passed all, 
https://travis-ci.org/charlesdong1991/pandas, however, the check on master still fails 
see https://travis-ci.org/pandas-dev/pandas/jobs/455383112, so can you take a look at what happens on master, and suggest a solution of how this can be fixed? thank you very much!
@datapythonista yeah, it passed! thx very much for your help!!
Tanks for the contribution @charlesdong1991. I'll let another maintainer double check the changes and merge them, but all good from my side.
@jorisvandenbossche or @TomAugspurger