Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

feature: parsing PoE Tree Data (data.json), validating data entries with pydantic, building a graph with networkx #7

Open
svrNinety wants to merge 14 commits into
PathOfBuildingCommunity:devPathOfBuildingCommunity/PathOfBuilding-Python:devfrom
svrNinety:feat-tree-datasvrNinety/PathOfBuilding-Python:feat-tree-dataCopy head branch name to clipboard
Open

feature: parsing PoE Tree Data (data.json), validating data entries with pydantic, building a graph with networkx #7
svrNinety wants to merge 14 commits into
PathOfBuildingCommunity:devPathOfBuildingCommunity/PathOfBuilding-Python:devfrom
svrNinety:feat-tree-datasvrNinety/PathOfBuilding-Python:feat-tree-dataCopy head branch name to clipboard

Conversation

@svrNinety

Copy link
Copy Markdown

A basic Tree Data Container that parses Path of Exile's Tree Data from data.json.

  • currently only provides parsing for nodes and groups and builds a graph of the tree
  • requires pydantic (data validation) and networkx (graph network) as a dependency
  • requires plotly dependecy for interactive introspection of the parsed tree data
    • should get removed as soon as we have UI components in this project - so please neglect that section 👍
  • tested backwards compatibility with 3.15, 3.14 and 3.13 (can do further once we signed off on this PR)
  • the entire parsing process is rather expensive (especially due to extensive assertions being checked at every step)
    • on one hand we could technically pickle/diskcache the resulting structures and ship these
    • on the other hand we could dynamically wget any data.json from previous patches, such that the user can create builds for previous patch versions (if he so wishes). Whether or not we want to support comparing builds across different patch versions is something we should discuss before nailing how and where we cache semi-persistent data.
  • if we encounter inconsistent or nonsensical data, we should exit as this constitutes an irrecoverable state; there are plenty of assertions placed to enforce a certain level of consistency, but if GGG ever provides invalid data, than we better fail fast while parsing

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

Morty Proxy This is a proxified and sanitized view of the page, visit original site.