<html>
<!--
     Copyright (c) 2005 Trustees of Indiana University
    
     Distributed under the Boost Software License, Version 1.0.
     (See accompanying file LICENSE_1_0.txt or copy at
     http://www.boost.org/LICENSE_1_0.txt)
  -->
  <head>
    <title>Boost Graph Library: Python Bindings (Experimental)</title>
    <script language="JavaScript" type="text/JavaScript">
      <!--
          function address(host, user) {
          var atchar = '@';
          var thingy = user+atchar+host;
          thingy = '<a hre' + 'f=' + "mai" + "lto:" + thingy + '>' + user+atchar+host + '</a>';
          document.write(thingy);
          }
          //-->
    </script>
  </head>
  <body BGCOLOR="#ffffff" LINK="#0000ee" TEXT="#000000" VLINK="#551a8b" 
        ALINK="#ff0000"> 
    <img SRC="../../../boost.png" 
         ALT="C++ Boost" width="277" height="86"> 
    <h1><img src="figs/python.gif" alt="(Python)"/>Boost Graph Library: Python Bindings (<b>Experimental</b>)</h1>
    <p>The Boost Graph Library offers a wealth of graph algorithms and
    data types for C++. These algorithms are flexible and efficient,
    but the mechanisms employed to achieve this goal can result in
    long compile times that slow the development cycle.</p>

    <p>The Python bindings are build using the <a
    href="../../python/doc/index.html">Boost.Python</a> library. The bindings are
    meant to strike a balance of usability, flexibility, and
    efficiency, making it possible to rapidly develop useful systems
    using the BGL in Python.</p>

    <p>The Python bindings for the BGL are now part of a <a
    href="http://www.osl.iu.edu/~dgregor/bgl-python/">separate
    project</a>. They are no longer available within the Boost
    tree.</p>
    <HR>
    <TABLE>
      <TR valign=top>
        <TD nowrap>Copyright &copy; 2005</TD><TD>
          <A HREF="http://www.boost.org/people/doug_gregor.html">Doug Gregor</A>, Indiana University (<script language="Javascript">address("cs.indiana.edu", "dgregor")</script>)<br>
          <A HREF="http://www.osl.iu.edu/~lums">Andrew Lumsdaine</A>,
          Indiana University (<script language="Javascript">address("osl.iu.edu", "lums")</script>)
    </TD></TR></TABLE>
  </body>
</html>
