- 0.15.0 (August 21 2024)
- Backwards-incompatible changes:
- Removed the Docker container provisioning functionality from the
Neo4jExecutor
class. To continue using this functionality, please use thetamarind
package directly, or installdotmotif==0.14.0
- Removed the Docker container provisioning functionality from the
- Housekeeping:
- Removed codecov from CI
- Added Python 3.11 to the test matrix
- Backwards-incompatible changes:
- 0.14.0 (May 16 2023)
- Housekeeping:
- Upgraded the package manager to Poetry, with version-pinning now handled by the
pyproject.toml
file.
- Upgraded the package manager to Poetry, with version-pinning now handled by the
- Housekeeping:
- 0.13.0 (October 11 2022)
- Features:
- Introduced propagation of constraints when nodes are explicitly marked as automorphic to one another.
- Nested lookup support for JSON attributes of neuPrint datasets (thanks @jakobtroidl!)
- Allow users to specify EdgelistIngest column data types
- Features:
- 0.12.0 (June 7 2022)
- Housekeeping:
- Removed old, deprecated code like the v1 parser (deprecated in
v0.5.0
) and some unused ingest tools (#113)
- Removed old, deprecated code like the v1 parser (deprecated in
- Features:
- Added edge aliases and inter-edge attribute constraints
- Housekeeping:
- 0.11.0 (April 12 2022)
- Features:
- Added support for attributes that include spaces and other non-word/variable characters, and updated Cypher syntax for these attributes when searching with Neo4j and neuPrint (#112)
- Features:
- 0.10.1 (January 26 2022)
- Bugfixes: Fixed compatibility with grandiso 2.1 and up
- 0.10.0 (September 30 2021)
- Features:
GrandIsoExecutor
andNetworkXExecutor
: Support fornetworkx.MultiGraph
andnetworkx.MultiDiGraph
search through the use of themultigraph_edge_match
executor argument (#107).
- Deprecations:
- Removed
dotmotif.dotmotif
method-style API (#107).
- Removed
- Features:
- 0.9.2 (May 28 2021)
- Features:
GrandIsoExecutor
: Utilizes the node attribute matching flow available in grandiso≥2.0.0 to reduce complexity of attribute-heavy searches (#104)
- Features:
- 0.9.1 (May 6 2021)
- Features:
GrandIsoExecutor
: Adds support for thegrandiso.find_motifs_iter
generator API in grandiso v1.2.0; this reduces the runtime of queries with nonzerolimit
(#102)
- Features:
- 0.9.0 (March 23 2021)
- Features:
Neo4jExecutor#create_index
. This function call adds an index to the database on the node attribute specified, in order to improve query performance (#95)dotmotif.ingest.EdgelistConverter
now supports importing from a dask or pandas dataframe edgelist in addition to files on disk (#99)
- Chores:
- Put lingering top-level tests into their own directory (#100)
- Features:
- 0.8.1
- Chores:
- Upgraded to the latest version of Tamarind, with Neo4j v4.2 support (#93)
- Upgraded to the latest version of GrandIso, v1.1.0
- Chores:
- 0.8.0 (January 12 2021)
- Features:
- Add
!contains
and!in
attribute constraints to the parser. (#88) - Neo4j and NeuPrintExecutors now support custom node/edge labels (#91)
- Add
- Bugfixes:
- Fix issue where lark grammar file is excluded from pip-based installs (#89)
- Fix an issue introduced in 0.8.0 where !contains/!in operators failed to parse for Neo4j/NeuPrint executors. If you are installing DotMotif from pip/pypi, this issue is already fixed. (#92)
- Features:
- 0.7.0 (October 14 2020)
- Executors:
- Add new
NeuPrintExecutor
with motif-search support for neuPrint databases (#76) - Add new
GrandIsoExecutor
as a Python-only drop-in replacement forNetworkXExecutor
(#80). If you're still usingNetworkXExecutor
, you should really switch!
- Add new
- Features:
- Improve
utils.draw_motif
rendering style - Improve networkx import for Neo4j databases to use better datatype inference
- New
dotmotif.Motif
class. This is just a naming thing; all your olddotmotif.dotmotif
code will still work! (#84) - Short motifs can now be written on a single line, with semicolons to delimit commands (#84)
- Improve
- Bugfixes:
- Improve pip-installation process by including EBNF grammar definitions
- Documentation:
- Moved documentation from
docs/
to the wiki for a more permanent and organized home (#81)
- Moved documentation from
- Executors:
- 0.6.0 (July 23 2020)
- Features:
- Add dynamic node constraints for comparisons at runtime (#74)
- DSL:
- Add dynamic node constraints with
Node.key [op] Node.key
syntax (#74)
- Add dynamic node constraints with
- Executors:
NetworkXExecutor
: Support dynamic node constraintsNeo4jExecutor
: Support dynamic node constraints
- Housekeeping:
- Add GitHub actions for Python 3.6, 3.7, and 3.8 tests
- Features:
- 0.5.1
- Features:
- Better search-operator support in
NetworkXExecutor
- Better search-operator support in
- Housekeeping:
- Upgrade to networkx v2.4
- Include
Neo4jExecutor
in default package imports
- Features:
- 0.5.0 (April 07 2020)
- Features:
- Add
Executor#count()
function call to return only a motif count rather than a complete result set. - Improve speed response of automorphism detection (use internal Neo4j IDs)
- Add optional wait when creating a
Neo4jExecutor
- Add
- Bugfixes:
- Fix indexing of automorphisms to better jive with Neo4j's internal result ordering.
- Fix issue where
NetworkXExecutor
would fail to identify all isomorphisms. This was due to a nomenclature mismatch between NetworkX and other executors. More details here. - Automatically add
exists=True
condition to edges added usingdotmotif#from_nx()
.
- Deprecations:
- Warnings:
dotmotif.parsers.v1.ParserV1
dotmotif.from_nx
- Warnings:
- Features:
- 0.4.2
- Features:
- Add
dotmotif#save
anddotmotif#load
to save and load configuration files. - Add
dotmotif
constructor flag to automatically detect automorphisms (#47)
- Add
- DSL:
- Full support for attributes inside macros
- Add notation for manual indication of automorphisms (#45)
- Parsers:
- Fix #35, wherein a
WHERE
clause was omitted from the cypher query constructed from theNeo4jExecutor
under certain conditions
- Fix #35, wherein a
- Bugfixes:
- Fix #26 by raising an explanatory error message when graphs with integer IDs are imported.
- Fix #25 to allow pip-installability outside of edit-mode
- Features:
- 0.4.1 (April 13, 2019)
- Backend tamarind for provisioning Docker containers.
- Resolved issue with improper tokenization of variables in DSL
- Resolved failure to wait the appropriate amount of time before failing to connect to a
Neo4jExecutor
provisioned container
- 0.4.0 (February 26, 2019)
- DSL:
- Support for node and edge attributes in non-template contexts
- Executors:
NetworkxExecutor
- Support for node and edge constraints
Neo4jExecutor
- Support for node and edge constraints
- DSL:
- 0.3.0
- Overhaul of DotMotif Parsers
- Implement EBNF spec of language, and complete parser (
lark
) - Support for macros (templating engine)
- Inline validation
- Implement EBNF spec of language, and complete parser (
- Faster motif construction
Executor
s (dotmotif.executors
)Neo4jExecutor
automatically spins up/down docker containers for out-of-RAM searchNetworkXExecutor
for small-scale subgraph isomorphism
- Comprehensive test suite
- Base implementations of
Validator
s - Move query generators to the appropriate
Executor
s for separation of responsibility
- Overhaul of DotMotif Parsers
- 0.2.1
- Remove CSV support
- Abstract parser syntax to
dotmotif.parsers
- Abstract validator to
dotmotif.validators
- 0.2.0 (May 7 2018)
- Negative-edge support
- 0.1.0