Last active
July 23, 2018 11:45
-
-
Save ytjohn/6d063d2a4bc2d9e4261e7deb44abc9a6 to your computer and use it in GitHub Desktop.
code test
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| { | |
| "cells": [ | |
| { | |
| "cell_type": "code", | |
| "execution_count": 12, | |
| "metadata": {}, | |
| "outputs": [ | |
| { | |
| "name": "stdout", | |
| "output_type": "stream", | |
| "text": [ | |
| "name: first1 last1\n", | |
| " home1-1, away1\n", | |
| " home2-1, away2\n", | |
| " home3-1, away3\n", | |
| "name: first2 last2\n", | |
| " home1-1, away1\n", | |
| " home2-1, away2\n", | |
| " home3-1, away3\n", | |
| "\n", | |
| " <div class=\"row\">\n", | |
| " <div class=\"col-md-12\">\n", | |
| " \n", | |
| " \n", | |
| " \n", | |
| " \n", | |
| " <h3>First1 Last1</h3>\n", | |
| " <table class=\"table table-condensed table-bordered table-striped text-center\">\n", | |
| " <thead>\n", | |
| " <tr>\n", | |
| " <td>Home Team</td>\n", | |
| " <td>Prediction</td>\n", | |
| " <td>Away Team</td>\n", | |
| " <td>Result</td>\n", | |
| " <td>Points</td>\n", | |
| " </tr>\n", | |
| " </thead>\n", | |
| " <tbody>\n", | |
| " \n", | |
| " <tr>\n", | |
| " <td>Home1</td>\n", | |
| " <td>1-1</td>\n", | |
| " <td>Away1</td>\n", | |
| " </tr>\n", | |
| " \n", | |
| "\n", | |
| " \n", | |
| " \n", | |
| " <tr>\n", | |
| " <td>Home2</td>\n", | |
| " <td>2-1</td>\n", | |
| " <td>Away2</td>\n", | |
| " </tr>\n", | |
| " \n", | |
| "\n", | |
| " \n", | |
| " \n", | |
| " <tr>\n", | |
| " <td>Home3</td>\n", | |
| " <td>3-1</td>\n", | |
| " <td>Away3</td>\n", | |
| " </tr>\n", | |
| " \n", | |
| "\n", | |
| " \n", | |
| " \n", | |
| " \n", | |
| " </tbody>\n", | |
| " </table>\n", | |
| " \n", | |
| " <h3>First2 Last2</h3>\n", | |
| " <table class=\"table table-condensed table-bordered table-striped text-center\">\n", | |
| " <thead>\n", | |
| " <tr>\n", | |
| " <td>Home Team</td>\n", | |
| " <td>Prediction</td>\n", | |
| " <td>Away Team</td>\n", | |
| " <td>Result</td>\n", | |
| " <td>Points</td>\n", | |
| " </tr>\n", | |
| " </thead>\n", | |
| " <tbody>\n", | |
| " \n", | |
| " <tr>\n", | |
| " <td>Home1</td>\n", | |
| " <td>1-1</td>\n", | |
| " <td>Away1</td>\n", | |
| " </tr>\n", | |
| " \n", | |
| "\n", | |
| " \n", | |
| " \n", | |
| " <tr>\n", | |
| " <td>Home2</td>\n", | |
| " <td>2-1</td>\n", | |
| " <td>Away2</td>\n", | |
| " </tr>\n", | |
| " \n", | |
| "\n", | |
| " \n", | |
| " \n", | |
| " <tr>\n", | |
| " <td>Home3</td>\n", | |
| " <td>3-1</td>\n", | |
| " <td>Away3</td>\n", | |
| " </tr>\n", | |
| " \n", | |
| "\n", | |
| " \n", | |
| " </tbody>\n", | |
| " </table> \n", | |
| " </div>\n", | |
| " </div>\n" | |
| ] | |
| } | |
| ], | |
| "source": [ | |
| "from jinja2 import Template\n", | |
| "\n", | |
| "predictions = [\n", | |
| " ['first1 last1', 1, 'home1', 'away1', 1],\n", | |
| " ['first1 last1', 2, 'home2', 'away2', 1],\n", | |
| " ['first1 last1', 3, 'home3', 'away3', 1],\n", | |
| " ['first2 last2', 1, 'home1', 'away1', 1],\n", | |
| " ['first2 last2', 2, 'home2', 'away2', 1],\n", | |
| " ['first2 last2', 3, 'home3', 'away3', 1]\n", | |
| "]\n", | |
| "\n", | |
| "name = 'blank'\n", | |
| "\n", | |
| "for row in predictions:\n", | |
| " if name != row[0]:\n", | |
| " print('name: {}'.format(row[0]))\n", | |
| " print(' {}-{}, {}'.format(row[2], row[4], row[3]))\n", | |
| " name = row[0]\n", | |
| " \n", | |
| "template_raw = '''\n", | |
| " <div class=\"row\">\n", | |
| " <div class=\"col-md-12\">\n", | |
| " {% set name = namespace(txt = \"blank\") %}\n", | |
| " {% for row in predictions %}\n", | |
| " {% if name.txt != row[0] %}\n", | |
| " {% if not loop.first %}\n", | |
| " </tbody>\n", | |
| " </table>\n", | |
| " {% endif %}\n", | |
| " <h3>{{ row[0].title() }}</h3>\n", | |
| " <table class=\"table table-condensed table-bordered table-striped text-center\">\n", | |
| " <thead>\n", | |
| " <tr>\n", | |
| " <td>Home Team</td>\n", | |
| " <td>Prediction</td>\n", | |
| " <td>Away Team</td>\n", | |
| " <td>Result</td>\n", | |
| " <td>Points</td>\n", | |
| " </tr>\n", | |
| " </thead>\n", | |
| " <tbody>\n", | |
| " {% endif %}\n", | |
| " <tr>\n", | |
| " <td>{{ row[2].title() }}</td>\n", | |
| " <td>{{ row[1] }}-{{ row[4] }}</td>\n", | |
| " <td>{{ row[3].title() }}</td>\n", | |
| " </tr>\n", | |
| " {% set name.txt = row[0] %}\n", | |
| "\n", | |
| " {% endfor %}\n", | |
| " </tbody>\n", | |
| " </table> \n", | |
| " </div>\n", | |
| " </div>'''\n", | |
| "\n", | |
| "template = Template(template_raw)\n", | |
| "\n", | |
| "print(template.render(predictions=predictions))\n" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 22, | |
| "metadata": {}, | |
| "outputs": [ | |
| { | |
| "name": "stdout", | |
| "output_type": "stream", | |
| "text": [ | |
| "first1 last1 [1, 'home1', 'away1', 1]\n", | |
| "first1 last1 [2, 'home2', 'away2', 1]\n", | |
| "first1 last1 [3, 'home3', 'away3', 1]\n", | |
| "first2 last2 [1, 'home1', 'away1', 1]\n", | |
| "first2 last2 [2, 'home2', 'away2', 1]\n", | |
| "first2 last2 [3, 'home3', 'away3', 1]\n", | |
| "{\"first1 last1\": [[1, \"home1\", \"away1\", 1], [2, \"home2\", \"away2\", 1], [3, \"home3\", \"away3\", 1]], \"first2 last2\": [[1, \"home1\", \"away1\", 1], [2, \"home2\", \"away2\", 1], [3, \"home3\", \"away3\", 1]]}\n", | |
| "\n", | |
| " <div class=\"row\">\n", | |
| " <div class=\"col-md-12\">\n", | |
| " \n", | |
| " <h3>first1 last1</h3>\n", | |
| " <table class=\"table table-condensed table-bordered table-striped text-center\">\n", | |
| " <thead>\n", | |
| " <tr>\n", | |
| " <td>Home Team</td>\n", | |
| " <td>Prediction</td>\n", | |
| " <td>Away Team</td>\n", | |
| " <td>Result</td>\n", | |
| " <td>Points</td>\n", | |
| " </tr>\n", | |
| " </thead>\n", | |
| " <tbody>\n", | |
| " \n", | |
| " <tr>\n", | |
| " <td>Home1</td>\n", | |
| " <td>1-1</td>\n", | |
| " <td>Away1</td>\n", | |
| " </tr>\n", | |
| " \n", | |
| " <tr>\n", | |
| " <td>Home2</td>\n", | |
| " <td>2-1</td>\n", | |
| " <td>Away2</td>\n", | |
| " </tr>\n", | |
| " \n", | |
| " <tr>\n", | |
| " <td>Home3</td>\n", | |
| " <td>3-1</td>\n", | |
| " <td>Away3</td>\n", | |
| " </tr>\n", | |
| " \n", | |
| " </tbody>\n", | |
| " </table> \n", | |
| " \n", | |
| " <h3>first2 last2</h3>\n", | |
| " <table class=\"table table-condensed table-bordered table-striped text-center\">\n", | |
| " <thead>\n", | |
| " <tr>\n", | |
| " <td>Home Team</td>\n", | |
| " <td>Prediction</td>\n", | |
| " <td>Away Team</td>\n", | |
| " <td>Result</td>\n", | |
| " <td>Points</td>\n", | |
| " </tr>\n", | |
| " </thead>\n", | |
| " <tbody>\n", | |
| " \n", | |
| " <tr>\n", | |
| " <td>Home1</td>\n", | |
| " <td>1-1</td>\n", | |
| " <td>Away1</td>\n", | |
| " </tr>\n", | |
| " \n", | |
| " <tr>\n", | |
| " <td>Home2</td>\n", | |
| " <td>2-1</td>\n", | |
| " <td>Away2</td>\n", | |
| " </tr>\n", | |
| " \n", | |
| " <tr>\n", | |
| " <td>Home3</td>\n", | |
| " <td>3-1</td>\n", | |
| " <td>Away3</td>\n", | |
| " </tr>\n", | |
| " \n", | |
| " </tbody>\n", | |
| " </table> \n", | |
| " \n", | |
| " </div>\n", | |
| " </div>\n" | |
| ] | |
| } | |
| ], | |
| "source": [ | |
| "from jinja2 import Template\n", | |
| "import json\n", | |
| "\n", | |
| "predictions = [\n", | |
| " ['first1 last1', 1, 'home1', 'away1', 1],\n", | |
| " ['first1 last1', 2, 'home2', 'away2', 1],\n", | |
| " ['first1 last1', 3, 'home3', 'away3', 1],\n", | |
| " ['first2 last2', 1, 'home1', 'away1', 1],\n", | |
| " ['first2 last2', 2, 'home2', 'away2', 1],\n", | |
| " ['first2 last2', 3, 'home3', 'away3', 1]\n", | |
| "]\n", | |
| "\n", | |
| "grouped = dict()\n", | |
| "for row in predictions:\n", | |
| " name = row[0]\n", | |
| " data = row[1:]\n", | |
| " print(name, data)\n", | |
| " if name not in grouped.keys():\n", | |
| " grouped[name] = list()\n", | |
| " \n", | |
| " grouped[name].append(data)\n", | |
| " \n", | |
| "print(json.dumps(grouped))\n", | |
| " \n", | |
| "template_raw = '''\n", | |
| " <div class=\"row\">\n", | |
| " <div class=\"col-md-12\">\n", | |
| " {% for name in predictions %}\n", | |
| " <h3>{{ name|title }}</h3>\n", | |
| " <table class=\"table table-condensed table-bordered table-striped text-center\">\n", | |
| " <thead>\n", | |
| " <tr>\n", | |
| " <td>Home Team</td>\n", | |
| " <td>Prediction</td>\n", | |
| " <td>Away Team</td>\n", | |
| " <td>Result</td>\n", | |
| " <td>Points</td>\n", | |
| " </tr>\n", | |
| " </thead>\n", | |
| " <tbody>\n", | |
| " {% for row in predictions[name] %}\n", | |
| " <tr>\n", | |
| " <td>{{ row[1].title() }}</td>\n", | |
| " <td>{{ row[0] }}-{{ row[3] }}</td>\n", | |
| " <td>{{ row[2].title() }}</td>\n", | |
| " </tr>\n", | |
| " {% endfor %}\n", | |
| " </tbody>\n", | |
| " </table> \n", | |
| " {% endfor %}\n", | |
| " </div>\n", | |
| " </div>'''\n", | |
| "\n", | |
| "template = Template(template_raw)\n", | |
| "\n", | |
| "print(template.render(predictions=grouped))" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": null, | |
| "metadata": {}, | |
| "outputs": [], | |
| "source": [] | |
| } | |
| ], | |
| "metadata": { | |
| "kernelspec": { | |
| "display_name": "Python 3", | |
| "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.6.0" | |
| } | |
| }, | |
| "nbformat": 4, | |
| "nbformat_minor": 2 | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment