Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Open
wants to merge 14 commits into
base: dev
Choose a base branch
from

Conversation

svrNinety
Copy link

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