Giter Club home page Giter Club logo

ogdf-python's Introduction

OGDF

Conan Center vcpkg

OGDF stands both for Open Graph Drawing Framework (the original name) and Open Graph algorithms and Data structures Framework.

OGDF is a self-contained C++ library for graph algorithms, in particular for (but not restricted to) automatic graph drawing. It offers sophisticated algorithms and data structures to use within your own applications or scientific projects.

OGDF is developed and supported by Osnabrück University, University of Passau, University of Konstanz, TU Vienna, and TU Ilmenau.

Shortcuts

License

This software is distributed under the terms of the GNU General Public License v2 or v3, with special exceptions. By installing this software you agree to these license terms.

See LICENSE.txt for more information on the license and included third-party software, like frameworks for linear programming or unit testing.

Copyright

All files in the OGDF distribution (except for third-party software) are copyrighted:

Copyright (C) 1999–2024

ogdf-python's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

Forkers

tyn1998

ogdf-python's Issues

Warnings with cppyy 3.0.0

Using ogdf-python in a jupyter-notebook with cppyy version 3.0.0 generates the following warnings (but produces the expected results):
image
When downgrading to cppyy version 2.4.1, these warnings disappear.

How to extend ogdf-python with own C++ class?

I want to extend OGDF with new classes. After generate documentation and set the environment variable in Jupyter Notebook

%env OGDF_DOC_DIR=<dir>/ogdf/doc

I get the following error when trying to use the class PlanarizerMixedInsertion.

AttributeError: <namespace cppyy.gbl.ogdf at 0x55c94935bfa0> has no attribute 'PlanarizerMixedInsertion'. Full details:
  type object 'ogdf' has no attribute 'PlanarizerMixedInsertion'
  ('ogdf::Module',)
  'PlanarizerMixedInsertion' is not a known C++ template
  'PlanarizerMixedInsertion' is not a known C++ enum
The name ogdf::PlanarizerMixedInsertion couldn't be found in the docs.

I think the error may be something went wrong while updating doxygen.json with doxygen.py.

Might you be so kind and make a tutorial on how users can use your library with a private extension of OGDF?

Segmentation Fault in GraphIO.writeGML

The following code causes a segmentation fault:

from ogdf_python import ogdf

G = ogdf.Graph()
GA = ogdf.GraphAttributes(G, ogdf.GraphAttributes.all)
G.newNode()

ogdf.GraphIO.write(GA, "foo.gml", ogdf.GraphIO.writeGML)
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
Cell In [1], line 8
      5 GA = ogdf.GraphAttributes(G, ogdf.GraphAttributes.all)
      6 G.newNode()
----> 8 ogdf.GraphIO.write(GA, "foo.gml", ogdf.GraphIO.writeGML)

TypeError: static bool ogdf::GraphIO::write(const ogdf::GraphAttributes& GA, const std::string& filename, ogdf::GraphIO::AttrWriterFunc writer = nullptr) =>
    TypeError: none of the 4 overloaded methods succeeded. Full details:
  static bool ogdf::GraphIO::writeGML(const ogdf::ClusterGraph& C, std::ostream& os) =>
    TypeError: could not convert argument 1
  static bool ogdf::GraphIO::writeGML(const ogdf::ClusterGraphAttributes& A, std::ostream& os) =>
    TypeError: could not convert argument 1
  static bool ogdf::GraphIO::writeGML(const ogdf::Graph& G, std::ostream& os) =>
    TypeError: could not convert argument 1
  static bool ogdf::GraphIO::writeGML(const ogdf::GraphAttributes& A, std::ostream& os) =>
    SegmentationViolation: segfault in C++; program state was reset

shapeToString is broken

Calling shapeToString raises the following exception:

>>> ogdf.shapeToString(ogdf.Shape.Ellipse)
IncrementalExecutor::executeFunction: symbol '_ZN4ogdf13shapeToStringB5cxx11ENS_5ShapeE' unresolved while linking symbol '__cf_7'!
You are probably missing the definition of ogdf::shapeToString[abi:cxx11](ogdf::Shape)
Maybe you need to load the corresponding shared library?
b''
>>> 

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.