Skip to content

Commit

Permalink
Added support for need_extended_hours_data within the time interval s…
Browse files Browse the repository at this point in the history
…hortcut functions (#294)

* Fix issue #292

- Added support for need_extended_hours_data within the time interval shortcut functions.
- Default set to True

Co-Authored-By: Ashwin Rajesh <[email protected]>

* test cases for need_extended_hours_data

Added test cases for interval shortcut functions for need_extended_hours_data

Co-Authored-By: Ashwin Rajesh <[email protected]>

* resolve feedback

- addressed sloppy naming & typos
- replaced "normalize" function with argument passed into utility functions

Co-Authored-By: Ashwin Rajesh <[email protected]>

* test updates

- changed default argument for need_extended_hours_data to None along with line breaks
- updated all get_price_history time interval tests to include needExtendedHoursData in params to match expected assertions
- removed "with_extendedhours" client tests since it is redundant (due to updated get_price_history tests already testing this feature)

Co-Authored-By: Ashwin Rajesh <[email protected]>

* fixed client tests

- added extended hours tests to separate from other test cases focusing on other functionality
- patched up errors in test cases (like missing arguments)

Co-Authored-By: Ashwin Rajesh <[email protected]>
Co-Authored-By: Ashwin Rajesh <[email protected]>

* add None tests

Added need_extended_hours_data=None tests

Co-Authored-By: Ashwin Rajesh <[email protected]>

* remove False tests

removing redundant tests that other test cases already cover

Co-Authored-By: Ashwin Rajesh <[email protected]>

Co-authored-by: Ashwin Rajesh <[email protected]>
  • Loading branch information
ashwinrajesh8 and ashrajesh authored Feb 7, 2022
1 parent 9c541c7 commit 834dc1e
Show file tree
Hide file tree
Showing 2 changed files with 315 additions and 14 deletions.
42 changes: 28 additions & 14 deletions tda/client/base.py
Original file line number Diff line number Diff line change
Expand Up @@ -819,7 +819,8 @@ def __normalize_start_and_end_datetimes(self, start_datetime, end_datetime):


def get_price_history_every_minute(
self, symbol, *, start_datetime=None, end_datetime=None):
self, symbol, *, start_datetime=None, end_datetime=None,
need_extended_hours_data=None):
'''
Fetch price history for a stock or ETF symbol at a per-minute
granularity. This endpoint currently appears to return up to 48 days of
Expand All @@ -836,11 +837,13 @@ def get_price_history_every_minute(
frequency_type=self.PriceHistory.FrequencyType.MINUTE,
frequency=self.PriceHistory.Frequency.EVERY_MINUTE,
start_datetime=start_datetime,
end_datetime=end_datetime)
end_datetime=end_datetime,
need_extended_hours_data=need_extended_hours_data)


def get_price_history_every_five_minutes(
self, symbol, *, start_datetime=None, end_datetime=None):
self, symbol, *, start_datetime=None, end_datetime=None,
need_extended_hours_data=None):
'''
Fetch price history for a stock or ETF symbol at a per-five-minutes
granularity. This endpoint currently appears to return approximately
Expand All @@ -857,11 +860,13 @@ def get_price_history_every_five_minutes(
frequency_type=self.PriceHistory.FrequencyType.MINUTE,
frequency=self.PriceHistory.Frequency.EVERY_FIVE_MINUTES,
start_datetime=start_datetime,
end_datetime=end_datetime)
end_datetime=end_datetime,
need_extended_hours_data=need_extended_hours_data)


def get_price_history_every_ten_minutes(
self, symbol, *, start_datetime=None, end_datetime=None):
self, symbol, *, start_datetime=None, end_datetime=None,
need_extended_hours_data=None):
'''
Fetch price history for a stock or ETF symbol at a per-ten-minutes
granularity. This endpoint currently appears to return approximately
Expand All @@ -878,11 +883,13 @@ def get_price_history_every_ten_minutes(
frequency_type=self.PriceHistory.FrequencyType.MINUTE,
frequency=self.PriceHistory.Frequency.EVERY_TEN_MINUTES,
start_datetime=start_datetime,
end_datetime=end_datetime)
end_datetime=end_datetime,
need_extended_hours_data=need_extended_hours_data)


def get_price_history_every_fifteen_minutes(
self, symbol, *, start_datetime=None, end_datetime=None):
self, symbol, *, start_datetime=None, end_datetime=None,
need_extended_hours_data=None):
'''
Fetch price history for a stock or ETF symbol at a per-fifteen-minutes
granularity. This endpoint currently appears to return approximately
Expand All @@ -899,11 +906,13 @@ def get_price_history_every_fifteen_minutes(
frequency_type=self.PriceHistory.FrequencyType.MINUTE,
frequency=self.PriceHistory.Frequency.EVERY_FIFTEEN_MINUTES,
start_datetime=start_datetime,
end_datetime=end_datetime)
end_datetime=end_datetime,
need_extended_hours_data=need_extended_hours_data)


def get_price_history_every_thirty_minutes(
self, symbol, *, start_datetime=None, end_datetime=None):
self, symbol, *, start_datetime=None, end_datetime=None,
need_extended_hours_data=None):
'''
Fetch price history for a stock or ETF symbol at a per-thirty-minutes
granularity. This endpoint currently appears to return approximately
Expand All @@ -920,11 +929,13 @@ def get_price_history_every_thirty_minutes(
frequency_type=self.PriceHistory.FrequencyType.MINUTE,
frequency=self.PriceHistory.Frequency.EVERY_THIRTY_MINUTES,
start_datetime=start_datetime,
end_datetime=end_datetime)
end_datetime=end_datetime,
need_extended_hours_data=need_extended_hours_data)


def get_price_history_every_day(
self, symbol, *, start_datetime=None, end_datetime=None):
self, symbol, *, start_datetime=None, end_datetime=None,
need_extended_hours_data=None):
'''
Fetch price history for a stock or ETF symbol at a daily granularity.
The exact period of time over which this endpoint returns data is
Expand All @@ -942,11 +953,13 @@ def get_price_history_every_day(
frequency_type=self.PriceHistory.FrequencyType.DAILY,
frequency=self.PriceHistory.Frequency.EVERY_MINUTE,
start_datetime=start_datetime,
end_datetime=end_datetime)
end_datetime=end_datetime,
need_extended_hours_data=need_extended_hours_data)


def get_price_history_every_week(
self, symbol, *, start_datetime=None, end_datetime=None):
self, symbol, *, start_datetime=None, end_datetime=None,
need_extended_hours_data=None):
'''
Fetch price history for a stock or ETF symbol at a weekly granularity.
The exact period of time over which this endpoint returns data is
Expand All @@ -964,7 +977,8 @@ def get_price_history_every_week(
frequency_type=self.PriceHistory.FrequencyType.WEEKLY,
frequency=self.PriceHistory.Frequency.EVERY_MINUTE,
start_datetime=start_datetime,
end_datetime=end_datetime)
end_datetime=end_datetime,
need_extended_hours_data=need_extended_hours_data)


##########################################################################
Expand Down
Loading

0 comments on commit 834dc1e

Please sign in to comment.