Releases: kayjan/bigtree
Releases · kayjan/bigtree
v0.17.2
2024-04-24
Changed:
- DAG Constructor:
list_to_dag
anddict_to_dag
does not rely ondataframe_to_dag
as pandas dataframe operation is phased out.
Fixed:
- DAG Constructor: Handle cases where reserved keywords are part of attribute upon creation and throw error accordingly.
- [#224] Tree/DAG Constructor: Null checks to not interpret 0 as null, this affects
dataframe_to_tree_by_relation
,add_dataframe_to_tree_by_path
,add_dataframe_to_tree_by_name
,dataframe_to_tree
, anddataframe_to_dag
. This will also affect showing/printing of trees whenattr_omit_null
is set to True.
What's Changed
Full Changelog: 0.17.1...0.17.2
v0.17.1
2024-04-23
Fixed
- [#222] Tree Constructor:
dataframe_to_tree_by_relation
duplicate root node name error message to handle
different data types.
What's Changed
- Docs: Fix Broken Read the Docs Links by @wlkr in #221
- fix: dataframe_to_tree_by_relation error message to handle different … by @kayjan in #223
New Contributors
Full Changelog: 0.17.0...0.17.1
v0.17.0
2024-04-04
Added
- Misc: Group tests for benchmark timings to compare the timings by multiplier more effectively.
Changed
- Tree Constructor:
add_dict_to_tree_by_name
andadd_dataframe_to_tree_by_name
modifies tree in-place instead of returning new tree, and does not acceptjoin_type
as argument as pandas dataframe operation is phased out. If there are clashing attributes, only those that have values will be replaced. This might not be backwards-compatible! - Tree Constructor:
dataframe_to_tree
no longer relies onadd_dataframe_to_tree_by_path
as it performs assertion checks twice. This leads to 5% improvement in timings for a tree with 10000 nodes, averaged across 10 runs. - Misc: Abstract out assertion checks for empty dataframe and duplicate attribute.
- Misc: Abstract out logic for checking null and filtering attributes.
- Misc: Optimization in dictionary and dataframe operations.
Fixed
- Tree Constructor:
dict_to_tree
no longer uses dataframe operations, leading to 33% improvement in timings for a tree with 10000 nodes, averaged across 10 runs. The resulting data type of node follows the dictionary exactly, compared to the previous dataframe operations that may change the dtypes for certain columns. This might not be backwards-compatible! - Tree Constructor:
dataframe_to_tree_by_relation
fix root node detection logic, ignore existing name column, ignore non-attribute columns, ignore null attribute columns. - Tree Constructor:
add_dataframe_to_tree_by_path
ignore existing name column, ignore non-attribute columns, ignore null attribute columns. - Tree Constructor:
add_dataframe_to_tree_by_name
ignore existing name column, ignore non-attribute columns, ignore null attribute columns. - Tree Constructor:
dataframe_to_tree
ignore existing name column, ignore non-attribute columns, ignore null attribute columns. - DAG Constructor:
dataframe_to_dag
ignore existing name column, ignore non-attribute columns, ignore null attribute columns.
What's Changed
Full Changelog: 0.16.4...0.17.0
v0.16.4
2024-03-14
Fixed
- [#216] Tree Exporter: Fix nan checker when printing trees.
What's Changed
Full Changelog: 0.16.3...0.16.4
v0.16.3
2024-03-14
Added
- BaseNode: Add diameter property.
- Misc: Testing to include benchmark timings for tree creation, compare benchmark tests across commits, reject pull request if benchmark tests fails.
- Misc: Documentation to include benchmark results.
Changed
- Misc: Documentation to enable zooming in of images, add navigation section headers, remove some meta tags.
- Misc: Split up testing into multiple conftest files.
Fixed
- Tree Constructor: Tree creation from dictionary adds None for empty attributes instead of np.nan.
- [#216] Tree Exporter:
attr_omit_null
to handle nan/null values in addition to checking for None.
What's Changed
- Docs image by @kayjan in #187
- Added: zoom to documentation image, add requirements by @kayjan in #188
- Added: navigation section header by @kayjan in #189
- Changed: Remove some meta tags from overrides html by @kayjan in #190
- Fix pytest by @kayjan in #192
- Update codecov.yml by @kayjan in #193
- Pytest benchmark by @kayjan in #191
- Pytest benchmark by @kayjan in #195
- Benchmark precision by @kayjan in #196
- Fixed: Clear cache for benchmark upon merge to main by @kayjan in #197
- Fixed: Clear cache by @kayjan in #198
- Fixed: Clear cache command by @kayjan in #199
- Fixed: Add permission for actions by @kayjan in #200
- Changed: Skip if cache not found by @kayjan in #201
- Add: index.html for benchmark results by @kayjan in #202
- Changed: clear cache before saving cache by @kayjan in #203
- Changed: Auto push benchmark by @kayjan in #204
- Added: benchmark dir path by @kayjan in #205
- Changed: Save benchmark result for comparison and gh-pages by @kayjan in #206
- Changed: Change benchmark save dir from gh-pages to master by @kayjan in #207
- Changed: Push to gh-pages only upon merge by @kayjan in #208
- Benchmark another repo by @kayjan in #209
- Added: Documentation to link to benchmark results by @kayjan in #210
- Changed: Benchmark results on documentation better format by @kayjan in #211
- Changed: Remove scrolling from iframe by @kayjan in #212
- Update: Fixed source code by @kayjan in #213
- Add diameter by @kayjan in #214
- Fix nan by @kayjan in #217
Full Changelog: 0.16.2...0.16.3
v0.16.2
2024-02-06
Added
- Misc: Documentation plugin Termynal for code animation.
- Misc: Usage of
docstr-coverage
. - Misc: Docstrings for nested functions to pass
docstr-coverage
.
Changed
- [#185] BaseNode: Make assertion checks optional.
- Misc: Documentation CSS for h1 display for windows compatibility, modify the related links on main page.
What's Changed
- Changed: Update custom.css for h1 color by @kayjan in #181
- Changed: Update mkdocs css by @kayjan in #182
- Added: mkdocs integration with termynal by @kayjan in #183
- Update changelog by @kayjan in #184
- Optional assertions by @kayjan in #186
Full Changelog: 0.16.1...0.16.2
v0.16.1
v0.16.0
2024-01-28
Added
- Misc: Documentation using mkdocs.
Changed
- Misc: Markdown edit for README, CHANGELOG.
- Misc: Docstring to indicate Examples, to indicate exceptions for BaseNode and DAGNode, simplify code for tree modification.
Fixed
- Misc: Docstring bullet point alignment, images compatibility with markdown.
What's Changed
Full Changelog: 0.15.7...0.16.0
v0.15.7
2024-01-26
Added
- Misc: Sphinx documentation to support mermaid markdown images, reflect CHANGELOG section, add more emojis.
Changed
- Misc: Update SEO image.
- Misc: Fix Sphinx documentation font size difference between web and mobile, include last updated date.
- Misc: Upgrade package versions in pre-commit hook.
Fixed
- Tree Exporter:
hprint_tree
andhyield_tree
to be compatible withBinaryNode
where child nodes can be None type.
What's Changed
- Update SEO image by @kayjan in #166
- Fixed: Sphinx documentation CSS by @kayjan in #167
- Fixed: Sphinx documentation CSS by @kayjan in #168
- Fixed: Sphinx documentation CSS for table padding for tree-modify by @kayjan in #169
- Changed: Sphinx documentation theme configuation by @kayjan in #170
- Enhance docs by @kayjan in #171
- Enhance sphinx by @kayjan in #172
- Enhance sphinx by @kayjan in #173
- Changed: Rename docs to docs_sphinx by @kayjan in #174
- Fixed: hprint and hyield (and hshow) to support binary node by @kayjan in #176
Full Changelog: 0.15.6...0.15.7
v0.15.6
2024-01-20
Added
- DAGNode: Able to access and delete node children via name with square bracket accessor with
__getitem__
and__delitem__
magic methods. - DAGNode: Able to delete all children for a node.
- DAGNode: Able to check if node contains child node with
__contains__
magic method. - DAGNode: Able to iterate the node to access children with
__iter__
magic method.
Changed
- Tree Search: Modify type hints to include DAGNode for
find_children
,find_child
, andfind_child_by_name
. - Misc: Neater handling of strings for tests.
- Misc: Documentation enhancement to split README into multiple files.
- Misc: New Sphinx documentation theme.
What's Changed
Full Changelog: 0.15.5...0.15.6