Releases: mkh-user/graphite
0.3
Graphite v0.3
Note
This is 0.x release, therefore it is considered not ready for production use.
Changes since 0.2.1:
Documentation page!
Graphite documentation including guides and references is available now at: https://mkh-user.github.io/graphite
Completed docstring
Finally Graphite's API documentation is available in your editors with complete informations.
Remove data support
Now you can use undefine_node(), undefine_relation(), remove_node(), remove_relation() to undo your data creations.
set() for Nodes and Relations
Standard method to change data fields.
Enhanced query engine
- Add support for starting queries from all nodes with
engien.query.all()syntax. - And new query methods for:
- Change:
set(),remove(),remove_relations() - Filter:
with_type(),with_field() - Slice:
paginate(),group_by() - Result Operation:
union(),exclude(),intersect() - Statistics:
sum(),avg(),min(),max() - Access:
relations()
- Change:
- Allow traverse relations without type limit in traverse queries (
traverse(),both(),incoming(),outgoing()). limit()doesn't limit result relations anymore.
More stability
- Type check system for relations completed.
- Save file version will be validated from this version before loading database.
- Error handling and exception suite improved.
- File path extension check for
load_safe()now can be disabled byaccept_any_extensionparameter. Migration.convert_pickle_to_json()now use standard exception handling.- At the saving time, engine applies a fixed order for relations based on their properties to improve readability and version control support.
- Relation types can't be bidirectional and reverse named at the same time anymore.
Complete type hints
Type hints for queries and other items completed and fixed.
load_dsl() deprecated
Now you can use egnine.parse() with exactly same behavior.
DSL improve
- DSL parser overhaul with more checks and new logic.
- Fixed including comments inside definition blocks.
Installation
This version will be available in https://pypi.org and you can install it into your device or virtual environment with pip command:
# Latest version, if you see "Latest" badge on this release (in GitHub), both commands do the same thing!
pip install graphitedb
# This version
pip install graphitedb==0.3Then you can use it in Python:
import graphite
Please see examples/ in GitHub repository and documentation for usage examples and guides.
Graphite is open source and free, so feel free to use it, customize it, and share problems, your ideas, and your comments with us in Issues and Discussions!
0.2.2
Graphite v0.2.2
Note
This is 0.x release, therefore it is considered not ready for production use.
This is a hotfix / patch for v0.2 release, there isn't any breaking change or new feature, just bug fixes.
Changes since 0.2.1:
Fix versioning issue
Invalid version for 0.2.1 release fixed in this version.
Installation
This version will be available in https://pypi.org and you can install it into your device or virtual environment with pip command:
# Latest version, if you see "Latest" badge on this release (in GitHub), both commands do the same thing!
pip install graphitedb
# This version
pip install graphitedb==0.2.2Then you can use it in Python:
import graphite
Please see examples/ and docs/ in GitHub repository for usage examples and guides.
Graphite is open source and free, so feel free to use it, customize it, and share problems, your ideas, and your comments with us in Issues and Discussions!
0.2.1
Graphite v0.2.1
Note
This is 0.x release, therefore it is considered not ready for production use.
This is a hotfix / patch for v0.2 release, there isn't any breaking change or new feature, just bug fixes.
Changes since 0.2:
Fixed: Both direction queries just select source node
With this update, .both() query will select both nodes in a relation instead of just source node.
Installation
This version will be available in https://pypi.org and you can install it into your device or virtual environment with pip command:
# Latest version, if you see "Latest" badge on this release (in GitHub), both commands do the same thing!
pip install graphitedb
# This version
pip install graphitedb==0.2.1Then you can use it in Python:
import graphite
Please see examples/ and docs/ in GitHub repository for usage examples and guides.
Graphite is open source and free, so feel free to use it, customize it, and share problems, your ideas, and your comments with us in Issues and Discussions!
0.2
Graphite v0.2
Note
This is 0.x release, therefore it is considered not ready for production use.
Changes since 0.1.3:
JSON-based serialization 🔴Security
- Database save/load moved to a new JSON-based system
picklesupport marked asPendingDeprecation- Migration utils added to
Migrationclass to convert old database files to new format
Custom exceptions
Custom exceptions with more uniform and descriptive messages added.
Rebuild save/load logic
A complete save and load logic rebuild to ensure handling any possible issue.
Internal: Unit tests added
We will track all hidden behavior changes from this version and you can be sure you will be noticed about any breaking change before experiencing it.
Internal: Split module into multiple files
Module moved to multiple files, all usages are same as before.
Installation
This version will be available in https://pypi.org and you can install it into your device or virtual environment with pip command:
# Latest version, if you see "Latest" badge on this release (in GitHub), both commands do the same thing!
pip install graphitedb
# This version
pip install graphitedb==0.2Then you can use it in Python:
import graphite
Please see example.py and main.py in GitHub repository for usage examples.
Graphite is open source and free, so feel free to use it, customize it, and share problems, your ideas, and your comments with us in Issues and Discussions!
0.1.3
Graphite v0.1.3
Note
This is 0.x release, therefore it is considered not ready for production use.
Changes since 0.1.2:
Fix Project Description
Now project description in PyPI is the same as GitHub.
Fix README
Old content removed from README.
Fix supported versions
Fixed: Python 3.9 is not supported by the prerequisites.
Improve documentation
Examples and main module updated with more documentation.
Internal: pytest workflow
- "Python package" workflow updated to "Pytest".
- Runs added for Python
3.13and3.14(currently all from3.9to3.14are supported). flake8removed from workflow to usepylintin separate workflow.
Internal: Update pylint workflow
- Range of Python versions changed to
3.9-3.14(was3.8-3.12) to match supported versions of module. - Requirements will be installed from
requirements.txtbefore analysing. - Set
\tas indent string
Installation
This version will be available in https://pypi.org and you can install it into your device or virtual environment with pip command:
# Latest version, if you see "Latest" badge on this release (in GitHub), both commands do the same thing!
pip install graphitedb
# This version
pip install graphitedb==0.1.3Then you can use it in Python:
import graphite
Please see example.py and main.py in GitHub repository for usage examples.
Graphite is open source and free, so feel free to use it, customize it, and share problems, your ideas, and your comments with us in Issues and Discussions!
0.1.2
Graphite v0.1.2
Note
This is a 0.x release, therefore it is considered not ready for production use.
Changes since 0.1:
Release GitHub releases as the PyPI source (instead of the reverse process)
This is the first release that will be available on GitHub. The first release available on PyPI is also 0.1.1, so version 0.1.0 is completely removed.
Change the method of detecting the type of node and relation creation blocks
From now on, any block whose first line does not start with node or relation will be considered a node definition if it does not lack [. Otherwise, it must contain -[ and one of the combinations ]- or ]-> (directional and non-directional mode).
Error reporting in .where() queries
From now on, if the execution of the function (usually a lambda) sent in the .where() step of the queries encounters an error, an error will be reported. Previously, the node in question was simply ignored.
Error reporting for invalid date values
Previously, an invalid date silently resulted in a value of None, now an error is displayed.
parse() function
The parse function is available in GraphiteEngine. This function is the same as load_dsl, which, due to the added capabilities of the load_dsl function, adds a clearer name for it; it is a syntax sugar.
Installation
This version will be available in https://pypi.org and you can install it into your device or virtual environment with pip command:
# Latest version, if you see "Latest" badge on this release (in GitHub), both commands do the same thing!
pip install graphitedb
# This version
pip install graphitedb==0.1.2Then you can use it in Python:
import graphite
Please see example.py and main.py in GitHub repository for usage examples.
Graphite is open source and free, so feel free to use it, customize it, and share problems, your ideas, and your comments with us in Issues and Discussions!