Skip to content

Releases: mkh-user/graphite

0.3

25 Apr 14:05
918c40d

Choose a tag to compare

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()
  • 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 by accept_any_extension parameter.
  • 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.3

Then 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

12 Feb 15:41
b8df58f

Choose a tag to compare

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.2

Then 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

12 Feb 15:31
fe21934

Choose a tag to compare

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.1

Then 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

04 Feb 16:11
e37aa3b

Choose a tag to compare

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
  • pickle support marked as PendingDeprecation
  • Migration utils added to Migration class 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.2

Then 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

30 Jan 10:36
4b74e9d

Choose a tag to compare

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.13 and 3.14 (currently all from 3.9 to 3.14 are supported).
  • flake8 removed from workflow to use pylint in separate workflow.

Internal: Update pylint workflow

  • Range of Python versions changed to 3.9-3.14 (was 3.8-3.12) to match supported versions of module.
  • Requirements will be installed from requirements.txt before analysing.
  • Set \t as 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.3

Then 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

30 Jan 07:55
575652b

Choose a tag to compare

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.2

Then 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!