Install a Python package based on active_gpu or version












0












$begingroup$


I have the following code, is there a way to optimize it/reduce the code?



  #!/bin/bash

if [[ "${active_gpu}" == 'true' ]]; then
if [[ "${version}" == 'dev-gpu' ]]; then
pip install "${version}"
else
pip install package-gpu=="${version}"
fi
else
if [[ "${version}" == 'nightly' ]]; then
pip install "${version}"
else
pip install package=="${version}"
fi
fi









share|improve this question











$endgroup$












  • $begingroup$
    Please explain what this code accomplishes, and what these conditions are. See How to Ask.
    $endgroup$
    – 200_success
    6 hours ago










  • $begingroup$
    Install a Python package, based on 2 variables: active_gpu or version. Code is itself explanatory
    $endgroup$
    – spicyramen
    13 mins ago
















0












$begingroup$


I have the following code, is there a way to optimize it/reduce the code?



  #!/bin/bash

if [[ "${active_gpu}" == 'true' ]]; then
if [[ "${version}" == 'dev-gpu' ]]; then
pip install "${version}"
else
pip install package-gpu=="${version}"
fi
else
if [[ "${version}" == 'nightly' ]]; then
pip install "${version}"
else
pip install package=="${version}"
fi
fi









share|improve this question











$endgroup$












  • $begingroup$
    Please explain what this code accomplishes, and what these conditions are. See How to Ask.
    $endgroup$
    – 200_success
    6 hours ago










  • $begingroup$
    Install a Python package, based on 2 variables: active_gpu or version. Code is itself explanatory
    $endgroup$
    – spicyramen
    13 mins ago














0












0








0





$begingroup$


I have the following code, is there a way to optimize it/reduce the code?



  #!/bin/bash

if [[ "${active_gpu}" == 'true' ]]; then
if [[ "${version}" == 'dev-gpu' ]]; then
pip install "${version}"
else
pip install package-gpu=="${version}"
fi
else
if [[ "${version}" == 'nightly' ]]; then
pip install "${version}"
else
pip install package=="${version}"
fi
fi









share|improve this question











$endgroup$




I have the following code, is there a way to optimize it/reduce the code?



  #!/bin/bash

if [[ "${active_gpu}" == 'true' ]]; then
if [[ "${version}" == 'dev-gpu' ]]; then
pip install "${version}"
else
pip install package-gpu=="${version}"
fi
else
if [[ "${version}" == 'nightly' ]]; then
pip install "${version}"
else
pip install package=="${version}"
fi
fi






bash shell sh






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited 12 mins ago









200_success

129k15153417




129k15153417










asked 7 hours ago









spicyramenspicyramen

270312




270312












  • $begingroup$
    Please explain what this code accomplishes, and what these conditions are. See How to Ask.
    $endgroup$
    – 200_success
    6 hours ago










  • $begingroup$
    Install a Python package, based on 2 variables: active_gpu or version. Code is itself explanatory
    $endgroup$
    – spicyramen
    13 mins ago


















  • $begingroup$
    Please explain what this code accomplishes, and what these conditions are. See How to Ask.
    $endgroup$
    – 200_success
    6 hours ago










  • $begingroup$
    Install a Python package, based on 2 variables: active_gpu or version. Code is itself explanatory
    $endgroup$
    – spicyramen
    13 mins ago
















$begingroup$
Please explain what this code accomplishes, and what these conditions are. See How to Ask.
$endgroup$
– 200_success
6 hours ago




$begingroup$
Please explain what this code accomplishes, and what these conditions are. See How to Ask.
$endgroup$
– 200_success
6 hours ago












$begingroup$
Install a Python package, based on 2 variables: active_gpu or version. Code is itself explanatory
$endgroup$
– spicyramen
13 mins ago




$begingroup$
Install a Python package, based on 2 variables: active_gpu or version. Code is itself explanatory
$endgroup$
– spicyramen
13 mins ago










1 Answer
1






active

oldest

votes


















1












$begingroup$

For this kind of problem you want to build a command line with variables, and run it only once.



You only have a few cases but the benefits of this approach become apparent as you add more cases: you don't need an exponential number of branches to keep up.



This code does not exactly follow the logic of your code but it's probably close enough. I'm using an associative array to build the param variable, and bash regular expressions to test for multiple no-param cases.



#!/bin/bash
declare -A gpu_param=( [true]=-gpu )
[[ $version =~ nightly|dev-gpu ]] || param=package${gpu_param[$active_gpu]}==
pip install $param$version





share|improve this answer









$endgroup$













    Your Answer





    StackExchange.ifUsing("editor", function () {
    return StackExchange.using("mathjaxEditing", function () {
    StackExchange.MarkdownEditor.creationCallbacks.add(function (editor, postfix) {
    StackExchange.mathjaxEditing.prepareWmdForMathJax(editor, postfix, [["\$", "\$"]]);
    });
    });
    }, "mathjax-editing");

    StackExchange.ifUsing("editor", function () {
    StackExchange.using("externalEditor", function () {
    StackExchange.using("snippets", function () {
    StackExchange.snippets.init();
    });
    });
    }, "code-snippets");

    StackExchange.ready(function() {
    var channelOptions = {
    tags: "".split(" "),
    id: "196"
    };
    initTagRenderer("".split(" "), "".split(" "), channelOptions);

    StackExchange.using("externalEditor", function() {
    // Have to fire editor after snippets, if snippets enabled
    if (StackExchange.settings.snippets.snippetsEnabled) {
    StackExchange.using("snippets", function() {
    createEditor();
    });
    }
    else {
    createEditor();
    }
    });

    function createEditor() {
    StackExchange.prepareEditor({
    heartbeatType: 'answer',
    autoActivateHeartbeat: false,
    convertImagesToLinks: false,
    noModals: true,
    showLowRepImageUploadWarning: true,
    reputationToPostImages: null,
    bindNavPrevention: true,
    postfix: "",
    imageUploader: {
    brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
    contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
    allowUrls: true
    },
    onDemand: true,
    discardSelector: ".discard-answer"
    ,immediatelyShowMarkdownHelp:true
    });


    }
    });














    draft saved

    draft discarded


















    StackExchange.ready(
    function () {
    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fcodereview.stackexchange.com%2fquestions%2f214195%2finstall-a-python-package-based-on-active-gpu-or-version%23new-answer', 'question_page');
    }
    );

    Post as a guest















    Required, but never shown

























    1 Answer
    1






    active

    oldest

    votes








    1 Answer
    1






    active

    oldest

    votes









    active

    oldest

    votes






    active

    oldest

    votes









    1












    $begingroup$

    For this kind of problem you want to build a command line with variables, and run it only once.



    You only have a few cases but the benefits of this approach become apparent as you add more cases: you don't need an exponential number of branches to keep up.



    This code does not exactly follow the logic of your code but it's probably close enough. I'm using an associative array to build the param variable, and bash regular expressions to test for multiple no-param cases.



    #!/bin/bash
    declare -A gpu_param=( [true]=-gpu )
    [[ $version =~ nightly|dev-gpu ]] || param=package${gpu_param[$active_gpu]}==
    pip install $param$version





    share|improve this answer









    $endgroup$


















      1












      $begingroup$

      For this kind of problem you want to build a command line with variables, and run it only once.



      You only have a few cases but the benefits of this approach become apparent as you add more cases: you don't need an exponential number of branches to keep up.



      This code does not exactly follow the logic of your code but it's probably close enough. I'm using an associative array to build the param variable, and bash regular expressions to test for multiple no-param cases.



      #!/bin/bash
      declare -A gpu_param=( [true]=-gpu )
      [[ $version =~ nightly|dev-gpu ]] || param=package${gpu_param[$active_gpu]}==
      pip install $param$version





      share|improve this answer









      $endgroup$
















        1












        1








        1





        $begingroup$

        For this kind of problem you want to build a command line with variables, and run it only once.



        You only have a few cases but the benefits of this approach become apparent as you add more cases: you don't need an exponential number of branches to keep up.



        This code does not exactly follow the logic of your code but it's probably close enough. I'm using an associative array to build the param variable, and bash regular expressions to test for multiple no-param cases.



        #!/bin/bash
        declare -A gpu_param=( [true]=-gpu )
        [[ $version =~ nightly|dev-gpu ]] || param=package${gpu_param[$active_gpu]}==
        pip install $param$version





        share|improve this answer









        $endgroup$



        For this kind of problem you want to build a command line with variables, and run it only once.



        You only have a few cases but the benefits of this approach become apparent as you add more cases: you don't need an exponential number of branches to keep up.



        This code does not exactly follow the logic of your code but it's probably close enough. I'm using an associative array to build the param variable, and bash regular expressions to test for multiple no-param cases.



        #!/bin/bash
        declare -A gpu_param=( [true]=-gpu )
        [[ $version =~ nightly|dev-gpu ]] || param=package${gpu_param[$active_gpu]}==
        pip install $param$version






        share|improve this answer












        share|improve this answer



        share|improve this answer










        answered 1 hour ago









        Oh My GoodnessOh My Goodness

        54529




        54529






























            draft saved

            draft discarded




















































            Thanks for contributing an answer to Code Review Stack Exchange!


            • Please be sure to answer the question. Provide details and share your research!

            But avoid



            • Asking for help, clarification, or responding to other answers.

            • Making statements based on opinion; back them up with references or personal experience.


            Use MathJax to format equations. MathJax reference.


            To learn more, see our tips on writing great answers.




            draft saved


            draft discarded














            StackExchange.ready(
            function () {
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fcodereview.stackexchange.com%2fquestions%2f214195%2finstall-a-python-package-based-on-active-gpu-or-version%23new-answer', 'question_page');
            }
            );

            Post as a guest















            Required, but never shown





















































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown

































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown







            Popular posts from this blog

            404 Error Contact Form 7 ajax form submitting

            How to know if a Active Directory user can login interactively

            Refactoring coordinates for Minecraft Pi buildings written in Python