Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

MAINT: Cleanup pandas/src/parser #14740

Merged
merged 1 commit into from
Dec 6, 2016

Conversation

gfyoung
Copy link
Member

@gfyoung gfyoung commented Nov 25, 2016

Remove dead code and reformat for style using Google's C++ style guide (found here).

Also adds line of code to install fork of Google's C++ style checker (source code here) when doing style checks in Travis.

@jreback jreback added the IO CSV read_csv, to_csv label Nov 25, 2016
// Process string of digits
while (isdigit(*p))
{
// Process string of digits.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

so this style seems to be prevalent. we don't have c-style checkers, so if you are changing this, nothing to stop someone else to change it back / another way.

can we clarify what is the correct style, maybe even add a checker in? (IIRC we should be using google c styles)

Copy link
Member Author

@gfyoung gfyoung Nov 25, 2016

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@jreback : I cannot find any style checker that I feel comfortable throwing into this codebase. I also cannot find any Google-related C style guideline. But if I had to choose a C style guideline to follow, might I suggest that of the Linux kernel? (see here) 😄

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copy link
Member Author

@gfyoung gfyoung Nov 25, 2016

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

  1. Code has not been updated in some time.
  2. Code is also not Python 3 compatible, nor is its dependency.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

what are you referring? this is just a program that we run so why does it matter if it's updated or not (and 4 months is pretty recent)
how does it matter if it's not in python 3?
it's checking c code

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Because the checker is in Python. Also, that's inconvenient for people who are using Python 3 for development and / or personal use.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

i don't think this is a big deal
you simply create another env

of course open to other suggestions - but being in python makes this cross platform

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hmm...I would keep looking. Tool doesn't seem too extensive AFAICT (see here)

Copy link
Member Author

@gfyoung gfyoung Nov 25, 2016

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@jreback : I think we might be able to use this, but I haven't been able to get it to work properly at the moment. In the meantime, I would push for just merging this first and then addressing style guide checker later.

@codecov-io
Copy link

codecov-io commented Nov 25, 2016

Current coverage is 85.28% (diff: 100%)

Merging #14740 into master will increase coverage by <.01%

@@             master     #14740   diff @@
==========================================
  Files           144        144          
  Lines         50953      50968    +15   
  Methods           0          0          
  Messages          0          0          
  Branches          0          0          
==========================================
+ Hits          43452      43467    +15   
  Misses         7501       7501          
  Partials          0          0          

Powered by Codecov. Last update 4378f82...b2c4211

@jreback jreback added the Clean label Nov 25, 2016
@gfyoung gfyoung force-pushed the tokenizer-cleanup branch 2 times, most recently from 481dd18 to ec66af4 Compare November 25, 2016 21:03
@gfyoung gfyoung changed the title MAINT: Remove dead code from tokenizer.c MAINT: Cleanup pandas/src/parser Nov 25, 2016
@gfyoung
Copy link
Member Author

gfyoung commented Nov 26, 2016

@jreback : All green, so ready to merge if there are no other concerns.

@jreback
Copy link
Contributor

jreback commented Nov 28, 2016

@gfyoung can you add the checker in, you can even do it in another PR so we can see the failures.

@gfyoung
Copy link
Member Author

gfyoung commented Nov 28, 2016

@jreback : Here's the command I ran (after doing pip install cpplint, source code here):

cpplint --extensions=c --headers=h /home/User/Repositories/pandas/pandas/src/parser/tokenizer.c

Note: you can disable extensions: e.g. --filter=-readability/casting,-runtime/int. If you want to pipe to a file instead of everything on the terminal, just append &> <filename>

Here's what the linter is complaining about right now:

/home/User/Repositories/pandas/pandas/src/parser/tokenizer.c:20:  Include the directory when naming .h files  [build/include_subdir] [4]
/home/User/Repositories/pandas/pandas/src/parser/tokenizer.c:48:  Using C-style cast.  Use reinterpret_cast<coliter_t *>(...) instead  [readability/casting] [4]
/home/User/Repositories/pandas/pandas/src/parser/tokenizer.c:133:  Using C-style cast.  Use reinterpret_cast<parser_t *>(...) instead  [readability/casting] [4]
/home/User/Repositories/pandas/pandas/src/parser/tokenizer.c:136:  Using C-style cast.  Use reinterpret_cast<void *>(...) instead  [readability/casting] [4]
/home/User/Repositories/pandas/pandas/src/parser/tokenizer.c:137:  Using C-style cast.  Use reinterpret_cast<void *>(...) instead  [readability/casting] [4]
/home/User/Repositories/pandas/pandas/src/parser/tokenizer.c:138:  Using C-style cast.  Use reinterpret_cast<void *>(...) instead  [readability/casting] [4]
/home/User/Repositories/pandas/pandas/src/parser/tokenizer.c:139:  Using C-style cast.  Use reinterpret_cast<void *>(...) instead  [readability/casting] [4]
/home/User/Repositories/pandas/pandas/src/parser/tokenizer.c:140:  Using C-style cast.  Use reinterpret_cast<void *>(...) instead  [readability/casting] [4]
/home/User/Repositories/pandas/pandas/src/parser/tokenizer.c:148:  Using C-style cast.  Use reinterpret_cast<void *>(...) instead  [readability/casting] [4]
/home/User/Repositories/pandas/pandas/src/parser/tokenizer.c:149:  Using C-style cast.  Use reinterpret_cast<void *>(...) instead  [readability/casting] [4]
/home/User/Repositories/pandas/pandas/src/parser/tokenizer.c:152:  Using C-style cast.  Use reinterpret_cast<kh_int64_t *>(...) instead  [readability/casting] [4]
/home/User/Repositories/pandas/pandas/src/parser/tokenizer.c:185:  Using C-style cast.  Use reinterpret_cast<char *>(...) instead  [readability/casting] [4]
/home/User/Repositories/pandas/pandas/src/parser/tokenizer.c:196:  Using C-style cast.  Use reinterpret_cast<char **>(...) instead  [readability/casting] [4]
/home/User/Repositories/pandas/pandas/src/parser/tokenizer.c:197:  Using C-style cast.  Use reinterpret_cast<int *>(...) instead  [readability/casting] [4]
/home/User/Repositories/pandas/pandas/src/parser/tokenizer.c:202:  Using C-style cast.  Use reinterpret_cast<int *>(...) instead  [readability/casting] [4]
/home/User/Repositories/pandas/pandas/src/parser/tokenizer.c:204:  Using C-style cast.  Use reinterpret_cast<int *>(...) instead  [readability/casting] [4]
/home/User/Repositories/pandas/pandas/src/parser/tokenizer.c:254:  Using C-style cast.  Use reinterpret_cast<void *>(...) instead  [readability/casting] [4]
/home/User/Repositories/pandas/pandas/src/parser/tokenizer.c:258:  Using C-style cast.  Use reinterpret_cast<char *>(...) instead  [readability/casting] [4]
/home/User/Repositories/pandas/pandas/src/parser/tokenizer.c:285:  Using C-style cast.  Use reinterpret_cast<char **>(...) instead  [readability/casting] [4]
/home/User/Repositories/pandas/pandas/src/parser/tokenizer.c:301:  Using C-style cast.  Use reinterpret_cast<void *>(...) instead  [readability/casting] [4]
/home/User/Repositories/pandas/pandas/src/parser/tokenizer.c:306:  Using C-style cast.  Use reinterpret_cast<int *>(...) instead  [readability/casting] [4]
/home/User/Repositories/pandas/pandas/src/parser/tokenizer.c:315:  Using C-style cast.  Use reinterpret_cast<int *>(...) instead  [readability/casting] [4]
/home/User/Repositories/pandas/pandas/src/parser/tokenizer.c:328:  Using C-style cast.  Use reinterpret_cast<void *>(...) instead  [readability/casting] [4]
/home/User/Repositories/pandas/pandas/src/parser/tokenizer.c:333:  Using C-style cast.  Use reinterpret_cast<int *>(...) instead  [readability/casting] [4]
/home/User/Repositories/pandas/pandas/src/parser/tokenizer.c:348:  Using C-style cast.  Use reinterpret_cast<char *>(...) instead  [readability/casting] [4]
/home/User/Repositories/pandas/pandas/src/parser/tokenizer.c:364:  Using C-style cast.  Use reinterpret_cast<char *>(...) instead  [readability/casting] [4]
/home/User/Repositories/pandas/pandas/src/parser/tokenizer.c:400:  Using C-style cast.  Use reinterpret_cast<char *>(...) instead  [readability/casting] [4]
/home/User/Repositories/pandas/pandas/src/parser/tokenizer.c:401:  Almost always, snprintf is better than strcpy  [runtime/printf] [4]
/home/User/Repositories/pandas/pandas/src/parser/tokenizer.c:406:  Using C-style cast.  Use reinterpret_cast<char *>(...) instead  [readability/casting] [4]
/home/User/Repositories/pandas/pandas/src/parser/tokenizer.c:407:  Almost always, snprintf is better than strcpy  [runtime/printf] [4]
/home/User/Repositories/pandas/pandas/src/parser/tokenizer.c:458:  Using C-style cast.  Use reinterpret_cast<char *>(...) instead  [readability/casting] [4]
/home/User/Repositories/pandas/pandas/src/parser/tokenizer.c:470:  Using C-style cast.  Use reinterpret_cast<char *>(...) instead  [readability/casting] [4]
/home/User/Repositories/pandas/pandas/src/parser/tokenizer.c:471:  Never use sprintf. Use snprintf instead.  [runtime/printf] [5]
/home/User/Repositories/pandas/pandas/src/parser/tokenizer.c:501:  Using C-style cast.  Use reinterpret_cast<char *>(...) instead  [readability/casting] [4]
/home/User/Repositories/pandas/pandas/src/parser/tokenizer.c:502:  Never use sprintf. Use snprintf instead.  [runtime/printf] [5]
/home/User/Repositories/pandas/pandas/src/parser/tokenizer.c:528:  Using C-style cast.  Use reinterpret_cast<void *>(...) instead  [readability/casting] [4]
/home/User/Repositories/pandas/pandas/src/parser/tokenizer.c:531:  Using C-style cast.  Use reinterpret_cast<kh_int64_t *>(...) instead  [readability/casting] [4]
/home/User/Repositories/pandas/pandas/src/parser/tokenizer.c:561:  Using C-style cast.  Use reinterpret_cast<char *>(...) instead  [readability/casting] [4]
/home/User/Repositories/pandas/pandas/src/parser/tokenizer.c:564:  Never use sprintf. Use snprintf instead.  [runtime/printf] [5]
/home/User/Repositories/pandas/pandas/src/parser/tokenizer.c:567:  Never use sprintf. Use snprintf instead.  [runtime/printf] [5]
/home/User/Repositories/pandas/pandas/src/parser/tokenizer.c:590:  Using C-style cast.  Use reinterpret_cast<char *>(...) instead  [readability/casting] [4]
/home/User/Repositories/pandas/pandas/src/parser/tokenizer.c:591:  Never use sprintf. Use snprintf instead.  [runtime/printf] [5]
/home/User/Repositories/pandas/pandas/src/parser/tokenizer.c:675:  Using C-style cast.  Use reinterpret_cast<kh_int64_t *>(...) instead  [readability/casting] [4]
/home/User/Repositories/pandas/pandas/src/parser/tokenizer.c:676:  Using C-style cast.  Use reinterpret_cast<kh_int64_t *>(...) instead  [readability/casting] [4]
/home/User/Repositories/pandas/pandas/src/parser/tokenizer.c:684:  Use int16/int64/etc, rather than the C type long  [runtime/int] [4]
/home/User/Repositories/pandas/pandas/src/parser/tokenizer.c:991:  Using C-style cast.  Use reinterpret_cast<char *>(...) instead  [readability/casting] [4]
/home/User/Repositories/pandas/pandas/src/parser/tokenizer.c:992:  Never use sprintf. Use snprintf instead.  [runtime/printf] [5]
/home/User/Repositories/pandas/pandas/src/parser/tokenizer.c:1101:  Using C-style cast.  Use reinterpret_cast<char *>(...) instead  [readability/casting] [4]
/home/User/Repositories/pandas/pandas/src/parser/tokenizer.c:1107:  Using C-style cast.  Use reinterpret_cast<char *>(...) instead  [readability/casting] [4]
/home/User/Repositories/pandas/pandas/src/parser/tokenizer.c:1108:  Never use sprintf. Use snprintf instead.  [runtime/printf] [5]
/home/User/Repositories/pandas/pandas/src/parser/tokenizer.c:1147:  Using C-style cast.  Use reinterpret_cast<void *>(...) instead  [readability/casting] [4]
/home/User/Repositories/pandas/pandas/src/parser/tokenizer.c:1196:  Using C-style cast.  Use reinterpret_cast<void *>(...) instead  [readability/casting] [4]
/home/User/Repositories/pandas/pandas/src/parser/tokenizer.c:1200:  Using C-style cast.  Use reinterpret_cast<char **>(...) instead  [readability/casting] [4]
/home/User/Repositories/pandas/pandas/src/parser/tokenizer.c:1202:  Using C-style cast.  Use reinterpret_cast<void *>(...) instead  [readability/casting] [4]
/home/User/Repositories/pandas/pandas/src/parser/tokenizer.c:1206:  Using C-style cast.  Use reinterpret_cast<int *>(...) instead  [readability/casting] [4]
/home/User/Repositories/pandas/pandas/src/parser/tokenizer.c:1221:  Using C-style cast.  Use reinterpret_cast<void *>(...) instead  [readability/casting] [4]
/home/User/Repositories/pandas/pandas/src/parser/tokenizer.c:1231:  Using C-style cast.  Use reinterpret_cast<char *>(...) instead  [readability/casting] [4]
/home/User/Repositories/pandas/pandas/src/parser/tokenizer.c:1234:  Using C-style cast.  Use reinterpret_cast<char *>(...) instead  [readability/casting] [4]
/home/User/Repositories/pandas/pandas/src/parser/tokenizer.c:1247:  Using C-style cast.  Use reinterpret_cast<void *>(...) instead  [readability/casting] [4]
/home/User/Repositories/pandas/pandas/src/parser/tokenizer.c:1251:  Using C-style cast.  Use reinterpret_cast<int *>(...) instead  [readability/casting] [4]
/home/User/Repositories/pandas/pandas/src/parser/tokenizer.c:1253:  Using C-style cast.  Use reinterpret_cast<void *>(...) instead  [readability/casting] [4]
/home/User/Repositories/pandas/pandas/src/parser/tokenizer.c:1257:  Using C-style cast.  Use reinterpret_cast<int *>(...) instead  [readability/casting] [4]
/home/User/Repositories/pandas/pandas/src/parser/tokenizer.c:1295:  Using C-style cast.  Use static_cast<int>(...) instead  [readability/casting] [4]
/home/User/Repositories/pandas/pandas/src/parser/tokenizer.c:1348:  Use int16/int64/etc, rather than the C type long  [runtime/int] [4]
/home/User/Repositories/pandas/pandas/src/parser/tokenizer.c:1371:  Almost always, snprintf is better than strcpy  [runtime/printf] [4]
/home/User/Repositories/pandas/pandas/src/parser/tokenizer.c:1399:  Use int16/int64/etc, rather than the C type long  [runtime/int] [4]
/home/User/Repositories/pandas/pandas/src/parser/tokenizer.c:1407:  Using C-style cast.  Use static_cast<int>(...) instead  [readability/casting] [4]
/home/User/Repositories/pandas/pandas/src/parser/tokenizer.c:1465:  Using C-style cast.  Use reinterpret_cast<char *>(...) instead  [readability/casting] [4]
/home/User/Repositories/pandas/pandas/src/parser/tokenizer.c:1589:  Using C-style cast.  Use reinterpret_cast<char *>(...) instead  [readability/casting] [4]
Done processing /home/User/Repositories/pandas/pandas/src/parser/tokenizer.c
Total errors found: 69

@gfyoung
Copy link
Member Author

gfyoung commented Nov 28, 2016

Immediate thoughts:

  • C-style casting concern is not related to us, so we can disable readability/casting

  • int16/int64 not really problematic I think because it's C, so I think we can also disable runtime/int

  • A little confused why the build/include_subdir is a problem since tokenizer.h is in the same dir

  • The snprintf vs sprintf is actually valid one IMO because it protects against buffer overflow, and I think we actually have been violating this one pretty frequently. For example, when I limit the error message to sizeof(self->error_msg), ALL of the error messages get truncated.

Related SO here

  • Similar opinion about snprintf vs. strcpy

@gfyoung gfyoung force-pushed the tokenizer-cleanup branch 2 times, most recently from 811d248 to c99cb2c Compare December 1, 2016 02:49
@gfyoung
Copy link
Member Author

gfyoung commented Dec 4, 2016

@jreback : Any thoughts / updates on this?

@jreback
Copy link
Contributor

jreback commented Dec 4, 2016

i would like to include a checker for the syntax

@gfyoung
Copy link
Member Author

gfyoung commented Dec 4, 2016

@jreback : That doesn't address the question about the syntax errors I'm getting from it though.

@jreback
Copy link
Contributor

jreback commented Dec 4, 2016

not sure what you mean

if this is changed gen we need a checker to assure it is not changed just for style

@gfyoung
Copy link
Member Author

gfyoung commented Dec 4, 2016

Right, but we need to figure which things to actually respect. See the errors that I get out above. We can't just throw a style checker in without knowing what we're checking, especially since this is geared towards C++ and not C in particular.

@jreback
Copy link
Contributor

jreback commented Dec 4, 2016

as I said above, let's find a workable checker then. its actually only important this actually runs on linux/osx as that is where it is checked (of course if it works on windows that is great but not necessary).

We can start with an optional check and make it strict as needed.

@gfyoung
Copy link
Member Author

gfyoung commented Dec 4, 2016

@jreback : So you mean just include the checker but don't fail if the style check fails right now?

@jreback
Copy link
Contributor

jreback commented Dec 4, 2016

well I would like to fix this, but only if we have a checker

@gfyoung
Copy link
Member Author

gfyoung commented Dec 4, 2016

@jreback : Well, we do have a checker, but before we "fix," need to figure which "errors" are actually valid for our purposes (see above).

@jreback
Copy link
Contributor

jreback commented Dec 4, 2016

@gfyoung sure. so put together a minimal set of checks and change the code to match those. over time we can become more strict by adding options (or requiring more checks) in the linter.

@gfyoung
Copy link
Member Author

gfyoung commented Dec 4, 2016

@jreback : Fair enough. Will start with the io/parser files and can then expand later

@gfyoung gfyoung force-pushed the tokenizer-cleanup branch 2 times, most recently from b35e4a1 to 4dc1f73 Compare December 5, 2016 05:02
@gfyoung
Copy link
Member Author

gfyoung commented Dec 5, 2016

@jreback : Successfully incorporated linter on Travis. Ready to merge if there are no other concerns.

Remove dead code and reformat for
style using Google's C++ style guide.

Also adds Google's cpplint (fork) to
the style checking for Travis.
@jreback
Copy link
Contributor

jreback commented Dec 6, 2016

lgtm. ping on green.

@jorisvandenbossche jorisvandenbossche added this to the 0.20.0 milestone Dec 6, 2016
@gfyoung
Copy link
Member Author

gfyoung commented Dec 6, 2016

@jreback : Everybody is green. Ready to merge if there are no other concerns.

Also, as a follow-up, should all of these files here be fair game for the linter in the future?

@jreback
Copy link
Contributor

jreback commented Dec 6, 2016

@gfyoung I would do those additional files, but exclude src/headers & src/klib

IOW include src/datetime

@gfyoung
Copy link
Member Author

gfyoung commented Dec 6, 2016

@jreback : Sounds good. I'll do that as a follow-up then after this is merged.

@jreback jreback merged commit 846e9e5 into pandas-dev:master Dec 6, 2016
@jreback
Copy link
Contributor

jreback commented Dec 6, 2016

thanks @gfyoung

@jorisvandenbossche you may need to pick this for 0.19.2 (if we have fixes that depend on it).

@gfyoung gfyoung deleted the tokenizer-cleanup branch December 6, 2016 18:46
@gfyoung
Copy link
Member Author

gfyoung commented Dec 6, 2016

So from the list in pandas/src:

  • datetime : YES
  • headers : NO
  • klib : NO
  • msgpack : ?? (leaning no)
  • parser : YES
  • ujson : ?? (leaning no?)
  • period_helper.c : ?? (leaning no since borrowed)

@jreback : Can you confirm the other three?

@jreback
Copy link
Contributor

jreback commented Dec 6, 2016

msgpack -> no
ujson -> yes (its local code, originally came from ujson though)

not sure where period_helper.c came from (but prob ok to clean)

@jorisvandenbossche
Copy link
Member

@jreback yes, it will depend on whether there will still be fixes to the parser for 0.19.2 and how complex they are. But if possible, would like to keep this for 0.20.0 as it's purely clean-up and not needed for 0.19.2

@gfyoung
Copy link
Member Author

gfyoung commented Dec 6, 2016

@jreback : period_helper.c came from scikit, but as I am linting datetime (derived from NumPy), I suppose why not.

gfyoung added a commit to forking-repos/pandas that referenced this pull request Dec 7, 2016
"cpplint" was introduced pandas-devgh-14740, and
this commit extends to check other *.c
and *.h files in the pandas repo.

Currently, they all reside in pandas/src,
and this commit expands the lint to check
all of the following:

1) datetime (dir)
2) ujson (dir)
3) period_helper.c
4) All header files

The parser directory was handled in pandas-devgh-14740,
and the others have been deliberately omitted.
gfyoung added a commit to forking-repos/pandas that referenced this pull request Dec 7, 2016
"cpplint" was introduced pandas-devgh-14740, and
this commit extends to check other *.c
and *.h files in the pandas repo.

Currently, they all reside in pandas/src,
and this commit expands the lint to check
all of the following:

1) datetime (dir)
2) ujson (dir)
3) period_helper.c
4) All header files

The parser directory was handled in pandas-devgh-14740,
and the others have been deliberately omitted.
yarikoptic added a commit to neurodebian/pandas that referenced this pull request Dec 12, 2016
* commit 'v0.19.0-174-g81a2f79': (156 commits)
  BLD: escape GH_TOKEN in build_docs
  TST: Correct results with np.size and crosstab (pandas-dev#4003) (pandas-dev#14755)
  Frame benchmarking sum instead of mean (pandas-dev#14824)
  CLN: lint of test_base.py
  BUG: Allow TZ-aware DatetimeIndex in merge_asof() (pandas-dev#14844)
  BUG: GH11847 Unstack with mixed dtypes coerces everything to object
  TST: skip testing on windows for specific formatting which sometimes hangs (pandas-dev#14851)
  BLD: try new gh token for pandas-docs
  CLN/PERF: clean-up of the benchmarks (pandas-dev#14099)
  ENH: add timedelta as valid type for interpolate with method='time' (pandas-dev#14799)
  DOC: add section on groupby().rolling/expanding/resample (pandas-dev#14801)
  TST: add test to confirm GH14606 (specify category dtype for empty) (pandas-dev#14752)
  BLD: use org name in build-docs.sh
  BF(TST): use = (native) instead of < (little endian) for target data types (pandas-dev#14832)
  ENH: Introduce UnsortedIndexError  GH11897 (pandas-dev#14762)
  ENH: Add the ability to have a separate title for each subplot when plotting (pandas-dev#14753)
  DOC: Fix grammar and formatting typos (pandas-dev#14803)
  BLD: try new build credentials for pandas-docs
  TST: Test pivot with categorical data
  MAINT: Cleanup pandas/src/parser (pandas-dev#14740)
  ...
yarikoptic added a commit to neurodebian/pandas that referenced this pull request Dec 12, 2016
release 0.19.1 was from release branch

* releases: (156 commits)
  BLD: escape GH_TOKEN in build_docs
  TST: Correct results with np.size and crosstab (pandas-dev#4003) (pandas-dev#14755)
  Frame benchmarking sum instead of mean (pandas-dev#14824)
  CLN: lint of test_base.py
  BUG: Allow TZ-aware DatetimeIndex in merge_asof() (pandas-dev#14844)
  BUG: GH11847 Unstack with mixed dtypes coerces everything to object
  TST: skip testing on windows for specific formatting which sometimes hangs (pandas-dev#14851)
  BLD: try new gh token for pandas-docs
  CLN/PERF: clean-up of the benchmarks (pandas-dev#14099)
  ENH: add timedelta as valid type for interpolate with method='time' (pandas-dev#14799)
  DOC: add section on groupby().rolling/expanding/resample (pandas-dev#14801)
  TST: add test to confirm GH14606 (specify category dtype for empty) (pandas-dev#14752)
  BLD: use org name in build-docs.sh
  BF(TST): use = (native) instead of < (little endian) for target data types (pandas-dev#14832)
  ENH: Introduce UnsortedIndexError  GH11897 (pandas-dev#14762)
  ENH: Add the ability to have a separate title for each subplot when plotting (pandas-dev#14753)
  DOC: Fix grammar and formatting typos (pandas-dev#14803)
  BLD: try new build credentials for pandas-docs
  TST: Test pivot with categorical data
  MAINT: Cleanup pandas/src/parser (pandas-dev#14740)
  ...
jreback pushed a commit that referenced this pull request Dec 15, 2016
`cpplint` was introduced #14740, and this commit extends to check
other `*.c` and `*.h` files.    Currently, they all reside in
`pandas/src`, and this commit expands the lint to check all of the
following:    1) `datetime` (dir)  2) `ujson` (dir)  3)
`period_helper.c`  4) `All header files`    The parser directory was
handled in #14740, and the others have been deliberately omitted per
the discussion <a href="https://github.com/pandas-
dev/pandas/pull/14740#issuecomment-265260209">here</a>.

Author: gfyoung <gfyoung17@gmail.com>

Closes #14814 from gfyoung/c-style-continue and squashes the following commits:

27d4d46 [gfyoung] MAINT: Style check *.c and *.h files
ischurov pushed a commit to ischurov/pandas that referenced this pull request Dec 19, 2016
`cpplint` was introduced pandas-dev#14740, and this commit extends to check
other `*.c` and `*.h` files.    Currently, they all reside in
`pandas/src`, and this commit expands the lint to check all of the
following:    1) `datetime` (dir)  2) `ujson` (dir)  3)
`period_helper.c`  4) `All header files`    The parser directory was
handled in pandas-dev#14740, and the others have been deliberately omitted per
the discussion <a href="https://github.com/pandas-
dev/pandas/pull/14740#issuecomment-265260209">here</a>.

Author: gfyoung <gfyoung17@gmail.com>

Closes pandas-dev#14814 from gfyoung/c-style-continue and squashes the following commits:

27d4d46 [gfyoung] MAINT: Style check *.c and *.h files
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Clean IO CSV read_csv, to_csv
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants