# This is a combination of 14 commits.
# The first commit's message is:
ENH: Added method to pandas.data.Options to download all option data for a ticker.

Also added a few helper functions.  These functions could be applied to refactor some of the other methods.

# This is the 2nd commit message:

ENH: In Options.get_all_data: Now checking for any option tag (instead of just mini)

Changed expiry to datetime from string.
Added tests for tick functions.

# This is the 3rd commit message:

BUG: Fixed no sign in change column of option download.

# This is the 4th commit message:

BUG: Fix bugs in Options class

Dealt with situation of calculating expiry when symbol contains a hyphen
Fixed bug in finding current expiry month.

# This is the 5th commit message:

BUG: Fixed Options.get_forward_data expiry date

Method assumed expiry date is the same for all option in a given month.
Not the case for options with weekly's.  Also breaks with options that
have tags.

# This is the 6th commit message:

BUG: Fixed Option bug that didn't allow LEAP DL in January.

Option class was checking only the month to determine if the requested
month was the current month.  Changed to check year and month.  Now
allows downloads of next years LEAPS's in January.

# This is the 7th commit message:

ENH: Added option tag and underlying price to option data output.

# This is the 8th commit message:

Factored out URL parsing and error checking from individual methods.

# This is the 9th commit message:

ENH: Refactor of Option class in io.data.

 Consistently returns multi-index data frame.
 Improves speed of downloading combination of calls and puts by only accessing yahoo once per expiry month.

# This is the 10th commit message:

CLN: Fix out of date docstrings in io.data.Options

Moved _parse_row_values definition into _unpack.

# This is the 11th commit message:

CLN: Consistent capitalization in output data.

# This is the 12th commit message:

CLN: Remove Tag, leave Root in data frame output.

# This is the 13th commit message:

CLN: Remove unnecessary _tag_from_root method.

# This is the 14th commit message:

BUG: Fix different capitalizations of Rootexp in _process_data.
TST: Remove test for helper function that no longer exists.

TST: Fix option test for change in output

TST: Changes io.data.Options tests to self.assertTrue

TST: Change tests raise nose.SkipTests on remote data errors