Conversation
Also refactors some handling to use the more modern O(1) setting patterns. Adds missing tick types present in the current IBKR ibapi client we hadn't updated internally in a while. Currently untested, but looks good so far. Some specific data types or data extraction formats may need to be adjusted when we test against live data. Fixes #182 Fixes #182
Also removes obsolete import guard since Python 3.9+ guarantees zoneinfo exists. Fixes #188
This wasn't a global problem and only triggered edge cases for people developing with too much (unnecessary?) complexity, but now we don't cache the event loop and instead request the live event loop each time. This is technically about 10x slower than using a cached event loop reader, but the difference is just +20ns slower if we ask python to lookup the active event loop each time vs using it cached on first access forever. Fixes #160 Fixes #186 Fixes #159
Contributor
|
i feel your pain, this is my attempt at having a ticker tick mapping it's 100% somewhat complete. Edit: I forgot the actual TickType mapping https://github.com/gnzsnz/ib_async/blob/c6787eade7084bcb3376ace6ac8ac89f32993a27/ib_async/objects.py#L140 Edit II: and the tick types document https://docs.google.com/spreadsheets/d/e/2PACX-1vTJ8av3r1DnW0g9UeOI0ASFr6LDj4ct-Migz3sC4grOnBGuHp_dkq8Djg2h0-uQ_MaBlkgI3a5V_eNY/pubhtml#gid=0 "Ticker" tab needs to be aligned with your changes. "Group by delivery method" maps message id with tick id, which needs to be aligned with the ticker.py mappings |
Contributor
|
do you plan to include a fix for #172 on this PR? |
42f41c7 to
5196019
Compare
We are currently Python 3.10 minimum, so use Python 3.10 syntax everywhere.
Lots of warnings are just from notebooks which we can ignore due to import issues. Others are smaller things we fixed in-place.
This typo is breaking timebars class. there is no `isUnset` method in timebars class. reverting change to `isNan` helper function. Fixes #197
Add python 3.14 and use configured poetry config for testing
Some fixes to community complaints about code organization or assumptions around caching and system use edge cases etc. See changelog or git log for full details. Also includes starting to double up some pyproject.toml config for eventually converting this from a poetry project to a uv project.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Reviews / checks welcome.
I ran this against live API usage and the new tick fields appear to work without crashing anything so far (though, I can't get all of them to populate correctly because the server-side tick mappings aren't the client-request tick mappings, and I don't see a true client tick map population list anywhere).
Will update/integrate these refactors if no bad reports come back after a couple days.