def hlpr_build_pip_command()

in src/helperscripts/neuronsetuphelper.py [0:0]


def hlpr_build_pip_command(nr_setup, neuron_version, component,include_compiler,optional):


    package_dict= nr_setup.releases_info[neuron_version].release_package_main

    if (nr_setup.framework_version==None):
        fw_package_dict= nr_setup.releases_info[neuron_version].release_frameworks_main
        fw_comp=component
    else:
        fw_package_dict= nr_setup.releases_info[neuron_version].release_frameworks_all
        fw_comp=nr_setup.framework_version
   
    pip_cmd_prefix=''
    pip_cmd =''


    if nr_setup.action=='Install':
        pip_cmd_prefix = 'pip install '
    else:
        pip_cmd_prefix = 'pip install --upgrade '

    cmd=pip_cmd_prefix

    if (component == 'mxnet') | (component == 'pytorch') | (component == 'tensorflow'):

        # Framework installation
        if (component == 'mxnet') | (component == 'pytorch'):
            pip_cmd += cmd + fw_package_dict[fw_comp]['package']
            if (nr_setup.is_latest_neuron==False) | (nr_setup.force_versions == True):
                pip_cmd += '=='+fw_package_dict[fw_comp]['version']
            elif (nr_setup.is_latest_neuron==True)&(nr_setup.framework_version!=None):
                pip_cmd += '=='+fw_package_dict[fw_comp]['framework_version']+'.*'

        elif (component == 'tensorflow'):
            if ((parse(neuron_version)<parse('1.15.0')) | (parse(fw_package_dict[fw_comp]['framework_version'])<parse('2.0.0'))):
                pip_cmd += cmd + fw_package_dict[fw_comp]['package']
            else:
                pip_cmd = cmd + fw_package_dict[fw_comp]['package']
                if (include_compiler == True):
                    pip_cmd +=  '[cc]'
                    
            if (nr_setup.is_latest_neuron==False) | (nr_setup.force_versions == True):
                pip_cmd += '=='+fw_package_dict[fw_comp]['version']
            elif (nr_setup.is_latest_neuron==True)&(nr_setup.framework_version!=None):
                pip_cmd += '=='+fw_package_dict[fw_comp]['framework_version']+'.*'

        # Compiler installation
        if (include_compiler == True):
            if (component == 'tensorflow'):
                if ((parse(neuron_version)<parse('1.15.0')) | (parse(fw_package_dict[fw_comp]['framework_version'])<parse('2.0.0'))):
                    pip_cmd += ' ' + package_dict['compiler']['package']
                    if (nr_setup.is_latest_neuron==False) | (nr_setup.force_versions == True):
                        pip_cmd += '=='+package_dict['compiler']['version']
            if (component == 'mxnet'):
                pip_cmd += ' ' + package_dict['compiler']['package']
                if (nr_setup.is_latest_neuron==False) | (nr_setup.force_versions == True):
                    pip_cmd += '=='+package_dict['compiler']['version']

            if (component == 'pytorch'):
                pip_cmd += ' ' + package_dict['compiler']['package']
                pip_cmd += '[tensorflow]'
                if (nr_setup.is_latest_neuron==False) | (nr_setup.force_versions == True):
                    pip_cmd += '=='+package_dict['compiler']['version']

        # Additional packages installation
        if (component == 'pytorch'):
                pip_cmd += ' torchvision'


    else:
        pip_cmd += '\n'
        if optional==False:
            pip_cmd += '# ' + nr_setup.action  + ' ' + package_formal_name[component] + '\n'
        else:
            pip_cmd += '# Optional: ' + nr_setup.action  + ' ' + package_formal_name[component] + '\n'
        pip_cmd += cmd + package_dict[component]['package']
        if (nr_setup.is_latest_neuron==False) | (nr_setup.force_versions == True):
            pip_cmd += '=='+package_dict[component]['version']




    pip_cmd += '\n'
    return pip_cmd