Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
Some C# methods call python methods with date parameters that do not have the same timezone. Thus, when the C# dates are converted into python
datetime
objects, some of them have a timezone and others don't so an exception is thrown when compared (can't compare offset-naive and offset-aware datetimes). For that reason, since pythondatetime
objects do not have a timezone by default, I modified some of the C# methods I mentioned so that they didn't have a timezone too (DateTime.Kind = Unspecified). However, there are other C# methods that have this same bug (such asOrderEvent.UtcTime
) but making a change in that class would be a breaking change, so I skipped them.Related Issue
Closes #8402
Motivation and Context
With this change, users will be able to compare dates directly in python (for some methods such as
FuncDateRule()
)Requires Documentation Change
N/A
How Has This Been Tested?
I modified a python regression algorithm that was handling the timezone bug manually and I also made a unit test asserting the dates returned by
ScheduleManager.GetDatesDeferred()
were normalized.Types of changes
Checklist:
bug-<issue#>-<description>
orfeature-<issue#>-<description>