prompt: We are currently solving the following issue within our repository. Here is the issue text:
  --- BEGIN ISSUE ---
  doc build broken
  From a clean checkout I ran `python setup.py install` and then I attempted to build a local copy of the docs via `make html` in `doc` and got the following error:
  
  ```
  (py2k-base)tcaswell@tcaswellpc1:~/other_source/networkx/doc$ make html
  mkdir -p build
  ./make_gallery.py 
  atlas.pyTraceback (most recent call last):
    File "./make_gallery.py", line 57, in <module>
      execfile(example)
    File "atlas.py", line 59, in <module>
      G=atlas6()
    File "atlas.py", line 25, in atlas6
      Atlas=nx.graph_atlas_g()[0:208] # 208
  AttributeError: 'module' object has no attribute 'graph_atlas_g'
  make: *** [build/generate-stamp] Error 1
  ```
  
  
  --- END ISSUE ---
  
  Below are some code segments, each from a relevant file. One or more of these files may contain bugs.
  --- BEGIN FILES ---
  Path: `examples/drawing/atlas.py`
  Content:
  ```
  1 #!/usr/bin/env python
  2 """
  3 Atlas of all graphs of 6 nodes or less.
  4 
  5 """
  6 __author__ = """Aric Hagberg (hagberg@lanl.gov)"""
  7 #    Copyright (C) 2004 by 
  8 #    Aric Hagberg <hagberg@lanl.gov>
  9 #    Dan Schult <dschult@colgate.edu>
  10 #    Pieter Swart <swart@lanl.gov>
  11 #    All rights reserved.
  12 #    BSD license.
  13 
  14 import networkx as nx
  15 #from networkx import *
  16 #from networkx.generators.atlas import *
  17 from networkx.algorithms.isomorphism.isomorph import graph_could_be_isomorphic as isomorphic
  18 import random
  19 
  20 def atlas6():
  21     """ Return the atlas of all connected graphs of 6 nodes or less.
  22         Attempt to check for isomorphisms and remove.
  23     """
  24 
  25     Atlas=nx.graph_atlas_g()[0:208] # 208
  26     # remove isolated nodes, only connected graphs are left
  27     U=nx.Graph() # graph for union of all graphs in atlas
  28     for G in Atlas: 
  29         zerodegree=[n for n in G if G.degree(n)==0]
  30         for n in zerodegree:
  31             G.remove_node(n)
  32         U=nx.disjoint_union(U,G)
  33 
  34     # list of graphs of all connected components        
  35     C=nx.connected_component_subgraphs(U)        
  36     
  37     UU=nx.Graph()        
  38     # do quick isomorphic-like check, not a true isomorphism checker     
  39     nlist=[] # list of nonisomorphic graphs
  40     for G in C:
  41         # check against all nonisomorphic graphs so far
  42         if not iso(G,nlist):
  43             nlist.append(G)
  44             UU=nx.disjoint_union(UU,G) # union the nonisomorphic graphs  
  45     return UU            
  46 
  47 def iso(G1, glist):
  48     """Quick and dirty nonisomorphism checker used to check isomorphisms."""
  49     for G2 in glist:
  50         if isomorphic(G1,G2):
  51             return True
  52     return False        
  53 
  54 
  55 if __name__ == '__main__':
  56 
  57     import networkx as nx
  58 
  59     G=atlas6()
  60 
  61     print("graph has %d nodes with %d edges"\
  62           %(nx.number_of_nodes(G),nx.number_of_edges(G)))
  63     print(nx.number_connected_components(G),"connected components")
  64 
  65 
  66     try:
  67         from networkx import graphviz_layout
  68     except ImportError:
  69         raise ImportError("This example needs Graphviz and either PyGraphviz or Pydot")
  70 
  71     import matplotlib.pyplot as plt
  72     plt.figure(1,figsize=(8,8))
  73     # layout graphs with positions using graphviz neato
  74     pos=nx.graphviz_layout(G,prog="neato")
  75     # color nodes the same in each connected subgraph
  76     C=nx.connected_component_subgraphs(G)
  77     for g in C:
  78         c=[random.random()]*nx.number_of_nodes(g) # random color...
  79         nx.draw(g,
  80              pos,
  81              node_size=40,
  82              node_color=c,
  83              vmin=0.0,
  84              vmax=1.0,
  85              with_labels=False
  86              )
  87     plt.savefig("atlas.png",dpi=75)   
  88
  ```
  --- END FILES ---
  
  Please first localize the bug based on the issue statement, and then generate a patch according to the `git diff` format fenced by three backticks.
  
  Here is an example:
  
  ```diff
  diff --git a/examples/server_async.py b/examples/server_async.py
  --- a/examples/server_async.py
  +++ b/examples/server_async.py
  @@ -313,4 +313,4 @@
   
   
   if __name__ == "__main__":
  -    asyncio.run(run_async_server("."), debug=True)
  +    asyncio.run(run_async_server(), debug=True)
  diff --git a/examples/server_sync.py b/examples/server_sync.py
  --- a/examples/server_sync.py
  +++ b/examples/server_sync.py
  @@ -313,5 +313,5 @@
   
   
   if __name__ == "__main__":
  -    server = run_sync_server(".")
  +    server = run_sync_server()
       server.shutdown()
  
  ```
  
golden_diff: diff --git a/examples/drawing/atlas.py b/examples/drawing/atlas.py
  deleted file mode 100644
  --- a/examples/drawing/atlas.py
  +++ /dev/null
  @@ -1,87 +0,0 @@
  -#!/usr/bin/env python
  -"""
  -Atlas of all graphs of 6 nodes or less.
  -
  -"""
  -__author__ = """Aric Hagberg (hagberg@lanl.gov)"""
  -#    Copyright (C) 2004 by 
  -#    Aric Hagberg <hagberg@lanl.gov>
  -#    Dan Schult <dschult@colgate.edu>
  -#    Pieter Swart <swart@lanl.gov>
  -#    All rights reserved.
  -#    BSD license.
  -
  -import networkx as nx
  -#from networkx import *
  -#from networkx.generators.atlas import *
  -from networkx.algorithms.isomorphism.isomorph import graph_could_be_isomorphic as isomorphic
  -import random
  -
  -def atlas6():
  -    """ Return the atlas of all connected graphs of 6 nodes or less.
  -        Attempt to check for isomorphisms and remove.
  -    """
  -
  -    Atlas=nx.graph_atlas_g()[0:208] # 208
  -    # remove isolated nodes, only connected graphs are left
  -    U=nx.Graph() # graph for union of all graphs in atlas
  -    for G in Atlas: 
  -        zerodegree=[n for n in G if G.degree(n)==0]
  -        for n in zerodegree:
  -            G.remove_node(n)
  -        U=nx.disjoint_union(U,G)
  -
  -    # list of graphs of all connected components        
  -    C=nx.connected_component_subgraphs(U)        
  -    
  -    UU=nx.Graph()        
  -    # do quick isomorphic-like check, not a true isomorphism checker     
  -    nlist=[] # list of nonisomorphic graphs
  -    for G in C:
  -        # check against all nonisomorphic graphs so far
  -        if not iso(G,nlist):
  -            nlist.append(G)
  -            UU=nx.disjoint_union(UU,G) # union the nonisomorphic graphs  
  -    return UU            
  -
  -def iso(G1, glist):
  -    """Quick and dirty nonisomorphism checker used to check isomorphisms."""
  -    for G2 in glist:
  -        if isomorphic(G1,G2):
  -            return True
  -    return False        
  -
  -
  -if __name__ == '__main__':
  -
  -    import networkx as nx
  -
  -    G=atlas6()
  -
  -    print("graph has %d nodes with %d edges"\
  -          %(nx.number_of_nodes(G),nx.number_of_edges(G)))
  -    print(nx.number_connected_components(G),"connected components")
  -
  -
  -    try:
  -        from networkx import graphviz_layout
  -    except ImportError:
  -        raise ImportError("This example needs Graphviz and either PyGraphviz or Pydot")
  -
  -    import matplotlib.pyplot as plt
  -    plt.figure(1,figsize=(8,8))
  -    # layout graphs with positions using graphviz neato
  -    pos=nx.graphviz_layout(G,prog="neato")
  -    # color nodes the same in each connected subgraph
  -    C=nx.connected_component_subgraphs(G)
  -    for g in C:
  -        c=[random.random()]*nx.number_of_nodes(g) # random color...
  -        nx.draw(g,
  -             pos,
  -             node_size=40,
  -             node_color=c,
  -             vmin=0.0,
  -             vmax=1.0,
  -             with_labels=False
  -             )
  -    plt.savefig("atlas.png",dpi=75)   
  diff --git a/examples/drawing/atlas.py b/examples/drawing/atlas.py
  new file mode 120000
  --- /dev/null
  +++ b/examples/drawing/atlas.py
  @@ -0,0 +1 @@
  +../graph/atlas.py
  \ No newline at end of file
  
verification_info: {"golden_diff": "diff --git a/examples/drawing/atlas.py b/examples/drawing/atlas.py\ndeleted file mode 100644\n--- a/examples/drawing/atlas.py\n+++ /dev/null\n@@ -1,87 +0,0 @@\n-#!/usr/bin/env python\n-\"\"\"\n-Atlas of all graphs of 6 nodes or less.\n-\n-\"\"\"\n-__author__ = \"\"\"Aric Hagberg (hagberg@lanl.gov)\"\"\"\n-#    Copyright (C) 2004 by \n-#    Aric Hagberg <hagberg@lanl.gov>\n-#    Dan Schult <dschult@colgate.edu>\n-#    Pieter Swart <swart@lanl.gov>\n-#    All rights reserved.\n-#    BSD license.\n-\n-import networkx as nx\n-#from networkx import *\n-#from networkx.generators.atlas import *\n-from networkx.algorithms.isomorphism.isomorph import graph_could_be_isomorphic as isomorphic\n-import random\n-\n-def atlas6():\n-    \"\"\" Return the atlas of all connected graphs of 6 nodes or less.\n-        Attempt to check for isomorphisms and remove.\n-    \"\"\"\n-\n-    Atlas=nx.graph_atlas_g()[0:208] # 208\n-    # remove isolated nodes, only connected graphs are left\n-    U=nx.Graph() # graph for union of all graphs in atlas\n-    for G in Atlas: \n-        zerodegree=[n for n in G if G.degree(n)==0]\n-        for n in zerodegree:\n-            G.remove_node(n)\n-        U=nx.disjoint_union(U,G)\n-\n-    # list of graphs of all connected components        \n-    C=nx.connected_component_subgraphs(U)        \n-    \n-    UU=nx.Graph()        \n-    # do quick isomorphic-like check, not a true isomorphism checker     \n-    nlist=[] # list of nonisomorphic graphs\n-    for G in C:\n-        # check against all nonisomorphic graphs so far\n-        if not iso(G,nlist):\n-            nlist.append(G)\n-            UU=nx.disjoint_union(UU,G) # union the nonisomorphic graphs  \n-    return UU            \n-\n-def iso(G1, glist):\n-    \"\"\"Quick and dirty nonisomorphism checker used to check isomorphisms.\"\"\"\n-    for G2 in glist:\n-        if isomorphic(G1,G2):\n-            return True\n-    return False        \n-\n-\n-if __name__ == '__main__':\n-\n-    import networkx as nx\n-\n-    G=atlas6()\n-\n-    print(\"graph has %d nodes with %d edges\"\\\n-          %(nx.number_of_nodes(G),nx.number_of_edges(G)))\n-    print(nx.number_connected_components(G),\"connected components\")\n-\n-\n-    try:\n-        from networkx import graphviz_layout\n-    except ImportError:\n-        raise ImportError(\"This example needs Graphviz and either PyGraphviz or Pydot\")\n-\n-    import matplotlib.pyplot as plt\n-    plt.figure(1,figsize=(8,8))\n-    # layout graphs with positions using graphviz neato\n-    pos=nx.graphviz_layout(G,prog=\"neato\")\n-    # color nodes the same in each connected subgraph\n-    C=nx.connected_component_subgraphs(G)\n-    for g in C:\n-        c=[random.random()]*nx.number_of_nodes(g) # random color...\n-        nx.draw(g,\n-             pos,\n-             node_size=40,\n-             node_color=c,\n-             vmin=0.0,\n-             vmax=1.0,\n-             with_labels=False\n-             )\n-    plt.savefig(\"atlas.png\",dpi=75)   \ndiff --git a/examples/drawing/atlas.py b/examples/drawing/atlas.py\nnew file mode 120000\n--- /dev/null\n+++ b/examples/drawing/atlas.py\n@@ -0,0 +1 @@\n+../graph/atlas.py\n\\ No newline at end of file\n", "issue": "doc build broken\nFrom a clean checkout I ran `python setup.py install` and then I attempted to build a local copy of the docs via `make html` in `doc` and got the following error:\n\n```\n(py2k-base)tcaswell@tcaswellpc1:~/other_source/networkx/doc$ make html\nmkdir -p build\n./make_gallery.py \natlas.pyTraceback (most recent call last):\n  File \"./make_gallery.py\", line 57, in <module>\n    execfile(example)\n  File \"atlas.py\", line 59, in <module>\n    G=atlas6()\n  File \"atlas.py\", line 25, in atlas6\n    Atlas=nx.graph_atlas_g()[0:208] # 208\nAttributeError: 'module' object has no attribute 'graph_atlas_g'\nmake: *** [build/generate-stamp] Error 1\n```\n\n", "before_files": [{"content": "#!/usr/bin/env python\n\"\"\"\nAtlas of all graphs of 6 nodes or less.\n\n\"\"\"\n__author__ = \"\"\"Aric Hagberg (hagberg@lanl.gov)\"\"\"\n#    Copyright (C) 2004 by \n#    Aric Hagberg <hagberg@lanl.gov>\n#    Dan Schult <dschult@colgate.edu>\n#    Pieter Swart <swart@lanl.gov>\n#    All rights reserved.\n#    BSD license.\n\nimport networkx as nx\n#from networkx import *\n#from networkx.generators.atlas import *\nfrom networkx.algorithms.isomorphism.isomorph import graph_could_be_isomorphic as isomorphic\nimport random\n\ndef atlas6():\n    \"\"\" Return the atlas of all connected graphs of 6 nodes or less.\n        Attempt to check for isomorphisms and remove.\n    \"\"\"\n\n    Atlas=nx.graph_atlas_g()[0:208] # 208\n    # remove isolated nodes, only connected graphs are left\n    U=nx.Graph() # graph for union of all graphs in atlas\n    for G in Atlas: \n        zerodegree=[n for n in G if G.degree(n)==0]\n        for n in zerodegree:\n            G.remove_node(n)\n        U=nx.disjoint_union(U,G)\n\n    # list of graphs of all connected components        \n    C=nx.connected_component_subgraphs(U)        \n    \n    UU=nx.Graph()        \n    # do quick isomorphic-like check, not a true isomorphism checker     \n    nlist=[] # list of nonisomorphic graphs\n    for G in C:\n        # check against all nonisomorphic graphs so far\n        if not iso(G,nlist):\n            nlist.append(G)\n            UU=nx.disjoint_union(UU,G) # union the nonisomorphic graphs  \n    return UU            \n\ndef iso(G1, glist):\n    \"\"\"Quick and dirty nonisomorphism checker used to check isomorphisms.\"\"\"\n    for G2 in glist:\n        if isomorphic(G1,G2):\n            return True\n    return False        \n\n\nif __name__ == '__main__':\n\n    import networkx as nx\n\n    G=atlas6()\n\n    print(\"graph has %d nodes with %d edges\"\\\n          %(nx.number_of_nodes(G),nx.number_of_edges(G)))\n    print(nx.number_connected_components(G),\"connected components\")\n\n\n    try:\n        from networkx import graphviz_layout\n    except ImportError:\n        raise ImportError(\"This example needs Graphviz and either PyGraphviz or Pydot\")\n\n    import matplotlib.pyplot as plt\n    plt.figure(1,figsize=(8,8))\n    # layout graphs with positions using graphviz neato\n    pos=nx.graphviz_layout(G,prog=\"neato\")\n    # color nodes the same in each connected subgraph\n    C=nx.connected_component_subgraphs(G)\n    for g in C:\n        c=[random.random()]*nx.number_of_nodes(g) # random color...\n        nx.draw(g,\n             pos,\n             node_size=40,\n             node_color=c,\n             vmin=0.0,\n             vmax=1.0,\n             with_labels=False\n             )\n    plt.savefig(\"atlas.png\",dpi=75)   \n", "path": "examples/drawing/atlas.py"}], "after_files": [{"content": "#!/usr/bin/env python\n\"\"\"\nAtlas of all graphs of 6 nodes or less.\n\n\"\"\"\n__author__ = \"\"\"Aric Hagberg (hagberg@lanl.gov)\"\"\"\n#    Copyright (C) 2004 by \n#    Aric Hagberg <hagberg@lanl.gov>\n#    Dan Schult <dschult@colgate.edu>\n#    Pieter Swart <swart@lanl.gov>\n#    All rights reserved.\n#    BSD license.\n\nimport networkx as nx\nfrom networkx.generators.atlas import *\nfrom networkx.algorithms.isomorphism.isomorph import graph_could_be_isomorphic as isomorphic\nimport random\n\ndef atlas6():\n    \"\"\" Return the atlas of all connected graphs of 6 nodes or less.\n        Attempt to check for isomorphisms and remove.\n    \"\"\"\n\n    Atlas=graph_atlas_g()[0:208] # 208\n    # remove isolated nodes, only connected graphs are left\n    U=nx.Graph() # graph for union of all graphs in atlas\n    for G in Atlas: \n        zerodegree=[n for n in G if G.degree(n)==0]\n        for n in zerodegree:\n            G.remove_node(n)\n        U=nx.disjoint_union(U,G)\n\n    # list of graphs of all connected components        \n    C=nx.connected_component_subgraphs(U)        \n    \n    UU=nx.Graph()        \n    # do quick isomorphic-like check, not a true isomorphism checker     \n    nlist=[] # list of nonisomorphic graphs\n    for G in C:\n        # check against all nonisomorphic graphs so far\n        if not iso(G,nlist):\n            nlist.append(G)\n            UU=nx.disjoint_union(UU,G) # union the nonisomorphic graphs  \n    return UU            \n\ndef iso(G1, glist):\n    \"\"\"Quick and dirty nonisomorphism checker used to check isomorphisms.\"\"\"\n    for G2 in glist:\n        if isomorphic(G1,G2):\n            return True\n    return False        \n\n\nif __name__ == '__main__':\n\n    import networkx as nx\n\n    G=atlas6()\n\n    print(\"graph has %d nodes with %d edges\"\\\n          %(nx.number_of_nodes(G),nx.number_of_edges(G)))\n    print(nx.number_connected_components(G),\"connected components\")\n\n\n    try:\n        from networkx import graphviz_layout\n    except ImportError:\n        raise ImportError(\"This example needs Graphviz and either PyGraphviz or Pydot\")\n\n    import matplotlib.pyplot as plt\n    plt.figure(1,figsize=(8,8))\n    # layout graphs with positions using graphviz neato\n    pos=nx.graphviz_layout(G,prog=\"neato\")\n    # color nodes the same in each connected subgraph\n    C=nx.connected_component_subgraphs(G)\n    for g in C:\n        c=[random.random()]*nx.number_of_nodes(g) # random color...\n        nx.draw(g,\n             pos,\n             node_size=40,\n             node_color=c,\n             vmin=0.0,\n             vmax=1.0,\n             with_labels=False\n             )\n    plt.savefig(\"atlas.png\",dpi=75)   \n", "path": "examples/drawing/atlas.py"}]}