Skip to content

Releases: deepgraph/deepgraph

Release v1.2.0

01 Jul 21:49
3a829cb

Choose a tag to compare

🚀 DeepGraph Release Notes

This release introduces a new decorator, output_names, designed for use with user-defined connector and selector functions. If you've ever encountered an OSError: could not get source code using either create_edges or create_edges_ft, this release addresses that issue. The output_names decorator allows you to explicitly define the names of the output variables returned by these functions, avoiding the need to read source code.

The public API remains unchanged. This release introduces new functionality without affecting existing behavior.


Added

  • deepgraph.output_names decorator: A new decorator to explicitly define the output variable names of connector or selector functions. This is necessary when the source code of the function is not available at runtime. The decorator attaches the specified output names to the decorated function via the _output_names attribute.

    Example:

    import deepgraph as dg
    
    @dg.output_names("dx", "dt", "v")
    def velocity(x_s, x_t, time_s, time_t):
        dx = x_t - x_s
        dt = time_t - time_s
        v = dx/dt
        return dx, dt, v

Fixed

  • Fixed OSError: could not get source code by introducing the output_names decorator for explicitly defining output variable names in user-defined functions.

🔗 Links


📝 Upgrade Notes


If you encounter any issues, please open an issue or join the discussion.

Release v1.1.0

22 Jun 13:31
b421431

Choose a tag to compare

🚀 DeepGraph Release Notes

This release adds support for new, valid return formats of user-defined connector/selector functions (see create_edges). Specifically, explicit tuples and multi-line return statements are now possible. This enhancement increases flexibility and improves input validation.

The public API remains unchanged.


Added

  • Introduced a robust AST-based implementation for extracting output variables from user-defined functions.
    • This improves reliability and parsing accuracy across supported Python versions (3.9+).

    • The extraction now strictly enforces that return statements contain only variable names.

    • It is now also possible to return output variables as:

      Example: explicit tuple

      def velocity(dt, x_s, x_t):
          dx = x_t - x_s
          v = dx / dt
          return (v, dx)

      Example: multi-line tuple

      def velocity(dt, x_s, x_t):
          dx = x_t - x_s
          v = dx / dt
          return (
              v,
              dx
          )
  • Added CHANGELOG.md file.

Changed

  • Replaced previous string-based return parsing using inspect.getsourcelines() with a more accurate approach using inspect.getsource() and the ast module.
  • Output validation errors will now be raised if the return statement contains expressions, function calls, or anything other than variable names.
  • Updated input argument parsing logic to use inspect.signature() instead of inspect.getfullargspec(), improving forward compatibility.

Removed

  • The conda recipe to build a conda package locally. Conda packages are build by conda-forge using this recipe.

Fixed

  • Resolved "UnclosedFileWarning: Closing remaining open file" warnings in tests involving hdf tables.
  • Homogenized license information across project files
  • pyproject.toml had wrong license information (BSD-2-Clause), changed it to the correct one (BSD-3-Clause).

🔗 Links


📝 Upgrade Notes


If you encounter any issues, please open an issue or join the discussion.

Release v1.0.0

16 Jun 13:45

Choose a tag to compare

🚀 DeepGraph Release Notes

We’re excited to announce a new major release of DeepGraph! This update brings several improvements, bug fixes, and modernization efforts to the package, its documentation and distribution.


✨ What’s Changed

  • Resolved pandas warnings and dtype issues
    Fixed compatibility warnings and a bug related to pandas data types for smoother user experience.

  • Switched to uv for package management
    Adopted the uv tool for faster and more reliable package management.

  • Modernized project structure
    Restructured the project and migrated metadata to pyproject.toml for PEP 621 compliance and improved maintainability.

  • Updated GitHub Actions workflow
    The GitHub Workflow to build, test and publish both source distributions and wheels has been updated.

  • Optional dependencies support
    Added a way to install optional dependencies. See the documentation for details.

  • Documentation improvements
    Updated the README and enhanced overall documentation for clarity and completeness.

  • ReadTheDocs build fix
    Fixed issues with documentation builds on ReadTheDocs.

  • BREAKING CHANGE
    Removal of support for end-of-life Python versions (Python < 3.9).

  • Support for NumPy 2.0

  • Support for Python 3.13


🔗 Links


📝 Upgrade Notes


If you encounter any issues, please open an issue or join the discussion.


Happy graphing!

Release v0.2.4

26 Mar 14:42

Choose a tag to compare

Release v0.2.3

01 Oct 13:20

Choose a tag to compare

Release v0.2.2

08 Apr 09:31

Choose a tag to compare

Release v0.2.1

13 Mar 16:29

Choose a tag to compare

Release v0.2.0

08 Aug 15:01

Choose a tag to compare

Substantial internal speed up of DeepGraph.create_edges(_ft) by cythonizing bottlenecks.

For further changes, see: https://github.com/deepgraph/deepgraph/commits/master.

Release v0.1.0

26 Jul 18:39

Choose a tag to compare

Substantial internal speed up of DeepGraph.create_edges().

For further changes, see: https://github.com/deepgraph/deepgraph/commits/master.

Release v0.0.9

29 Mar 12:21

Choose a tag to compare