def create_directories(datadir, sitedir, srcdir=None):
<EOL>if not path.isdir(datadir):<EOL><INDENT>os.makedirs(datadir, mode=<NUM_LIT>)<EOL><DEDENT>try:<EOL><INDENT>os.makedirs(sitedir, mode=<NUM_LIT>)<EOL><DEDENT>except OSError:<EOL><INDENT>raise DatacatsError("<STR_LIT>")<EOL><DEDENT>if not docker.is_boot2docker():<EOL><INDENT>if not path.isdir(datadir + '<STR_LIT>'):<EOL><INDENT>os.makedirs(datadir + '<STR_LIT>')<EOL><DEDENT>os.makedirs(sitedir + '<STR_LIT>')<EOL><DEDENT>os.makedirs(sitedir + '<STR_LIT>')<EOL>os.makedirs(sitedir + '<STR_LIT>')<EOL>os.makedirs(sitedir + '<STR_LIT>')<EOL>if srcdir:<EOL><INDENT>os.makedirs(srcdir)<EOL><DEDENT>
Create expected directories in datadir, sitedir
and optionally srcdir