@tasks.register<EOL>def cd(doi):
parts = doi.split('<STR_LIT::>')<EOL>if len(parts) == <NUM_LIT:2>:<EOL><INDENT>container_name, product_name = parts[<NUM_LIT:0>], parts[<NUM_LIT:1>]<EOL><DEDENT>elif len(parts) == <NUM_LIT:1> and os.environ.get('<STR_LIT>'):<EOL><INDENT>product_name = parts[<NUM_LIT:0>]<EOL>container_name = os.environ.get('<STR_LIT>')<EOL><DEDENT>else:<EOL><INDENT>print('<STR_LIT>')<EOL>sys.exit(<NUM_LIT:1>)<EOL><DEDENT>if container_name not in tasks.get_containers():<EOL><INDENT>print('<STR_LIT>')<EOL><DEDENT>else:<EOL><INDENT>if product_name:<EOL><INDENT>if product_name not in tasks.get_products(container_name):<EOL><INDENT>print('<STR_LIT>')<EOL><DEDENT>else:<EOL><INDENT>print(tasks.conf.SOURCE_HEADER)<EOL>print('<STR_LIT>' + tasks.get_product_dir(container_name, product_name))<EOL><DEDENT><DEDENT>else:<EOL><INDENT>print(tasks.conf.SOURCE_HEADER)<EOL>print('<STR_LIT>' + tasks.get_container_dir(container_name))<EOL><DEDENT><DEDENT>
cd to directory of interest(doi)

a doi can be:

herbert - the container named "herbert"
sdox:dev - product "website" located in container "herbert"
:param doi:
:return: