Partie optionnelle : [...]
Partie répétable 0 à N fois : {...}
| function trace(f) { | |
| return function() { | |
| var args = Array.from(arguments); | |
| var res = f.apply(null, args); | |
| console.debug("%s(%O) = %O", f.name, args, res); | |
| return res; | |
| }; | |
| } |
| def parse_http_accept_language_header(langs_str): | |
| """Returns the list of languages from a string formatted | |
| according to the Accept-Language HTTP header, by order of | |
| preference. | |
| """ | |
| def get_locale_q_pairs(lang_list): | |
| for language in lang_list: | |
| locale_q_pair = language.split(";") | |
| if len(locale_q_pair) == 1: |
| "use strict"; | |
| angular.module('timezones', []) | |
| .value('CommonTimezones', [ | |
| "Africa/Abidjan", | |
| "Africa/Accra", | |
| "Africa/Addis_Ababa", | |
| "Africa/Algiers", | |
| "Africa/Asmara", |
| angular.module('ngFixedHttp', []) | |
| .factory('FixedHttp', ['$http', function($http) { | |
| // Can't use $http.post() because JSON format is not | |
| // recognized by the web server | |
| // See : http://stackoverflow.com/questions/19254029/angularjs-http-post-does-not-send-data | |
| // This service is supposed to be used as a replacement for $http | |
| // /!\ Not tested | |
| // /!\ /!\ Doesn't work with nested JSON objects (must write custom compile function for that) /!\ /!\ |
| // Inspired from : http://www.sitepoint.com/multi-threading-javascript/ | |
| longOperation: function (fn, initData, interval) { | |
| var data = initData, busy = false; | |
| var result = $q.defer(); | |
| var taskId; | |
| var task = function() { | |
| if(!busy) { | |
| busy = true; | |
| var res = fn(data); | |
| data = res.data; |
| // | |
| // Simple template system with plain JS objects, using CSS selectors | |
| // Two versions : | |
| // * JSON | |
| // - based on JSON objects, each element is a property | |
| // * JSON-ML : | |
| // - inspired from the JSON-ML markup language (http://www.jsonml.org/) | |
| // - each element is a list | |
| // - element type can contains id and classes like the first version (so, not standard json-ml) | |
| // |
| # -*- coding: Utf-8 -*- | |
| import xml.etree.ElementTree as ET | |
| def create_xml_tree(root, dict_tree): | |
| # Node : recursively create tree nodes | |
| if type(dict_tree) == dict: | |
| for k, v in dict_tree.iteritems(): | |
| create_xml_tree(ET.SubElement(root, k), v) | |
| return root |
| def lazy(fun): | |
| class Memoizer(object): | |
| def __init__(self, fun): | |
| self.fun = fun | |
| self.set = False | |
| self.res = None | |
| def __call__(self): | |
| if not self.set: | |
| self.set = True |
| import sys | |
| # | |
| # Generation config | |
| # | |
| PRINT_COLS = 8 | |
| LETTERS_CHANGED = 2 | |
| # |