^^^^^^^^^^^^^^^^^^^^^^
Fixed Bugs
^^^^^^^^^^^^^^^^^^^^^^
########    
Issue3    
########
    
===============
Manifestation
===============

    Calling::
    
           graph_printout(
           open("flowchart.svg", "w"),
           "svg",
           [final_task]
         )
 
    dies with::
    
        TypeError: "unbound method outward() ..." on call to "graph_printout"
        
===============
Diagnosis
===============
    
        
    `graph_printout` resolves to `graph.graph_printout (...)`
    
    Should be `task.pipeline_printout_graph (...)`
    
    The error is in the documentation but the graph and print_dependencies modules
    should probably not be exported by default.
    
===============
Resolution
===============

    #) Changed documentation
    #) Removed the following code from ``ruffus/__init__.py``::
    
        from graph import *
        from print_dependencies import *

########    
mkdir
########
    
===============
Manifestation
===============

    Calling::
    
        from ruffus import *
        
        directories = ['a', 'b']    
        @follows(mkdir(directories))
        def task_which_makes_directories ():
            pass
        
    dies with:
        File "build/bdist.linux-i686/egg/ruffus/task.py", line 1604, in task_mkdir
        TypeError: sequence item 0: expected string, list found

    
        
===============
Diagnosis
===============
    
    mkdir should handle cleanly all three cases::
    
        mkdir(['a', 'b'])
        mkdir('a')
        mkdir('a', 'b')
    
    
===============
Resolution
===============

    #) Changes to task.py
    #) Ignores cases (especially race conditions) when the directory already exists
    #) Added test case test/test_follows_mkdir.py

^^^^^^^^^^^^^^^^^^^^^^
Updates
^^^^^^^^^^^^^^^^^^^^^^

