PathOfBuilding-Python
PathOfBuilding-Python copied to clipboard
feature: parsing PoE Tree Data (data.json), validating data entries with `pydantic`, building a graph with `networkx`
A basic Tree Data Container that parses Path of Exile's Tree Data from data.json.
- currently only provides parsing for
nodesandgroupsand builds a graph of the tree - requires
pydantic(data validation) andnetworkx(graph network) as a dependency - requires
plotlydependecy 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
wgetany 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