From c66d21dca0420b855d52e8639e107af039710a7e Mon Sep 17 00:00:00 2001 From: Morgan Goose Date: Sat, 26 Mar 2016 01:20:52 -0700 Subject: Feature addition to allow directory arguments This should address the feature request from issue-78, where the request was made to build documentation recursively for all files in a directory and it's subdirectories. https://github.com/pycco-docs/pycco/issues/78 --- pycco/main.py | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/pycco/main.py b/pycco/main.py index e95ad73..a02eee2 100644 --- a/pycco/main.py +++ b/pycco/main.py @@ -456,6 +456,23 @@ highlight_start = "
"
 # The end of each Pygments highlight block.
 highlight_end = "
" +def _flatten_sources(sources): + """ + This function will iterate through the list of sources and if a directory + is encountered it will walk the tree for any files + """ + _sources = [] + + for source in sources: + if os.path.isdir(source): + for dirpath, _, filenames in os.walk(source): + _sources.extend([os.path.join(dirpath,f) for f in filenames]) + else: + _sources.append(source) + + return _sources + + def process(sources, preserve_paths=True, outdir=None, language=None, encoding="utf8", index=False): """For each source file passed as argument, generate the documentation.""" @@ -465,7 +482,7 @@ def process(sources, preserve_paths=True, outdir=None, language=None, encoding=" # Make a copy of sources given on the command line. `main()` needs the # original list when monitoring for changed files. - sources = sorted(sources) + sources = sorted(_flatten_sources(sources)) # Proceed to generating the documentation. if sources: -- cgit v1.2.1