diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 1db6789..458ef1a 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -28,7 +28,7 @@ jobs: - name: Validate workflow run: yadage-validate workflow/yadage/workflow.yaml | grep -q 'workflow validates' - - run: docker run -i --rm -v `pwd`:/workdir reanahub/reana-env-jupyter:1.0.0 bash -c ' + - run: docker run -i --rm -v `pwd`:/workdir reanahub/reana-env-jupyter:2.0.0 bash -c ' cd /workdir && mkdir -p ./results && papermill ./code/worldpopulation.ipynb /dev/null @@ -39,4 +39,3 @@ jobs: -p year_max 2010' - run: ls -l `pwd`/results/plot.png - diff --git a/README.rst b/README.rst index 2cc5f07..ff2cdf5 100644 --- a/README.rst +++ b/README.rst @@ -158,7 +158,7 @@ workflow steps and expected outputs: type: serial specification: steps: - - environment: 'reanahub/reana-env-jupyter:1.0.0' + - environment: 'reanahub/reana-env-jupyter:2.0.0' commands: - mkdir -p results && papermill ${notebook} /dev/null -p input_file ${input_file} -p output_file ${output_file} -p region ${region} -p year_min ${year_min} -p year_max ${year_max} outputs: diff --git a/code/worldpopulation-py3.ipynb b/code/worldpopulation-py3.ipynb deleted file mode 100644 index a9dd97f..0000000 --- a/code/worldpopulation-py3.ipynb +++ /dev/null @@ -1,113 +0,0 @@ -{ - "cells": [ - { - "cell_type": "code", - "execution_count": null, - "source": [ - "# import necessary libraries\n", - "import matplotlib.pyplot as plt\n", - "import pandas as pd" - ], - "outputs": [], - "metadata": {} - }, - { - "cell_type": "code", - "execution_count": 2, - "source": [ - "# define input parameters\n", - "input_file = \"../data/World_historical_and_predicted_populations_in_percentage.csv\"\n", - "output_file = \"../results/plot.png\"\n", - "region = 'Africa'\n", - "year_min = 1500\n", - "year_max = 2012" - ], - "outputs": [], - "metadata": { - "tags": [ - "parameters" - ] - } - }, - { - "cell_type": "code", - "execution_count": 3, - "source": [ - "# read input data file\n", - "df = pd.read_csv(input_file)" - ], - "outputs": [], - "metadata": {} - }, - { - "cell_type": "code", - "execution_count": 4, - "source": [ - "# add index\n", - "df = df.set_index(\"Region\", drop=False)" - ], - "outputs": [], - "metadata": {} - }, - { - "cell_type": "code", - "execution_count": 5, - "source": [ - "# select region and years based on input parameters\n", - "dfs = df.loc[region, str(year_min):str(year_max)]\n", - "dft = pd.DataFrame({'year': dfs.index.astype(int), 'percentage': dfs.values}, columns=['year', 'percentage'])" - ], - "outputs": [], - "metadata": {} - }, - { - "cell_type": "code", - "execution_count": 6, - "source": [ - "# create output plot and save it to a file\n", - "plot = plt.plot(dft['year'], dft['percentage'], color='blue')\n", - "plt.title('World population in {0}'.format(region))\n", - "plt.xlabel('year')\n", - "plt.ylabel('% of total world population')\n", - "plt.savefig(output_file)" - ], - "outputs": [ - { - "output_type": "display_data", - "data": { - "text/plain": [ - "" - ], - "image/png": "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" - }, - "metadata": {} - } - ], - "metadata": { - "tags": [] - } - } - ], - "metadata": { - "celltoolbar": "Tags", - "kernelspec": { - "display_name": "Python 3 (ipykernel)", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.9.5" - } - }, - "nbformat": 4, - "nbformat_minor": 4 -} diff --git a/code/worldpopulation.ipynb b/code/worldpopulation.ipynb index ebacd38..a9dd97f 100644 --- a/code/worldpopulation.ipynb +++ b/code/worldpopulation.ipynb @@ -2,24 +2,18 @@ "cells": [ { "cell_type": "code", - "execution_count": 1, - "metadata": {}, - "outputs": [], + "execution_count": null, "source": [ "# import necessary libraries\n", "import matplotlib.pyplot as plt\n", "import pandas as pd" - ] + ], + "outputs": [], + "metadata": {} }, { "cell_type": "code", "execution_count": 2, - "metadata": { - "tags": [ - "parameters" - ] - }, - "outputs": [], "source": [ "# define input parameters\n", "input_file = \"../data/World_historical_and_predicted_populations_in_percentage.csv\"\n", @@ -27,85 +21,93 @@ "region = 'Africa'\n", "year_min = 1500\n", "year_max = 2012" - ] + ], + "outputs": [], + "metadata": { + "tags": [ + "parameters" + ] + } }, { "cell_type": "code", "execution_count": 3, - "metadata": {}, - "outputs": [], "source": [ "# read input data file\n", "df = pd.read_csv(input_file)" - ] + ], + "outputs": [], + "metadata": {} }, { "cell_type": "code", "execution_count": 4, - "metadata": {}, - "outputs": [], "source": [ "# add index\n", "df = df.set_index(\"Region\", drop=False)" - ] + ], + "outputs": [], + "metadata": {} }, { "cell_type": "code", "execution_count": 5, - "metadata": {}, - "outputs": [], "source": [ "# select region and years based on input parameters\n", "dfs = df.loc[region, str(year_min):str(year_max)]\n", "dft = pd.DataFrame({'year': dfs.index.astype(int), 'percentage': dfs.values}, columns=['year', 'percentage'])" - ] + ], + "outputs": [], + "metadata": {} }, { "cell_type": "code", "execution_count": 6, - "metadata": {}, + "source": [ + "# create output plot and save it to a file\n", + "plot = plt.plot(dft['year'], dft['percentage'], color='blue')\n", + "plt.title('World population in {0}'.format(region))\n", + "plt.xlabel('year')\n", + "plt.ylabel('% of total world population')\n", + "plt.savefig(output_file)" + ], "outputs": [ { + "output_type": "display_data", "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYIAAAEWCAYAAABrDZDcAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMS4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvNQv5yAAAIABJREFUeJzt3XecVNX5x/HPAwiKBURARUAsKCKxLlhQImrsgGJFRRQFrGAJJv5iwSgaW4xgRUWwBDSxYTRRVERFQRdDs1HFAgqKDZX+/P44d8Ow7szOLjtzp3zfr9d97cydcp/L6Dxzz3nOOebuiIhI8aoVdwAiIhIvJQIRkSKnRCAiUuSUCEREipwSgYhIkVMiEBEpckoEkjVm9pqZnZPksVZm5mZWJ9txpZIq5jRe29LMlppZ7QzEtdTMtq/p943ee2czm2JmP5pZ/yTPudfMrsrE8SX7lAgEADO7wsz+XW7frCT7TsludPnBzD4xs0PL7rv7p+6+ibuvruljRe87t7qvN7NNomTy7woevhwY5+6buvuQJMc/192vq+7xJbcoEUiZ14H9y369mtnWwAbAnuX27Rg9N20W6L+13HI8sBz4nZltVe6xbYH3k70wE1c4Ei/9zyll3iV88e8R3T8QGAd8XG7fHHdfAGBm+5vZu2b2ffR3/7I3i5pUBpvZBOBnYJ1mDDOrbWa3mtnXZjYXODpVcNGv7SvM7AMz+9bMHjKzDRMe72Nms81siZmNMbNmCY+5mfU3s7nR8W4pS0xmNsjMHk14btImKjPbwcxeNbNvovd5zMwaRo89ArQEnot+aV9e/r3MrFkU25Io1j4J7z3IzJ4ws4ejJpn3zawkxb+Hm9mO0e0RZnaXmT0fvXaSme2Q6t8T6AXcC0wDTk9431eBzsCd0XnsFL3/PWb2gpn9BHSO9l2f8LpuUXPSD2Y2x8yOiPafZWYfRnHNNbN+lcQlMVAiEADcfQUwCegU7eoEvAG8WW7f6wBm1gh4HhgCbAH8FXjezLZIeNueQF9gU2B+uUP2AY4B9gRKgBPSCPM04HBgB2An4MooloOBG4GTgK2jY40u99rjouPsBXQDeqdxvPIsOk4zYBegBTAIwN17Ap8CXaJmm5sreP1o4PPo9ScAN0Sxl+kaPachMAa4swqxnQJcC2wOzAYGJz0Js22Bg4DHou2Mssfc/WDC535hdB4zo4dOjd5zU8J/E4nv1wF4GBgYxd4J+CR6eBHhc94MOAu43cz2qsJ5SRYoEUii8az90j+Q8IXwRrl946PbRwOz3P0Rd1/l7qOAj4AuCe83wt3fjx5fWe5YJwF/c/fP3H0J4Qu2MncmPH8w0CPafxow3N3fc/flwBXAfmbWKuG1N7n7Enf/FPhbwmvT5u6z3X2suy9398WE5PfbdF5rZi2AjsAf3H2Zu08BHiDhSxh4091fiPoUHgF2r0J4T7v7O+6+ivDlvkeK5/YEprn7B4TEs6uZ7VnJ+z/r7hPcfY27Lyv32NmEf/+x0eNfuPtHAO7+vLvP8WA88BLhvyPJIUoEkuh14IDo134Td58FvEXoO2gEtGNt/0Azfv0rfz6wTcL9z1Icq1m5x8u/V0XKP7+s+WedWNx9KfBNilgSX5s2M9vSzEab2Rdm9gPwKNA4zZc3A5a4+4/l4kiM8cuE2z8DG1bURJVE+ddukuK5ZxCSBe7+BSG596rk/VN9li2AORU9YGZHmtnEqDnsO+Ao0v83kyxRIpBEbwMNCM02EwDc/QdgQbRvgbvPi567gNCpmKgl8EXC/VRT2y4kfIEkvrYy5Z+/oKJYzGxjQnNVYizJXvsTUD/hsfIdp4luIJzTb9x9M0LbuiU8nup8FwCNzGzTcnF8keT5GRH147QGrjCzL83sS2Af4NRKkk6qc/uM0FxX/lj1gCeBW4Et3b0h8ALr/ptJDlAikP9x91+AUuBSQpNQmTejfYnVQi8AO5nZqWZWx8xOBtoC/0rzcE8A/c2suZltDvwxjddcED2/EfAn4PFo/yjgLDPbI/ryuQGY5O6fJLx2oJltHjXRDEh47RSgk4Wa/waEZqVkNgWWAt+b2TaENvFEX1GuU7yMu39GuLq60cw2NLPdCE0qj1b0/AzqBYwlfFZ7RFs7YCPgyGq+54OEf/9DzKyWmW1jZm2AukA9YDGwysyOBA5b3xOQmqdEIOWNB5qybofgG9G+/yUCd/+G0Al4GaEZ5nLgGHf/Os3j3A+8CEwF3gOeSuM1fye0Mc8lNEVcH8XyMnAV4dfnQsKv0/JjHZ4FJhO++J8nfHnh7mMJSWFa9HiqRHYtobP5++g9ysd8I3ClmX1nZr+v4PU9gFaEq4OngWui2LMiqrI6CRjq7l8mbPMIfRKVNQ9VyN3fIeoIJvzbjAe2jZrB+hOS/reEDucx638mUtNMC9NIPjCzT4BzqvPFaWYOtHb32TUemEgB0BWBiEiRUyIQESlyahoSESlyuiIQESlyOTXlbzKNGzf2Vq1axR2GiEhemTx58tfu3qSy5+VFImjVqhWlpaVxhyEiklfMLJ0R+5lrGjKzFmY2zsJske+b2YBofyMzG2thXvux0WAiERGJSSb7CFYBl7l7W2BfwqjQtoQRpK+4e2vgFdIbUSoiIhmSsUTg7gvd/b3o9o/Ah4QJtroBI6OnjQSOzVQMIiJSuaxUDUXTAe9JmO9+S3dfGD30JbBlktf0NbNSMytdvHhxNsIUESlKGU8EZrYJYQ6Yi6OZLP/HwyCGCgcyuPswdy9x95ImTSrt9BYRkWrKaCIwsw0ISeAxdy+boOsrC2vflq2BuyiTMYiISGqZrBoywgyPH7r7XxMeGsPaWQ57EWaFFBGRmGTyiqAjYUm8g6NFraeY2VHAX4Dfmdks4NDovqyH5cth/Hi47TZQd4qIVFXGBpS5+5skX4nokEwdtxisWgWTJ8Orr4btzTdhWbSK7JNPhn0bbhhvjCKSP/JiZHGxW7MGpk9f+8U/fjz8GK18+5vfQL9+cPDB8O23cOaZ0LcvjBwJpgUBRSQNSgQ5yB1mzlz7xT9uHHzzTXisdWs49dTwxX/QQdC06bqvnT8frrkG2rWDyy/PeugikoeUCHLE/Plrv/hffRUWREurN28OxxwTvvg7d4YWLVK/z1VXwQcfwB//CG3aQNeumY9dRPKbEkFMvvoq/NIv++KfMyfsb9IkfOmXbTvsULUmHjMYPjy832mnwVtvheYjEZFklAiy5NtvQ9t+2Rf/+++H/Q0ahCae/v3DF/+uu65/2379+vDMM9C+fbgieOedkGBERCqiRJAhS5eGap6yL/733gtt/xttBAceCD17wiGHwJ57Qu3aNX/8bbaBZ5+FTp2ge3d4+WWoV6/mjyMi+U+JoIYsXw4TJ8Irr4Qv/kmTQpnnBhvAfvuFDtyDD4Z99oG6dbMTU/v28NBD0KMHnHcePPigKolE5NeUCKopWS1/rVpQUgK//3344u/YMTTVxOWUU0Ln8XXXhUqiSy+NLxYRyU1KBGlKVcu/225w7rnhi79Tp9Dun0sGDQrJYODAUEl01FFxRyQiuUSJIIlUtfw77RQqcspq+XO9I7ZWrTDAbO7ccIUwcSK0bRt3VCKSK5QIEiSr5W/RArp0WVvL37x5vHFWx8Ybh87j9u3DuUyaBI0bxx2ViOSCok4EX3217hf/3Llhf9Om69byb799YXSytmgRykoPOghOOAFeeil7HdcikruKKhFUVst/8cXhi79t28L44q/IvvuG6qHTT4cLL4T77ivccxWR9BR0IkhWy1+/fqjlP+OM8MWfqVr+XHXaaSEJ3nhjqCTq3z/uiEQkTgWdCC68MHSS1q0bavkHDQpf/B06qEnk+utDJdEll4RKosMOizsiEYmLhWWDc1tJSYmXlpZW+XWTJ4fmoP33j7eWP1ctXRrGOcyfHyqJ2rSJOyIRqUlmNtndSyp7XsYXr4/T3nvDoYcqCSSzySYwZky4OurSBZYsiTsiEYlDQScCqdy228LTT8Onn8JJJ8HKlXFHJCLZpkQgdOwIw4aFeZIuvjjuaEQk2wq6s1jS16tXqCS65ZYwFfb558cdkYhki64I5H9uvDGshta/f7g6EJHioEQg/1O7Njz2WKgeOvFEmDUr7ohEJBuUCGQdm20Gzz0XJqrr0gW++y7uiEQk05QI5Fe22w6eeirMvXTyyWHtBREpXEoEUqFOneCee8LEdJddFnc0IpJJGUsEZjbczBaZ2YyEfXuY2UQzm2JmpWbWIVPHl/V39tlhCoohQ0J5qYgUpkxeEYwAjii372bgWnffA7g6ui857Oab4Ygj4IIL4LXX4o5GRDIhY4nA3V8Hyk9a4MBm0e0GwIJMHV9qRp06MHo07LgjHH88zJkTd0QiUtOy3UdwMXCLmX0G3ApckeyJZtY3aj4qXbx4cdYClF9r0CBUEkGoJPrhh3jjEZGale1EcB5wibu3AC4BHkz2RHcf5u4l7l7SJNcXBS4CO+4I//xnGFvQowesXh13RCJSU7KdCHoBT0W3/wGosziPdO4Md94JL7wAf/hD3NGISE3JdiJYAPw2un0woLGreaZfv7Dgz223wUMPxR2NiNSEjE06Z2ajgIOAxmb2OXAN0Ae4w8zqAMuAvpk6vmTO7bfDxx+HpLDjjmHZTxHJX5UmAjPrCAwCto2eb4C7+/apXufuPZI8tHcVY5QcU6cOPP447LsvdO8O774LrVrFHZWIVFc6TUMPAn8FDgDaAyXRXylim28eKolWrQqVRD/+GHdEIlJd6SSC79393+6+yN2/KdsyHpnkvJ12gn/8Az78EE47TZVEIvkqnUQwzsxuMbP9zGyvsi3jkUleOPRQuOOOcHXwpz/FHY2IVEc6ncX7RH9LEvY5oepHhPPPhxkz4KaboG1bOOOMuCMSkaqoNBG4e+dsBCL5yyxMTDdzJvTpEyqJ9t8/7qhEJF2VNg2ZWQMz+2vZdA9mdpuZNchGcJI/Ntgg9Be0aAHHHQeffhp3RCKSrnT6CIYDPwInRdsPgIYSya80ahT6CpYtg65dYenSuCMSkXSkkwh2cPdr3H1utF0LpBxDIMVrl13CGIPp00NfwZo1cUckIpVJJxH8YmYHlN2JBpj9krmQJN8dcUSYguLpp+Hqq+OORkQqk07V0HnAyKhfwAhrDJyZyaAk/w0YAO+/D4MHh0qiU0+NOyIRSSadqqEpwO5mtll0X7PRS6XM4K67QiVR796hkqiD5poVyUlJE4GZne7uj5rZpeX2A+Duf81wbJLn6taFJ58MCaBbtzAnUfPmcUclIuWl6iPYOPq7aQXbJhmOSwpE48ahkuinn0Iy+OmnuCMSkfKSXhG4+33RzZfdfULiY1GHsUhadt0VRo0Kk9OdeWaoKqqV7ZUwRCSpdP53HJrmPpGkjj4abr45LHf55z/HHY2IJErVR7AfsD/QpFw/wWZA7UwHJoXnssvggw/g2mtDJdFJJ8UdkYhA6iuCuoS+gDqs2z/wA3BC5kOTQmMG99wDHTuGJqLJk+OOSEQAzN1TP8FsW3efn6V4KlRSUuKlpaVxhiA1aNGiUEm0cmWoJGrWLO6IRAqTmU1295LKnpdOH8HP0XoEL5jZq2VbDcQoRappUxgzBr7/Ho49Fn7ROHWRWKWTCB4DPgK2A64FPgHezWBMUgR22w3+/ncoLQ0Dziq5MBWRDEonEWzh7g8CK919vLv3RovSSA3o2hVuuAFGjw5TUYhIPNKZa2hl9HehmR0NLAAaZS4kKSZ/+EOoJLrqqlBJ1L173BGJFJ90EsH10YRzlxHGD2wGXJLRqKRomMGwYTBrFvTsCdttB3vuGXdUIsWl0qqhXKCqocL35Zehksg9VBJttVXcEYnkv3SrhlINKBtKWKS+Qu7ev5qxifzKVlvBs8/CAQeEpS7HjYMNN4w7KpHikKqzuBSYnGJLycyGm9kiM5tRbv9FZvaRmb1vZjdXP3QpNHvuCY88AhMnQp8+qiQSyZZUk86NXM/3HgHcCTxctsPMOgPdgN3dfbmZNV3PY0iB6d4drrsudB63axc6k0UksyrtLDazcVTQROTuKUtI3f11M2tVbvd5wF/cfXn0nEVpRypF409/CqubXXFFWAO5a9e4IxIpbOlUDf0+4faGwPHAqmoebyfgQDMbDCwDfu/uFQ5OM7O+QF+Ali1bVvNwko/MYPhwmDMnLHH51lthAJqIZEalA8rcfXLCNsHdLwUOqubx6hDGIOwLDASesLIlz3593GHuXuLuJU2aNKnm4SRfbbQRPPMMNGwYrggW6dpRJGMqTQRm1ihha2xmhwMNqnm8z4GnPHgHWAM0ruZ7SYFr1ixUEi1aFPoOli+POyKRwpTOFBOTWVtB9DZhYNnZ1TzeM0BnADPbiTDV9dfVfC8pAnvvDSNGwIQJcO65qiQSyYRK+wjcfbvqvLGZjSI0ITU2s8+Ba4DhwPCopHQF0MvzYUSbxOqkk9YuaNOuXVjgRkRqTjpVQxsC5wMHEKqH3gDudfdlqV7n7j2SPHR6VYMUufrqkAwGDoQ2bcLSlyJSM9JpGnoY2JUwz9Cd0e1HMhmUSHm1aoUmoj33hB49QnmpiNSMdMpH27l724T748zsg0wFJJJM/fqh87hDB+jSBd55Bxqr1EBkvaVzRfCeme1bdsfM9iF0HotkXfPmoax0wQI4/nhYsSLuiETyXzqJYG/gLTP7xMw+IVQOtTez6WY2LaPRiVSgQwd46CF4/XW44AJVEomsr3Saho7IeBQiVVTWTzB4cKgkGjAg7ohE8lc65aPzzWx34MBo1xvuPjWzYYlU7s9/DpVEl14KO+8MR+gni0i1pDOyeABhAfum0faomV2U6cBEKlOrFjz8MPzmN3DyyfDRR3FHJJKf0ukjOBvYx92vdverCfME9clsWCLp2WQTGDMmLGLTpQssWRJ3RCI14+OPw5iZ8eMzf6x0EoEBqxPur472ieSEli1DJdGnn8KJJ8LKlXFHJLL+pk0LyWCzzTJ/rHQSwUPAJDMbZGbXAhOBBzMblkjV7LcfPPAAvPqqOo6lMEyfHpo/d9kl88dKp7P4r2b2GmunmDjL3f+b6cBEqqpnz1BJdNNNsOuuobRUJF/NmAGtW2dn7e50rgjKWLm/Ijln8ODQVzBgALz8ctzRiFTf9OmhECIb0qkauhoYCWxOWDvgITO7MtOBiVRH7drw2GPQtm3oL5g5M+6IRKru55/DCn3t2mXneOlcEZwGtHf3Qe5+DaFqqGdmwxKpvk03DZVEdeqEq4Nvv407IpGq+eCDMGI+Z64IgAWEtYrL1AO+yEw4IjWjVSt4+mmYNy+MMVhV3VW2RWIwLZq8J5euCL4H3jezEWb2EDAD+M7MhpjZkMyGJ1J9BxwA994LY8eG0cci+eLtt8N63TvumJ3jpTPX0NPRVua1zIQiUvN69w6VRH/9a6gk6tcv7ohEKjdhAnTsGMpHsyGd8tGR2QhEJFNuvjlMP3HhhbDTTtC5c9wRiST39dfw4YdwxhnZO2aW8o1IfGrXhlGjQhI44QSYPTvuiESSe+ut8Ldjx+wdU4lAisJmm4VKIoCuXeH77+ONRySZCROgbl1o3z57x1QikKKxww7w5JMwa1ZYz2D16spfI5JtkyeHstFsjCguk7SPwMyeI0wpUSF375qRiEQy6KCD4O67oW9fGDgwdCKL5Ap3mDoVunXL7nFTdRbfGv3tDmwFPBrd7wF8lcmgRDKpT58wj8vtt4dKorPPjjsikWDhwtBZvPvu2T1u0kTg7uMBzOw2dy9JeOg5M9Pi9ZLXbrstVBKdd16Y2KtTp7gjEglXA5D9RJBOH8HGZrZ92R0z2w7YOHMhiWRenTrw+OOw/fZw/PFhBLJI3KZMCX932y27x00nEVwCvGZmr5nZeGAccHFlLzKz4Wa2yMxmVPDYZWbmZta46iGL1IyGDeG550KncZcu8MMPcUckxW7q1DA9SsOG2T1upYnA3f8DtAYGAP2Bnd39xTTeewTwq+XEzawFcBjwaZUiFcmA1q3hH/8IzUSnnaZKIonX1KnZbxaCFInAzLqXbcDRwA7RdnS0LyV3fx2oaAXZ24HLSVGRJJJNhxwCQ4bAv/4F//d/cUcjxernn8O06XEkglRVQ11SPObAU1U9mJl1A75w96lmqde3MbO+QF+Ali1bVvVQIlVy/vlhTqKbbw5rGfTqFXdEUmxmzIA1a3IsEbj7WWZWCzjB3Z9Y3wOZWX3g/wjNQpVy92HAMICSkhJdPUjG/e1vYbHwvn1Dk9H++8cdkRSTsoqhPfbI/rFT9hG4+xpCM05N2AHYDphqZp8AzYH3zGyrGnp/kfWywQbwxBPQsiUcdxzMnx93RFJMpk4Niyq1apX9Y6dTNfSymf3ezFqYWaOyraoHcvfp7t7U3Vu5eyvgc2Avd/+yqu8lkimNGoVKouXLw5xES5fGHZEUi6lTQ9lotqaeTpTOIU8GLgBeByZHW6UDysxsFPA2sLOZfW5mGr8peaFNm3BlMGMG9OwZ2m1FMmnNmvgqhiC99Qi2q84bu3uPSh5vVZ33FcmGww4LU1AMGABXXQWDB8cdkRSyTz6BH3+Mp38A0kgEZrYBcB5QNgj/NeA+d1+ZwbhEYnfRRaGS6IYbQiXRaafFHZEUqrimliiTTtPQPcDewN3Rtne0T6SgmcHQofDb34aJ6SZNijsiKVRTp4a+gWwtVl9eOmsWt3f3xDz1qplNzVRAIrmkbt2whkGHDmFq4HffhRYt4o5KCs2UKaFkuX79eI6fzhXBajPboexONAGdBuJL0dhii1BJ9PPPIRn89FPcEUmhmTo1vv4BSC8RDATGJUw69ypwWWbDEsktbdvC6NHhf9gLLog7Gikk330XOovj6h+A9KqGXjGz1sDO0a6P3X15ZsMSyT1HHQVXXgl//nOYrfT44+OOSArBtGnhb5yJoNIrAjN7E7gaaAbMUxKQYnbllWFR8b59YcGCuKORQhB3xRCk1zTUE/gYOB54y8xKzez2zIYlkps22AAeeQR++QV69w5rzIqsj6lToXFjaNYsvhjSWY9gHjAWeIUwurg+sEuG4xLJWTvvHJa6fPFFuPvuuKORfFc2oriSCZkzKp2moTnAM8CWwINAO3f/1YIzIsXk3HPhyCNh4MCwqI1IdaxaBdOnx9ssBOk1DQ0hrCbWg7BCWa/EclKRYmQGDz4Y6r579oSVGmcv1TBzZpjgMOcTgbvf4e4nAocSJpwbBMzMcFwiOW/rrWHYMCgtDZVEIlUV5xoEidJpGrrNzCYBk4DdCBVErTMdmEg+6N4dzjwzzEf09ttxRyP5ZurUUIDQpk28caQzxcTbwM3u/lWmgxHJR3fcAa+9FpqIpkyBTTaJOyLJF1OmhMGKdevGG0c6TUP/VBIQSW6zzeDhh2HuXLj00rijkXyxejX897/x9w9Aep3FIlKJAw+EP/wB7r8fxoyJOxrJB88/D4sWhVHqcTPPgxExJSUlXlpa6aJoIrFasQL22Qe++CKUBG65ZdwRSS773e9C6fG8eVAnnUb6ajCzye5eUtnzkl4RJK5PXNFWs+GK5L+6deHRR+GHH6BPH406luQ++ABefhnOOy9zSaAqUoUwGXCgovFuDmyfkYhE8tiuu8JNN8HFF8MDD4SEIFLenXdCvXq5899H0kRQ3bWKRYrdRReF9QsuuQQ6d4Ydd4w7Iskl330Xigt69IAmTeKOJkirs9jMNjezDmbWqWzLdGAi+apWLRgxItSH9+wZphEQKfPQQ2Fxo4suijuStdIZUHYOYbK5F4Fro7+DMhuWSH5r3hzuuQcmToQbb4w7GskVa9bAXXdBx46w115xR7NWOlcEA4D2wHx37wzsCXyX0ahECsApp8Cpp8K114a1jkX+/W+YMye3rgYgvUSwzN2XAZhZPXf/iLWrlYlICnfdFeYk6tkzrHksxW3IkLDuQPfucUeyrnQSwedm1pAwFfVYM3sWmJ/ZsEQKQ8OGMHIkfPwxXH553NFInD76CF56KZSMbrBB3NGsK50pJo5z9+/cfRBwFWFNgm6Vvc7MhpvZIjObkbDvFjP7yMymmdnTUYIRKWgHHxymnrjrLvjPf+KORuJy551hrEnfvnFH8mvpdBY/Unbb3ce7+xhgeBrvPQIov4DNWMLCNrsRprK+Iv1QRfLX4MHQrh2cdRZ8/XXc0Ui2/fBDuDI85RRo2jTuaH4tnaahXRPvmFltYO/KXuTurwNLyu17yd3LiukmAs3TjFMkr224YRh1vGQJ9OunUcfFZsQIWLoU+vePO5KKpZpi4goz+xHYzcx+MLMfo/uLgGdr4Ni9gX+nOH5fMys1s9LFixfXwOFE4rX77nD99fDUU2FAkRSHNWtg6FDYbz/Yu9Kf0PFImgjc/UZ33xS4xd03c/dNo20Ld1+vJh0z+xOwCngsxfGHuXuJu5c0yZXhdyLr6dJLoVOnUD44b17c0Ug2vPgizJ6deyWjidLpLL7CzLqa2a3Rdsz6HNDMzgSOAU7zfJj6VKQG1a4drgbMoFevMCe9FLYhQ0IJ8fHHxx1Jcul0Ft9IGFT2QbQNMLMbqnMwMzsCuBzo6u6qqpaitO22oYLkjTfg1lvjjkYyaebMUCl27rnxr0KWSjqdxUcDv3P34e4+nFAJVOlVgZmNIixzubOZfW5mZwN3ApsSxiNMMbN71yN2kbx1+ulwwglw1VVhuUIpTHfdFcYM9OsXdySppTsTdkPWVgA1SOcF7t6jgt0Ppnk8kYJmBvfeCxMmhKRQWhoqi6Rw/PhjmGDu5JNzf5GidK4IbgT+a2YjzGwkYZ2CajUNichaW2wRvijefx+u0IiagjNyZEgGudxJXCatpSrNbGvCxHMA77j7lxmNqhwtVSmF7KKLQp/Byy/DIYfEHY3UhDVrYJddYPPNwwy0cVnvpSoT3ugVd1/o7mOi7Usze6VmwhSRm26CNm1CFdG338YdjdSEsWNDR3E+XA1A6gFlG0ZrEzeOFqYpW6+4FbBNtgIUKXT164dRx199BRdcEHc0UhOGDoWttoITT4w7kvSkuiLoR+gPaBP9LdueJVT/iEgN2XtvGDQIRo0Km+Sv2bPhhRdCpVAul4wmqrSPwMwucvehWYqnQuojkGKwalVIXASXAAAQhUlEQVQYdfzBBzB9OrRoEXdEUh2XXBL6fD79NAwki1ON9RHEnQREikWdOvDII2G08Zlnhg5HyS9Ll8Lw4XDSSfEngapIa/F6EcmOHXaAv/0NXn0V7rgj7mikqh5+OEw5nS+dxGVSdRZ3jP7Wy144ItK7N3TtGsYWzJhR+fMlN7iHTuL27WGffeKOpmpSXREMif6+nY1ARCQwg/vvhwYNwqjj5cvjjkjS8fLLYTnKiy4Kn2E+STXFxEozGwZsY2ZDyj/o7jm6xIJI/mvaFB58ELp0gauvDmMNJLcNHRo+t5NOijuSqkt1RXAM8CqwjHXLR8s2EcmgY44J69vecgu8/nrc0Ugqc+fCv/4VSkbr5WFjetIrAnf/GhhtZh+6+9QsxiQikdtuCx3HZ5wRZilt2DDuiKQid90V1po499y4I6medKqGvjGzp81sUbQ9aWZaa1gkCzbZJJSUfvEF9OgRxhpIblm6NDTjnXACNGsWdzTVk04ieAgYAzSLtueifSKSBfvuC/fcExY4GTgw7mikvEcfhe+/z7+S0UTpJIKm7v6Qu6+KthGAFhEWyaJzzoEBA8IYgwceiDsaKeMeRhHvtVdYnD5fpZMIvjaz082sdrSdDnyT6cBEZF233gqHHw7nn6/O41wxblxYT6J///wrGU2UTiLoDZwEfAksBE4AzspkUCLya3XqwOjRsP320L17qFSReA0ZAo0bh1XI8lk6cw3Nd/eu7t7E3Zu6+7Hu/mk2ghORdTVsCM89F+Yh6to1TGcg8Zg3L3wW/frl/zKjmmtIJM+0bg3//GcYxXrqqWGSOsm+u+8OzUH5WjKaSIlAJA8dfHAYyfr881rvOA4//xxKRrt3h+YFUEyfaooJEclh550XOipvuQXatg1TV0t2PPZYWFa0f4FMtJP2FYGZ7Wtm/zGz18zs2EwGJSLpuf32sOB9v34wYULc0RQH99BJvMce0LFj3NHUjFTTUG9VbtelwHHAUcB1mQxKRNKzwQbwj3/AttvCccfB/PlxR1T4xo8P04Pne8loolRXBPea2dVmVtYf/h2hdPQ4QLUKIjli881D9cqKFaGSaOnSuCMqbEOGwBZbwCmnxB1JzUmaCNz9WOC/wL/M7AzgYqAesAVQadOQmQ2P5iaakbCvkZmNNbNZ0d/N1/8URGTnneGJJ0Kfwemna5nLTJk/H559Fvr0gY02ijuampOyj8DdnwMOBxoATwMz3X2Iuy9O471HAEeU2/dH4BV3bw28Et0XkRpw2GGhz+DZZ+HKK+OOpjDdc09oDjrvvLgjqVmp+gi6mtk44D/ADOBkoJuZjTazHSp7Y3d/HVhSbnc3YGR0eyRpXFmISPouvDCsYXDjjWEyNKk5v/wSVo479lho2TLuaGpWqvLR64EOwEbAi+7eAbjMzFoDg4HqtJBt6e4Lo9tfAltW4z1EJAmzMAnazJlhoroddwyzl8r6+/vfYcmSwikZTZSqaeh7oDtwPLCobKe7z3L39e4mcXcHPNnjZtbXzErNrHTx4nRaokQEQiXRP/8J22wTfr1+9lncEeW/spLR3XaDAw+MO5qalyoRHEfoGK4DnFpDx/vKzLYGiP4uSvZEdx/m7iXuXtKkiWa9FqmKLbYIlUS//BIqiX76Ke6I8tsbb8C0afm5MH06UlUNfe3uQ939XnevqXLRMUCv6HYv4Nkael8RKadt2zBb6bRp0KuXKonWx9Ch0KhRmNupEGVsriEzGwW8DexsZp+b2dnAX4Dfmdks4NDovohkyJFHhnUMnnwSBg2KO5r89Nln8PTToc+lfv24o8mMjM015O49kjx0SKaOKSK/dvHFYSTsddeFq4RCGgiVDffcE/oIzj8/7kgyR7OPihQ4s/BlduCBcNZZ8O67cUeUP375BYYNg27dwjQehUqJQKQI1K0bmoe22ip8qX3xRdwR5YfRo+Gbb/J7Yfp0KBGIFIkmTUIl0Y8/hrLSn3+OO6Lc5h46idu1g4MOijuazFIiECki7dqFgVGTJ0Pv3uHLTio2YQL897+FWzKaSIlApMh06QJ/+Qs8/njoQJaKDR0aZnY97bS4I8k8JQKRIjRwIJxxBlxzTRiFLOv6/PPQp3L22bDxxnFHk3lKBCJFyAzuuw/22y8khPfeizui3HLvvWEAXiGXjCZSIhApUhtuGAZKNWkSpqFYuLDy1xSDZctCyWjXrrDddnFHkx1KBCJFbMstYcyYsBD7sceGuvli9/jjsHhx4ZeMJlIiEClyu+8e1i54550wjUIxVxKVlYy2bQsHHxx3NNmjRCAiHHccDB4cSkv/UsQzgE2cGEpri6FkNFHG5hoSkfxyxRVhzeP/+z/YZZfQVFRshgyBBg2gZ8+4I8kuXRGICBB+AT/wAHToAKefDlOnxh1Rdi1YEEppi6VkNJESgYj8z0YbwTPPQMOGYeDZV1/FHVH23HsvrF4NF1wQdyTZp0QgIuvYeutQSfT113D44SExrFoVd1SZs2xZ6Bu5+2445hjYfvu4I8o+JQIR+ZW99lpbRnnccWEK5quvhvnz446s5nz8MVx2GTRvHqaRaNiweKfcUCIQkQp16RK++J95BvbYA66/PgywOvrocMWQj1cJy5fDqFHQuTO0aRM6hzt3hrFjYebMUEpbjMzzoGi4pKTES0tL4w5DpKjNnx86kx98MIxC3mab0LF6zjnQokXc0aU2cybcfz+MGBGavLbbDvr2hTPPDGs0FCozm+zuJZU+T4lARKpi1Sr417/CXEUvvhiqjY46Cvr1C2sk164dd4TBihVhCo377oNx46BOnbAoT9++cOihUKsI2kOUCEQk4z75ZO1Vwpdfhvb2c84JVwrNm8cT0+zZ4df/Qw+FPo5WraBPn7BM59ZbxxNTXJQIRCRrVq4Mq5/ddx+89FL4tX3MMeHX9xFHZP4qYcUKePbZcPxXXgnH69o1XKX87nfF8eu/IkoEIhKLuXPDVcLw4WEcQsuW4Sqhd+/Qr1CT5sxZ++t/0aJwrD59wrGaNavZY+UjJQIRidWKFaG6aNiwUJVTu3a4SujXDw47rPpXCStXhve9776afd9CpEQgIjmj/C/3bbdde5WQ7i/3efPCe5RdabRosfbXf01faRQKJQIRyTlVbcsv63sYNiz0PZiFcQz9+mWn7yHf5XQiMLNLgHMAB6YDZ7n7smTPVyIQKTyzZoW+hPLVPb17h2kfyvoZFi7MjWqkfJSzicDMtgHeBNq6+y9m9gTwgruPSPYaJQKRwrV8eRi9nFjvv3p1+PV/5JFrxyfU0aT5VZZuIojrn7YOsJGZrQTqAwtiikNEYlavHpx8cthmzgyjf+vVC3X/LVvGHV1xyHoicPcvzOxW4FPgF+Ald38p23GISO7ZaSe44Ya4oyg+WR9mYWabA92A7YBmwMZmdnoFz+trZqVmVrp48eJshykiUjTiGG93KDDP3Re7+0rgKWD/8k9y92HuXuLuJU2aNMl6kCIixSKORPApsK+Z1TczAw4BPowhDhERIYZE4O6TgH8C7xFKR2sBw7Idh4iIBLFUDbn7NcA1cRxbRETWVaRz8omISBklAhGRIqdEICJS5PJi0jkzWwzMr+bLGwNf12A4ua6YzreYzhWK63x1rjVjW3evtP4+LxLB+jCz0nTm2igUxXS+xXSuUFznq3PNLjUNiYgUOSUCEZEiVwyJoNgGqxXT+RbTuUJxna/ONYsKvo9ARERSK4YrAhERSUGJQESkyOVlIjCz4Wa2yMxmJOwbZGZfmNmUaDsq4bErzGy2mX1sZocn7D8i2jfbzP6Y7fNIR0XnGu2/yMw+MrP3zezmhP15e66Q9LN9POFz/cTMpiQ8lrfnm+Rc9zCzidG5lppZh2i/mdmQ6HymmdleCa/pZWazoq1XHOdSmSTnuruZvW1m083sOTPbLOGxvP1cAcyshZmNM7MPov9HB0T7G5nZ2OizGhutzxL/5+vuebcBnYC9gBkJ+wYBv6/guW2BqUA9wmI4c4Da0TYH2B6oGz2nbdznlua5dgZeBupF95sWwrkmO99yj98GXF0I55vks30JODK6fRTwWsLtfwMG7AtMivY3AuZGfzePbm8e97mlea7vAr+NbvcGriuEzzU6h62BvaLbmwIzo/O6GfhjtP+PwE258Pnm5RWBu78OLEnz6d2A0e6+3N3nAbOBDtE2293nuvsKYHT03JyS5FzPA/7i7suj5yyK9uf1uULqzzZav+IkYFS0K6/PN8m5OlD2y7gBa9fz7gY87MFEoKGZbQ0cDox19yXu/i0wFjgi89FXTZJz3Ql4Pbo9Fjg+up3XnyuAuy909/ei2z8S1lzZhhDvyOhpI4Fjo9uxfr55mQhSuDC6rBpedslF+Mf/LOE5n0f7ku3PBzsBB5rZJDMbb2bto/2FeK6JDgS+cvdZ0f1CPN+LgVvM7DPgVuCKaH8hnuv7rP0iPxFoEd0uqHM1s1bAnsAkYEt3Xxg99CWwZXQ71nMupERwD7ADsAewkNCEUKjqEC4V9wUGAk9Ev5YLXQ/WXg0UqvOAS9y9BXAJ8GDM8WRSb+B8M5tMaD5ZEXM8Nc7MNgGeBC529x8SH/PQ9pMT9fsFkwjc/St3X+3ua4D7CZeRAF+w9pcGQPNoX7L9+eBz4KnoMvIdYA1h4qpCPFcAzKwO0B14PGF3IZ5vL8I63gD/oID/O3b3j9z9MHffm5Dg50QPFcS5mtkGhCTwmLuXfaZfRU0+RH/LmnXjPee4O1XWozOmFet2PG2dcPsSQhsjwK6s2/E0l9DpVCe6vR1rO552jfu80jzXc4E/R7d3Ilw6WiGca0XnG+07Ahhfbl/en28Fn+2HwEHR7UOAydHto1m3M/GdaH8jYB6hI3Hz6HajuM8rzXMtK3KoBTwM9C6gz9Wic/pbuf23sG5n8c258PnG/g9WzX/kUYTmn5WEX8dnA48Q1kCeBoxh3cTwJ8KvjY+JKjKi/UcRevPnAH+K+7yqcK51gUeBGYS1nw8uhHNNdr7R/hHAuRU8P2/PN8lnewAwOfqSmwTsHT3XgLui85kOlCS8T29Ch+ps4Ky4z6sK5zog+oxmAn8hmukg3z/XKM4DCM0+04Ap0XYUsAXwCjCLUPnXKBc+X00xISJS5Aqmj0BERKpHiUBEpMgpEYiIFDklAhGRIqdEICJS5JQIRESKnBKBSJaYWe24YxCpiBKBSAXM7M9mdnHC/cFmNsDMBprZu9HkhtcmPP6MmU2O5p7vm7B/qZndZmZTgf2yfBoiaVEiEKnYcOAMADOrBZxCmC2yNWH+nz2Avc2sU/T83h7mzCkB+pvZFtH+jQlzy+/u7m9m8wRE0lUn7gBEcpG7f2Jm35jZnoSpgv8LtAcOi24DbEJIDK8TvvyPi/a3iPZ/A6wmTDwmkrOUCESSewA4E9iKcIVwCHCju9+X+CQzOwg4FNjP3X82s9eADaOHl7n76mwFLFIdahoSSe5pwqyn7YEXo613NMc8ZraNmTUlrCT2bZQE2hBmjxTJG7oiEEnC3VeY2Tjgu+hX/UtmtgvwdrQO0FLgdOA/wLlm9iFhtsyJccUsUh2afVQkiaiT+D3gRF+7PKZIwVHTkEgFzKwtYf73V5QEpNDpikBEpMjpikBEpMgpEYiIFDklAhGRIqdEICJS5JQIRESK3P8DwSnR2z+lIjcAAAAASUVORK5CYII=\n", "text/plain": [ "" - ] + ], + "image/png": "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" }, - "metadata": {}, - "output_type": "display_data" + "metadata": {} } ], - "source": [ - "# create output plot and save it to a file\n", - "plot = plt.plot(dft['year'], dft['percentage'], color='blue')\n", - "plt.title('World population in {0}'.format(region))\n", - "plt.xlabel('year')\n", - "plt.ylabel('% of total world population')\n", - "plt.savefig(output_file)" - ] + "metadata": { + "tags": [] + } } ], "metadata": { "celltoolbar": "Tags", "kernelspec": { - "display_name": "Python 2", + "display_name": "Python 3 (ipykernel)", "language": "python", - "name": "python2" + "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", - "version": 2 + "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", - "pygments_lexer": "ipython2", - "version": "2.7.15" + "pygments_lexer": "ipython3", + "version": "3.9.5" } }, "nbformat": 4, - "nbformat_minor": 2 + "nbformat_minor": 4 } diff --git a/reana-htcondorcern.yaml b/reana-htcondorcern.yaml index aed0061..28f4fae 100644 --- a/reana-htcondorcern.yaml +++ b/reana-htcondorcern.yaml @@ -14,7 +14,7 @@ workflow: type: serial specification: steps: - - environment: 'reanahub/reana-env-jupyter:1.0.0' + - environment: 'reanahub/reana-env-jupyter:2.0.0' compute_backend: htcondorcern htcondor_max_runtime: espresso commands: diff --git a/reana-slurmcern.yaml b/reana-slurmcern.yaml index 0c0b517..265c2d6 100644 --- a/reana-slurmcern.yaml +++ b/reana-slurmcern.yaml @@ -14,7 +14,7 @@ workflow: type: serial specification: steps: - - environment: 'reanahub/reana-env-jupyter:1.0.0' + - environment: 'reanahub/reana-env-jupyter:2.0.0' compute_backend: slurmcern commands: - mkdir -p results && papermill ${notebook} /dev/null -p input_file ${input_file} -p output_file ${output_file} -p region ${region} -p year_min ${year_min} -p year_max ${year_max} diff --git a/reana.yaml b/reana.yaml index e3db858..9fcfa12 100644 --- a/reana.yaml +++ b/reana.yaml @@ -14,7 +14,7 @@ workflow: type: serial specification: steps: - - environment: 'reanahub/reana-env-jupyter:1.0.0' + - environment: 'reanahub/reana-env-jupyter:2.0.0' commands: - mkdir -p results && papermill ${notebook} /dev/null -p input_file ${input_file} -p output_file ${output_file} -p region ${region} -p year_min ${year_min} -p year_max ${year_max} outputs: diff --git a/workflow/cwl/worldpopulation.tool b/workflow/cwl/worldpopulation.tool index 3600bd7..5ae3cf4 100644 --- a/workflow/cwl/worldpopulation.tool +++ b/workflow/cwl/worldpopulation.tool @@ -6,7 +6,7 @@ class: CommandLineTool requirements: - class: InlineJavascriptRequirement - class: DockerRequirement - dockerPull: reanahub/reana-env-jupyter:1.0.0 + dockerPull: reanahub/reana-env-jupyter:2.0.0 baseCommand: ["papermill"] diff --git a/workflow/snakemake/Snakefile b/workflow/snakemake/Snakefile index 843b4ba..05fdfe9 100644 --- a/workflow/snakemake/Snakefile +++ b/workflow/snakemake/Snakefile @@ -9,7 +9,7 @@ # $ cp -a ../code ../data . # $ snakemake -s ../workflow/snakemake/Snakefile \ # --configfile ../workflow/snakemake/inputs.yaml -# --config notebook=code/worldpopulation-py3.ipynb -p --cores 1 +# --config notebook=code/worldpopulation.ipynb -p --cores 1 # $ open results/plot.png rule all: @@ -28,7 +28,7 @@ rule worldpopulation: output: output_file=config["output_file"] container: - "docker://reanahub/reana-env-jupyter:1.0.0" + "docker://reanahub/reana-env-jupyter:2.0.0" shell: "mkdir -p results && papermill {input.notebook} /dev/null -p " "input_file {input.input_file} -p output_file {output.output_file} " diff --git a/workflow/yadage/workflow-htcondorcern.yaml b/workflow/yadage/workflow-htcondorcern.yaml index 378d6f4..6fa488a 100644 --- a/workflow/yadage/workflow-htcondorcern.yaml +++ b/workflow/yadage/workflow-htcondorcern.yaml @@ -37,7 +37,7 @@ stages: environment: environment_type: 'docker-encapsulated' image: 'reanahub/reana-env-jupyter' - imagetag: '1.0.0' + imagetag: '2.0.0' resources: - compute_backend: htcondorcern - htcondor_max_runtime: espresso diff --git a/workflow/yadage/workflow-slurmcern.yaml b/workflow/yadage/workflow-slurmcern.yaml index ca97802..881f224 100644 --- a/workflow/yadage/workflow-slurmcern.yaml +++ b/workflow/yadage/workflow-slurmcern.yaml @@ -37,6 +37,6 @@ stages: environment: environment_type: 'docker-encapsulated' image: 'reanahub/reana-env-jupyter' - imagetag: '1.0.0' + imagetag: '2.0.0' resources: - compute_backend: slurmcern diff --git a/workflow/yadage/workflow.yaml b/workflow/yadage/workflow.yaml index 1774d71..ff0530b 100644 --- a/workflow/yadage/workflow.yaml +++ b/workflow/yadage/workflow.yaml @@ -37,4 +37,4 @@ stages: environment: environment_type: 'docker-encapsulated' image: 'reanahub/reana-env-jupyter' - imagetag: '1.0.0' + imagetag: '2.0.0'