There's been heavy discussion of the various options surrounding the pages for the Sponge wiki. At the time of writing, the current contenders for implementation are:
- MediaWiki
- DokuWiki
- GitHub Wiki
- GitHub Pages/Jekyll
- A homebrew option
| from __future__ import print_function, division | |
| import argparse | |
| from datetime import timedelta | |
| from math import ceil, floor | |
| def parse_time(x): | |
| hours, minutes = x.split(':') | |
| return timedelta(hours=int(hours), minutes=int(minutes)) | |
| parser = argparse.ArgumentParser(description='Calculate statistics about matches for an SR competition') |
| 7 SpawningPool | |
| 10 Extractor | |
| 10 Overlord | |
| 10 Zergling | |
| 11 Queen | |
| 13 +1 Drone on gas | |
| 16 +1 Drone on gas | |
| 16 +1 Drone on gas | |
| 18 EvolutionChamber | |
| 18 Overlord |
| from xmlrpc.client import ServerProxy as TracAPI | |
| from xmlrpc.client import Fault as TracFault | |
| from urllib.parse import quote | |
| from getpass import getpass | |
| from pathlib import Path | |
| import sys | |
| import time | |
| username = input('SR Username: ') | |
| password = getpass('SR Password: ') |
| #!/bin/bash | |
| GERRIT=https://www.studentrobotics.org/gerrit | |
| function getgit { | |
| PROJECT=$1 | |
| URL=$GERRIT/comp/$PROJECT | |
| PATCH=$2 | |
| git clone $URL $PROJECT | |
| cd $PROJECT | |
| git fetch $URL $PATCH |
| from itertools import permutations | |
| import yaml | |
| import sys | |
| #votes = {'a': ['cheese', 'hats', 'faces'], | |
| # 'b': ['hats', 'cheese', 'faces'], | |
| # 'c': ['hats', 'faces', 'cheese']} | |
| votes = {'a': 'CHWESK', | |
| 'b': 'CESWHK', |
| from copy import copy | |
| from collections import defaultdict | |
| from fractions import Fraction | |
| def stv(candidates, ballots, seats=1): | |
| if seats > len(candidates): | |
| raise ValueError('Not enough candidates for election') | |
| rounds = {} |
There's been heavy discussion of the various options surrounding the pages for the Sponge wiki. At the time of writing, the current contenders for implementation are:
| import itertools | |
| def tail(seq): | |
| return itertools.islice(seq, 1, None) | |
| def fibs(): | |
| yield 0 | |
| yield 1 | |
| yield from (x + y for x, y in zip(fibs(), tail(fibs()))) |
| from collections import namedtuple | |
| import cgi | |
| import sys | |
| import yaml | |
| DATA = """ | |
| - type: checkbox | |
| description: Did the robot move? | |
| key: robot_moved | |
| - type: natural |
| from __future__ import print_function | |
| from collections import namedtuple, defaultdict | |
| Check = namedtuple('Check', 'description check') | |
| Condition = namedtuple('Condition', 'severity format') | |
| Failure = namedtuple('Failure', 'type severity message data') | |
| class Validator(object): | |
| def __init__(self): | |
| self.checks = [] |