refactor: Change TestSuite.prepare to "before", add "after"
Implements #91
This commit is contained in:
		
							
								
								
									
										1
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							@@ -26,6 +26,7 @@ pip-log.txt
 | 
			
		||||
.coverage
 | 
			
		||||
.tox
 | 
			
		||||
nosetests.xml
 | 
			
		||||
tests/cover
 | 
			
		||||
 | 
			
		||||
# Translations
 | 
			
		||||
*.mo
 | 
			
		||||
 
 | 
			
		||||
@@ -19,7 +19,7 @@ limitations under the License.
 | 
			
		||||
import json
 | 
			
		||||
import sys
 | 
			
		||||
 | 
			
		||||
if sys.version_info < (2, 7):
 | 
			
		||||
if sys.version_info < (2, 7):  # pragma: no cover
 | 
			
		||||
    from ordereddict import OrderedDict
 | 
			
		||||
else:
 | 
			
		||||
    from collections import OrderedDict
 | 
			
		||||
 
 | 
			
		||||
@@ -27,8 +27,9 @@ class TestSuite(testtools.TestCase):
 | 
			
		||||
    """Scaffolding around testtools.TestCase for testing a Falcon API endpoint.
 | 
			
		||||
 | 
			
		||||
    Inherit from this and write your test methods. If the child class defines
 | 
			
		||||
    a prepare(self) method, this method will be called before executing each
 | 
			
		||||
    test method.
 | 
			
		||||
    a before(self) method, this method will be called before executing each
 | 
			
		||||
    test method. Likewise, child classes may define an after(self) method to
 | 
			
		||||
    execute actions after each test method returns.
 | 
			
		||||
 | 
			
		||||
    Attributes:
 | 
			
		||||
        api: falcon.API instance used in simulating requests.
 | 
			
		||||
@@ -48,9 +49,18 @@ class TestSuite(testtools.TestCase):
 | 
			
		||||
        self.srmock = StartResponseMock()
 | 
			
		||||
        self.test_route = '/' + self.getUniqueString()
 | 
			
		||||
 | 
			
		||||
        prepare = getattr(self, 'prepare', None)
 | 
			
		||||
        if hasattr(prepare, '__call__'):
 | 
			
		||||
            prepare()
 | 
			
		||||
        before = getattr(self, 'before', None)
 | 
			
		||||
        if hasattr(before, '__call__'):
 | 
			
		||||
            before()
 | 
			
		||||
 | 
			
		||||
    def tearDown(self):
 | 
			
		||||
        """Destructor, unittest-style"""
 | 
			
		||||
 | 
			
		||||
        after = getattr(self, 'after', None)
 | 
			
		||||
        if hasattr(after, '__call__'):
 | 
			
		||||
            after()
 | 
			
		||||
 | 
			
		||||
        super(TestSuite, self).tearDown()
 | 
			
		||||
 | 
			
		||||
    def simulate_request(self, path, **kwargs):
 | 
			
		||||
        """ Simulates a request.
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										376
									
								
								tests/cover/coverage_html.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										376
									
								
								tests/cover/coverage_html.js
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,376 @@
 | 
			
		||||
// Coverage.py HTML report browser code.
 | 
			
		||||
/*jslint browser: true, sloppy: true, vars: true, plusplus: true, maxerr: 50, indent: 4 */
 | 
			
		||||
/*global coverage: true, document, window, $ */
 | 
			
		||||
 | 
			
		||||
coverage = {};
 | 
			
		||||
 | 
			
		||||
// Find all the elements with shortkey_* class, and use them to assign a shotrtcut key.
 | 
			
		||||
coverage.assign_shortkeys = function () {
 | 
			
		||||
    $("*[class*='shortkey_']").each(function (i, e) {
 | 
			
		||||
        $.each($(e).attr("class").split(" "), function (i, c) {
 | 
			
		||||
            if (/^shortkey_/.test(c)) {
 | 
			
		||||
                $(document).bind('keydown', c.substr(9), function () {
 | 
			
		||||
                    $(e).click();
 | 
			
		||||
                });
 | 
			
		||||
            }
 | 
			
		||||
        });
 | 
			
		||||
    });
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
// Create the events for the help panel.
 | 
			
		||||
coverage.wire_up_help_panel = function () {
 | 
			
		||||
    $("#keyboard_icon").click(function () {
 | 
			
		||||
        // Show the help panel, and position it so the keyboard icon in the
 | 
			
		||||
        // panel is in the same place as the keyboard icon in the header.
 | 
			
		||||
        $(".help_panel").show();
 | 
			
		||||
        var koff = $("#keyboard_icon").offset();
 | 
			
		||||
        var poff = $("#panel_icon").position();
 | 
			
		||||
        $(".help_panel").offset({
 | 
			
		||||
            top: koff.top-poff.top,
 | 
			
		||||
            left: koff.left-poff.left
 | 
			
		||||
        });
 | 
			
		||||
    });
 | 
			
		||||
    $("#panel_icon").click(function () {
 | 
			
		||||
        $(".help_panel").hide();
 | 
			
		||||
    });
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
// Loaded on index.html
 | 
			
		||||
coverage.index_ready = function ($) {
 | 
			
		||||
    // Look for a cookie containing previous sort settings:
 | 
			
		||||
    var sort_list = [];
 | 
			
		||||
    var cookie_name = "COVERAGE_INDEX_SORT";
 | 
			
		||||
    var i;
 | 
			
		||||
 | 
			
		||||
    // This almost makes it worth installing the jQuery cookie plugin:
 | 
			
		||||
    if (document.cookie.indexOf(cookie_name) > -1) {
 | 
			
		||||
        var cookies = document.cookie.split(";");
 | 
			
		||||
        for (i = 0; i < cookies.length; i++) {
 | 
			
		||||
            var parts = cookies[i].split("=");
 | 
			
		||||
 | 
			
		||||
            if ($.trim(parts[0]) === cookie_name && parts[1]) {
 | 
			
		||||
                sort_list = eval("[[" + parts[1] + "]]");
 | 
			
		||||
                break;
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    // Create a new widget which exists only to save and restore
 | 
			
		||||
    // the sort order:
 | 
			
		||||
    $.tablesorter.addWidget({
 | 
			
		||||
        id: "persistentSort",
 | 
			
		||||
 | 
			
		||||
        // Format is called by the widget before displaying:
 | 
			
		||||
        format: function (table) {
 | 
			
		||||
            if (table.config.sortList.length === 0 && sort_list.length > 0) {
 | 
			
		||||
                // This table hasn't been sorted before - we'll use
 | 
			
		||||
                // our stored settings:
 | 
			
		||||
                $(table).trigger('sorton', [sort_list]);
 | 
			
		||||
            }
 | 
			
		||||
            else {
 | 
			
		||||
                // This is not the first load - something has
 | 
			
		||||
                // already defined sorting so we'll just update
 | 
			
		||||
                // our stored value to match:
 | 
			
		||||
                sort_list = table.config.sortList;
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
    });
 | 
			
		||||
 | 
			
		||||
    // Configure our tablesorter to handle the variable number of
 | 
			
		||||
    // columns produced depending on report options:
 | 
			
		||||
    var headers = [];
 | 
			
		||||
    var col_count = $("table.index > thead > tr > th").length;
 | 
			
		||||
 | 
			
		||||
    headers[0] = { sorter: 'text' };
 | 
			
		||||
    for (i = 1; i < col_count-1; i++) {
 | 
			
		||||
        headers[i] = { sorter: 'digit' };
 | 
			
		||||
    }
 | 
			
		||||
    headers[col_count-1] = { sorter: 'percent' };
 | 
			
		||||
 | 
			
		||||
    // Enable the table sorter:
 | 
			
		||||
    $("table.index").tablesorter({
 | 
			
		||||
        widgets: ['persistentSort'],
 | 
			
		||||
        headers: headers
 | 
			
		||||
    });
 | 
			
		||||
 | 
			
		||||
    coverage.assign_shortkeys();
 | 
			
		||||
    coverage.wire_up_help_panel();
 | 
			
		||||
 | 
			
		||||
    // Watch for page unload events so we can save the final sort settings:
 | 
			
		||||
    $(window).unload(function () {
 | 
			
		||||
        document.cookie = cookie_name + "=" + sort_list.toString() + "; path=/";
 | 
			
		||||
    });
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
// -- pyfile stuff --
 | 
			
		||||
 | 
			
		||||
coverage.pyfile_ready = function ($) {
 | 
			
		||||
    // If we're directed to a particular line number, highlight the line.
 | 
			
		||||
    var frag = location.hash;
 | 
			
		||||
    if (frag.length > 2 && frag[1] === 'n') {
 | 
			
		||||
        $(frag).addClass('highlight');
 | 
			
		||||
        coverage.set_sel(parseInt(frag.substr(2), 10));
 | 
			
		||||
    }
 | 
			
		||||
    else {
 | 
			
		||||
        coverage.set_sel(0);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    $(document)
 | 
			
		||||
        .bind('keydown', 'j', coverage.to_next_chunk_nicely)
 | 
			
		||||
        .bind('keydown', 'k', coverage.to_prev_chunk_nicely)
 | 
			
		||||
        .bind('keydown', '0', coverage.to_top)
 | 
			
		||||
        .bind('keydown', '1', coverage.to_first_chunk)
 | 
			
		||||
        ;
 | 
			
		||||
 | 
			
		||||
    $(".button_toggle_run").click(function (evt) {coverage.toggle_lines(evt.target, "run");});
 | 
			
		||||
    $(".button_toggle_exc").click(function (evt) {coverage.toggle_lines(evt.target, "exc");});
 | 
			
		||||
    $(".button_toggle_mis").click(function (evt) {coverage.toggle_lines(evt.target, "mis");});
 | 
			
		||||
    $(".button_toggle_par").click(function (evt) {coverage.toggle_lines(evt.target, "par");});
 | 
			
		||||
 | 
			
		||||
    coverage.assign_shortkeys();
 | 
			
		||||
    coverage.wire_up_help_panel();
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
coverage.toggle_lines = function (btn, cls) {
 | 
			
		||||
    btn = $(btn);
 | 
			
		||||
    var hide = "hide_"+cls;
 | 
			
		||||
    if (btn.hasClass(hide)) {
 | 
			
		||||
        $("#source ."+cls).removeClass(hide);
 | 
			
		||||
        btn.removeClass(hide);
 | 
			
		||||
    }
 | 
			
		||||
    else {
 | 
			
		||||
        $("#source ."+cls).addClass(hide);
 | 
			
		||||
        btn.addClass(hide);
 | 
			
		||||
    }
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
// Return the nth line div.
 | 
			
		||||
coverage.line_elt = function (n) {
 | 
			
		||||
    return $("#t" + n);
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
// Return the nth line number div.
 | 
			
		||||
coverage.num_elt = function (n) {
 | 
			
		||||
    return $("#n" + n);
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
// Return the container of all the code.
 | 
			
		||||
coverage.code_container = function () {
 | 
			
		||||
    return $(".linenos");
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
// Set the selection.  b and e are line numbers.
 | 
			
		||||
coverage.set_sel = function (b, e) {
 | 
			
		||||
    // The first line selected.
 | 
			
		||||
    coverage.sel_begin = b;
 | 
			
		||||
    // The next line not selected.
 | 
			
		||||
    coverage.sel_end = (e === undefined) ? b+1 : e;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
coverage.to_top = function () {
 | 
			
		||||
    coverage.set_sel(0, 1);
 | 
			
		||||
    coverage.scroll_window(0);
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
coverage.to_first_chunk = function () {
 | 
			
		||||
    coverage.set_sel(0, 1);
 | 
			
		||||
    coverage.to_next_chunk();
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
coverage.is_transparent = function (color) {
 | 
			
		||||
    // Different browsers return different colors for "none".
 | 
			
		||||
    return color === "transparent" || color === "rgba(0, 0, 0, 0)";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
coverage.to_next_chunk = function () {
 | 
			
		||||
    var c = coverage;
 | 
			
		||||
 | 
			
		||||
    // Find the start of the next colored chunk.
 | 
			
		||||
    var probe = c.sel_end;
 | 
			
		||||
    while (true) {
 | 
			
		||||
        var probe_line = c.line_elt(probe);
 | 
			
		||||
        if (probe_line.length === 0) {
 | 
			
		||||
            return;
 | 
			
		||||
        }
 | 
			
		||||
        var color = probe_line.css("background-color");
 | 
			
		||||
        if (!c.is_transparent(color)) {
 | 
			
		||||
            break;
 | 
			
		||||
        }
 | 
			
		||||
        probe++;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    // There's a next chunk, `probe` points to it.
 | 
			
		||||
    var begin = probe;
 | 
			
		||||
 | 
			
		||||
    // Find the end of this chunk.
 | 
			
		||||
    var next_color = color;
 | 
			
		||||
    while (next_color === color) {
 | 
			
		||||
        probe++;
 | 
			
		||||
        probe_line = c.line_elt(probe);
 | 
			
		||||
        next_color = probe_line.css("background-color");
 | 
			
		||||
    }
 | 
			
		||||
    c.set_sel(begin, probe);
 | 
			
		||||
    c.show_selection();
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
coverage.to_prev_chunk = function () {
 | 
			
		||||
    var c = coverage;
 | 
			
		||||
 | 
			
		||||
    // Find the end of the prev colored chunk.
 | 
			
		||||
    var probe = c.sel_begin-1;
 | 
			
		||||
    var probe_line = c.line_elt(probe);
 | 
			
		||||
    if (probe_line.length === 0) {
 | 
			
		||||
        return;
 | 
			
		||||
    }
 | 
			
		||||
    var color = probe_line.css("background-color");
 | 
			
		||||
    while (probe > 0 && c.is_transparent(color)) {
 | 
			
		||||
        probe--;
 | 
			
		||||
        probe_line = c.line_elt(probe);
 | 
			
		||||
        if (probe_line.length === 0) {
 | 
			
		||||
            return;
 | 
			
		||||
        }
 | 
			
		||||
        color = probe_line.css("background-color");
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    // There's a prev chunk, `probe` points to its last line.
 | 
			
		||||
    var end = probe+1;
 | 
			
		||||
 | 
			
		||||
    // Find the beginning of this chunk.
 | 
			
		||||
    var prev_color = color;
 | 
			
		||||
    while (prev_color === color) {
 | 
			
		||||
        probe--;
 | 
			
		||||
        probe_line = c.line_elt(probe);
 | 
			
		||||
        prev_color = probe_line.css("background-color");
 | 
			
		||||
    }
 | 
			
		||||
    c.set_sel(probe+1, end);
 | 
			
		||||
    c.show_selection();
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
// Return the line number of the line nearest pixel position pos
 | 
			
		||||
coverage.line_at_pos = function (pos) {
 | 
			
		||||
    var l1 = coverage.line_elt(1),
 | 
			
		||||
        l2 = coverage.line_elt(2),
 | 
			
		||||
        result;
 | 
			
		||||
    if (l1.length && l2.length) {
 | 
			
		||||
        var l1_top = l1.offset().top,
 | 
			
		||||
            line_height = l2.offset().top - l1_top,
 | 
			
		||||
            nlines = (pos - l1_top) / line_height;
 | 
			
		||||
        if (nlines < 1) {
 | 
			
		||||
            result = 1;
 | 
			
		||||
        }
 | 
			
		||||
        else {
 | 
			
		||||
            result = Math.ceil(nlines);
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
    else {
 | 
			
		||||
        result = 1;
 | 
			
		||||
    }
 | 
			
		||||
    return result;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
// Returns 0, 1, or 2: how many of the two ends of the selection are on
 | 
			
		||||
// the screen right now?
 | 
			
		||||
coverage.selection_ends_on_screen = function () {
 | 
			
		||||
    if (coverage.sel_begin === 0) {
 | 
			
		||||
        return 0;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    var top = coverage.line_elt(coverage.sel_begin);
 | 
			
		||||
    var next = coverage.line_elt(coverage.sel_end-1);
 | 
			
		||||
 | 
			
		||||
    return (
 | 
			
		||||
        (top.isOnScreen() ? 1 : 0) +
 | 
			
		||||
        (next.isOnScreen() ? 1 : 0)
 | 
			
		||||
    );
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
coverage.to_next_chunk_nicely = function () {
 | 
			
		||||
    coverage.finish_scrolling();
 | 
			
		||||
    if (coverage.selection_ends_on_screen() === 0) {
 | 
			
		||||
        // The selection is entirely off the screen: select the top line on
 | 
			
		||||
        // the screen.
 | 
			
		||||
        var win = $(window);
 | 
			
		||||
        coverage.select_line_or_chunk(coverage.line_at_pos(win.scrollTop()));
 | 
			
		||||
    }
 | 
			
		||||
    coverage.to_next_chunk();
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
coverage.to_prev_chunk_nicely = function () {
 | 
			
		||||
    coverage.finish_scrolling();
 | 
			
		||||
    if (coverage.selection_ends_on_screen() === 0) {
 | 
			
		||||
        var win = $(window);
 | 
			
		||||
        coverage.select_line_or_chunk(coverage.line_at_pos(win.scrollTop() + win.height()));
 | 
			
		||||
    }
 | 
			
		||||
    coverage.to_prev_chunk();
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
// Select line number lineno, or if it is in a colored chunk, select the
 | 
			
		||||
// entire chunk
 | 
			
		||||
coverage.select_line_or_chunk = function (lineno) {
 | 
			
		||||
    var c = coverage;
 | 
			
		||||
    var probe_line = c.line_elt(lineno);
 | 
			
		||||
    if (probe_line.length === 0) {
 | 
			
		||||
        return;
 | 
			
		||||
    }
 | 
			
		||||
    var the_color = probe_line.css("background-color");
 | 
			
		||||
    if (!c.is_transparent(the_color)) {
 | 
			
		||||
        // The line is in a highlighted chunk.
 | 
			
		||||
        // Search backward for the first line.
 | 
			
		||||
        var probe = lineno;
 | 
			
		||||
        var color = the_color;
 | 
			
		||||
        while (probe > 0 && color === the_color) {
 | 
			
		||||
            probe--;
 | 
			
		||||
            probe_line = c.line_elt(probe);
 | 
			
		||||
            if (probe_line.length === 0) {
 | 
			
		||||
                break;
 | 
			
		||||
            }
 | 
			
		||||
            color = probe_line.css("background-color");
 | 
			
		||||
        }
 | 
			
		||||
        var begin = probe + 1;
 | 
			
		||||
 | 
			
		||||
        // Search forward for the last line.
 | 
			
		||||
        probe = lineno;
 | 
			
		||||
        color = the_color;
 | 
			
		||||
        while (color === the_color) {
 | 
			
		||||
            probe++;
 | 
			
		||||
            probe_line = c.line_elt(probe);
 | 
			
		||||
            color = probe_line.css("background-color");
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        coverage.set_sel(begin, probe);
 | 
			
		||||
    }
 | 
			
		||||
    else {
 | 
			
		||||
        coverage.set_sel(lineno);
 | 
			
		||||
    }
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
coverage.show_selection = function () {
 | 
			
		||||
    var c = coverage;
 | 
			
		||||
 | 
			
		||||
    // Highlight the lines in the chunk
 | 
			
		||||
    c.code_container().find(".highlight").removeClass("highlight");
 | 
			
		||||
    for (var probe = c.sel_begin; probe > 0 && probe < c.sel_end; probe++) {
 | 
			
		||||
        c.num_elt(probe).addClass("highlight");
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    c.scroll_to_selection();
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
coverage.scroll_to_selection = function () {
 | 
			
		||||
    // Scroll the page if the chunk isn't fully visible.
 | 
			
		||||
    if (coverage.selection_ends_on_screen() < 2) {
 | 
			
		||||
        // Need to move the page. The html,body trick makes it scroll in all
 | 
			
		||||
        // browsers, got it from http://stackoverflow.com/questions/3042651
 | 
			
		||||
        var top = coverage.line_elt(coverage.sel_begin);
 | 
			
		||||
        var top_pos = parseInt(top.offset().top, 10);
 | 
			
		||||
        coverage.scroll_window(top_pos - 30);
 | 
			
		||||
    }
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
coverage.scroll_window = function (to_pos) {
 | 
			
		||||
    $("html,body").animate({scrollTop: to_pos}, 200);
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
coverage.finish_scrolling = function () {
 | 
			
		||||
    $("html,body").stop(true, true);
 | 
			
		||||
};
 | 
			
		||||
							
								
								
									
										168
									
								
								tests/cover/falcon.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										168
									
								
								tests/cover/falcon.html
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,168 @@
 | 
			
		||||
<!doctype html PUBLIC "-//W3C//DTD html 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
 | 
			
		||||
<html>
 | 
			
		||||
<head>
 | 
			
		||||
    <meta http-equiv='Content-Type' content='text/html; charset=utf-8'>
 | 
			
		||||
    
 | 
			
		||||
    
 | 
			
		||||
    <meta http-equiv='X-UA-Compatible' content='IE=emulateIE7' />
 | 
			
		||||
    <title>Coverage for falcon: 100%</title>
 | 
			
		||||
    <link rel='stylesheet' href='style.css' type='text/css'>
 | 
			
		||||
    
 | 
			
		||||
    <script type='text/javascript' src='jquery-1.4.3.min.js'></script>
 | 
			
		||||
    <script type='text/javascript' src='jquery.hotkeys.js'></script>
 | 
			
		||||
    <script type='text/javascript' src='jquery.isonscreen.js'></script>
 | 
			
		||||
    <script type='text/javascript' src='coverage_html.js'></script>
 | 
			
		||||
    <script type='text/javascript' charset='utf-8'>
 | 
			
		||||
        jQuery(document).ready(coverage.pyfile_ready);
 | 
			
		||||
    </script>
 | 
			
		||||
</head>
 | 
			
		||||
<body id='pyfile'>
 | 
			
		||||
 | 
			
		||||
<div id='header'>
 | 
			
		||||
    <div class='content'>
 | 
			
		||||
        <h1>Coverage for <b>falcon</b> :
 | 
			
		||||
            <span class='pc_cov'>100%</span>
 | 
			
		||||
        </h1>
 | 
			
		||||
        <img id='keyboard_icon' src='keybd_closed.png'>
 | 
			
		||||
        <h2 class='stats'>
 | 
			
		||||
            11 statements  
 | 
			
		||||
            <span class='run hide_run shortkey_r button_toggle_run'>11 run</span>
 | 
			
		||||
            <span class='mis shortkey_m button_toggle_mis'>0 missing</span>
 | 
			
		||||
            <span class='exc shortkey_x button_toggle_exc'>0 excluded</span>
 | 
			
		||||
            
 | 
			
		||||
        </h2>
 | 
			
		||||
    </div>
 | 
			
		||||
</div>
 | 
			
		||||
 | 
			
		||||
<div class='help_panel'>
 | 
			
		||||
    <img id='panel_icon' src='keybd_open.png'>
 | 
			
		||||
<p class='legend'>Hot-keys on this page</p>
 | 
			
		||||
    <div>
 | 
			
		||||
<p class='keyhelp'>
 | 
			
		||||
        <span class='key'>r</span>
 | 
			
		||||
        <span class='key'>m</span>
 | 
			
		||||
        <span class='key'>x</span>
 | 
			
		||||
        <span class='key'>p</span>   toggle line displays
 | 
			
		||||
    </p>
 | 
			
		||||
<p class='keyhelp'>
 | 
			
		||||
        <span class='key'>j</span>
 | 
			
		||||
        <span class='key'>k</span>   next/prev highlighted chunk
 | 
			
		||||
    </p>
 | 
			
		||||
<p class='keyhelp'>
 | 
			
		||||
        <span class='key'>0</span>   (zero) top of page
 | 
			
		||||
    </p>
 | 
			
		||||
<p class='keyhelp'>
 | 
			
		||||
        <span class='key'>1</span>   (one) first highlighted chunk
 | 
			
		||||
    </p>
 | 
			
		||||
    </div>
 | 
			
		||||
</div>
 | 
			
		||||
 | 
			
		||||
<div id='source'>
 | 
			
		||||
    <table cellspacing='0' cellpadding='0'>
 | 
			
		||||
        <tr>
 | 
			
		||||
            <td class='linenos' valign='top'>
 | 
			
		||||
<p id='n1' class='pln'><a href='#n1'>1</a></p>
 | 
			
		||||
<p id='n2' class='pln'><a href='#n2'>2</a></p>
 | 
			
		||||
<p id='n3' class='pln'><a href='#n3'>3</a></p>
 | 
			
		||||
<p id='n4' class='pln'><a href='#n4'>4</a></p>
 | 
			
		||||
<p id='n5' class='pln'><a href='#n5'>5</a></p>
 | 
			
		||||
<p id='n6' class='pln'><a href='#n6'>6</a></p>
 | 
			
		||||
<p id='n7' class='pln'><a href='#n7'>7</a></p>
 | 
			
		||||
<p id='n8' class='pln'><a href='#n8'>8</a></p>
 | 
			
		||||
<p id='n9' class='pln'><a href='#n9'>9</a></p>
 | 
			
		||||
<p id='n10' class='pln'><a href='#n10'>10</a></p>
 | 
			
		||||
<p id='n11' class='pln'><a href='#n11'>11</a></p>
 | 
			
		||||
<p id='n12' class='pln'><a href='#n12'>12</a></p>
 | 
			
		||||
<p id='n13' class='pln'><a href='#n13'>13</a></p>
 | 
			
		||||
<p id='n14' class='pln'><a href='#n14'>14</a></p>
 | 
			
		||||
<p id='n15' class='pln'><a href='#n15'>15</a></p>
 | 
			
		||||
<p id='n16' class='pln'><a href='#n16'>16</a></p>
 | 
			
		||||
<p id='n17' class='pln'><a href='#n17'>17</a></p>
 | 
			
		||||
<p id='n18' class='pln'><a href='#n18'>18</a></p>
 | 
			
		||||
<p id='n19' class='stm run hide_run'><a href='#n19'>19</a></p>
 | 
			
		||||
<p id='n20' class='pln'><a href='#n20'>20</a></p>
 | 
			
		||||
<p id='n21' class='pln'><a href='#n21'>21</a></p>
 | 
			
		||||
<p id='n22' class='pln'><a href='#n22'>22</a></p>
 | 
			
		||||
<p id='n23' class='pln'><a href='#n23'>23</a></p>
 | 
			
		||||
<p id='n24' class='pln'><a href='#n24'>24</a></p>
 | 
			
		||||
<p id='n25' class='pln'><a href='#n25'>25</a></p>
 | 
			
		||||
<p id='n26' class='pln'><a href='#n26'>26</a></p>
 | 
			
		||||
<p id='n27' class='pln'><a href='#n27'>27</a></p>
 | 
			
		||||
<p id='n28' class='pln'><a href='#n28'>28</a></p>
 | 
			
		||||
<p id='n29' class='pln'><a href='#n29'>29</a></p>
 | 
			
		||||
<p id='n30' class='pln'><a href='#n30'>30</a></p>
 | 
			
		||||
<p id='n31' class='stm run hide_run'><a href='#n31'>31</a></p>
 | 
			
		||||
<p id='n32' class='pln'><a href='#n32'>32</a></p>
 | 
			
		||||
<p id='n33' class='pln'><a href='#n33'>33</a></p>
 | 
			
		||||
<p id='n34' class='pln'><a href='#n34'>34</a></p>
 | 
			
		||||
<p id='n35' class='stm run hide_run'><a href='#n35'>35</a></p>
 | 
			
		||||
<p id='n36' class='stm run hide_run'><a href='#n36'>36</a></p>
 | 
			
		||||
<p id='n37' class='stm run hide_run'><a href='#n37'>37</a></p>
 | 
			
		||||
<p id='n38' class='stm run hide_run'><a href='#n38'>38</a></p>
 | 
			
		||||
<p id='n39' class='stm run hide_run'><a href='#n39'>39</a></p>
 | 
			
		||||
<p id='n40' class='stm run hide_run'><a href='#n40'>40</a></p>
 | 
			
		||||
<p id='n41' class='stm run hide_run'><a href='#n41'>41</a></p>
 | 
			
		||||
<p id='n42' class='stm run hide_run'><a href='#n42'>42</a></p>
 | 
			
		||||
<p id='n43' class='stm run hide_run'><a href='#n43'>43</a></p>
 | 
			
		||||
                
 | 
			
		||||
            </td>
 | 
			
		||||
            <td class='text' valign='top'>
 | 
			
		||||
<p id='t1' class='pln'><span class='str'>"""Falcon is a fast micro-framework for building cloud APIs.</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t2' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t3' class='pln'><span class='str'>Copyright 2013 by Rackspace Hosting, Inc.</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t4' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t5' class='pln'><span class='str'>Licensed under the Apache License, Version 2.0 (the "License");</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t6' class='pln'><span class='str'>you may not use this file except in compliance with the License.</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t7' class='pln'><span class='str'>You may obtain a copy of the License at</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t8' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t9' class='pln'><span class='str'>   http://www.apache.org/licenses/LICENSE-2.0</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t10' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t11' class='pln'><span class='str'>Unless required by applicable law or agreed to in writing, software</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t12' class='pln'><span class='str'>distributed under the License is distributed on an "AS IS" BASIS,</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t13' class='pln'><span class='str'>WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t14' class='pln'><span class='str'>See the License for the specific language governing permissions and</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t15' class='pln'><span class='str'>limitations under the License.</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t16' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t17' class='pln'><span class='str'>"""</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t18' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t19' class='stm run hide_run'><span class='nam'>HTTP_METHODS</span> <span class='op'>=</span> <span class='op'>(</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t20' class='pln'>    <span class='str'>'CONNECT'</span><span class='op'>,</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t21' class='pln'>    <span class='str'>'DELETE'</span><span class='op'>,</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t22' class='pln'>    <span class='str'>'GET'</span><span class='op'>,</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t23' class='pln'>    <span class='str'>'HEAD'</span><span class='op'>,</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t24' class='pln'>    <span class='str'>'OPTIONS'</span><span class='op'>,</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t25' class='pln'>    <span class='str'>'POST'</span><span class='op'>,</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t26' class='pln'>    <span class='str'>'PUT'</span><span class='op'>,</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t27' class='pln'>    <span class='str'>'TRACE'</span><span class='op'>,</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t28' class='pln'>    <span class='str'>'PATCH'</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t29' class='pln'><span class='op'>)</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t30' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t31' class='stm run hide_run'><span class='nam'>DEFAULT_MEDIA_TYPE</span> <span class='op'>=</span> <span class='str'>'application/json; charset=utf-8'</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t32' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t33' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t34' class='pln'><span class='com'># Hoist classes and functions into the falcon namespace</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t35' class='stm run hide_run'><span class='key'>from</span> <span class='nam'>falcon</span><span class='op'>.</span><span class='nam'>version</span> <span class='key'>import</span> <span class='nam'>version</span>  <span class='com'># NOQA</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t36' class='stm run hide_run'><span class='key'>from</span> <span class='nam'>falcon</span><span class='op'>.</span><span class='nam'>api</span> <span class='key'>import</span> <span class='nam'>API</span><span class='op'>,</span> <span class='nam'>DEFAULT_MEDIA_TYPE</span>  <span class='com'># NOQA</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t37' class='stm run hide_run'><span class='key'>from</span> <span class='nam'>falcon</span><span class='op'>.</span><span class='nam'>status_codes</span> <span class='key'>import</span> <span class='op'>*</span>  <span class='com'># NOQA</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t38' class='stm run hide_run'><span class='key'>from</span> <span class='nam'>falcon</span><span class='op'>.</span><span class='nam'>exceptions</span> <span class='key'>import</span> <span class='op'>*</span>  <span class='com'># NOQA</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t39' class='stm run hide_run'><span class='key'>from</span> <span class='nam'>falcon</span><span class='op'>.</span><span class='nam'>http_error</span> <span class='key'>import</span> <span class='nam'>HTTPError</span>  <span class='com'># NOQA</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t40' class='stm run hide_run'><span class='key'>from</span> <span class='nam'>falcon</span><span class='op'>.</span><span class='nam'>util</span> <span class='key'>import</span> <span class='nam'>dt_to_http</span>  <span class='com'># NOQA</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t41' class='stm run hide_run'><span class='key'>from</span> <span class='nam'>falcon</span><span class='op'>.</span><span class='nam'>hooks</span> <span class='key'>import</span> <span class='nam'>before</span><span class='op'>,</span> <span class='nam'>after</span>  <span class='com'># NOQA</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t42' class='stm run hide_run'><span class='key'>from</span> <span class='nam'>falcon</span><span class='op'>.</span><span class='nam'>request</span> <span class='key'>import</span> <span class='nam'>Request</span>  <span class='com'># NOQA</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t43' class='stm run hide_run'><span class='key'>from</span> <span class='nam'>falcon</span><span class='op'>.</span><span class='nam'>response</span> <span class='key'>import</span> <span class='nam'>Response</span>  <span class='com'># NOQA</span><span class='strut'> </span></p>
 | 
			
		||||
                
 | 
			
		||||
            </td>
 | 
			
		||||
        </tr>
 | 
			
		||||
    </table>
 | 
			
		||||
</div>
 | 
			
		||||
 | 
			
		||||
<div id='footer'>
 | 
			
		||||
    <div class='content'>
 | 
			
		||||
        <p>
 | 
			
		||||
            <a class='nav' href='index.html'>« index</a>     <a class='nav' href='http://nedbatchelder.com/code/coverage'>coverage.py v3.6</a>
 | 
			
		||||
        </p>
 | 
			
		||||
    </div>
 | 
			
		||||
</div>
 | 
			
		||||
 | 
			
		||||
</body>
 | 
			
		||||
</html>
 | 
			
		||||
							
								
								
									
										424
									
								
								tests/cover/falcon_api.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										424
									
								
								tests/cover/falcon_api.html
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,424 @@
 | 
			
		||||
<!doctype html PUBLIC "-//W3C//DTD html 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
 | 
			
		||||
<html>
 | 
			
		||||
<head>
 | 
			
		||||
    <meta http-equiv='Content-Type' content='text/html; charset=utf-8'>
 | 
			
		||||
    
 | 
			
		||||
    
 | 
			
		||||
    <meta http-equiv='X-UA-Compatible' content='IE=emulateIE7' />
 | 
			
		||||
    <title>Coverage for falcon.api: 100%</title>
 | 
			
		||||
    <link rel='stylesheet' href='style.css' type='text/css'>
 | 
			
		||||
    
 | 
			
		||||
    <script type='text/javascript' src='jquery-1.4.3.min.js'></script>
 | 
			
		||||
    <script type='text/javascript' src='jquery.hotkeys.js'></script>
 | 
			
		||||
    <script type='text/javascript' src='jquery.isonscreen.js'></script>
 | 
			
		||||
    <script type='text/javascript' src='coverage_html.js'></script>
 | 
			
		||||
    <script type='text/javascript' charset='utf-8'>
 | 
			
		||||
        jQuery(document).ready(coverage.pyfile_ready);
 | 
			
		||||
    </script>
 | 
			
		||||
</head>
 | 
			
		||||
<body id='pyfile'>
 | 
			
		||||
 | 
			
		||||
<div id='header'>
 | 
			
		||||
    <div class='content'>
 | 
			
		||||
        <h1>Coverage for <b>falcon.api</b> :
 | 
			
		||||
            <span class='pc_cov'>100%</span>
 | 
			
		||||
        </h1>
 | 
			
		||||
        <img id='keyboard_icon' src='keybd_closed.png'>
 | 
			
		||||
        <h2 class='stats'>
 | 
			
		||||
            55 statements  
 | 
			
		||||
            <span class='run hide_run shortkey_r button_toggle_run'>55 run</span>
 | 
			
		||||
            <span class='mis shortkey_m button_toggle_mis'>0 missing</span>
 | 
			
		||||
            <span class='exc shortkey_x button_toggle_exc'>0 excluded</span>
 | 
			
		||||
            
 | 
			
		||||
        </h2>
 | 
			
		||||
    </div>
 | 
			
		||||
</div>
 | 
			
		||||
 | 
			
		||||
<div class='help_panel'>
 | 
			
		||||
    <img id='panel_icon' src='keybd_open.png'>
 | 
			
		||||
<p class='legend'>Hot-keys on this page</p>
 | 
			
		||||
    <div>
 | 
			
		||||
<p class='keyhelp'>
 | 
			
		||||
        <span class='key'>r</span>
 | 
			
		||||
        <span class='key'>m</span>
 | 
			
		||||
        <span class='key'>x</span>
 | 
			
		||||
        <span class='key'>p</span>   toggle line displays
 | 
			
		||||
    </p>
 | 
			
		||||
<p class='keyhelp'>
 | 
			
		||||
        <span class='key'>j</span>
 | 
			
		||||
        <span class='key'>k</span>   next/prev highlighted chunk
 | 
			
		||||
    </p>
 | 
			
		||||
<p class='keyhelp'>
 | 
			
		||||
        <span class='key'>0</span>   (zero) top of page
 | 
			
		||||
    </p>
 | 
			
		||||
<p class='keyhelp'>
 | 
			
		||||
        <span class='key'>1</span>   (one) first highlighted chunk
 | 
			
		||||
    </p>
 | 
			
		||||
    </div>
 | 
			
		||||
</div>
 | 
			
		||||
 | 
			
		||||
<div id='source'>
 | 
			
		||||
    <table cellspacing='0' cellpadding='0'>
 | 
			
		||||
        <tr>
 | 
			
		||||
            <td class='linenos' valign='top'>
 | 
			
		||||
<p id='n1' class='pln'><a href='#n1'>1</a></p>
 | 
			
		||||
<p id='n2' class='pln'><a href='#n2'>2</a></p>
 | 
			
		||||
<p id='n3' class='pln'><a href='#n3'>3</a></p>
 | 
			
		||||
<p id='n4' class='pln'><a href='#n4'>4</a></p>
 | 
			
		||||
<p id='n5' class='pln'><a href='#n5'>5</a></p>
 | 
			
		||||
<p id='n6' class='pln'><a href='#n6'>6</a></p>
 | 
			
		||||
<p id='n7' class='pln'><a href='#n7'>7</a></p>
 | 
			
		||||
<p id='n8' class='pln'><a href='#n8'>8</a></p>
 | 
			
		||||
<p id='n9' class='pln'><a href='#n9'>9</a></p>
 | 
			
		||||
<p id='n10' class='pln'><a href='#n10'>10</a></p>
 | 
			
		||||
<p id='n11' class='pln'><a href='#n11'>11</a></p>
 | 
			
		||||
<p id='n12' class='pln'><a href='#n12'>12</a></p>
 | 
			
		||||
<p id='n13' class='pln'><a href='#n13'>13</a></p>
 | 
			
		||||
<p id='n14' class='pln'><a href='#n14'>14</a></p>
 | 
			
		||||
<p id='n15' class='pln'><a href='#n15'>15</a></p>
 | 
			
		||||
<p id='n16' class='pln'><a href='#n16'>16</a></p>
 | 
			
		||||
<p id='n17' class='pln'><a href='#n17'>17</a></p>
 | 
			
		||||
<p id='n18' class='pln'><a href='#n18'>18</a></p>
 | 
			
		||||
<p id='n19' class='stm run hide_run'><a href='#n19'>19</a></p>
 | 
			
		||||
<p id='n20' class='stm run hide_run'><a href='#n20'>20</a></p>
 | 
			
		||||
<p id='n21' class='stm run hide_run'><a href='#n21'>21</a></p>
 | 
			
		||||
<p id='n22' class='stm run hide_run'><a href='#n22'>22</a></p>
 | 
			
		||||
<p id='n23' class='stm run hide_run'><a href='#n23'>23</a></p>
 | 
			
		||||
<p id='n24' class='pln'><a href='#n24'>24</a></p>
 | 
			
		||||
<p id='n25' class='stm run hide_run'><a href='#n25'>25</a></p>
 | 
			
		||||
<p id='n26' class='stm run hide_run'><a href='#n26'>26</a></p>
 | 
			
		||||
<p id='n27' class='pln'><a href='#n27'>27</a></p>
 | 
			
		||||
<p id='n28' class='pln'><a href='#n28'>28</a></p>
 | 
			
		||||
<p id='n29' class='stm run hide_run'><a href='#n29'>29</a></p>
 | 
			
		||||
<p id='n30' class='pln'><a href='#n30'>30</a></p>
 | 
			
		||||
<p id='n31' class='pln'><a href='#n31'>31</a></p>
 | 
			
		||||
<p id='n32' class='pln'><a href='#n32'>32</a></p>
 | 
			
		||||
<p id='n33' class='pln'><a href='#n33'>33</a></p>
 | 
			
		||||
<p id='n34' class='pln'><a href='#n34'>34</a></p>
 | 
			
		||||
<p id='n35' class='pln'><a href='#n35'>35</a></p>
 | 
			
		||||
<p id='n36' class='pln'><a href='#n36'>36</a></p>
 | 
			
		||||
<p id='n37' class='stm run hide_run'><a href='#n37'>37</a></p>
 | 
			
		||||
<p id='n38' class='pln'><a href='#n38'>38</a></p>
 | 
			
		||||
<p id='n39' class='stm run hide_run'><a href='#n39'>39</a></p>
 | 
			
		||||
<p id='n40' class='pln'><a href='#n40'>40</a></p>
 | 
			
		||||
<p id='n41' class='pln'><a href='#n41'>41</a></p>
 | 
			
		||||
<p id='n42' class='pln'><a href='#n42'>42</a></p>
 | 
			
		||||
<p id='n43' class='pln'><a href='#n43'>43</a></p>
 | 
			
		||||
<p id='n44' class='pln'><a href='#n44'>44</a></p>
 | 
			
		||||
<p id='n45' class='pln'><a href='#n45'>45</a></p>
 | 
			
		||||
<p id='n46' class='pln'><a href='#n46'>46</a></p>
 | 
			
		||||
<p id='n47' class='pln'><a href='#n47'>47</a></p>
 | 
			
		||||
<p id='n48' class='pln'><a href='#n48'>48</a></p>
 | 
			
		||||
<p id='n49' class='pln'><a href='#n49'>49</a></p>
 | 
			
		||||
<p id='n50' class='pln'><a href='#n50'>50</a></p>
 | 
			
		||||
<p id='n51' class='pln'><a href='#n51'>51</a></p>
 | 
			
		||||
<p id='n52' class='pln'><a href='#n52'>52</a></p>
 | 
			
		||||
<p id='n53' class='pln'><a href='#n53'>53</a></p>
 | 
			
		||||
<p id='n54' class='pln'><a href='#n54'>54</a></p>
 | 
			
		||||
<p id='n55' class='pln'><a href='#n55'>55</a></p>
 | 
			
		||||
<p id='n56' class='stm run hide_run'><a href='#n56'>56</a></p>
 | 
			
		||||
<p id='n57' class='stm run hide_run'><a href='#n57'>57</a></p>
 | 
			
		||||
<p id='n58' class='pln'><a href='#n58'>58</a></p>
 | 
			
		||||
<p id='n59' class='stm run hide_run'><a href='#n59'>59</a></p>
 | 
			
		||||
<p id='n60' class='stm run hide_run'><a href='#n60'>60</a></p>
 | 
			
		||||
<p id='n61' class='pln'><a href='#n61'>61</a></p>
 | 
			
		||||
<p id='n62' class='stm run hide_run'><a href='#n62'>62</a></p>
 | 
			
		||||
<p id='n63' class='pln'><a href='#n63'>63</a></p>
 | 
			
		||||
<p id='n64' class='pln'><a href='#n64'>64</a></p>
 | 
			
		||||
<p id='n65' class='pln'><a href='#n65'>65</a></p>
 | 
			
		||||
<p id='n66' class='pln'><a href='#n66'>66</a></p>
 | 
			
		||||
<p id='n67' class='pln'><a href='#n67'>67</a></p>
 | 
			
		||||
<p id='n68' class='pln'><a href='#n68'>68</a></p>
 | 
			
		||||
<p id='n69' class='pln'><a href='#n69'>69</a></p>
 | 
			
		||||
<p id='n70' class='pln'><a href='#n70'>70</a></p>
 | 
			
		||||
<p id='n71' class='pln'><a href='#n71'>71</a></p>
 | 
			
		||||
<p id='n72' class='pln'><a href='#n72'>72</a></p>
 | 
			
		||||
<p id='n73' class='pln'><a href='#n73'>73</a></p>
 | 
			
		||||
<p id='n74' class='stm run hide_run'><a href='#n74'>74</a></p>
 | 
			
		||||
<p id='n75' class='stm run hide_run'><a href='#n75'>75</a></p>
 | 
			
		||||
<p id='n76' class='pln'><a href='#n76'>76</a></p>
 | 
			
		||||
<p id='n77' class='stm run hide_run'><a href='#n77'>77</a></p>
 | 
			
		||||
<p id='n78' class='pln'><a href='#n78'>78</a></p>
 | 
			
		||||
<p id='n79' class='stm run hide_run'><a href='#n79'>79</a></p>
 | 
			
		||||
<p id='n80' class='stm run hide_run'><a href='#n80'>80</a></p>
 | 
			
		||||
<p id='n81' class='pln'><a href='#n81'>81</a></p>
 | 
			
		||||
<p id='n82' class='stm run hide_run'><a href='#n82'>82</a></p>
 | 
			
		||||
<p id='n83' class='stm run hide_run'><a href='#n83'>83</a></p>
 | 
			
		||||
<p id='n84' class='stm run hide_run'><a href='#n84'>84</a></p>
 | 
			
		||||
<p id='n85' class='stm run hide_run'><a href='#n85'>85</a></p>
 | 
			
		||||
<p id='n86' class='pln'><a href='#n86'>86</a></p>
 | 
			
		||||
<p id='n87' class='stm run hide_run'><a href='#n87'>87</a></p>
 | 
			
		||||
<p id='n88' class='stm run hide_run'><a href='#n88'>88</a></p>
 | 
			
		||||
<p id='n89' class='pln'><a href='#n89'>89</a></p>
 | 
			
		||||
<p id='n90' class='pln'><a href='#n90'>90</a></p>
 | 
			
		||||
<p id='n91' class='pln'><a href='#n91'>91</a></p>
 | 
			
		||||
<p id='n92' class='pln'><a href='#n92'>92</a></p>
 | 
			
		||||
<p id='n93' class='stm run hide_run'><a href='#n93'>93</a></p>
 | 
			
		||||
<p id='n94' class='stm run hide_run'><a href='#n94'>94</a></p>
 | 
			
		||||
<p id='n95' class='stm run hide_run'><a href='#n95'>95</a></p>
 | 
			
		||||
<p id='n96' class='stm run hide_run'><a href='#n96'>96</a></p>
 | 
			
		||||
<p id='n97' class='pln'><a href='#n97'>97</a></p>
 | 
			
		||||
<p id='n98' class='pln'><a href='#n98'>98</a></p>
 | 
			
		||||
<p id='n99' class='stm run hide_run'><a href='#n99'>99</a></p>
 | 
			
		||||
<p id='n100' class='pln'><a href='#n100'>100</a></p>
 | 
			
		||||
<p id='n101' class='pln'><a href='#n101'>101</a></p>
 | 
			
		||||
<p id='n102' class='stm run hide_run'><a href='#n102'>102</a></p>
 | 
			
		||||
<p id='n103' class='pln'><a href='#n103'>103</a></p>
 | 
			
		||||
<p id='n104' class='pln'><a href='#n104'>104</a></p>
 | 
			
		||||
<p id='n105' class='pln'><a href='#n105'>105</a></p>
 | 
			
		||||
<p id='n106' class='stm run hide_run'><a href='#n106'>106</a></p>
 | 
			
		||||
<p id='n107' class='stm run hide_run'><a href='#n107'>107</a></p>
 | 
			
		||||
<p id='n108' class='pln'><a href='#n108'>108</a></p>
 | 
			
		||||
<p id='n109' class='stm run hide_run'><a href='#n109'>109</a></p>
 | 
			
		||||
<p id='n110' class='pln'><a href='#n110'>110</a></p>
 | 
			
		||||
<p id='n111' class='stm run hide_run'><a href='#n111'>111</a></p>
 | 
			
		||||
<p id='n112' class='pln'><a href='#n112'>112</a></p>
 | 
			
		||||
<p id='n113' class='pln'><a href='#n113'>113</a></p>
 | 
			
		||||
<p id='n114' class='stm run hide_run'><a href='#n114'>114</a></p>
 | 
			
		||||
<p id='n115' class='stm run hide_run'><a href='#n115'>115</a></p>
 | 
			
		||||
<p id='n116' class='pln'><a href='#n116'>116</a></p>
 | 
			
		||||
<p id='n117' class='stm run hide_run'><a href='#n117'>117</a></p>
 | 
			
		||||
<p id='n118' class='pln'><a href='#n118'>118</a></p>
 | 
			
		||||
<p id='n119' class='pln'><a href='#n119'>119</a></p>
 | 
			
		||||
<p id='n120' class='pln'><a href='#n120'>120</a></p>
 | 
			
		||||
<p id='n121' class='pln'><a href='#n121'>121</a></p>
 | 
			
		||||
<p id='n122' class='pln'><a href='#n122'>122</a></p>
 | 
			
		||||
<p id='n123' class='pln'><a href='#n123'>123</a></p>
 | 
			
		||||
<p id='n124' class='pln'><a href='#n124'>124</a></p>
 | 
			
		||||
<p id='n125' class='pln'><a href='#n125'>125</a></p>
 | 
			
		||||
<p id='n126' class='pln'><a href='#n126'>126</a></p>
 | 
			
		||||
<p id='n127' class='pln'><a href='#n127'>127</a></p>
 | 
			
		||||
<p id='n128' class='pln'><a href='#n128'>128</a></p>
 | 
			
		||||
<p id='n129' class='pln'><a href='#n129'>129</a></p>
 | 
			
		||||
<p id='n130' class='pln'><a href='#n130'>130</a></p>
 | 
			
		||||
<p id='n131' class='stm run hide_run'><a href='#n131'>131</a></p>
 | 
			
		||||
<p id='n132' class='stm run hide_run'><a href='#n132'>132</a></p>
 | 
			
		||||
<p id='n133' class='pln'><a href='#n133'>133</a></p>
 | 
			
		||||
<p id='n134' class='pln'><a href='#n134'>134</a></p>
 | 
			
		||||
<p id='n135' class='pln'><a href='#n135'>135</a></p>
 | 
			
		||||
<p id='n136' class='pln'><a href='#n136'>136</a></p>
 | 
			
		||||
<p id='n137' class='stm run hide_run'><a href='#n137'>137</a></p>
 | 
			
		||||
<p id='n138' class='pln'><a href='#n138'>138</a></p>
 | 
			
		||||
<p id='n139' class='pln'><a href='#n139'>139</a></p>
 | 
			
		||||
<p id='n140' class='pln'><a href='#n140'>140</a></p>
 | 
			
		||||
<p id='n141' class='pln'><a href='#n141'>141</a></p>
 | 
			
		||||
<p id='n142' class='pln'><a href='#n142'>142</a></p>
 | 
			
		||||
<p id='n143' class='stm run hide_run'><a href='#n143'>143</a></p>
 | 
			
		||||
<p id='n144' class='pln'><a href='#n144'>144</a></p>
 | 
			
		||||
<p id='n145' class='pln'><a href='#n145'>145</a></p>
 | 
			
		||||
<p id='n146' class='pln'><a href='#n146'>146</a></p>
 | 
			
		||||
<p id='n147' class='pln'><a href='#n147'>147</a></p>
 | 
			
		||||
<p id='n148' class='pln'><a href='#n148'>148</a></p>
 | 
			
		||||
<p id='n149' class='pln'><a href='#n149'>149</a></p>
 | 
			
		||||
<p id='n150' class='pln'><a href='#n150'>150</a></p>
 | 
			
		||||
<p id='n151' class='pln'><a href='#n151'>151</a></p>
 | 
			
		||||
<p id='n152' class='pln'><a href='#n152'>152</a></p>
 | 
			
		||||
<p id='n153' class='pln'><a href='#n153'>153</a></p>
 | 
			
		||||
<p id='n154' class='pln'><a href='#n154'>154</a></p>
 | 
			
		||||
<p id='n155' class='pln'><a href='#n155'>155</a></p>
 | 
			
		||||
<p id='n156' class='stm run hide_run'><a href='#n156'>156</a></p>
 | 
			
		||||
<p id='n157' class='stm run hide_run'><a href='#n157'>157</a></p>
 | 
			
		||||
<p id='n158' class='stm run hide_run'><a href='#n158'>158</a></p>
 | 
			
		||||
<p id='n159' class='stm run hide_run'><a href='#n159'>159</a></p>
 | 
			
		||||
<p id='n160' class='pln'><a href='#n160'>160</a></p>
 | 
			
		||||
<p id='n161' class='stm run hide_run'><a href='#n161'>161</a></p>
 | 
			
		||||
<p id='n162' class='stm run hide_run'><a href='#n162'>162</a></p>
 | 
			
		||||
<p id='n163' class='stm run hide_run'><a href='#n163'>163</a></p>
 | 
			
		||||
<p id='n164' class='stm run hide_run'><a href='#n164'>164</a></p>
 | 
			
		||||
<p id='n165' class='pln'><a href='#n165'>165</a></p>
 | 
			
		||||
<p id='n166' class='stm run hide_run'><a href='#n166'>166</a></p>
 | 
			
		||||
<p id='n167' class='pln'><a href='#n167'>167</a></p>
 | 
			
		||||
<p id='n168' class='stm run hide_run'><a href='#n168'>168</a></p>
 | 
			
		||||
<p id='n169' class='stm run hide_run'><a href='#n169'>169</a></p>
 | 
			
		||||
<p id='n170' class='pln'><a href='#n170'>170</a></p>
 | 
			
		||||
<p id='n171' class='stm run hide_run'><a href='#n171'>171</a></p>
 | 
			
		||||
                
 | 
			
		||||
            </td>
 | 
			
		||||
            <td class='text' valign='top'>
 | 
			
		||||
<p id='t1' class='pln'><span class='str'>"""Defines the API class.</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t2' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t3' class='pln'><span class='str'>Copyright 2013 by Rackspace Hosting, Inc.</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t4' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t5' class='pln'><span class='str'>Licensed under the Apache License, Version 2.0 (the "License");</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t6' class='pln'><span class='str'>you may not use this file except in compliance with the License.</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t7' class='pln'><span class='str'>You may obtain a copy of the License at</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t8' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t9' class='pln'><span class='str'>   http://www.apache.org/licenses/LICENSE-2.0</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t10' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t11' class='pln'><span class='str'>Unless required by applicable law or agreed to in writing, software</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t12' class='pln'><span class='str'>distributed under the License is distributed on an "AS IS" BASIS,</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t13' class='pln'><span class='str'>WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t14' class='pln'><span class='str'>See the License for the specific language governing permissions and</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t15' class='pln'><span class='str'>limitations under the License.</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t16' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t17' class='pln'><span class='str'>"""</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t18' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t19' class='stm run hide_run'><span class='key'>from</span> <span class='nam'>falcon</span><span class='op'>.</span><span class='nam'>request</span> <span class='key'>import</span> <span class='nam'>Request</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t20' class='stm run hide_run'><span class='key'>from</span> <span class='nam'>falcon</span><span class='op'>.</span><span class='nam'>response</span> <span class='key'>import</span> <span class='nam'>Response</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t21' class='stm run hide_run'><span class='key'>import</span> <span class='nam'>falcon</span><span class='op'>.</span><span class='nam'>responders</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t22' class='stm run hide_run'><span class='key'>from</span> <span class='nam'>falcon</span><span class='op'>.</span><span class='nam'>status_codes</span> <span class='key'>import</span> <span class='nam'>HTTP_416</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t23' class='stm run hide_run'><span class='key'>from</span> <span class='nam'>falcon</span><span class='op'>.</span><span class='nam'>api_helpers</span> <span class='key'>import</span> <span class='op'>*</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t24' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t25' class='stm run hide_run'><span class='key'>from</span> <span class='nam'>falcon</span><span class='op'>.</span><span class='nam'>http_error</span> <span class='key'>import</span> <span class='nam'>HTTPError</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t26' class='stm run hide_run'><span class='key'>from</span> <span class='nam'>falcon</span> <span class='key'>import</span> <span class='nam'>DEFAULT_MEDIA_TYPE</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t27' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t28' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t29' class='stm run hide_run'><span class='key'>class</span> <span class='nam'>API</span><span class='op'>(</span><span class='nam'>object</span><span class='op'>)</span><span class='op'>:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t30' class='pln'>    <span class='str'>"""Provides routing and such for building a web service application</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t31' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t32' class='pln'><span class='str'>    This class is the main entry point into a Falcon-based app. It provides a</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t33' class='pln'><span class='str'>    callable WSGI interface and a simple routing engine based on URI templates.</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t34' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t35' class='pln'><span class='str'>    """</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t36' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t37' class='stm run hide_run'>    <span class='nam'>__slots__</span> <span class='op'>=</span> <span class='op'>(</span><span class='str'>'_after'</span><span class='op'>,</span> <span class='str'>'_before'</span><span class='op'>,</span> <span class='str'>'_media_type'</span><span class='op'>,</span> <span class='str'>'_routes'</span><span class='op'>)</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t38' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t39' class='stm run hide_run'>    <span class='key'>def</span> <span class='nam'>__init__</span><span class='op'>(</span><span class='nam'>self</span><span class='op'>,</span> <span class='nam'>media_type</span><span class='op'>=</span><span class='nam'>DEFAULT_MEDIA_TYPE</span><span class='op'>,</span> <span class='nam'>before</span><span class='op'>=</span><span class='nam'>None</span><span class='op'>,</span> <span class='nam'>after</span><span class='op'>=</span><span class='nam'>None</span><span class='op'>)</span><span class='op'>:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t40' class='pln'>        <span class='str'>"""Initialize a new Falcon API instances</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t41' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t42' class='pln'><span class='str'>        Args:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t43' class='pln'><span class='str'>            media_type: Default media type to use as the value for the</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t44' class='pln'><span class='str'>                Content-Type header on responses. (default 'application/json')</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t45' class='pln'><span class='str'>            before: A global action hook (or list of hooks) to call before</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t46' class='pln'><span class='str'>                each on_* responder, for all resources. Similar to the</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t47' class='pln'><span class='str'>                'falcon.before' decorator, but applies to the entire API. When</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t48' class='pln'><span class='str'>                more than one action function is given, they will be executed</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t49' class='pln'><span class='str'>                in natural order (starting with the first in the list).</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t50' class='pln'><span class='str'>            after: A global action hook (or list of hooks) to call after each</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t51' class='pln'><span class='str'>                on_* responder, for all resources. Similar to the 'after'</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t52' class='pln'><span class='str'>                decorator, but applies to the entire API.</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t53' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t54' class='pln'><span class='str'>        """</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t55' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t56' class='stm run hide_run'>        <span class='nam'>self</span><span class='op'>.</span><span class='nam'>_routes</span> <span class='op'>=</span> <span class='op'>[</span><span class='op'>]</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t57' class='stm run hide_run'>        <span class='nam'>self</span><span class='op'>.</span><span class='nam'>_media_type</span> <span class='op'>=</span> <span class='nam'>media_type</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t58' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t59' class='stm run hide_run'>        <span class='nam'>self</span><span class='op'>.</span><span class='nam'>_before</span> <span class='op'>=</span> <span class='nam'>prepare_global_hooks</span><span class='op'>(</span><span class='nam'>before</span><span class='op'>)</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t60' class='stm run hide_run'>        <span class='nam'>self</span><span class='op'>.</span><span class='nam'>_after</span> <span class='op'>=</span> <span class='nam'>prepare_global_hooks</span><span class='op'>(</span><span class='nam'>after</span><span class='op'>)</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t61' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t62' class='stm run hide_run'>    <span class='key'>def</span> <span class='nam'>__call__</span><span class='op'>(</span><span class='nam'>self</span><span class='op'>,</span> <span class='nam'>env</span><span class='op'>,</span> <span class='nam'>start_response</span><span class='op'>)</span><span class='op'>:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t63' class='pln'>        <span class='str'>"""WSGI "app" method</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t64' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t65' class='pln'><span class='str'>        Makes instances of API callable by any WSGI server. See also PEP 333.</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t66' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t67' class='pln'><span class='str'>        Args:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t68' class='pln'><span class='str'>            env: A WSGI environment dictionary</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t69' class='pln'><span class='str'>            start_response: A WSGI helper method for setting status and headers</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t70' class='pln'><span class='str'>                on a response.</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t71' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t72' class='pln'><span class='str'>        """</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t73' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t74' class='stm run hide_run'>        <span class='nam'>req</span> <span class='op'>=</span> <span class='nam'>Request</span><span class='op'>(</span><span class='nam'>env</span><span class='op'>)</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t75' class='stm run hide_run'>        <span class='nam'>resp</span> <span class='op'>=</span> <span class='nam'>Response</span><span class='op'>(</span><span class='op'>)</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t76' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t77' class='stm run hide_run'>        <span class='nam'>responder</span><span class='op'>,</span> <span class='nam'>params</span> <span class='op'>=</span> <span class='nam'>self</span><span class='op'>.</span><span class='nam'>_get_responder</span><span class='op'>(</span><span class='nam'>req</span><span class='op'>.</span><span class='nam'>path</span><span class='op'>,</span> <span class='nam'>req</span><span class='op'>.</span><span class='nam'>method</span><span class='op'>)</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t78' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t79' class='stm run hide_run'>        <span class='key'>try</span><span class='op'>:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t80' class='stm run hide_run'>            <span class='nam'>responder</span><span class='op'>(</span><span class='nam'>req</span><span class='op'>,</span> <span class='nam'>resp</span><span class='op'>,</span> <span class='op'>**</span><span class='nam'>params</span><span class='op'>)</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t81' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t82' class='stm run hide_run'>        <span class='key'>except</span> <span class='nam'>HTTPError</span> <span class='key'>as</span> <span class='nam'>ex</span><span class='op'>:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t83' class='stm run hide_run'>            <span class='nam'>resp</span><span class='op'>.</span><span class='nam'>status</span> <span class='op'>=</span> <span class='nam'>ex</span><span class='op'>.</span><span class='nam'>status</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t84' class='stm run hide_run'>            <span class='key'>if</span> <span class='nam'>ex</span><span class='op'>.</span><span class='nam'>headers</span> <span class='key'>is</span> <span class='key'>not</span> <span class='nam'>None</span><span class='op'>:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t85' class='stm run hide_run'>                <span class='nam'>resp</span><span class='op'>.</span><span class='nam'>set_headers</span><span class='op'>(</span><span class='nam'>ex</span><span class='op'>.</span><span class='nam'>headers</span><span class='op'>)</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t86' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t87' class='stm run hide_run'>            <span class='key'>if</span> <span class='nam'>req</span><span class='op'>.</span><span class='nam'>client_accepts_json</span><span class='op'>(</span><span class='op'>)</span><span class='op'>:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t88' class='stm run hide_run'>                <span class='nam'>resp</span><span class='op'>.</span><span class='nam'>body</span> <span class='op'>=</span> <span class='nam'>ex</span><span class='op'>.</span><span class='nam'>json</span><span class='op'>(</span><span class='op'>)</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t89' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t90' class='pln'>        <span class='com'>#</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t91' class='pln'>        <span class='com'># Set status and headers</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t92' class='pln'>        <span class='com'>#</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t93' class='stm run hide_run'>        <span class='nam'>use_body</span> <span class='op'>=</span> <span class='key'>not</span> <span class='nam'>should_ignore_body</span><span class='op'>(</span><span class='nam'>resp</span><span class='op'>.</span><span class='nam'>status</span><span class='op'>,</span> <span class='nam'>req</span><span class='op'>.</span><span class='nam'>method</span><span class='op'>)</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t94' class='stm run hide_run'>        <span class='key'>if</span> <span class='nam'>use_body</span><span class='op'>:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t95' class='stm run hide_run'>            <span class='nam'>set_content_length</span><span class='op'>(</span><span class='nam'>resp</span><span class='op'>)</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t96' class='stm run hide_run'>            <span class='nam'>body</span> <span class='op'>=</span> <span class='nam'>get_body</span><span class='op'>(</span><span class='nam'>resp</span><span class='op'>)</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t97' class='pln'>        <span class='key'>else</span><span class='op'>:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t98' class='pln'>            <span class='com'># Default: return an empty body</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t99' class='stm run hide_run'>            <span class='nam'>body</span> <span class='op'>=</span> <span class='op'>[</span><span class='op'>]</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t100' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t101' class='pln'>        <span class='com'># Set content type if needed</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t102' class='stm run hide_run'>        <span class='nam'>use_content_type</span> <span class='op'>=</span> <span class='op'>(</span><span class='nam'>body</span> <span class='key'>or</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t103' class='pln'>                            <span class='nam'>req</span><span class='op'>.</span><span class='nam'>method</span> <span class='op'>==</span> <span class='str'>'HEAD'</span> <span class='key'>or</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t104' class='pln'>                            <span class='nam'>resp</span><span class='op'>.</span><span class='nam'>status</span> <span class='op'>==</span> <span class='nam'>HTTP_416</span><span class='op'>)</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t105' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t106' class='stm run hide_run'>        <span class='key'>if</span> <span class='nam'>use_content_type</span><span class='op'>:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t107' class='stm run hide_run'>            <span class='nam'>media_type</span> <span class='op'>=</span> <span class='nam'>self</span><span class='op'>.</span><span class='nam'>_media_type</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t108' class='pln'>        <span class='key'>else</span><span class='op'>:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t109' class='stm run hide_run'>            <span class='nam'>media_type</span> <span class='op'>=</span> <span class='nam'>None</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t110' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t111' class='stm run hide_run'>        <span class='nam'>headers</span> <span class='op'>=</span> <span class='nam'>resp</span><span class='op'>.</span><span class='nam'>_wsgi_headers</span><span class='op'>(</span><span class='nam'>media_type</span><span class='op'>)</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t112' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t113' class='pln'>        <span class='com'># Return the response per the WSGI spec</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t114' class='stm run hide_run'>        <span class='nam'>start_response</span><span class='op'>(</span><span class='nam'>resp</span><span class='op'>.</span><span class='nam'>status</span><span class='op'>,</span> <span class='nam'>headers</span><span class='op'>)</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t115' class='stm run hide_run'>        <span class='key'>return</span> <span class='nam'>body</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t116' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t117' class='stm run hide_run'>    <span class='key'>def</span> <span class='nam'>add_route</span><span class='op'>(</span><span class='nam'>self</span><span class='op'>,</span> <span class='nam'>uri_template</span><span class='op'>,</span> <span class='nam'>resource</span><span class='op'>)</span><span class='op'>:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t118' class='pln'>        <span class='str'>"""Associate a URI path with a resource</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t119' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t120' class='pln'><span class='str'>        Args:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t121' class='pln'><span class='str'>            uri_template: Relative URI template. Currently only Level 1</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t122' class='pln'><span class='str'>                templates are supported. See also RFC 6570.</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t123' class='pln'><span class='str'>            resource: Object which represents an HTTP/REST "resource". Falcon</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t124' class='pln'><span class='str'>                will pass "GET" requests to on_get, "PUT" requests to on_put,</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t125' class='pln'><span class='str'>                etc. If any HTTP methods are not supported by your resource,</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t126' class='pln'><span class='str'>                simply don't define the corresponding request handlers, and</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t127' class='pln'><span class='str'>                Falcon will do the right thing.</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t128' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t129' class='pln'><span class='str'>        """</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t130' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t131' class='stm run hide_run'>        <span class='nam'>path_template</span> <span class='op'>=</span> <span class='nam'>compile_uri_template</span><span class='op'>(</span><span class='nam'>uri_template</span><span class='op'>)</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t132' class='stm run hide_run'>        <span class='nam'>method_map</span> <span class='op'>=</span> <span class='nam'>create_http_method_map</span><span class='op'>(</span><span class='nam'>resource</span><span class='op'>,</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t133' class='pln'>                                            <span class='nam'>self</span><span class='op'>.</span><span class='nam'>_before</span><span class='op'>,</span> <span class='nam'>self</span><span class='op'>.</span><span class='nam'>_after</span><span class='op'>)</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t134' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t135' class='pln'>        <span class='com'># Insert at the head of the list in case we get duplicate</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t136' class='pln'>        <span class='com'># adds (will cause the last one to win).</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t137' class='stm run hide_run'>        <span class='nam'>self</span><span class='op'>.</span><span class='nam'>_routes</span><span class='op'>.</span><span class='nam'>insert</span><span class='op'>(</span><span class='num'>0</span><span class='op'>,</span> <span class='op'>(</span><span class='nam'>path_template</span><span class='op'>,</span> <span class='nam'>method_map</span><span class='op'>)</span><span class='op'>)</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t138' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t139' class='pln'><span class='com'>#----------------------------------------------------------------------------</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t140' class='pln'><span class='com'># Helpers</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t141' class='pln'><span class='com'>#----------------------------------------------------------------------------</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t142' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t143' class='stm run hide_run'>    <span class='key'>def</span> <span class='nam'>_get_responder</span><span class='op'>(</span><span class='nam'>self</span><span class='op'>,</span> <span class='nam'>path</span><span class='op'>,</span> <span class='nam'>method</span><span class='op'>)</span><span class='op'>:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t144' class='pln'>        <span class='str'>"""Searches routes for a matching responder</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t145' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t146' class='pln'><span class='str'>        Args:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t147' class='pln'><span class='str'>            path: URI path to search (without query stirng)</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t148' class='pln'><span class='str'>            method: HTTP method (uppercase) requested</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t149' class='pln'><span class='str'>        Returns:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t150' class='pln'><span class='str'>            A 2-member tuple, containing a responder callable and a dict</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t151' class='pln'><span class='str'>            containing parsed path fields, if any were specified in</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t152' class='pln'><span class='str'>            the matching route's URI template</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t153' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t154' class='pln'><span class='str'>        """</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t155' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t156' class='stm run hide_run'>        <span class='key'>for</span> <span class='nam'>path_template</span><span class='op'>,</span> <span class='nam'>method_map</span> <span class='key'>in</span> <span class='nam'>self</span><span class='op'>.</span><span class='nam'>_routes</span><span class='op'>:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t157' class='stm run hide_run'>            <span class='nam'>m</span> <span class='op'>=</span> <span class='nam'>path_template</span><span class='op'>.</span><span class='nam'>match</span><span class='op'>(</span><span class='nam'>path</span><span class='op'>)</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t158' class='stm run hide_run'>            <span class='key'>if</span> <span class='nam'>m</span><span class='op'>:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t159' class='stm run hide_run'>                <span class='nam'>params</span> <span class='op'>=</span> <span class='nam'>m</span><span class='op'>.</span><span class='nam'>groupdict</span><span class='op'>(</span><span class='op'>)</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t160' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t161' class='stm run hide_run'>                <span class='key'>try</span><span class='op'>:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t162' class='stm run hide_run'>                    <span class='nam'>responder</span> <span class='op'>=</span> <span class='nam'>method_map</span><span class='op'>[</span><span class='nam'>method</span><span class='op'>]</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t163' class='stm run hide_run'>                <span class='key'>except</span> <span class='nam'>KeyError</span><span class='op'>:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t164' class='stm run hide_run'>                    <span class='nam'>responder</span> <span class='op'>=</span> <span class='nam'>falcon</span><span class='op'>.</span><span class='nam'>responders</span><span class='op'>.</span><span class='nam'>bad_request</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t165' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t166' class='stm run hide_run'>                <span class='key'>break</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t167' class='pln'>        <span class='key'>else</span><span class='op'>:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t168' class='stm run hide_run'>            <span class='nam'>responder</span> <span class='op'>=</span> <span class='nam'>falcon</span><span class='op'>.</span><span class='nam'>responders</span><span class='op'>.</span><span class='nam'>path_not_found</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t169' class='stm run hide_run'>            <span class='nam'>params</span> <span class='op'>=</span> <span class='op'>{</span><span class='op'>}</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t170' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t171' class='stm run hide_run'>        <span class='key'>return</span> <span class='op'>(</span><span class='nam'>responder</span><span class='op'>,</span> <span class='nam'>params</span><span class='op'>)</span><span class='strut'> </span></p>
 | 
			
		||||
                
 | 
			
		||||
            </td>
 | 
			
		||||
        </tr>
 | 
			
		||||
    </table>
 | 
			
		||||
</div>
 | 
			
		||||
 | 
			
		||||
<div id='footer'>
 | 
			
		||||
    <div class='content'>
 | 
			
		||||
        <p>
 | 
			
		||||
            <a class='nav' href='index.html'>« index</a>     <a class='nav' href='http://nedbatchelder.com/code/coverage'>coverage.py v3.6</a>
 | 
			
		||||
        </p>
 | 
			
		||||
    </div>
 | 
			
		||||
</div>
 | 
			
		||||
 | 
			
		||||
</body>
 | 
			
		||||
</html>
 | 
			
		||||
							
								
								
									
										576
									
								
								tests/cover/falcon_api_helpers.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										576
									
								
								tests/cover/falcon_api_helpers.html
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,576 @@
 | 
			
		||||
<!doctype html PUBLIC "-//W3C//DTD html 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
 | 
			
		||||
<html>
 | 
			
		||||
<head>
 | 
			
		||||
    <meta http-equiv='Content-Type' content='text/html; charset=utf-8'>
 | 
			
		||||
    
 | 
			
		||||
    
 | 
			
		||||
    <meta http-equiv='X-UA-Compatible' content='IE=emulateIE7' />
 | 
			
		||||
    <title>Coverage for falcon.api_helpers: 100%</title>
 | 
			
		||||
    <link rel='stylesheet' href='style.css' type='text/css'>
 | 
			
		||||
    
 | 
			
		||||
    <script type='text/javascript' src='jquery-1.4.3.min.js'></script>
 | 
			
		||||
    <script type='text/javascript' src='jquery.hotkeys.js'></script>
 | 
			
		||||
    <script type='text/javascript' src='jquery.isonscreen.js'></script>
 | 
			
		||||
    <script type='text/javascript' src='coverage_html.js'></script>
 | 
			
		||||
    <script type='text/javascript' charset='utf-8'>
 | 
			
		||||
        jQuery(document).ready(coverage.pyfile_ready);
 | 
			
		||||
    </script>
 | 
			
		||||
</head>
 | 
			
		||||
<body id='pyfile'>
 | 
			
		||||
 | 
			
		||||
<div id='header'>
 | 
			
		||||
    <div class='content'>
 | 
			
		||||
        <h1>Coverage for <b>falcon.api_helpers</b> :
 | 
			
		||||
            <span class='pc_cov'>100%</span>
 | 
			
		||||
        </h1>
 | 
			
		||||
        <img id='keyboard_icon' src='keybd_closed.png'>
 | 
			
		||||
        <h2 class='stats'>
 | 
			
		||||
            82 statements  
 | 
			
		||||
            <span class='run hide_run shortkey_r button_toggle_run'>82 run</span>
 | 
			
		||||
            <span class='mis shortkey_m button_toggle_mis'>0 missing</span>
 | 
			
		||||
            <span class='exc shortkey_x button_toggle_exc'>0 excluded</span>
 | 
			
		||||
            
 | 
			
		||||
        </h2>
 | 
			
		||||
    </div>
 | 
			
		||||
</div>
 | 
			
		||||
 | 
			
		||||
<div class='help_panel'>
 | 
			
		||||
    <img id='panel_icon' src='keybd_open.png'>
 | 
			
		||||
<p class='legend'>Hot-keys on this page</p>
 | 
			
		||||
    <div>
 | 
			
		||||
<p class='keyhelp'>
 | 
			
		||||
        <span class='key'>r</span>
 | 
			
		||||
        <span class='key'>m</span>
 | 
			
		||||
        <span class='key'>x</span>
 | 
			
		||||
        <span class='key'>p</span>   toggle line displays
 | 
			
		||||
    </p>
 | 
			
		||||
<p class='keyhelp'>
 | 
			
		||||
        <span class='key'>j</span>
 | 
			
		||||
        <span class='key'>k</span>   next/prev highlighted chunk
 | 
			
		||||
    </p>
 | 
			
		||||
<p class='keyhelp'>
 | 
			
		||||
        <span class='key'>0</span>   (zero) top of page
 | 
			
		||||
    </p>
 | 
			
		||||
<p class='keyhelp'>
 | 
			
		||||
        <span class='key'>1</span>   (one) first highlighted chunk
 | 
			
		||||
    </p>
 | 
			
		||||
    </div>
 | 
			
		||||
</div>
 | 
			
		||||
 | 
			
		||||
<div id='source'>
 | 
			
		||||
    <table cellspacing='0' cellpadding='0'>
 | 
			
		||||
        <tr>
 | 
			
		||||
            <td class='linenos' valign='top'>
 | 
			
		||||
<p id='n1' class='pln'><a href='#n1'>1</a></p>
 | 
			
		||||
<p id='n2' class='pln'><a href='#n2'>2</a></p>
 | 
			
		||||
<p id='n3' class='pln'><a href='#n3'>3</a></p>
 | 
			
		||||
<p id='n4' class='pln'><a href='#n4'>4</a></p>
 | 
			
		||||
<p id='n5' class='pln'><a href='#n5'>5</a></p>
 | 
			
		||||
<p id='n6' class='pln'><a href='#n6'>6</a></p>
 | 
			
		||||
<p id='n7' class='pln'><a href='#n7'>7</a></p>
 | 
			
		||||
<p id='n8' class='pln'><a href='#n8'>8</a></p>
 | 
			
		||||
<p id='n9' class='pln'><a href='#n9'>9</a></p>
 | 
			
		||||
<p id='n10' class='pln'><a href='#n10'>10</a></p>
 | 
			
		||||
<p id='n11' class='pln'><a href='#n11'>11</a></p>
 | 
			
		||||
<p id='n12' class='pln'><a href='#n12'>12</a></p>
 | 
			
		||||
<p id='n13' class='pln'><a href='#n13'>13</a></p>
 | 
			
		||||
<p id='n14' class='pln'><a href='#n14'>14</a></p>
 | 
			
		||||
<p id='n15' class='pln'><a href='#n15'>15</a></p>
 | 
			
		||||
<p id='n16' class='pln'><a href='#n16'>16</a></p>
 | 
			
		||||
<p id='n17' class='pln'><a href='#n17'>17</a></p>
 | 
			
		||||
<p id='n18' class='pln'><a href='#n18'>18</a></p>
 | 
			
		||||
<p id='n19' class='stm run hide_run'><a href='#n19'>19</a></p>
 | 
			
		||||
<p id='n20' class='stm run hide_run'><a href='#n20'>20</a></p>
 | 
			
		||||
<p id='n21' class='pln'><a href='#n21'>21</a></p>
 | 
			
		||||
<p id='n22' class='stm run hide_run'><a href='#n22'>22</a></p>
 | 
			
		||||
<p id='n23' class='pln'><a href='#n23'>23</a></p>
 | 
			
		||||
<p id='n24' class='stm run hide_run'><a href='#n24'>24</a></p>
 | 
			
		||||
<p id='n25' class='pln'><a href='#n25'>25</a></p>
 | 
			
		||||
<p id='n26' class='pln'><a href='#n26'>26</a></p>
 | 
			
		||||
<p id='n27' class='stm run hide_run'><a href='#n27'>27</a></p>
 | 
			
		||||
<p id='n28' class='pln'><a href='#n28'>28</a></p>
 | 
			
		||||
<p id='n29' class='pln'><a href='#n29'>29</a></p>
 | 
			
		||||
<p id='n30' class='pln'><a href='#n30'>30</a></p>
 | 
			
		||||
<p id='n31' class='pln'><a href='#n31'>31</a></p>
 | 
			
		||||
<p id='n32' class='pln'><a href='#n32'>32</a></p>
 | 
			
		||||
<p id='n33' class='pln'><a href='#n33'>33</a></p>
 | 
			
		||||
<p id='n34' class='pln'><a href='#n34'>34</a></p>
 | 
			
		||||
<p id='n35' class='pln'><a href='#n35'>35</a></p>
 | 
			
		||||
<p id='n36' class='stm run hide_run'><a href='#n36'>36</a></p>
 | 
			
		||||
<p id='n37' class='stm run hide_run'><a href='#n37'>37</a></p>
 | 
			
		||||
<p id='n38' class='stm run hide_run'><a href='#n38'>38</a></p>
 | 
			
		||||
<p id='n39' class='stm run hide_run'><a href='#n39'>39</a></p>
 | 
			
		||||
<p id='n40' class='pln'><a href='#n40'>40</a></p>
 | 
			
		||||
<p id='n41' class='stm run hide_run'><a href='#n41'>41</a></p>
 | 
			
		||||
<p id='n42' class='stm run hide_run'><a href='#n42'>42</a></p>
 | 
			
		||||
<p id='n43' class='stm run hide_run'><a href='#n43'>43</a></p>
 | 
			
		||||
<p id='n44' class='pln'><a href='#n44'>44</a></p>
 | 
			
		||||
<p id='n45' class='stm run hide_run'><a href='#n45'>45</a></p>
 | 
			
		||||
<p id='n46' class='pln'><a href='#n46'>46</a></p>
 | 
			
		||||
<p id='n47' class='pln'><a href='#n47'>47</a></p>
 | 
			
		||||
<p id='n48' class='stm run hide_run'><a href='#n48'>48</a></p>
 | 
			
		||||
<p id='n49' class='pln'><a href='#n49'>49</a></p>
 | 
			
		||||
<p id='n50' class='pln'><a href='#n50'>50</a></p>
 | 
			
		||||
<p id='n51' class='pln'><a href='#n51'>51</a></p>
 | 
			
		||||
<p id='n52' class='pln'><a href='#n52'>52</a></p>
 | 
			
		||||
<p id='n53' class='pln'><a href='#n53'>53</a></p>
 | 
			
		||||
<p id='n54' class='pln'><a href='#n54'>54</a></p>
 | 
			
		||||
<p id='n55' class='pln'><a href='#n55'>55</a></p>
 | 
			
		||||
<p id='n56' class='pln'><a href='#n56'>56</a></p>
 | 
			
		||||
<p id='n57' class='pln'><a href='#n57'>57</a></p>
 | 
			
		||||
<p id='n58' class='pln'><a href='#n58'>58</a></p>
 | 
			
		||||
<p id='n59' class='pln'><a href='#n59'>59</a></p>
 | 
			
		||||
<p id='n60' class='stm run hide_run'><a href='#n60'>60</a></p>
 | 
			
		||||
<p id='n61' class='pln'><a href='#n61'>61</a></p>
 | 
			
		||||
<p id='n62' class='pln'><a href='#n62'>62</a></p>
 | 
			
		||||
<p id='n63' class='stm run hide_run'><a href='#n63'>63</a></p>
 | 
			
		||||
<p id='n64' class='pln'><a href='#n64'>64</a></p>
 | 
			
		||||
<p id='n65' class='pln'><a href='#n65'>65</a></p>
 | 
			
		||||
<p id='n66' class='pln'><a href='#n66'>66</a></p>
 | 
			
		||||
<p id='n67' class='pln'><a href='#n67'>67</a></p>
 | 
			
		||||
<p id='n68' class='pln'><a href='#n68'>68</a></p>
 | 
			
		||||
<p id='n69' class='pln'><a href='#n69'>69</a></p>
 | 
			
		||||
<p id='n70' class='pln'><a href='#n70'>70</a></p>
 | 
			
		||||
<p id='n71' class='pln'><a href='#n71'>71</a></p>
 | 
			
		||||
<p id='n72' class='pln'><a href='#n72'>72</a></p>
 | 
			
		||||
<p id='n73' class='pln'><a href='#n73'>73</a></p>
 | 
			
		||||
<p id='n74' class='pln'><a href='#n74'>74</a></p>
 | 
			
		||||
<p id='n75' class='pln'><a href='#n75'>75</a></p>
 | 
			
		||||
<p id='n76' class='pln'><a href='#n76'>76</a></p>
 | 
			
		||||
<p id='n77' class='stm run hide_run'><a href='#n77'>77</a></p>
 | 
			
		||||
<p id='n78' class='pln'><a href='#n78'>78</a></p>
 | 
			
		||||
<p id='n79' class='stm run hide_run'><a href='#n79'>79</a></p>
 | 
			
		||||
<p id='n80' class='pln'><a href='#n80'>80</a></p>
 | 
			
		||||
<p id='n81' class='pln'><a href='#n81'>81</a></p>
 | 
			
		||||
<p id='n82' class='stm run hide_run'><a href='#n82'>82</a></p>
 | 
			
		||||
<p id='n83' class='stm run hide_run'><a href='#n83'>83</a></p>
 | 
			
		||||
<p id='n84' class='stm run hide_run'><a href='#n84'>84</a></p>
 | 
			
		||||
<p id='n85' class='pln'><a href='#n85'>85</a></p>
 | 
			
		||||
<p id='n86' class='stm run hide_run'><a href='#n86'>86</a></p>
 | 
			
		||||
<p id='n87' class='pln'><a href='#n87'>87</a></p>
 | 
			
		||||
<p id='n88' class='pln'><a href='#n88'>88</a></p>
 | 
			
		||||
<p id='n89' class='pln'><a href='#n89'>89</a></p>
 | 
			
		||||
<p id='n90' class='stm run hide_run'><a href='#n90'>90</a></p>
 | 
			
		||||
<p id='n91' class='pln'><a href='#n91'>91</a></p>
 | 
			
		||||
<p id='n92' class='stm run hide_run'><a href='#n92'>92</a></p>
 | 
			
		||||
<p id='n93' class='stm run hide_run'><a href='#n93'>93</a></p>
 | 
			
		||||
<p id='n94' class='pln'><a href='#n94'>94</a></p>
 | 
			
		||||
<p id='n95' class='pln'><a href='#n95'>95</a></p>
 | 
			
		||||
<p id='n96' class='stm run hide_run'><a href='#n96'>96</a></p>
 | 
			
		||||
<p id='n97' class='pln'><a href='#n97'>97</a></p>
 | 
			
		||||
<p id='n98' class='pln'><a href='#n98'>98</a></p>
 | 
			
		||||
<p id='n99' class='pln'><a href='#n99'>99</a></p>
 | 
			
		||||
<p id='n100' class='pln'><a href='#n100'>100</a></p>
 | 
			
		||||
<p id='n101' class='pln'><a href='#n101'>101</a></p>
 | 
			
		||||
<p id='n102' class='pln'><a href='#n102'>102</a></p>
 | 
			
		||||
<p id='n103' class='pln'><a href='#n103'>103</a></p>
 | 
			
		||||
<p id='n104' class='pln'><a href='#n104'>104</a></p>
 | 
			
		||||
<p id='n105' class='pln'><a href='#n105'>105</a></p>
 | 
			
		||||
<p id='n106' class='pln'><a href='#n106'>106</a></p>
 | 
			
		||||
<p id='n107' class='pln'><a href='#n107'>107</a></p>
 | 
			
		||||
<p id='n108' class='pln'><a href='#n108'>108</a></p>
 | 
			
		||||
<p id='n109' class='pln'><a href='#n109'>109</a></p>
 | 
			
		||||
<p id='n110' class='stm run hide_run'><a href='#n110'>110</a></p>
 | 
			
		||||
<p id='n111' class='pln'><a href='#n111'>111</a></p>
 | 
			
		||||
<p id='n112' class='stm run hide_run'><a href='#n112'>112</a></p>
 | 
			
		||||
<p id='n113' class='stm run hide_run'><a href='#n113'>113</a></p>
 | 
			
		||||
<p id='n114' class='stm run hide_run'><a href='#n114'>114</a></p>
 | 
			
		||||
<p id='n115' class='stm run hide_run'><a href='#n115'>115</a></p>
 | 
			
		||||
<p id='n116' class='stm run hide_run'><a href='#n116'>116</a></p>
 | 
			
		||||
<p id='n117' class='pln'><a href='#n117'>117</a></p>
 | 
			
		||||
<p id='n118' class='stm run hide_run'><a href='#n118'>118</a></p>
 | 
			
		||||
<p id='n119' class='stm run hide_run'><a href='#n119'>119</a></p>
 | 
			
		||||
<p id='n120' class='pln'><a href='#n120'>120</a></p>
 | 
			
		||||
<p id='n121' class='stm run hide_run'><a href='#n121'>121</a></p>
 | 
			
		||||
<p id='n122' class='stm run hide_run'><a href='#n122'>122</a></p>
 | 
			
		||||
<p id='n123' class='pln'><a href='#n123'>123</a></p>
 | 
			
		||||
<p id='n124' class='stm run hide_run'><a href='#n124'>124</a></p>
 | 
			
		||||
<p id='n125' class='pln'><a href='#n125'>125</a></p>
 | 
			
		||||
<p id='n126' class='pln'><a href='#n126'>126</a></p>
 | 
			
		||||
<p id='n127' class='stm run hide_run'><a href='#n127'>127</a></p>
 | 
			
		||||
<p id='n128' class='pln'><a href='#n128'>128</a></p>
 | 
			
		||||
<p id='n129' class='pln'><a href='#n129'>129</a></p>
 | 
			
		||||
<p id='n130' class='pln'><a href='#n130'>130</a></p>
 | 
			
		||||
<p id='n131' class='pln'><a href='#n131'>131</a></p>
 | 
			
		||||
<p id='n132' class='pln'><a href='#n132'>132</a></p>
 | 
			
		||||
<p id='n133' class='pln'><a href='#n133'>133</a></p>
 | 
			
		||||
<p id='n134' class='pln'><a href='#n134'>134</a></p>
 | 
			
		||||
<p id='n135' class='pln'><a href='#n135'>135</a></p>
 | 
			
		||||
<p id='n136' class='pln'><a href='#n136'>136</a></p>
 | 
			
		||||
<p id='n137' class='pln'><a href='#n137'>137</a></p>
 | 
			
		||||
<p id='n138' class='pln'><a href='#n138'>138</a></p>
 | 
			
		||||
<p id='n139' class='pln'><a href='#n139'>139</a></p>
 | 
			
		||||
<p id='n140' class='pln'><a href='#n140'>140</a></p>
 | 
			
		||||
<p id='n141' class='stm run hide_run'><a href='#n141'>141</a></p>
 | 
			
		||||
<p id='n142' class='stm run hide_run'><a href='#n142'>142</a></p>
 | 
			
		||||
<p id='n143' class='pln'><a href='#n143'>143</a></p>
 | 
			
		||||
<p id='n144' class='stm run hide_run'><a href='#n144'>144</a></p>
 | 
			
		||||
<p id='n145' class='stm run hide_run'><a href='#n145'>145</a></p>
 | 
			
		||||
<p id='n146' class='stm run hide_run'><a href='#n146'>146</a></p>
 | 
			
		||||
<p id='n147' class='stm run hide_run'><a href='#n147'>147</a></p>
 | 
			
		||||
<p id='n148' class='pln'><a href='#n148'>148</a></p>
 | 
			
		||||
<p id='n149' class='pln'><a href='#n149'>149</a></p>
 | 
			
		||||
<p id='n150' class='stm run hide_run'><a href='#n150'>150</a></p>
 | 
			
		||||
<p id='n151' class='stm run hide_run'><a href='#n151'>151</a></p>
 | 
			
		||||
<p id='n152' class='stm run hide_run'><a href='#n152'>152</a></p>
 | 
			
		||||
<p id='n153' class='pln'><a href='#n153'>153</a></p>
 | 
			
		||||
<p id='n154' class='stm run hide_run'><a href='#n154'>154</a></p>
 | 
			
		||||
<p id='n155' class='pln'><a href='#n155'>155</a></p>
 | 
			
		||||
<p id='n156' class='pln'><a href='#n156'>156</a></p>
 | 
			
		||||
<p id='n157' class='stm run hide_run'><a href='#n157'>157</a></p>
 | 
			
		||||
<p id='n158' class='pln'><a href='#n158'>158</a></p>
 | 
			
		||||
<p id='n159' class='pln'><a href='#n159'>159</a></p>
 | 
			
		||||
<p id='n160' class='pln'><a href='#n160'>160</a></p>
 | 
			
		||||
<p id='n161' class='pln'><a href='#n161'>161</a></p>
 | 
			
		||||
<p id='n162' class='pln'><a href='#n162'>162</a></p>
 | 
			
		||||
<p id='n163' class='pln'><a href='#n163'>163</a></p>
 | 
			
		||||
<p id='n164' class='pln'><a href='#n164'>164</a></p>
 | 
			
		||||
<p id='n165' class='pln'><a href='#n165'>165</a></p>
 | 
			
		||||
<p id='n166' class='pln'><a href='#n166'>166</a></p>
 | 
			
		||||
<p id='n167' class='pln'><a href='#n167'>167</a></p>
 | 
			
		||||
<p id='n168' class='pln'><a href='#n168'>168</a></p>
 | 
			
		||||
<p id='n169' class='pln'><a href='#n169'>169</a></p>
 | 
			
		||||
<p id='n170' class='stm run hide_run'><a href='#n170'>170</a></p>
 | 
			
		||||
<p id='n171' class='pln'><a href='#n171'>171</a></p>
 | 
			
		||||
<p id='n172' class='stm run hide_run'><a href='#n172'>172</a></p>
 | 
			
		||||
<p id='n173' class='stm run hide_run'><a href='#n173'>173</a></p>
 | 
			
		||||
<p id='n174' class='stm run hide_run'><a href='#n174'>174</a></p>
 | 
			
		||||
<p id='n175' class='stm run hide_run'><a href='#n175'>175</a></p>
 | 
			
		||||
<p id='n176' class='pln'><a href='#n176'>176</a></p>
 | 
			
		||||
<p id='n177' class='stm run hide_run'><a href='#n177'>177</a></p>
 | 
			
		||||
<p id='n178' class='pln'><a href='#n178'>178</a></p>
 | 
			
		||||
<p id='n179' class='pln'><a href='#n179'>179</a></p>
 | 
			
		||||
<p id='n180' class='stm run hide_run'><a href='#n180'>180</a></p>
 | 
			
		||||
<p id='n181' class='stm run hide_run'><a href='#n181'>181</a></p>
 | 
			
		||||
<p id='n182' class='stm run hide_run'><a href='#n182'>182</a></p>
 | 
			
		||||
<p id='n183' class='pln'><a href='#n183'>183</a></p>
 | 
			
		||||
<p id='n184' class='pln'><a href='#n184'>184</a></p>
 | 
			
		||||
<p id='n185' class='stm run hide_run'><a href='#n185'>185</a></p>
 | 
			
		||||
<p id='n186' class='stm run hide_run'><a href='#n186'>186</a></p>
 | 
			
		||||
<p id='n187' class='pln'><a href='#n187'>187</a></p>
 | 
			
		||||
<p id='n188' class='stm run hide_run'><a href='#n188'>188</a></p>
 | 
			
		||||
<p id='n189' class='stm run hide_run'><a href='#n189'>189</a></p>
 | 
			
		||||
<p id='n190' class='stm run hide_run'><a href='#n190'>190</a></p>
 | 
			
		||||
<p id='n191' class='pln'><a href='#n191'>191</a></p>
 | 
			
		||||
<p id='n192' class='stm run hide_run'><a href='#n192'>192</a></p>
 | 
			
		||||
<p id='n193' class='pln'><a href='#n193'>193</a></p>
 | 
			
		||||
<p id='n194' class='pln'><a href='#n194'>194</a></p>
 | 
			
		||||
<p id='n195' class='pln'><a href='#n195'>195</a></p>
 | 
			
		||||
<p id='n196' class='pln'><a href='#n196'>196</a></p>
 | 
			
		||||
<p id='n197' class='pln'><a href='#n197'>197</a></p>
 | 
			
		||||
<p id='n198' class='pln'><a href='#n198'>198</a></p>
 | 
			
		||||
<p id='n199' class='pln'><a href='#n199'>199</a></p>
 | 
			
		||||
<p id='n200' class='stm run hide_run'><a href='#n200'>200</a></p>
 | 
			
		||||
<p id='n201' class='stm run hide_run'><a href='#n201'>201</a></p>
 | 
			
		||||
<p id='n202' class='stm run hide_run'><a href='#n202'>202</a></p>
 | 
			
		||||
<p id='n203' class='stm run hide_run'><a href='#n203'>203</a></p>
 | 
			
		||||
<p id='n204' class='pln'><a href='#n204'>204</a></p>
 | 
			
		||||
<p id='n205' class='stm run hide_run'><a href='#n205'>205</a></p>
 | 
			
		||||
<p id='n206' class='pln'><a href='#n206'>206</a></p>
 | 
			
		||||
<p id='n207' class='pln'><a href='#n207'>207</a></p>
 | 
			
		||||
<p id='n208' class='stm run hide_run'><a href='#n208'>208</a></p>
 | 
			
		||||
<p id='n209' class='stm run hide_run'><a href='#n209'>209</a></p>
 | 
			
		||||
<p id='n210' class='pln'><a href='#n210'>210</a></p>
 | 
			
		||||
<p id='n211' class='stm run hide_run'><a href='#n211'>211</a></p>
 | 
			
		||||
<p id='n212' class='pln'><a href='#n212'>212</a></p>
 | 
			
		||||
<p id='n213' class='pln'><a href='#n213'>213</a></p>
 | 
			
		||||
<p id='n214' class='stm run hide_run'><a href='#n214'>214</a></p>
 | 
			
		||||
<p id='n215' class='pln'><a href='#n215'>215</a></p>
 | 
			
		||||
<p id='n216' class='pln'><a href='#n216'>216</a></p>
 | 
			
		||||
<p id='n217' class='pln'><a href='#n217'>217</a></p>
 | 
			
		||||
<p id='n218' class='pln'><a href='#n218'>218</a></p>
 | 
			
		||||
<p id='n219' class='pln'><a href='#n219'>219</a></p>
 | 
			
		||||
<p id='n220' class='pln'><a href='#n220'>220</a></p>
 | 
			
		||||
<p id='n221' class='pln'><a href='#n221'>221</a></p>
 | 
			
		||||
<p id='n222' class='pln'><a href='#n222'>222</a></p>
 | 
			
		||||
<p id='n223' class='pln'><a href='#n223'>223</a></p>
 | 
			
		||||
<p id='n224' class='stm run hide_run'><a href='#n224'>224</a></p>
 | 
			
		||||
<p id='n225' class='pln'><a href='#n225'>225</a></p>
 | 
			
		||||
<p id='n226' class='stm run hide_run'><a href='#n226'>226</a></p>
 | 
			
		||||
<p id='n227' class='stm run hide_run'><a href='#n227'>227</a></p>
 | 
			
		||||
<p id='n228' class='pln'><a href='#n228'>228</a></p>
 | 
			
		||||
<p id='n229' class='stm run hide_run'><a href='#n229'>229</a></p>
 | 
			
		||||
<p id='n230' class='pln'><a href='#n230'>230</a></p>
 | 
			
		||||
<p id='n231' class='pln'><a href='#n231'>231</a></p>
 | 
			
		||||
<p id='n232' class='stm run hide_run'><a href='#n232'>232</a></p>
 | 
			
		||||
<p id='n233' class='pln'><a href='#n233'>233</a></p>
 | 
			
		||||
<p id='n234' class='pln'><a href='#n234'>234</a></p>
 | 
			
		||||
<p id='n235' class='pln'><a href='#n235'>235</a></p>
 | 
			
		||||
<p id='n236' class='pln'><a href='#n236'>236</a></p>
 | 
			
		||||
<p id='n237' class='pln'><a href='#n237'>237</a></p>
 | 
			
		||||
<p id='n238' class='pln'><a href='#n238'>238</a></p>
 | 
			
		||||
<p id='n239' class='pln'><a href='#n239'>239</a></p>
 | 
			
		||||
<p id='n240' class='pln'><a href='#n240'>240</a></p>
 | 
			
		||||
<p id='n241' class='pln'><a href='#n241'>241</a></p>
 | 
			
		||||
<p id='n242' class='stm run hide_run'><a href='#n242'>242</a></p>
 | 
			
		||||
<p id='n243' class='pln'><a href='#n243'>243</a></p>
 | 
			
		||||
<p id='n244' class='stm run hide_run'><a href='#n244'>244</a></p>
 | 
			
		||||
<p id='n245' class='stm run hide_run'><a href='#n245'>245</a></p>
 | 
			
		||||
<p id='n246' class='pln'><a href='#n246'>246</a></p>
 | 
			
		||||
<p id='n247' class='stm run hide_run'><a href='#n247'>247</a></p>
 | 
			
		||||
                
 | 
			
		||||
            </td>
 | 
			
		||||
            <td class='text' valign='top'>
 | 
			
		||||
<p id='t1' class='pln'><span class='str'>"""Includes private helpers for the API class.</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t2' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t3' class='pln'><span class='str'>Copyright 2013 by Rackspace Hosting, Inc.</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t4' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t5' class='pln'><span class='str'>Licensed under the Apache License, Version 2.0 (the "License");</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t6' class='pln'><span class='str'>you may not use this file except in compliance with the License.</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t7' class='pln'><span class='str'>You may obtain a copy of the License at</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t8' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t9' class='pln'><span class='str'>   http://www.apache.org/licenses/LICENSE-2.0</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t10' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t11' class='pln'><span class='str'>Unless required by applicable law or agreed to in writing, software</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t12' class='pln'><span class='str'>distributed under the License is distributed on an "AS IS" BASIS,</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t13' class='pln'><span class='str'>WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t14' class='pln'><span class='str'>See the License for the specific language governing permissions and</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t15' class='pln'><span class='str'>limitations under the License.</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t16' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t17' class='pln'><span class='str'>"""</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t18' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t19' class='stm run hide_run'><span class='key'>import</span> <span class='nam'>re</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t20' class='stm run hide_run'><span class='key'>from</span> <span class='nam'>functools</span> <span class='key'>import</span> <span class='nam'>wraps</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t21' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t22' class='stm run hide_run'><span class='key'>from</span> <span class='nam'>falcon</span> <span class='key'>import</span> <span class='nam'>responders</span><span class='op'>,</span> <span class='nam'>HTTP_METHODS</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t23' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t24' class='stm run hide_run'><span class='key'>import</span> <span class='nam'>falcon</span><span class='op'>.</span><span class='nam'>status_codes</span> <span class='key'>as</span> <span class='nam'>status</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t25' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t26' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t27' class='stm run hide_run'><span class='nam'>IGNORE_BODY_STATUS_CODES</span> <span class='op'>=</span> <span class='nam'>set</span><span class='op'>(</span><span class='op'>[</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t28' class='pln'>    <span class='nam'>status</span><span class='op'>.</span><span class='nam'>HTTP_100</span><span class='op'>,</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t29' class='pln'>    <span class='nam'>status</span><span class='op'>.</span><span class='nam'>HTTP_101</span><span class='op'>,</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t30' class='pln'>    <span class='nam'>status</span><span class='op'>.</span><span class='nam'>HTTP_204</span><span class='op'>,</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t31' class='pln'>    <span class='nam'>status</span><span class='op'>.</span><span class='nam'>HTTP_416</span><span class='op'>,</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t32' class='pln'>    <span class='nam'>status</span><span class='op'>.</span><span class='nam'>HTTP_304</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t33' class='pln'><span class='op'>]</span><span class='op'>)</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t34' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t35' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t36' class='stm run hide_run'><span class='key'>def</span> <span class='nam'>prepare_global_hooks</span><span class='op'>(</span><span class='nam'>hooks</span><span class='op'>)</span><span class='op'>:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t37' class='stm run hide_run'>    <span class='key'>if</span> <span class='nam'>hooks</span> <span class='key'>is</span> <span class='key'>not</span> <span class='nam'>None</span><span class='op'>:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t38' class='stm run hide_run'>        <span class='key'>if</span> <span class='key'>not</span> <span class='nam'>isinstance</span><span class='op'>(</span><span class='nam'>hooks</span><span class='op'>,</span> <span class='nam'>list</span><span class='op'>)</span><span class='op'>:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t39' class='stm run hide_run'>            <span class='nam'>hooks</span> <span class='op'>=</span> <span class='op'>[</span><span class='nam'>hooks</span><span class='op'>]</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t40' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t41' class='stm run hide_run'>        <span class='key'>for</span> <span class='nam'>action</span> <span class='key'>in</span> <span class='nam'>hooks</span><span class='op'>:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t42' class='stm run hide_run'>            <span class='key'>if</span> <span class='key'>not</span> <span class='nam'>hasattr</span><span class='op'>(</span><span class='nam'>action</span><span class='op'>,</span> <span class='str'>'__call__'</span><span class='op'>)</span><span class='op'>:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t43' class='stm run hide_run'>                <span class='key'>raise</span> <span class='nam'>TypeError</span><span class='op'>(</span><span class='str'>'One or more hooks are not callable'</span><span class='op'>)</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t44' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t45' class='stm run hide_run'>    <span class='key'>return</span> <span class='nam'>hooks</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t46' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t47' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t48' class='stm run hide_run'><span class='key'>def</span> <span class='nam'>should_ignore_body</span><span class='op'>(</span><span class='nam'>status</span><span class='op'>,</span> <span class='nam'>method</span><span class='op'>)</span><span class='op'>:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t49' class='pln'>    <span class='str'>"""Return True if the status or method indicates no body, per RFC 2616</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t50' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t51' class='pln'><span class='str'>    Args:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t52' class='pln'><span class='str'>        status: An HTTP status line, e.g., "204 No Content"</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t53' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t54' class='pln'><span class='str'>    Returns:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t55' class='pln'><span class='str'>        True if method is HEAD, or the status is 1xx, 204, or 304; returns</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t56' class='pln'><span class='str'>        False otherwise.</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t57' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t58' class='pln'><span class='str'>    """</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t59' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t60' class='stm run hide_run'>    <span class='key'>return</span> <span class='op'>(</span><span class='nam'>method</span> <span class='op'>==</span> <span class='str'>'HEAD'</span> <span class='key'>or</span> <span class='nam'>status</span> <span class='key'>in</span> <span class='nam'>IGNORE_BODY_STATUS_CODES</span><span class='op'>)</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t61' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t62' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t63' class='stm run hide_run'><span class='key'>def</span> <span class='nam'>set_content_length</span><span class='op'>(</span><span class='nam'>resp</span><span class='op'>)</span><span class='op'>:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t64' class='pln'>    <span class='str'>"""Set Content-Length when given a fully-buffered body or stream length</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t65' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t66' class='pln'><span class='str'>    Pre:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t67' class='pln'><span class='str'>        Either resp.body or resp.stream is set</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t68' class='pln'><span class='str'>    Post:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t69' class='pln'><span class='str'>        resp contains a "Content-Length" header unless a stream is given, but</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t70' class='pln'><span class='str'>        resp.stream_len is not set (in which case, the length cannot be</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t71' class='pln'><span class='str'>            derived reliably).</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t72' class='pln'><span class='str'>    Args:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t73' class='pln'><span class='str'>        resp: The response object on which to set the content length.</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t74' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t75' class='pln'><span class='str'>    """</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t76' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t77' class='stm run hide_run'>    <span class='nam'>content_length</span> <span class='op'>=</span> <span class='num'>0</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t78' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t79' class='stm run hide_run'>    <span class='key'>if</span> <span class='nam'>resp</span><span class='op'>.</span><span class='nam'>body</span> <span class='key'>is</span> <span class='key'>not</span> <span class='nam'>None</span><span class='op'>:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t80' class='pln'>        <span class='com'># Since body is assumed to be a byte string (str in Python 2, bytes in</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t81' class='pln'>        <span class='com'># Python 3), figure out the length using standard functions.</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t82' class='stm run hide_run'>        <span class='nam'>content_length</span> <span class='op'>=</span> <span class='nam'>len</span><span class='op'>(</span><span class='nam'>resp</span><span class='op'>.</span><span class='nam'>body</span><span class='op'>)</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t83' class='stm run hide_run'>    <span class='key'>elif</span> <span class='nam'>resp</span><span class='op'>.</span><span class='nam'>stream</span> <span class='key'>is</span> <span class='key'>not</span> <span class='nam'>None</span><span class='op'>:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t84' class='stm run hide_run'>        <span class='key'>if</span> <span class='nam'>resp</span><span class='op'>.</span><span class='nam'>stream_len</span> <span class='key'>is</span> <span class='key'>not</span> <span class='nam'>None</span><span class='op'>:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t85' class='pln'>            <span class='com'># Total stream length is known in advance (e.g., streaming a file)</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t86' class='stm run hide_run'>            <span class='nam'>content_length</span> <span class='op'>=</span> <span class='nam'>resp</span><span class='op'>.</span><span class='nam'>stream_len</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t87' class='pln'>        <span class='key'>else</span><span class='op'>:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t88' class='pln'>            <span class='com'># Stream given, but length is unknown (dynamically-generated body)</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t89' class='pln'>            <span class='com'># ...do not set the header.</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t90' class='stm run hide_run'>            <span class='key'>return</span> <span class='op'>-</span><span class='num'>1</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t91' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t92' class='stm run hide_run'>    <span class='nam'>resp</span><span class='op'>.</span><span class='nam'>set_header</span><span class='op'>(</span><span class='str'>'Content-Length'</span><span class='op'>,</span> <span class='nam'>str</span><span class='op'>(</span><span class='nam'>content_length</span><span class='op'>)</span><span class='op'>)</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t93' class='stm run hide_run'>    <span class='key'>return</span> <span class='nam'>content_length</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t94' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t95' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t96' class='stm run hide_run'><span class='key'>def</span> <span class='nam'>get_body</span><span class='op'>(</span><span class='nam'>resp</span><span class='op'>)</span><span class='op'>:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t97' class='pln'>    <span class='str'>"""Converts resp content into an iterable as required by PEP 333</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t98' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t99' class='pln'><span class='str'>    Args:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t100' class='pln'><span class='str'>        resp: Instance of falcon.Response</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t101' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t102' class='pln'><span class='str'>    Returns:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t103' class='pln'><span class='str'>        * If resp.body is not None, returns [resp.body], encoded as UTF-8.</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t104' class='pln'><span class='str'>        * If resp.data is not None, returns [resp.data]</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t105' class='pln'><span class='str'>        * If resp.stream is not None, returns resp.stream</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t106' class='pln'><span class='str'>        * Otherwise, returns []</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t107' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t108' class='pln'><span class='str'>    """</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t109' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t110' class='stm run hide_run'>    <span class='nam'>body</span> <span class='op'>=</span> <span class='nam'>resp</span><span class='op'>.</span><span class='nam'>body</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t111' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t112' class='stm run hide_run'>    <span class='key'>if</span> <span class='nam'>body</span> <span class='key'>is</span> <span class='key'>not</span> <span class='nam'>None</span><span class='op'>:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t113' class='stm run hide_run'>        <span class='key'>try</span><span class='op'>:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t114' class='stm run hide_run'>            <span class='key'>return</span> <span class='op'>[</span><span class='nam'>body</span><span class='op'>.</span><span class='nam'>encode</span><span class='op'>(</span><span class='str'>'utf-8'</span><span class='op'>)</span><span class='op'>]</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t115' class='stm run hide_run'>        <span class='key'>except</span> <span class='nam'>UnicodeDecodeError</span><span class='op'>:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t116' class='stm run hide_run'>            <span class='key'>return</span> <span class='op'>[</span><span class='nam'>body</span><span class='op'>]</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t117' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t118' class='stm run hide_run'>    <span class='key'>elif</span> <span class='nam'>resp</span><span class='op'>.</span><span class='nam'>data</span> <span class='key'>is</span> <span class='key'>not</span> <span class='nam'>None</span><span class='op'>:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t119' class='stm run hide_run'>        <span class='key'>return</span> <span class='op'>[</span><span class='nam'>resp</span><span class='op'>.</span><span class='nam'>data</span><span class='op'>]</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t120' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t121' class='stm run hide_run'>    <span class='key'>elif</span> <span class='nam'>resp</span><span class='op'>.</span><span class='nam'>stream</span> <span class='key'>is</span> <span class='key'>not</span> <span class='nam'>None</span><span class='op'>:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t122' class='stm run hide_run'>        <span class='key'>return</span> <span class='nam'>resp</span><span class='op'>.</span><span class='nam'>stream</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t123' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t124' class='stm run hide_run'>    <span class='key'>return</span> <span class='op'>[</span><span class='op'>]</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t125' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t126' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t127' class='stm run hide_run'><span class='key'>def</span> <span class='nam'>compile_uri_template</span><span class='op'>(</span><span class='nam'>template</span><span class='op'>=</span><span class='nam'>None</span><span class='op'>)</span><span class='op'>:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t128' class='pln'>    <span class='str'>"""Compile the given URI template string into a pattern matcher.</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t129' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t130' class='pln'><span class='str'>    Currently only recognizes Level 1 URI templates, and only for the path</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t131' class='pln'><span class='str'>    portion of the URI.</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t132' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t133' class='pln'><span class='str'>    See also: http://tools.ietf.org/html/rfc6570</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t134' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t135' class='pln'><span class='str'>    Args:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t136' class='pln'><span class='str'>        template: A Level 1 URI template. Method responders must accept, as</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t137' class='pln'><span class='str'>        arguments, all fields specified in the template (default '/').</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t138' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t139' class='pln'><span class='str'>    """</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t140' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t141' class='stm run hide_run'>    <span class='key'>if</span> <span class='key'>not</span> <span class='nam'>isinstance</span><span class='op'>(</span><span class='nam'>template</span><span class='op'>,</span> <span class='nam'>str</span><span class='op'>)</span><span class='op'>:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t142' class='stm run hide_run'>        <span class='key'>raise</span> <span class='nam'>TypeError</span><span class='op'>(</span><span class='str'>'uri_template is not a string'</span><span class='op'>)</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t143' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t144' class='stm run hide_run'>    <span class='key'>if</span> <span class='key'>not</span> <span class='nam'>template</span><span class='op'>:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t145' class='stm run hide_run'>        <span class='nam'>template</span> <span class='op'>=</span> <span class='str'>'/'</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t146' class='stm run hide_run'>    <span class='key'>elif</span> <span class='nam'>template</span> <span class='op'>!=</span> <span class='str'>'/'</span> <span class='key'>and</span> <span class='nam'>template</span><span class='op'>.</span><span class='nam'>endswith</span><span class='op'>(</span><span class='str'>'/'</span><span class='op'>)</span><span class='op'>:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t147' class='stm run hide_run'>        <span class='nam'>template</span> <span class='op'>=</span> <span class='nam'>template</span><span class='op'>[</span><span class='op'>:</span><span class='op'>-</span><span class='num'>1</span><span class='op'>]</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t148' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t149' class='pln'>    <span class='com'># Convert Level 1 var patterns to equivalent named regex groups</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t150' class='stm run hide_run'>    <span class='nam'>escaped</span> <span class='op'>=</span> <span class='nam'>re</span><span class='op'>.</span><span class='nam'>sub</span><span class='op'>(</span><span class='str'>r'([\.\(\)\[\]\?\*\+\^\|])'</span><span class='op'>,</span> <span class='str'>r'\.'</span><span class='op'>,</span> <span class='nam'>template</span><span class='op'>)</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t151' class='stm run hide_run'>    <span class='nam'>pattern</span> <span class='op'>=</span> <span class='nam'>re</span><span class='op'>.</span><span class='nam'>sub</span><span class='op'>(</span><span class='str'>r'{([a-zA-Z][a-zA-Z_]*)}'</span><span class='op'>,</span> <span class='str'>r'(?P<\1>[^/]+)'</span><span class='op'>,</span> <span class='nam'>escaped</span><span class='op'>)</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t152' class='stm run hide_run'>    <span class='nam'>pattern</span> <span class='op'>=</span> <span class='str'>r'\A'</span> <span class='op'>+</span> <span class='nam'>pattern</span> <span class='op'>+</span> <span class='str'>r'/?\Z'</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t153' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t154' class='stm run hide_run'>    <span class='key'>return</span> <span class='nam'>re</span><span class='op'>.</span><span class='nam'>compile</span><span class='op'>(</span><span class='nam'>pattern</span><span class='op'>,</span> <span class='nam'>re</span><span class='op'>.</span><span class='nam'>IGNORECASE</span><span class='op'>)</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t155' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t156' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t157' class='stm run hide_run'><span class='key'>def</span> <span class='nam'>create_http_method_map</span><span class='op'>(</span><span class='nam'>resource</span><span class='op'>,</span> <span class='nam'>before</span><span class='op'>,</span> <span class='nam'>after</span><span class='op'>)</span><span class='op'>:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t158' class='pln'>    <span class='str'>"""Maps HTTP methods (such as GET and POST) to methods of resource object</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t159' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t160' class='pln'><span class='str'>    Args:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t161' class='pln'><span class='str'>        resource: An object with "responder" methods, starting with on_*, that</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t162' class='pln'><span class='str'>           correspond to each method the resource supports. For example, if a</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t163' class='pln'><span class='str'>           resource supports GET and POST, it should define</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t164' class='pln'><span class='str'>           on_get(self, req, resp) and on_post(self,req,resp).</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t165' class='pln'><span class='str'>        before: An action hooks or list of hooks to be called before each</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t166' class='pln'><span class='str'>           on_* responder defined by the resource.</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t167' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t168' class='pln'><span class='str'>    """</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t169' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t170' class='stm run hide_run'>    <span class='nam'>method_map</span> <span class='op'>=</span> <span class='op'>{</span><span class='op'>}</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t171' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t172' class='stm run hide_run'>    <span class='key'>for</span> <span class='nam'>method</span> <span class='key'>in</span> <span class='nam'>HTTP_METHODS</span><span class='op'>:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t173' class='stm run hide_run'>        <span class='key'>try</span><span class='op'>:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t174' class='stm run hide_run'>            <span class='nam'>responder</span> <span class='op'>=</span> <span class='nam'>getattr</span><span class='op'>(</span><span class='nam'>resource</span><span class='op'>,</span> <span class='str'>'on_'</span> <span class='op'>+</span> <span class='nam'>method</span><span class='op'>.</span><span class='nam'>lower</span><span class='op'>(</span><span class='op'>)</span><span class='op'>)</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t175' class='stm run hide_run'>        <span class='key'>except</span> <span class='nam'>AttributeError</span><span class='op'>:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t176' class='pln'>            <span class='com'># resource does not implement this method</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t177' class='stm run hide_run'>            <span class='key'>pass</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t178' class='pln'>        <span class='key'>else</span><span class='op'>:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t179' class='pln'>            <span class='com'># Usually expect a method, but any callable will do</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t180' class='stm run hide_run'>            <span class='key'>if</span> <span class='nam'>hasattr</span><span class='op'>(</span><span class='nam'>responder</span><span class='op'>,</span> <span class='str'>'__call__'</span><span class='op'>)</span><span class='op'>:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t181' class='stm run hide_run'>                <span class='nam'>responder</span> <span class='op'>=</span> <span class='nam'>_wrap_with_hooks</span><span class='op'>(</span><span class='nam'>before</span><span class='op'>,</span> <span class='nam'>after</span><span class='op'>,</span> <span class='nam'>responder</span><span class='op'>)</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t182' class='stm run hide_run'>                <span class='nam'>method_map</span><span class='op'>[</span><span class='nam'>method</span><span class='op'>]</span> <span class='op'>=</span> <span class='nam'>responder</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t183' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t184' class='pln'>    <span class='com'># Attach a resource for unsupported HTTP methods</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t185' class='stm run hide_run'>    <span class='nam'>allowed_methods</span> <span class='op'>=</span> <span class='nam'>list</span><span class='op'>(</span><span class='nam'>method_map</span><span class='op'>.</span><span class='nam'>keys</span><span class='op'>(</span><span class='op'>)</span><span class='op'>)</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t186' class='stm run hide_run'>    <span class='nam'>responder</span> <span class='op'>=</span> <span class='nam'>responders</span><span class='op'>.</span><span class='nam'>create_method_not_allowed</span><span class='op'>(</span><span class='nam'>allowed_methods</span><span class='op'>)</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t187' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t188' class='stm run hide_run'>    <span class='key'>for</span> <span class='nam'>method</span> <span class='key'>in</span> <span class='nam'>HTTP_METHODS</span><span class='op'>:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t189' class='stm run hide_run'>        <span class='key'>if</span> <span class='nam'>method</span> <span class='key'>not</span> <span class='key'>in</span> <span class='nam'>allowed_methods</span><span class='op'>:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t190' class='stm run hide_run'>            <span class='nam'>method_map</span><span class='op'>[</span><span class='nam'>method</span><span class='op'>]</span> <span class='op'>=</span> <span class='nam'>responder</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t191' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t192' class='stm run hide_run'>    <span class='key'>return</span> <span class='nam'>method_map</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t193' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t194' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t195' class='pln'><span class='com'>#-----------------------------------------------------------------------------</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t196' class='pln'><span class='com'># Helpers</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t197' class='pln'><span class='com'>#-----------------------------------------------------------------------------</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t198' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t199' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t200' class='stm run hide_run'><span class='key'>def</span> <span class='nam'>_wrap_with_hooks</span><span class='op'>(</span><span class='nam'>before</span><span class='op'>,</span> <span class='nam'>after</span><span class='op'>,</span> <span class='nam'>responder</span><span class='op'>)</span><span class='op'>:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t201' class='stm run hide_run'>    <span class='key'>if</span> <span class='nam'>after</span> <span class='key'>is</span> <span class='key'>not</span> <span class='nam'>None</span><span class='op'>:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t202' class='stm run hide_run'>        <span class='key'>for</span> <span class='nam'>action</span> <span class='key'>in</span> <span class='nam'>after</span><span class='op'>:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t203' class='stm run hide_run'>            <span class='nam'>responder</span> <span class='op'>=</span> <span class='nam'>_wrap_with_after</span><span class='op'>(</span><span class='nam'>action</span><span class='op'>,</span> <span class='nam'>responder</span><span class='op'>)</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t204' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t205' class='stm run hide_run'>    <span class='key'>if</span> <span class='nam'>before</span> <span class='key'>is</span> <span class='key'>not</span> <span class='nam'>None</span><span class='op'>:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t206' class='pln'>        <span class='com'># Wrap in reversed order to achieve natural (first...last)</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t207' class='pln'>        <span class='com'># execution order.</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t208' class='stm run hide_run'>        <span class='key'>for</span> <span class='nam'>action</span> <span class='key'>in</span> <span class='nam'>reversed</span><span class='op'>(</span><span class='nam'>before</span><span class='op'>)</span><span class='op'>:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t209' class='stm run hide_run'>            <span class='nam'>responder</span> <span class='op'>=</span> <span class='nam'>_wrap_with_before</span><span class='op'>(</span><span class='nam'>action</span><span class='op'>,</span> <span class='nam'>responder</span><span class='op'>)</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t210' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t211' class='stm run hide_run'>    <span class='key'>return</span> <span class='nam'>responder</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t212' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t213' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t214' class='stm run hide_run'><span class='key'>def</span> <span class='nam'>_wrap_with_before</span><span class='op'>(</span><span class='nam'>action</span><span class='op'>,</span> <span class='nam'>responder</span><span class='op'>)</span><span class='op'>:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t215' class='pln'>    <span class='str'>"""Execute the given action function before a bound responder.</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t216' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t217' class='pln'><span class='str'>    Args:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t218' class='pln'><span class='str'>        action: A function with a similar signature to a resource responder</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t219' class='pln'><span class='str'>            method, taking (req, resp, params).</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t220' class='pln'><span class='str'>        responder: The bound responder to wrap.</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t221' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t222' class='pln'><span class='str'>    """</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t223' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t224' class='stm run hide_run'>    <span class='op'>@</span><span class='nam'>wraps</span><span class='op'>(</span><span class='nam'>responder</span><span class='op'>)</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t225' class='pln'>    <span class='key'>def</span> <span class='nam'>do_before</span><span class='op'>(</span><span class='nam'>req</span><span class='op'>,</span> <span class='nam'>resp</span><span class='op'>,</span> <span class='op'>**</span><span class='nam'>kwargs</span><span class='op'>)</span><span class='op'>:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t226' class='stm run hide_run'>        <span class='nam'>action</span><span class='op'>(</span><span class='nam'>req</span><span class='op'>,</span> <span class='nam'>resp</span><span class='op'>,</span> <span class='nam'>kwargs</span><span class='op'>)</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t227' class='stm run hide_run'>        <span class='nam'>responder</span><span class='op'>(</span><span class='nam'>req</span><span class='op'>,</span> <span class='nam'>resp</span><span class='op'>,</span> <span class='op'>**</span><span class='nam'>kwargs</span><span class='op'>)</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t228' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t229' class='stm run hide_run'>    <span class='key'>return</span> <span class='nam'>do_before</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t230' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t231' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t232' class='stm run hide_run'><span class='key'>def</span> <span class='nam'>_wrap_with_after</span><span class='op'>(</span><span class='nam'>action</span><span class='op'>,</span> <span class='nam'>responder</span><span class='op'>)</span><span class='op'>:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t233' class='pln'>    <span class='str'>"""Execute the given action function after a bound responder.</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t234' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t235' class='pln'><span class='str'>    Args:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t236' class='pln'><span class='str'>        action: A function with a signature similar to a resource responder</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t237' class='pln'><span class='str'>            method, taking (req, resp).</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t238' class='pln'><span class='str'>        responder: The bound responder to wrap.</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t239' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t240' class='pln'><span class='str'>    """</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t241' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t242' class='stm run hide_run'>    <span class='op'>@</span><span class='nam'>wraps</span><span class='op'>(</span><span class='nam'>responder</span><span class='op'>)</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t243' class='pln'>    <span class='key'>def</span> <span class='nam'>do_after</span><span class='op'>(</span><span class='nam'>req</span><span class='op'>,</span> <span class='nam'>resp</span><span class='op'>,</span> <span class='op'>**</span><span class='nam'>kwargs</span><span class='op'>)</span><span class='op'>:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t244' class='stm run hide_run'>        <span class='nam'>responder</span><span class='op'>(</span><span class='nam'>req</span><span class='op'>,</span> <span class='nam'>resp</span><span class='op'>,</span> <span class='op'>**</span><span class='nam'>kwargs</span><span class='op'>)</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t245' class='stm run hide_run'>        <span class='nam'>action</span><span class='op'>(</span><span class='nam'>req</span><span class='op'>,</span> <span class='nam'>resp</span><span class='op'>)</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t246' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t247' class='stm run hide_run'>    <span class='key'>return</span> <span class='nam'>do_after</span><span class='strut'> </span></p>
 | 
			
		||||
                
 | 
			
		||||
            </td>
 | 
			
		||||
        </tr>
 | 
			
		||||
    </table>
 | 
			
		||||
</div>
 | 
			
		||||
 | 
			
		||||
<div id='footer'>
 | 
			
		||||
    <div class='content'>
 | 
			
		||||
        <p>
 | 
			
		||||
            <a class='nav' href='index.html'>« index</a>     <a class='nav' href='http://nedbatchelder.com/code/coverage'>coverage.py v3.6</a>
 | 
			
		||||
        </p>
 | 
			
		||||
    </div>
 | 
			
		||||
</div>
 | 
			
		||||
 | 
			
		||||
</body>
 | 
			
		||||
</html>
 | 
			
		||||
							
								
								
									
										768
									
								
								tests/cover/falcon_exceptions.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										768
									
								
								tests/cover/falcon_exceptions.html
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,768 @@
 | 
			
		||||
<!doctype html PUBLIC "-//W3C//DTD html 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
 | 
			
		||||
<html>
 | 
			
		||||
<head>
 | 
			
		||||
    <meta http-equiv='Content-Type' content='text/html; charset=utf-8'>
 | 
			
		||||
    
 | 
			
		||||
    
 | 
			
		||||
    <meta http-equiv='X-UA-Compatible' content='IE=emulateIE7' />
 | 
			
		||||
    <title>Coverage for falcon.exceptions: 100%</title>
 | 
			
		||||
    <link rel='stylesheet' href='style.css' type='text/css'>
 | 
			
		||||
    
 | 
			
		||||
    <script type='text/javascript' src='jquery-1.4.3.min.js'></script>
 | 
			
		||||
    <script type='text/javascript' src='jquery.hotkeys.js'></script>
 | 
			
		||||
    <script type='text/javascript' src='jquery.isonscreen.js'></script>
 | 
			
		||||
    <script type='text/javascript' src='coverage_html.js'></script>
 | 
			
		||||
    <script type='text/javascript' charset='utf-8'>
 | 
			
		||||
        jQuery(document).ready(coverage.pyfile_ready);
 | 
			
		||||
    </script>
 | 
			
		||||
</head>
 | 
			
		||||
<body id='pyfile'>
 | 
			
		||||
 | 
			
		||||
<div id='header'>
 | 
			
		||||
    <div class='content'>
 | 
			
		||||
        <h1>Coverage for <b>falcon.exceptions</b> :
 | 
			
		||||
            <span class='pc_cov'>100%</span>
 | 
			
		||||
        </h1>
 | 
			
		||||
        <img id='keyboard_icon' src='keybd_closed.png'>
 | 
			
		||||
        <h2 class='stats'>
 | 
			
		||||
            51 statements  
 | 
			
		||||
            <span class='run hide_run shortkey_r button_toggle_run'>51 run</span>
 | 
			
		||||
            <span class='mis shortkey_m button_toggle_mis'>0 missing</span>
 | 
			
		||||
            <span class='exc shortkey_x button_toggle_exc'>0 excluded</span>
 | 
			
		||||
            
 | 
			
		||||
        </h2>
 | 
			
		||||
    </div>
 | 
			
		||||
</div>
 | 
			
		||||
 | 
			
		||||
<div class='help_panel'>
 | 
			
		||||
    <img id='panel_icon' src='keybd_open.png'>
 | 
			
		||||
<p class='legend'>Hot-keys on this page</p>
 | 
			
		||||
    <div>
 | 
			
		||||
<p class='keyhelp'>
 | 
			
		||||
        <span class='key'>r</span>
 | 
			
		||||
        <span class='key'>m</span>
 | 
			
		||||
        <span class='key'>x</span>
 | 
			
		||||
        <span class='key'>p</span>   toggle line displays
 | 
			
		||||
    </p>
 | 
			
		||||
<p class='keyhelp'>
 | 
			
		||||
        <span class='key'>j</span>
 | 
			
		||||
        <span class='key'>k</span>   next/prev highlighted chunk
 | 
			
		||||
    </p>
 | 
			
		||||
<p class='keyhelp'>
 | 
			
		||||
        <span class='key'>0</span>   (zero) top of page
 | 
			
		||||
    </p>
 | 
			
		||||
<p class='keyhelp'>
 | 
			
		||||
        <span class='key'>1</span>   (one) first highlighted chunk
 | 
			
		||||
    </p>
 | 
			
		||||
    </div>
 | 
			
		||||
</div>
 | 
			
		||||
 | 
			
		||||
<div id='source'>
 | 
			
		||||
    <table cellspacing='0' cellpadding='0'>
 | 
			
		||||
        <tr>
 | 
			
		||||
            <td class='linenos' valign='top'>
 | 
			
		||||
<p id='n1' class='pln'><a href='#n1'>1</a></p>
 | 
			
		||||
<p id='n2' class='pln'><a href='#n2'>2</a></p>
 | 
			
		||||
<p id='n3' class='pln'><a href='#n3'>3</a></p>
 | 
			
		||||
<p id='n4' class='pln'><a href='#n4'>4</a></p>
 | 
			
		||||
<p id='n5' class='pln'><a href='#n5'>5</a></p>
 | 
			
		||||
<p id='n6' class='pln'><a href='#n6'>6</a></p>
 | 
			
		||||
<p id='n7' class='pln'><a href='#n7'>7</a></p>
 | 
			
		||||
<p id='n8' class='pln'><a href='#n8'>8</a></p>
 | 
			
		||||
<p id='n9' class='pln'><a href='#n9'>9</a></p>
 | 
			
		||||
<p id='n10' class='pln'><a href='#n10'>10</a></p>
 | 
			
		||||
<p id='n11' class='pln'><a href='#n11'>11</a></p>
 | 
			
		||||
<p id='n12' class='pln'><a href='#n12'>12</a></p>
 | 
			
		||||
<p id='n13' class='pln'><a href='#n13'>13</a></p>
 | 
			
		||||
<p id='n14' class='pln'><a href='#n14'>14</a></p>
 | 
			
		||||
<p id='n15' class='pln'><a href='#n15'>15</a></p>
 | 
			
		||||
<p id='n16' class='pln'><a href='#n16'>16</a></p>
 | 
			
		||||
<p id='n17' class='pln'><a href='#n17'>17</a></p>
 | 
			
		||||
<p id='n18' class='pln'><a href='#n18'>18</a></p>
 | 
			
		||||
<p id='n19' class='pln'><a href='#n19'>19</a></p>
 | 
			
		||||
<p id='n20' class='pln'><a href='#n20'>20</a></p>
 | 
			
		||||
<p id='n21' class='pln'><a href='#n21'>21</a></p>
 | 
			
		||||
<p id='n22' class='stm run hide_run'><a href='#n22'>22</a></p>
 | 
			
		||||
<p id='n23' class='stm run hide_run'><a href='#n23'>23</a></p>
 | 
			
		||||
<p id='n24' class='pln'><a href='#n24'>24</a></p>
 | 
			
		||||
<p id='n25' class='pln'><a href='#n25'>25</a></p>
 | 
			
		||||
<p id='n26' class='stm run hide_run'><a href='#n26'>26</a></p>
 | 
			
		||||
<p id='n27' class='pln'><a href='#n27'>27</a></p>
 | 
			
		||||
<p id='n28' class='pln'><a href='#n28'>28</a></p>
 | 
			
		||||
<p id='n29' class='pln'><a href='#n29'>29</a></p>
 | 
			
		||||
<p id='n30' class='pln'><a href='#n30'>30</a></p>
 | 
			
		||||
<p id='n31' class='pln'><a href='#n31'>31</a></p>
 | 
			
		||||
<p id='n32' class='pln'><a href='#n32'>32</a></p>
 | 
			
		||||
<p id='n33' class='pln'><a href='#n33'>33</a></p>
 | 
			
		||||
<p id='n34' class='pln'><a href='#n34'>34</a></p>
 | 
			
		||||
<p id='n35' class='pln'><a href='#n35'>35</a></p>
 | 
			
		||||
<p id='n36' class='pln'><a href='#n36'>36</a></p>
 | 
			
		||||
<p id='n37' class='stm run hide_run'><a href='#n37'>37</a></p>
 | 
			
		||||
<p id='n38' class='pln'><a href='#n38'>38</a></p>
 | 
			
		||||
<p id='n39' class='pln'><a href='#n39'>39</a></p>
 | 
			
		||||
<p id='n40' class='pln'><a href='#n40'>40</a></p>
 | 
			
		||||
<p id='n41' class='pln'><a href='#n41'>41</a></p>
 | 
			
		||||
<p id='n42' class='pln'><a href='#n42'>42</a></p>
 | 
			
		||||
<p id='n43' class='pln'><a href='#n43'>43</a></p>
 | 
			
		||||
<p id='n44' class='stm run hide_run'><a href='#n44'>44</a></p>
 | 
			
		||||
<p id='n45' class='pln'><a href='#n45'>45</a></p>
 | 
			
		||||
<p id='n46' class='pln'><a href='#n46'>46</a></p>
 | 
			
		||||
<p id='n47' class='stm run hide_run'><a href='#n47'>47</a></p>
 | 
			
		||||
<p id='n48' class='pln'><a href='#n48'>48</a></p>
 | 
			
		||||
<p id='n49' class='pln'><a href='#n49'>49</a></p>
 | 
			
		||||
<p id='n50' class='pln'><a href='#n50'>50</a></p>
 | 
			
		||||
<p id='n51' class='pln'><a href='#n51'>51</a></p>
 | 
			
		||||
<p id='n52' class='pln'><a href='#n52'>52</a></p>
 | 
			
		||||
<p id='n53' class='pln'><a href='#n53'>53</a></p>
 | 
			
		||||
<p id='n54' class='pln'><a href='#n54'>54</a></p>
 | 
			
		||||
<p id='n55' class='pln'><a href='#n55'>55</a></p>
 | 
			
		||||
<p id='n56' class='pln'><a href='#n56'>56</a></p>
 | 
			
		||||
<p id='n57' class='pln'><a href='#n57'>57</a></p>
 | 
			
		||||
<p id='n58' class='pln'><a href='#n58'>58</a></p>
 | 
			
		||||
<p id='n59' class='pln'><a href='#n59'>59</a></p>
 | 
			
		||||
<p id='n60' class='pln'><a href='#n60'>60</a></p>
 | 
			
		||||
<p id='n61' class='pln'><a href='#n61'>61</a></p>
 | 
			
		||||
<p id='n62' class='pln'><a href='#n62'>62</a></p>
 | 
			
		||||
<p id='n63' class='pln'><a href='#n63'>63</a></p>
 | 
			
		||||
<p id='n64' class='pln'><a href='#n64'>64</a></p>
 | 
			
		||||
<p id='n65' class='stm run hide_run'><a href='#n65'>65</a></p>
 | 
			
		||||
<p id='n66' class='pln'><a href='#n66'>66</a></p>
 | 
			
		||||
<p id='n67' class='pln'><a href='#n67'>67</a></p>
 | 
			
		||||
<p id='n68' class='pln'><a href='#n68'>68</a></p>
 | 
			
		||||
<p id='n69' class='pln'><a href='#n69'>69</a></p>
 | 
			
		||||
<p id='n70' class='pln'><a href='#n70'>70</a></p>
 | 
			
		||||
<p id='n71' class='pln'><a href='#n71'>71</a></p>
 | 
			
		||||
<p id='n72' class='pln'><a href='#n72'>72</a></p>
 | 
			
		||||
<p id='n73' class='pln'><a href='#n73'>73</a></p>
 | 
			
		||||
<p id='n74' class='pln'><a href='#n74'>74</a></p>
 | 
			
		||||
<p id='n75' class='pln'><a href='#n75'>75</a></p>
 | 
			
		||||
<p id='n76' class='pln'><a href='#n76'>76</a></p>
 | 
			
		||||
<p id='n77' class='pln'><a href='#n77'>77</a></p>
 | 
			
		||||
<p id='n78' class='pln'><a href='#n78'>78</a></p>
 | 
			
		||||
<p id='n79' class='stm run hide_run'><a href='#n79'>79</a></p>
 | 
			
		||||
<p id='n80' class='stm run hide_run'><a href='#n80'>80</a></p>
 | 
			
		||||
<p id='n81' class='stm run hide_run'><a href='#n81'>81</a></p>
 | 
			
		||||
<p id='n82' class='pln'><a href='#n82'>82</a></p>
 | 
			
		||||
<p id='n83' class='stm run hide_run'><a href='#n83'>83</a></p>
 | 
			
		||||
<p id='n84' class='pln'><a href='#n84'>84</a></p>
 | 
			
		||||
<p id='n85' class='pln'><a href='#n85'>85</a></p>
 | 
			
		||||
<p id='n86' class='stm run hide_run'><a href='#n86'>86</a></p>
 | 
			
		||||
<p id='n87' class='pln'><a href='#n87'>87</a></p>
 | 
			
		||||
<p id='n88' class='pln'><a href='#n88'>88</a></p>
 | 
			
		||||
<p id='n89' class='pln'><a href='#n89'>89</a></p>
 | 
			
		||||
<p id='n90' class='pln'><a href='#n90'>90</a></p>
 | 
			
		||||
<p id='n91' class='pln'><a href='#n91'>91</a></p>
 | 
			
		||||
<p id='n92' class='pln'><a href='#n92'>92</a></p>
 | 
			
		||||
<p id='n93' class='pln'><a href='#n93'>93</a></p>
 | 
			
		||||
<p id='n94' class='pln'><a href='#n94'>94</a></p>
 | 
			
		||||
<p id='n95' class='pln'><a href='#n95'>95</a></p>
 | 
			
		||||
<p id='n96' class='pln'><a href='#n96'>96</a></p>
 | 
			
		||||
<p id='n97' class='pln'><a href='#n97'>97</a></p>
 | 
			
		||||
<p id='n98' class='pln'><a href='#n98'>98</a></p>
 | 
			
		||||
<p id='n99' class='pln'><a href='#n99'>99</a></p>
 | 
			
		||||
<p id='n100' class='pln'><a href='#n100'>100</a></p>
 | 
			
		||||
<p id='n101' class='pln'><a href='#n101'>101</a></p>
 | 
			
		||||
<p id='n102' class='stm run hide_run'><a href='#n102'>102</a></p>
 | 
			
		||||
<p id='n103' class='pln'><a href='#n103'>103</a></p>
 | 
			
		||||
<p id='n104' class='pln'><a href='#n104'>104</a></p>
 | 
			
		||||
<p id='n105' class='pln'><a href='#n105'>105</a></p>
 | 
			
		||||
<p id='n106' class='pln'><a href='#n106'>106</a></p>
 | 
			
		||||
<p id='n107' class='pln'><a href='#n107'>107</a></p>
 | 
			
		||||
<p id='n108' class='pln'><a href='#n108'>108</a></p>
 | 
			
		||||
<p id='n109' class='pln'><a href='#n109'>109</a></p>
 | 
			
		||||
<p id='n110' class='stm run hide_run'><a href='#n110'>110</a></p>
 | 
			
		||||
<p id='n111' class='pln'><a href='#n111'>111</a></p>
 | 
			
		||||
<p id='n112' class='pln'><a href='#n112'>112</a></p>
 | 
			
		||||
<p id='n113' class='stm run hide_run'><a href='#n113'>113</a></p>
 | 
			
		||||
<p id='n114' class='pln'><a href='#n114'>114</a></p>
 | 
			
		||||
<p id='n115' class='pln'><a href='#n115'>115</a></p>
 | 
			
		||||
<p id='n116' class='pln'><a href='#n116'>116</a></p>
 | 
			
		||||
<p id='n117' class='pln'><a href='#n117'>117</a></p>
 | 
			
		||||
<p id='n118' class='pln'><a href='#n118'>118</a></p>
 | 
			
		||||
<p id='n119' class='pln'><a href='#n119'>119</a></p>
 | 
			
		||||
<p id='n120' class='stm run hide_run'><a href='#n120'>120</a></p>
 | 
			
		||||
<p id='n121' class='pln'><a href='#n121'>121</a></p>
 | 
			
		||||
<p id='n122' class='pln'><a href='#n122'>122</a></p>
 | 
			
		||||
<p id='n123' class='stm run hide_run'><a href='#n123'>123</a></p>
 | 
			
		||||
<p id='n124' class='pln'><a href='#n124'>124</a></p>
 | 
			
		||||
<p id='n125' class='pln'><a href='#n125'>125</a></p>
 | 
			
		||||
<p id='n126' class='stm run hide_run'><a href='#n126'>126</a></p>
 | 
			
		||||
<p id='n127' class='pln'><a href='#n127'>127</a></p>
 | 
			
		||||
<p id='n128' class='pln'><a href='#n128'>128</a></p>
 | 
			
		||||
<p id='n129' class='pln'><a href='#n129'>129</a></p>
 | 
			
		||||
<p id='n130' class='pln'><a href='#n130'>130</a></p>
 | 
			
		||||
<p id='n131' class='pln'><a href='#n131'>131</a></p>
 | 
			
		||||
<p id='n132' class='pln'><a href='#n132'>132</a></p>
 | 
			
		||||
<p id='n133' class='pln'><a href='#n133'>133</a></p>
 | 
			
		||||
<p id='n134' class='pln'><a href='#n134'>134</a></p>
 | 
			
		||||
<p id='n135' class='pln'><a href='#n135'>135</a></p>
 | 
			
		||||
<p id='n136' class='pln'><a href='#n136'>136</a></p>
 | 
			
		||||
<p id='n137' class='stm run hide_run'><a href='#n137'>137</a></p>
 | 
			
		||||
<p id='n138' class='pln'><a href='#n138'>138</a></p>
 | 
			
		||||
<p id='n139' class='pln'><a href='#n139'>139</a></p>
 | 
			
		||||
<p id='n140' class='pln'><a href='#n140'>140</a></p>
 | 
			
		||||
<p id='n141' class='pln'><a href='#n141'>141</a></p>
 | 
			
		||||
<p id='n142' class='pln'><a href='#n142'>142</a></p>
 | 
			
		||||
<p id='n143' class='pln'><a href='#n143'>143</a></p>
 | 
			
		||||
<p id='n144' class='pln'><a href='#n144'>144</a></p>
 | 
			
		||||
<p id='n145' class='pln'><a href='#n145'>145</a></p>
 | 
			
		||||
<p id='n146' class='pln'><a href='#n146'>146</a></p>
 | 
			
		||||
<p id='n147' class='stm run hide_run'><a href='#n147'>147</a></p>
 | 
			
		||||
<p id='n148' class='stm run hide_run'><a href='#n148'>148</a></p>
 | 
			
		||||
<p id='n149' class='pln'><a href='#n149'>149</a></p>
 | 
			
		||||
<p id='n150' class='stm run hide_run'><a href='#n150'>150</a></p>
 | 
			
		||||
<p id='n151' class='pln'><a href='#n151'>151</a></p>
 | 
			
		||||
<p id='n152' class='pln'><a href='#n152'>152</a></p>
 | 
			
		||||
<p id='n153' class='stm run hide_run'><a href='#n153'>153</a></p>
 | 
			
		||||
<p id='n154' class='pln'><a href='#n154'>154</a></p>
 | 
			
		||||
<p id='n155' class='pln'><a href='#n155'>155</a></p>
 | 
			
		||||
<p id='n156' class='pln'><a href='#n156'>156</a></p>
 | 
			
		||||
<p id='n157' class='pln'><a href='#n157'>157</a></p>
 | 
			
		||||
<p id='n158' class='pln'><a href='#n158'>158</a></p>
 | 
			
		||||
<p id='n159' class='pln'><a href='#n159'>159</a></p>
 | 
			
		||||
<p id='n160' class='pln'><a href='#n160'>160</a></p>
 | 
			
		||||
<p id='n161' class='pln'><a href='#n161'>161</a></p>
 | 
			
		||||
<p id='n162' class='pln'><a href='#n162'>162</a></p>
 | 
			
		||||
<p id='n163' class='pln'><a href='#n163'>163</a></p>
 | 
			
		||||
<p id='n164' class='pln'><a href='#n164'>164</a></p>
 | 
			
		||||
<p id='n165' class='pln'><a href='#n165'>165</a></p>
 | 
			
		||||
<p id='n166' class='pln'><a href='#n166'>166</a></p>
 | 
			
		||||
<p id='n167' class='pln'><a href='#n167'>167</a></p>
 | 
			
		||||
<p id='n168' class='pln'><a href='#n168'>168</a></p>
 | 
			
		||||
<p id='n169' class='pln'><a href='#n169'>169</a></p>
 | 
			
		||||
<p id='n170' class='pln'><a href='#n170'>170</a></p>
 | 
			
		||||
<p id='n171' class='pln'><a href='#n171'>171</a></p>
 | 
			
		||||
<p id='n172' class='pln'><a href='#n172'>172</a></p>
 | 
			
		||||
<p id='n173' class='pln'><a href='#n173'>173</a></p>
 | 
			
		||||
<p id='n174' class='pln'><a href='#n174'>174</a></p>
 | 
			
		||||
<p id='n175' class='pln'><a href='#n175'>175</a></p>
 | 
			
		||||
<p id='n176' class='pln'><a href='#n176'>176</a></p>
 | 
			
		||||
<p id='n177' class='pln'><a href='#n177'>177</a></p>
 | 
			
		||||
<p id='n178' class='stm run hide_run'><a href='#n178'>178</a></p>
 | 
			
		||||
<p id='n179' class='pln'><a href='#n179'>179</a></p>
 | 
			
		||||
<p id='n180' class='pln'><a href='#n180'>180</a></p>
 | 
			
		||||
<p id='n181' class='pln'><a href='#n181'>181</a></p>
 | 
			
		||||
<p id='n182' class='pln'><a href='#n182'>182</a></p>
 | 
			
		||||
<p id='n183' class='pln'><a href='#n183'>183</a></p>
 | 
			
		||||
<p id='n184' class='pln'><a href='#n184'>184</a></p>
 | 
			
		||||
<p id='n185' class='pln'><a href='#n185'>185</a></p>
 | 
			
		||||
<p id='n186' class='stm run hide_run'><a href='#n186'>186</a></p>
 | 
			
		||||
<p id='n187' class='pln'><a href='#n187'>187</a></p>
 | 
			
		||||
<p id='n188' class='pln'><a href='#n188'>188</a></p>
 | 
			
		||||
<p id='n189' class='stm run hide_run'><a href='#n189'>189</a></p>
 | 
			
		||||
<p id='n190' class='pln'><a href='#n190'>190</a></p>
 | 
			
		||||
<p id='n191' class='pln'><a href='#n191'>191</a></p>
 | 
			
		||||
<p id='n192' class='pln'><a href='#n192'>192</a></p>
 | 
			
		||||
<p id='n193' class='pln'><a href='#n193'>193</a></p>
 | 
			
		||||
<p id='n194' class='pln'><a href='#n194'>194</a></p>
 | 
			
		||||
<p id='n195' class='pln'><a href='#n195'>195</a></p>
 | 
			
		||||
<p id='n196' class='pln'><a href='#n196'>196</a></p>
 | 
			
		||||
<p id='n197' class='pln'><a href='#n197'>197</a></p>
 | 
			
		||||
<p id='n198' class='pln'><a href='#n198'>198</a></p>
 | 
			
		||||
<p id='n199' class='pln'><a href='#n199'>199</a></p>
 | 
			
		||||
<p id='n200' class='pln'><a href='#n200'>200</a></p>
 | 
			
		||||
<p id='n201' class='pln'><a href='#n201'>201</a></p>
 | 
			
		||||
<p id='n202' class='stm run hide_run'><a href='#n202'>202</a></p>
 | 
			
		||||
<p id='n203' class='pln'><a href='#n203'>203</a></p>
 | 
			
		||||
<p id='n204' class='pln'><a href='#n204'>204</a></p>
 | 
			
		||||
<p id='n205' class='pln'><a href='#n205'>205</a></p>
 | 
			
		||||
<p id='n206' class='pln'><a href='#n206'>206</a></p>
 | 
			
		||||
<p id='n207' class='pln'><a href='#n207'>207</a></p>
 | 
			
		||||
<p id='n208' class='pln'><a href='#n208'>208</a></p>
 | 
			
		||||
<p id='n209' class='pln'><a href='#n209'>209</a></p>
 | 
			
		||||
<p id='n210' class='stm run hide_run'><a href='#n210'>210</a></p>
 | 
			
		||||
<p id='n211' class='pln'><a href='#n211'>211</a></p>
 | 
			
		||||
<p id='n212' class='pln'><a href='#n212'>212</a></p>
 | 
			
		||||
<p id='n213' class='stm run hide_run'><a href='#n213'>213</a></p>
 | 
			
		||||
<p id='n214' class='pln'><a href='#n214'>214</a></p>
 | 
			
		||||
<p id='n215' class='pln'><a href='#n215'>215</a></p>
 | 
			
		||||
<p id='n216' class='pln'><a href='#n216'>216</a></p>
 | 
			
		||||
<p id='n217' class='pln'><a href='#n217'>217</a></p>
 | 
			
		||||
<p id='n218' class='pln'><a href='#n218'>218</a></p>
 | 
			
		||||
<p id='n219' class='pln'><a href='#n219'>219</a></p>
 | 
			
		||||
<p id='n220' class='stm run hide_run'><a href='#n220'>220</a></p>
 | 
			
		||||
<p id='n221' class='pln'><a href='#n221'>221</a></p>
 | 
			
		||||
<p id='n222' class='pln'><a href='#n222'>222</a></p>
 | 
			
		||||
<p id='n223' class='pln'><a href='#n223'>223</a></p>
 | 
			
		||||
<p id='n224' class='pln'><a href='#n224'>224</a></p>
 | 
			
		||||
<p id='n225' class='pln'><a href='#n225'>225</a></p>
 | 
			
		||||
<p id='n226' class='pln'><a href='#n226'>226</a></p>
 | 
			
		||||
<p id='n227' class='pln'><a href='#n227'>227</a></p>
 | 
			
		||||
<p id='n228' class='pln'><a href='#n228'>228</a></p>
 | 
			
		||||
<p id='n229' class='pln'><a href='#n229'>229</a></p>
 | 
			
		||||
<p id='n230' class='pln'><a href='#n230'>230</a></p>
 | 
			
		||||
<p id='n231' class='stm run hide_run'><a href='#n231'>231</a></p>
 | 
			
		||||
<p id='n232' class='pln'><a href='#n232'>232</a></p>
 | 
			
		||||
<p id='n233' class='pln'><a href='#n233'>233</a></p>
 | 
			
		||||
<p id='n234' class='pln'><a href='#n234'>234</a></p>
 | 
			
		||||
<p id='n235' class='stm run hide_run'><a href='#n235'>235</a></p>
 | 
			
		||||
<p id='n236' class='pln'><a href='#n236'>236</a></p>
 | 
			
		||||
<p id='n237' class='pln'><a href='#n237'>237</a></p>
 | 
			
		||||
<p id='n238' class='pln'><a href='#n238'>238</a></p>
 | 
			
		||||
<p id='n239' class='pln'><a href='#n239'>239</a></p>
 | 
			
		||||
<p id='n240' class='pln'><a href='#n240'>240</a></p>
 | 
			
		||||
<p id='n241' class='pln'><a href='#n241'>241</a></p>
 | 
			
		||||
<p id='n242' class='pln'><a href='#n242'>242</a></p>
 | 
			
		||||
<p id='n243' class='pln'><a href='#n243'>243</a></p>
 | 
			
		||||
<p id='n244' class='pln'><a href='#n244'>244</a></p>
 | 
			
		||||
<p id='n245' class='pln'><a href='#n245'>245</a></p>
 | 
			
		||||
<p id='n246' class='pln'><a href='#n246'>246</a></p>
 | 
			
		||||
<p id='n247' class='pln'><a href='#n247'>247</a></p>
 | 
			
		||||
<p id='n248' class='stm run hide_run'><a href='#n248'>248</a></p>
 | 
			
		||||
<p id='n249' class='pln'><a href='#n249'>249</a></p>
 | 
			
		||||
<p id='n250' class='pln'><a href='#n250'>250</a></p>
 | 
			
		||||
<p id='n251' class='pln'><a href='#n251'>251</a></p>
 | 
			
		||||
<p id='n252' class='pln'><a href='#n252'>252</a></p>
 | 
			
		||||
<p id='n253' class='pln'><a href='#n253'>253</a></p>
 | 
			
		||||
<p id='n254' class='pln'><a href='#n254'>254</a></p>
 | 
			
		||||
<p id='n255' class='pln'><a href='#n255'>255</a></p>
 | 
			
		||||
<p id='n256' class='pln'><a href='#n256'>256</a></p>
 | 
			
		||||
<p id='n257' class='pln'><a href='#n257'>257</a></p>
 | 
			
		||||
<p id='n258' class='pln'><a href='#n258'>258</a></p>
 | 
			
		||||
<p id='n259' class='pln'><a href='#n259'>259</a></p>
 | 
			
		||||
<p id='n260' class='stm run hide_run'><a href='#n260'>260</a></p>
 | 
			
		||||
<p id='n261' class='stm run hide_run'><a href='#n261'>261</a></p>
 | 
			
		||||
<p id='n262' class='stm run hide_run'><a href='#n262'>262</a></p>
 | 
			
		||||
<p id='n263' class='pln'><a href='#n263'>263</a></p>
 | 
			
		||||
<p id='n264' class='stm run hide_run'><a href='#n264'>264</a></p>
 | 
			
		||||
<p id='n265' class='pln'><a href='#n265'>265</a></p>
 | 
			
		||||
<p id='n266' class='pln'><a href='#n266'>266</a></p>
 | 
			
		||||
<p id='n267' class='stm run hide_run'><a href='#n267'>267</a></p>
 | 
			
		||||
<p id='n268' class='pln'><a href='#n268'>268</a></p>
 | 
			
		||||
<p id='n269' class='pln'><a href='#n269'>269</a></p>
 | 
			
		||||
<p id='n270' class='stm run hide_run'><a href='#n270'>270</a></p>
 | 
			
		||||
<p id='n271' class='pln'><a href='#n271'>271</a></p>
 | 
			
		||||
<p id='n272' class='pln'><a href='#n272'>272</a></p>
 | 
			
		||||
<p id='n273' class='pln'><a href='#n273'>273</a></p>
 | 
			
		||||
<p id='n274' class='pln'><a href='#n274'>274</a></p>
 | 
			
		||||
<p id='n275' class='pln'><a href='#n275'>275</a></p>
 | 
			
		||||
<p id='n276' class='pln'><a href='#n276'>276</a></p>
 | 
			
		||||
<p id='n277' class='pln'><a href='#n277'>277</a></p>
 | 
			
		||||
<p id='n278' class='stm run hide_run'><a href='#n278'>278</a></p>
 | 
			
		||||
<p id='n279' class='pln'><a href='#n279'>279</a></p>
 | 
			
		||||
<p id='n280' class='pln'><a href='#n280'>280</a></p>
 | 
			
		||||
<p id='n281' class='stm run hide_run'><a href='#n281'>281</a></p>
 | 
			
		||||
<p id='n282' class='pln'><a href='#n282'>282</a></p>
 | 
			
		||||
<p id='n283' class='pln'><a href='#n283'>283</a></p>
 | 
			
		||||
<p id='n284' class='stm run hide_run'><a href='#n284'>284</a></p>
 | 
			
		||||
<p id='n285' class='pln'><a href='#n285'>285</a></p>
 | 
			
		||||
<p id='n286' class='pln'><a href='#n286'>286</a></p>
 | 
			
		||||
<p id='n287' class='pln'><a href='#n287'>287</a></p>
 | 
			
		||||
<p id='n288' class='pln'><a href='#n288'>288</a></p>
 | 
			
		||||
<p id='n289' class='pln'><a href='#n289'>289</a></p>
 | 
			
		||||
<p id='n290' class='pln'><a href='#n290'>290</a></p>
 | 
			
		||||
<p id='n291' class='pln'><a href='#n291'>291</a></p>
 | 
			
		||||
<p id='n292' class='stm run hide_run'><a href='#n292'>292</a></p>
 | 
			
		||||
<p id='n293' class='pln'><a href='#n293'>293</a></p>
 | 
			
		||||
<p id='n294' class='pln'><a href='#n294'>294</a></p>
 | 
			
		||||
<p id='n295' class='stm run hide_run'><a href='#n295'>295</a></p>
 | 
			
		||||
<p id='n296' class='pln'><a href='#n296'>296</a></p>
 | 
			
		||||
<p id='n297' class='pln'><a href='#n297'>297</a></p>
 | 
			
		||||
<p id='n298' class='stm run hide_run'><a href='#n298'>298</a></p>
 | 
			
		||||
<p id='n299' class='pln'><a href='#n299'>299</a></p>
 | 
			
		||||
<p id='n300' class='pln'><a href='#n300'>300</a></p>
 | 
			
		||||
<p id='n301' class='pln'><a href='#n301'>301</a></p>
 | 
			
		||||
<p id='n302' class='pln'><a href='#n302'>302</a></p>
 | 
			
		||||
<p id='n303' class='pln'><a href='#n303'>303</a></p>
 | 
			
		||||
<p id='n304' class='pln'><a href='#n304'>304</a></p>
 | 
			
		||||
<p id='n305' class='pln'><a href='#n305'>305</a></p>
 | 
			
		||||
<p id='n306' class='stm run hide_run'><a href='#n306'>306</a></p>
 | 
			
		||||
<p id='n307' class='pln'><a href='#n307'>307</a></p>
 | 
			
		||||
<p id='n308' class='pln'><a href='#n308'>308</a></p>
 | 
			
		||||
<p id='n309' class='stm run hide_run'><a href='#n309'>309</a></p>
 | 
			
		||||
<p id='n310' class='pln'><a href='#n310'>310</a></p>
 | 
			
		||||
<p id='n311' class='pln'><a href='#n311'>311</a></p>
 | 
			
		||||
<p id='n312' class='stm run hide_run'><a href='#n312'>312</a></p>
 | 
			
		||||
<p id='n313' class='pln'><a href='#n313'>313</a></p>
 | 
			
		||||
<p id='n314' class='pln'><a href='#n314'>314</a></p>
 | 
			
		||||
<p id='n315' class='pln'><a href='#n315'>315</a></p>
 | 
			
		||||
<p id='n316' class='pln'><a href='#n316'>316</a></p>
 | 
			
		||||
<p id='n317' class='pln'><a href='#n317'>317</a></p>
 | 
			
		||||
<p id='n318' class='pln'><a href='#n318'>318</a></p>
 | 
			
		||||
<p id='n319' class='pln'><a href='#n319'>319</a></p>
 | 
			
		||||
<p id='n320' class='pln'><a href='#n320'>320</a></p>
 | 
			
		||||
<p id='n321' class='pln'><a href='#n321'>321</a></p>
 | 
			
		||||
<p id='n322' class='pln'><a href='#n322'>322</a></p>
 | 
			
		||||
<p id='n323' class='pln'><a href='#n323'>323</a></p>
 | 
			
		||||
<p id='n324' class='pln'><a href='#n324'>324</a></p>
 | 
			
		||||
<p id='n325' class='pln'><a href='#n325'>325</a></p>
 | 
			
		||||
<p id='n326' class='pln'><a href='#n326'>326</a></p>
 | 
			
		||||
<p id='n327' class='pln'><a href='#n327'>327</a></p>
 | 
			
		||||
<p id='n328' class='pln'><a href='#n328'>328</a></p>
 | 
			
		||||
<p id='n329' class='pln'><a href='#n329'>329</a></p>
 | 
			
		||||
<p id='n330' class='pln'><a href='#n330'>330</a></p>
 | 
			
		||||
<p id='n331' class='pln'><a href='#n331'>331</a></p>
 | 
			
		||||
<p id='n332' class='pln'><a href='#n332'>332</a></p>
 | 
			
		||||
<p id='n333' class='pln'><a href='#n333'>333</a></p>
 | 
			
		||||
<p id='n334' class='pln'><a href='#n334'>334</a></p>
 | 
			
		||||
<p id='n335' class='pln'><a href='#n335'>335</a></p>
 | 
			
		||||
<p id='n336' class='pln'><a href='#n336'>336</a></p>
 | 
			
		||||
<p id='n337' class='pln'><a href='#n337'>337</a></p>
 | 
			
		||||
<p id='n338' class='pln'><a href='#n338'>338</a></p>
 | 
			
		||||
<p id='n339' class='pln'><a href='#n339'>339</a></p>
 | 
			
		||||
<p id='n340' class='pln'><a href='#n340'>340</a></p>
 | 
			
		||||
<p id='n341' class='stm run hide_run'><a href='#n341'>341</a></p>
 | 
			
		||||
<p id='n342' class='stm run hide_run'><a href='#n342'>342</a></p>
 | 
			
		||||
<p id='n343' class='stm run hide_run'><a href='#n343'>343</a></p>
 | 
			
		||||
                
 | 
			
		||||
            </td>
 | 
			
		||||
            <td class='text' valign='top'>
 | 
			
		||||
<p id='t1' class='pln'><span class='str'>"""Defines exceptions for gracefully handling various HTTP errors.</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t2' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t3' class='pln'><span class='str'>Copyright 2013 by Rackspace Hosting, Inc.</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t4' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t5' class='pln'><span class='str'>Licensed under the Apache License, Version 2.0 (the "License");</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t6' class='pln'><span class='str'>you may not use this file except in compliance with the License.</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t7' class='pln'><span class='str'>You may obtain a copy of the License at</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t8' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t9' class='pln'><span class='str'>   http://www.apache.org/licenses/LICENSE-2.0</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t10' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t11' class='pln'><span class='str'>Unless required by applicable law or agreed to in writing, software</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t12' class='pln'><span class='str'>distributed under the License is distributed on an "AS IS" BASIS,</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t13' class='pln'><span class='str'>WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t14' class='pln'><span class='str'>See the License for the specific language governing permissions and</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t15' class='pln'><span class='str'>limitations under the License.</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t16' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t17' class='pln'><span class='str'>Class docstrings were copied from RFC 2616 where noted, and are not covered</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t18' class='pln'><span class='str'>by the above copyright.</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t19' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t20' class='pln'><span class='str'>"""</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t21' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t22' class='stm run hide_run'><span class='key'>from</span> <span class='nam'>falcon</span><span class='op'>.</span><span class='nam'>http_error</span> <span class='key'>import</span> <span class='nam'>HTTPError</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t23' class='stm run hide_run'><span class='key'>import</span> <span class='nam'>falcon</span><span class='op'>.</span><span class='nam'>status_codes</span> <span class='key'>as</span> <span class='nam'>status</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t24' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t25' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t26' class='stm run hide_run'><span class='key'>class</span> <span class='nam'>HTTPBadRequest</span><span class='op'>(</span><span class='nam'>HTTPError</span><span class='op'>)</span><span class='op'>:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t27' class='pln'>    <span class='str'>"""400 Bad Request</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t28' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t29' class='pln'><span class='str'>    From RFC 2616:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t30' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t31' class='pln'><span class='str'>    "The request could not be understood by the server due to malformed</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t32' class='pln'><span class='str'>    syntax. The client SHOULD NOT repeat the request without</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t33' class='pln'><span class='str'>    modifications."</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t34' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t35' class='pln'><span class='str'>    """</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t36' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t37' class='stm run hide_run'>    <span class='key'>def</span> <span class='nam'>__init__</span><span class='op'>(</span><span class='nam'>self</span><span class='op'>,</span> <span class='nam'>title</span><span class='op'>,</span> <span class='nam'>description</span><span class='op'>,</span> <span class='op'>**</span><span class='nam'>kwargs</span><span class='op'>)</span><span class='op'>:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t38' class='pln'>        <span class='str'>"""Initialize</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t39' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t40' class='pln'><span class='str'>        Args:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t41' class='pln'><span class='str'>            Same as for HTTPError, except status is set for you.</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t42' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t43' class='pln'><span class='str'>        """</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t44' class='stm run hide_run'>        <span class='nam'>HTTPError</span><span class='op'>.</span><span class='nam'>__init__</span><span class='op'>(</span><span class='nam'>self</span><span class='op'>,</span> <span class='nam'>status</span><span class='op'>.</span><span class='nam'>HTTP_400</span><span class='op'>,</span> <span class='nam'>title</span><span class='op'>,</span> <span class='nam'>description</span><span class='op'>,</span> <span class='op'>**</span><span class='nam'>kwargs</span><span class='op'>)</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t45' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t46' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t47' class='stm run hide_run'><span class='key'>class</span> <span class='nam'>HTTPUnauthorized</span><span class='op'>(</span><span class='nam'>HTTPError</span><span class='op'>)</span><span class='op'>:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t48' class='pln'>    <span class='str'>"""401 Unauthorized</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t49' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t50' class='pln'><span class='str'>    Use when authentication is required, and the provided credentials are</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t51' class='pln'><span class='str'>    not valid, or no credentials were provided in the first place.</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t52' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t53' class='pln'><span class='str'>    Args:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t54' class='pln'><span class='str'>        title: Human-friendly error title</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t55' class='pln'><span class='str'>        description: Human-friendly description of the error, along with a</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t56' class='pln'><span class='str'>            helpful suggestion or two.</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t57' class='pln'><span class='str'>        scheme: Authentication scheme to use as the value of the</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t58' class='pln'><span class='str'>            WWW-Authenticate header in the response (default None).</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t59' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t60' class='pln'><span class='str'>    The remaining (optional) args are the same as for HTTPError.</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t61' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t62' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t63' class='pln'><span class='str'>    """</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t64' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t65' class='stm run hide_run'>    <span class='key'>def</span> <span class='nam'>__init__</span><span class='op'>(</span><span class='nam'>self</span><span class='op'>,</span> <span class='nam'>title</span><span class='op'>,</span> <span class='nam'>description</span><span class='op'>,</span> <span class='nam'>scheme</span><span class='op'>=</span><span class='nam'>None</span><span class='op'>,</span> <span class='op'>**</span><span class='nam'>kwargs</span><span class='op'>)</span><span class='op'>:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t66' class='pln'>        <span class='str'>"""Initialize</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t67' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t68' class='pln'><span class='str'>        Args:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t69' class='pln'><span class='str'>            title: Human-friendly error title</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t70' class='pln'><span class='str'>            description: Human-friendly description of the error, along with a</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t71' class='pln'><span class='str'>                helpful suggestion or two.</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t72' class='pln'><span class='str'>            scheme: Authentication scheme to use as the value of the</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t73' class='pln'><span class='str'>                WWW-Authenticate header in the response (default None).</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t74' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t75' class='pln'><span class='str'>        The remaining (optional) args are the same as for HTTPError.</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t76' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t77' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t78' class='pln'><span class='str'>        """</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t79' class='stm run hide_run'>        <span class='nam'>headers</span> <span class='op'>=</span> <span class='nam'>kwargs</span><span class='op'>.</span><span class='nam'>setdefault</span><span class='op'>(</span><span class='str'>'headers'</span><span class='op'>,</span> <span class='op'>{</span><span class='op'>}</span><span class='op'>)</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t80' class='stm run hide_run'>        <span class='key'>if</span> <span class='nam'>scheme</span> <span class='key'>is</span> <span class='key'>not</span> <span class='nam'>None</span><span class='op'>:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t81' class='stm run hide_run'>            <span class='nam'>headers</span><span class='op'>[</span><span class='str'>'WWW-Authenticate'</span><span class='op'>]</span> <span class='op'>=</span> <span class='nam'>scheme</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t82' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t83' class='stm run hide_run'>        <span class='nam'>HTTPError</span><span class='op'>.</span><span class='nam'>__init__</span><span class='op'>(</span><span class='nam'>self</span><span class='op'>,</span> <span class='nam'>status</span><span class='op'>.</span><span class='nam'>HTTP_401</span><span class='op'>,</span> <span class='nam'>title</span><span class='op'>,</span> <span class='nam'>description</span><span class='op'>,</span> <span class='op'>**</span><span class='nam'>kwargs</span><span class='op'>)</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t84' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t85' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t86' class='stm run hide_run'><span class='key'>class</span> <span class='nam'>HTTPForbidden</span><span class='op'>(</span><span class='nam'>HTTPError</span><span class='op'>)</span><span class='op'>:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t87' class='pln'>    <span class='str'>"""403 Forbidden</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t88' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t89' class='pln'><span class='str'>    Use when the client's credentials are good, but they do not have permission</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t90' class='pln'><span class='str'>    to access the requested resource.</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t91' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t92' class='pln'><span class='str'>    Note from RFC 2616:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t93' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t94' class='pln'><span class='str'>    "If the request method was not HEAD and the server wishes to make</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t95' class='pln'><span class='str'>    public why the request has not been fulfilled, it SHOULD describe the</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t96' class='pln'><span class='str'>    reason for the refusal in the entity.  If the server does not wish to</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t97' class='pln'><span class='str'>    make this information available to the client, the status code 404</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t98' class='pln'><span class='str'>    (Not Found) can be used instead."</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t99' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t100' class='pln'><span class='str'>    """</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t101' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t102' class='stm run hide_run'>    <span class='key'>def</span> <span class='nam'>__init__</span><span class='op'>(</span><span class='nam'>self</span><span class='op'>,</span> <span class='nam'>title</span><span class='op'>,</span> <span class='nam'>description</span><span class='op'>,</span> <span class='op'>**</span><span class='nam'>kwargs</span><span class='op'>)</span><span class='op'>:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t103' class='pln'>        <span class='str'>"""Initialize</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t104' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t105' class='pln'><span class='str'>        Args:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t106' class='pln'><span class='str'>            Same as for HTTPError, except status is set for you.</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t107' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t108' class='pln'><span class='str'>        """</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t109' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t110' class='stm run hide_run'>        <span class='nam'>HTTPError</span><span class='op'>.</span><span class='nam'>__init__</span><span class='op'>(</span><span class='nam'>self</span><span class='op'>,</span> <span class='nam'>status</span><span class='op'>.</span><span class='nam'>HTTP_403</span><span class='op'>,</span> <span class='nam'>title</span><span class='op'>,</span> <span class='nam'>description</span><span class='op'>,</span> <span class='op'>**</span><span class='nam'>kwargs</span><span class='op'>)</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t111' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t112' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t113' class='stm run hide_run'><span class='key'>class</span> <span class='nam'>HTTPNotFound</span><span class='op'>(</span><span class='nam'>HTTPError</span><span class='op'>)</span><span class='op'>:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t114' class='pln'>    <span class='str'>"""404 Not Found</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t115' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t116' class='pln'><span class='str'>    Use this when the URL path does not map to an existing resource, or you</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t117' class='pln'><span class='str'>    do not wish to disclose exactly why a request was refused.</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t118' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t119' class='pln'><span class='str'>    """</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t120' class='stm run hide_run'>    <span class='key'>def</span> <span class='nam'>__init__</span><span class='op'>(</span><span class='nam'>self</span><span class='op'>)</span><span class='op'>:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t121' class='pln'>        <span class='str'>"""Initialize"""</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t122' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t123' class='stm run hide_run'>        <span class='nam'>HTTPError</span><span class='op'>.</span><span class='nam'>__init__</span><span class='op'>(</span><span class='nam'>self</span><span class='op'>,</span> <span class='nam'>status</span><span class='op'>.</span><span class='nam'>HTTP_404</span><span class='op'>,</span> <span class='nam'>None</span><span class='op'>,</span> <span class='nam'>None</span><span class='op'>)</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t124' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t125' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t126' class='stm run hide_run'><span class='key'>class</span> <span class='nam'>HTTPMethodNotAllowed</span><span class='op'>(</span><span class='nam'>HTTPError</span><span class='op'>)</span><span class='op'>:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t127' class='pln'>    <span class='str'>"""405 Method Not Allowed</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t128' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t129' class='pln'><span class='str'>    From RFC 2616:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t130' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t131' class='pln'><span class='str'>    "The method specified in the Request-Line is not allowed for the</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t132' class='pln'><span class='str'>    resource identified by the Request-URI. The response MUST include an</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t133' class='pln'><span class='str'>    Allow header containing a list of valid methods for the requested</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t134' class='pln'><span class='str'>    resource."</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t135' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t136' class='pln'><span class='str'>    """</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t137' class='stm run hide_run'>    <span class='key'>def</span> <span class='nam'>__init__</span><span class='op'>(</span><span class='nam'>self</span><span class='op'>,</span> <span class='nam'>allowed_methods</span><span class='op'>,</span> <span class='op'>**</span><span class='nam'>kwargs</span><span class='op'>)</span><span class='op'>:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t138' class='pln'>        <span class='str'>"""Initilize with allowed methods</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t139' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t140' class='pln'><span class='str'>        Args:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t141' class='pln'><span class='str'>            allowed_methods: A list of allowed HTTP methods for this resource,</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t142' class='pln'><span class='str'>                such as ['GET', 'POST', 'HEAD'].</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t143' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t144' class='pln'><span class='str'>        The remaining (optional) args are the same as for HTTPError.</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t145' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t146' class='pln'><span class='str'>        """</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t147' class='stm run hide_run'>        <span class='nam'>headers</span> <span class='op'>=</span> <span class='nam'>kwargs</span><span class='op'>.</span><span class='nam'>setdefault</span><span class='op'>(</span><span class='str'>'headers'</span><span class='op'>,</span> <span class='op'>{</span><span class='op'>}</span><span class='op'>)</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t148' class='stm run hide_run'>        <span class='nam'>headers</span><span class='op'>[</span><span class='str'>'Allow'</span><span class='op'>]</span> <span class='op'>=</span> <span class='str'>', '</span><span class='op'>.</span><span class='nam'>join</span><span class='op'>(</span><span class='nam'>allowed_methods</span><span class='op'>)</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t149' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t150' class='stm run hide_run'>        <span class='nam'>HTTPError</span><span class='op'>.</span><span class='nam'>__init__</span><span class='op'>(</span><span class='nam'>self</span><span class='op'>,</span> <span class='nam'>status</span><span class='op'>.</span><span class='nam'>HTTP_405</span><span class='op'>,</span> <span class='nam'>None</span><span class='op'>,</span> <span class='op'>**</span><span class='nam'>kwargs</span><span class='op'>)</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t151' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t152' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t153' class='stm run hide_run'><span class='key'>class</span> <span class='nam'>HTTPConflict</span><span class='op'>(</span><span class='nam'>HTTPError</span><span class='op'>)</span><span class='op'>:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t154' class='pln'>    <span class='str'>"""409 Conflict</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t155' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t156' class='pln'><span class='str'>    From RFC 2616:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t157' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t158' class='pln'><span class='str'>    "The request could not be completed due to a conflict with the current</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t159' class='pln'><span class='str'>    state of the resource. This code is only allowed in situations where</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t160' class='pln'><span class='str'>    it is expected that the user might be able to resolve the conflict</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t161' class='pln'><span class='str'>    and resubmit the request. The response body SHOULD include enough</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t162' class='pln'><span class='str'>    information for the user to recognize the source of the conflict.</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t163' class='pln'><span class='str'>    Ideally, the response entity would include enough information for the</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t164' class='pln'><span class='str'>    user or user agent to fix the problem; however, that might not be</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t165' class='pln'><span class='str'>    possible and is not required."</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t166' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t167' class='pln'><span class='str'>    "Conflicts are most likely to occur in response to a PUT request. For</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t168' class='pln'><span class='str'>    example, if versioning were being used and the entity being PUT</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t169' class='pln'><span class='str'>    included changes to a resource which conflict with those made by an</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t170' class='pln'><span class='str'>    earlier (third-party) request, the server might use the 409 response</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t171' class='pln'><span class='str'>    to indicate that it can't complete the request. In this case, the</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t172' class='pln'><span class='str'>    response entity would likely contain a list of the differences</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t173' class='pln'><span class='str'>    between the two versions in a format defined by the response</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t174' class='pln'><span class='str'>    Content-Type."</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t175' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t176' class='pln'><span class='str'>    """</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t177' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t178' class='stm run hide_run'>    <span class='key'>def</span> <span class='nam'>__init__</span><span class='op'>(</span><span class='nam'>self</span><span class='op'>,</span> <span class='nam'>title</span><span class='op'>,</span> <span class='nam'>description</span><span class='op'>,</span> <span class='op'>**</span><span class='nam'>kwargs</span><span class='op'>)</span><span class='op'>:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t179' class='pln'>        <span class='str'>"""Initialize</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t180' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t181' class='pln'><span class='str'>        Args:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t182' class='pln'><span class='str'>            Same as for HTTPError, except status is set for you.</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t183' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t184' class='pln'><span class='str'>        """</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t185' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t186' class='stm run hide_run'>        <span class='nam'>HTTPError</span><span class='op'>.</span><span class='nam'>__init__</span><span class='op'>(</span><span class='nam'>self</span><span class='op'>,</span> <span class='nam'>status</span><span class='op'>.</span><span class='nam'>HTTP_409</span><span class='op'>,</span> <span class='nam'>title</span><span class='op'>,</span> <span class='nam'>description</span><span class='op'>,</span> <span class='op'>**</span><span class='nam'>kwargs</span><span class='op'>)</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t187' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t188' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t189' class='stm run hide_run'><span class='key'>class</span> <span class='nam'>HTTPPreconditionFailed</span><span class='op'>(</span><span class='nam'>HTTPError</span><span class='op'>)</span><span class='op'>:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t190' class='pln'>    <span class='str'>"""412 Precondition Failed</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t191' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t192' class='pln'><span class='str'>    From RFC 2616:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t193' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t194' class='pln'><span class='str'>    "The precondition given in one or more of the request-header fields</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t195' class='pln'><span class='str'>    evaluated to false when it was tested on the server. This response</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t196' class='pln'><span class='str'>    code allows the client to place preconditions on the current resource</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t197' class='pln'><span class='str'>    metainformation (header field data) and thus prevent the requested</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t198' class='pln'><span class='str'>    method from being applied to a resource other than the one intended."</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t199' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t200' class='pln'><span class='str'>    """</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t201' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t202' class='stm run hide_run'>    <span class='key'>def</span> <span class='nam'>__init__</span><span class='op'>(</span><span class='nam'>self</span><span class='op'>,</span> <span class='nam'>title</span><span class='op'>,</span> <span class='nam'>description</span><span class='op'>,</span> <span class='op'>**</span><span class='nam'>kwargs</span><span class='op'>)</span><span class='op'>:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t203' class='pln'>        <span class='str'>"""Initialize</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t204' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t205' class='pln'><span class='str'>        Args:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t206' class='pln'><span class='str'>            Same as for HTTPError, except status is set for you.</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t207' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t208' class='pln'><span class='str'>        """</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t209' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t210' class='stm run hide_run'>        <span class='nam'>HTTPError</span><span class='op'>.</span><span class='nam'>__init__</span><span class='op'>(</span><span class='nam'>self</span><span class='op'>,</span> <span class='nam'>status</span><span class='op'>.</span><span class='nam'>HTTP_412</span><span class='op'>,</span> <span class='nam'>title</span><span class='op'>,</span> <span class='nam'>description</span><span class='op'>,</span> <span class='op'>**</span><span class='nam'>kwargs</span><span class='op'>)</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t211' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t212' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t213' class='stm run hide_run'><span class='key'>class</span> <span class='nam'>HTTPUnsupportedMediaType</span><span class='op'>(</span><span class='nam'>HTTPError</span><span class='op'>)</span><span class='op'>:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t214' class='pln'>    <span class='str'>"""415 Unsupported Media Type</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t215' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t216' class='pln'><span class='str'>    Sets title to "Unsupported media type".</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t217' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t218' class='pln'><span class='str'>    """</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t219' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t220' class='stm run hide_run'>    <span class='key'>def</span> <span class='nam'>__init__</span><span class='op'>(</span><span class='nam'>self</span><span class='op'>,</span> <span class='nam'>description</span><span class='op'>,</span> <span class='op'>**</span><span class='nam'>kwargs</span><span class='op'>)</span><span class='op'>:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t221' class='pln'>        <span class='str'>"""Initialize</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t222' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t223' class='pln'><span class='str'>        Args:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t224' class='pln'><span class='str'>            description: Human-friendly description of the error, along with a</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t225' class='pln'><span class='str'>                helpful suggestion or two.</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t226' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t227' class='pln'><span class='str'>        The remaining (optional) args are the same as for HTTPError.</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t228' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t229' class='pln'><span class='str'>        """</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t230' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t231' class='stm run hide_run'>        <span class='nam'>HTTPError</span><span class='op'>.</span><span class='nam'>__init__</span><span class='op'>(</span><span class='nam'>self</span><span class='op'>,</span> <span class='nam'>status</span><span class='op'>.</span><span class='nam'>HTTP_415</span><span class='op'>,</span> <span class='str'>'Unsupported media type'</span><span class='op'>,</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t232' class='pln'>                           <span class='nam'>description</span><span class='op'>,</span> <span class='op'>**</span><span class='nam'>kwargs</span><span class='op'>)</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t233' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t234' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t235' class='stm run hide_run'><span class='key'>class</span> <span class='nam'>HTTPRangeNotSatisfiable</span><span class='op'>(</span><span class='nam'>HTTPError</span><span class='op'>)</span><span class='op'>:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t236' class='pln'>    <span class='str'>"""416 Range Not Satisfiable</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t237' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t238' class='pln'><span class='str'>    See also: http://goo.gl/yvh9H</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t239' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t240' class='pln'><span class='str'>    Args:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t241' class='pln'><span class='str'>        resource_length: The maximum value for the last-byte-pos of a range</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t242' class='pln'><span class='str'>            request. Used to set the Content-Range header.</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t243' class='pln'><span class='str'>        media_type: Media type to use as the value of the Content-Type</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t244' class='pln'><span class='str'>            header, or None to use the default passed to the API initializer.</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t245' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t246' class='pln'><span class='str'>    """</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t247' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t248' class='stm run hide_run'>    <span class='key'>def</span> <span class='nam'>__init__</span><span class='op'>(</span><span class='nam'>self</span><span class='op'>,</span> <span class='nam'>resource_length</span><span class='op'>,</span> <span class='nam'>media_type</span><span class='op'>=</span><span class='nam'>None</span><span class='op'>)</span><span class='op'>:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t249' class='pln'>        <span class='str'>"""Initialize</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t250' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t251' class='pln'><span class='str'>        Args:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t252' class='pln'><span class='str'>            resource_length: The maximum value for the last-byte-pos of a</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t253' class='pln'><span class='str'>                range request. Used to set the Content-Range header.</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t254' class='pln'><span class='str'>            media_type: Media type to use as the value of the Content-Type</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t255' class='pln'><span class='str'>                header, or None to use the default passed to the API</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t256' class='pln'><span class='str'>                initializer.</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t257' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t258' class='pln'><span class='str'>        """</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t259' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t260' class='stm run hide_run'>        <span class='nam'>headers</span> <span class='op'>=</span> <span class='op'>{</span><span class='str'>'Content-Range'</span><span class='op'>:</span> <span class='str'>'bytes */'</span> <span class='op'>+</span> <span class='nam'>str</span><span class='op'>(</span><span class='nam'>resource_length</span><span class='op'>)</span><span class='op'>}</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t261' class='stm run hide_run'>        <span class='key'>if</span> <span class='nam'>media_type</span> <span class='key'>is</span> <span class='key'>not</span> <span class='nam'>None</span><span class='op'>:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t262' class='stm run hide_run'>            <span class='nam'>headers</span><span class='op'>[</span><span class='str'>'Content-Type'</span><span class='op'>]</span> <span class='op'>=</span> <span class='nam'>media_type</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t263' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t264' class='stm run hide_run'>        <span class='nam'>HTTPError</span><span class='op'>.</span><span class='nam'>__init__</span><span class='op'>(</span><span class='nam'>self</span><span class='op'>,</span> <span class='nam'>status</span><span class='op'>.</span><span class='nam'>HTTP_416</span><span class='op'>,</span> <span class='nam'>None</span><span class='op'>,</span> <span class='nam'>None</span><span class='op'>,</span> <span class='nam'>headers</span><span class='op'>=</span><span class='nam'>headers</span><span class='op'>)</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t265' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t266' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t267' class='stm run hide_run'><span class='key'>class</span> <span class='nam'>HTTPUpgradeRequired</span><span class='op'>(</span><span class='nam'>HTTPError</span><span class='op'>)</span><span class='op'>:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t268' class='pln'>    <span class='str'>"""426 Upgrade Required"""</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t269' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t270' class='stm run hide_run'>    <span class='key'>def</span> <span class='nam'>__init__</span><span class='op'>(</span><span class='nam'>self</span><span class='op'>,</span> <span class='nam'>title</span><span class='op'>,</span> <span class='nam'>description</span><span class='op'>,</span> <span class='op'>**</span><span class='nam'>kwargs</span><span class='op'>)</span><span class='op'>:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t271' class='pln'>        <span class='str'>"""Initialize</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t272' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t273' class='pln'><span class='str'>        Args:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t274' class='pln'><span class='str'>            Same as for HTTPError, except status is set for you.</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t275' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t276' class='pln'><span class='str'>        """</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t277' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t278' class='stm run hide_run'>        <span class='nam'>HTTPError</span><span class='op'>.</span><span class='nam'>__init__</span><span class='op'>(</span><span class='nam'>self</span><span class='op'>,</span> <span class='nam'>status</span><span class='op'>.</span><span class='nam'>HTTP_426</span><span class='op'>,</span> <span class='nam'>title</span><span class='op'>,</span> <span class='nam'>description</span><span class='op'>,</span> <span class='op'>**</span><span class='nam'>kwargs</span><span class='op'>)</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t279' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t280' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t281' class='stm run hide_run'><span class='key'>class</span> <span class='nam'>HTTPInternalServerError</span><span class='op'>(</span><span class='nam'>HTTPError</span><span class='op'>)</span><span class='op'>:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t282' class='pln'>    <span class='str'>"""500 Internal Server Error"""</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t283' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t284' class='stm run hide_run'>    <span class='key'>def</span> <span class='nam'>__init__</span><span class='op'>(</span><span class='nam'>self</span><span class='op'>,</span> <span class='nam'>title</span><span class='op'>,</span> <span class='nam'>description</span><span class='op'>,</span> <span class='op'>**</span><span class='nam'>kwargs</span><span class='op'>)</span><span class='op'>:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t285' class='pln'>        <span class='str'>"""Initialize</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t286' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t287' class='pln'><span class='str'>        Args:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t288' class='pln'><span class='str'>            Same as for HTTPError, except status is set for you.</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t289' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t290' class='pln'><span class='str'>        """</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t291' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t292' class='stm run hide_run'>        <span class='nam'>HTTPError</span><span class='op'>.</span><span class='nam'>__init__</span><span class='op'>(</span><span class='nam'>self</span><span class='op'>,</span> <span class='nam'>status</span><span class='op'>.</span><span class='nam'>HTTP_500</span><span class='op'>,</span> <span class='nam'>title</span><span class='op'>,</span> <span class='nam'>description</span><span class='op'>,</span> <span class='op'>**</span><span class='nam'>kwargs</span><span class='op'>)</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t293' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t294' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t295' class='stm run hide_run'><span class='key'>class</span> <span class='nam'>HTTPBadGateway</span><span class='op'>(</span><span class='nam'>HTTPError</span><span class='op'>)</span><span class='op'>:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t296' class='pln'>    <span class='str'>"""502 Bad Gateway"""</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t297' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t298' class='stm run hide_run'>    <span class='key'>def</span> <span class='nam'>__init__</span><span class='op'>(</span><span class='nam'>self</span><span class='op'>,</span> <span class='nam'>title</span><span class='op'>,</span> <span class='nam'>description</span><span class='op'>,</span> <span class='op'>**</span><span class='nam'>kwargs</span><span class='op'>)</span><span class='op'>:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t299' class='pln'>        <span class='str'>"""Initialize</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t300' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t301' class='pln'><span class='str'>        Args:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t302' class='pln'><span class='str'>            Same as for HTTPError, except status is set for you.</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t303' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t304' class='pln'><span class='str'>        """</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t305' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t306' class='stm run hide_run'>        <span class='nam'>HTTPError</span><span class='op'>.</span><span class='nam'>__init__</span><span class='op'>(</span><span class='nam'>self</span><span class='op'>,</span> <span class='nam'>status</span><span class='op'>.</span><span class='nam'>HTTP_502</span><span class='op'>,</span> <span class='nam'>title</span><span class='op'>,</span> <span class='nam'>description</span><span class='op'>,</span> <span class='op'>**</span><span class='nam'>kwargs</span><span class='op'>)</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t307' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t308' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t309' class='stm run hide_run'><span class='key'>class</span> <span class='nam'>HTTPServiceUnavailable</span><span class='op'>(</span><span class='nam'>HTTPError</span><span class='op'>)</span><span class='op'>:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t310' class='pln'>    <span class='str'>"""503 Service Unavailable"""</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t311' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t312' class='stm run hide_run'>    <span class='key'>def</span> <span class='nam'>__init__</span><span class='op'>(</span><span class='nam'>self</span><span class='op'>,</span> <span class='nam'>title</span><span class='op'>,</span> <span class='nam'>description</span><span class='op'>,</span> <span class='nam'>retry_after</span><span class='op'>,</span> <span class='op'>**</span><span class='nam'>kwargs</span><span class='op'>)</span><span class='op'>:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t313' class='pln'>        <span class='str'>"""Initialize</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t314' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t315' class='pln'><span class='str'>        Args:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t316' class='pln'><span class='str'>            title: Human-friendly error title. Set to None if you wish Falcon</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t317' class='pln'><span class='str'>                to return an empty response body (all remaining args will</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t318' class='pln'><span class='str'>                be ignored except for headers.) Do this only when you don't</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t319' class='pln'><span class='str'>                wish to disclose sensitive information about why a request was</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t320' class='pln'><span class='str'>                refused, or if the status and headers are self-descriptive.</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t321' class='pln'><span class='str'>            description: Human-friendly description of the error, along with a</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t322' class='pln'><span class='str'>                helpful suggestion or two (default None).</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t323' class='pln'><span class='str'>            retry_after: Value for the Retry-After header. If a date object,</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t324' class='pln'><span class='str'>                will serialize as an HTTP date. Otherwise, a non-negative int</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t325' class='pln'><span class='str'>                is expected, representing the number of seconds to wait. See</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t326' class='pln'><span class='str'>                also: http://goo.gl/DIrWr</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t327' class='pln'><span class='str'>            headers: A dictionary of extra headers to return in the</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t328' class='pln'><span class='str'>                response to the client (default None).</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t329' class='pln'><span class='str'>            href: A URL someone can visit to find out more information</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t330' class='pln'><span class='str'>                (default None).</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t331' class='pln'><span class='str'>            href_rel: If href is given, use this value for the rel</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t332' class='pln'><span class='str'>                attribute (default 'doc').</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t333' class='pln'><span class='str'>            href_text: If href is given, use this as the friendly</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t334' class='pln'><span class='str'>                title/description for the link (defaults to "API documentation</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t335' class='pln'><span class='str'>                for this error").</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t336' class='pln'><span class='str'>            code: An internal code that customers can reference in their</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t337' class='pln'><span class='str'>                support request or to help them when searching for knowledge</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t338' class='pln'><span class='str'>                base articles related to this error.</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t339' class='pln'><span class='str'>        """</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t340' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t341' class='stm run hide_run'>        <span class='nam'>headers</span> <span class='op'>=</span> <span class='nam'>kwargs</span><span class='op'>.</span><span class='nam'>setdefault</span><span class='op'>(</span><span class='str'>'headers'</span><span class='op'>,</span> <span class='op'>{</span><span class='op'>}</span><span class='op'>)</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t342' class='stm run hide_run'>        <span class='nam'>headers</span><span class='op'>[</span><span class='str'>'Retry-After'</span><span class='op'>]</span> <span class='op'>=</span> <span class='nam'>str</span><span class='op'>(</span><span class='nam'>retry_after</span><span class='op'>)</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t343' class='stm run hide_run'>        <span class='nam'>HTTPError</span><span class='op'>.</span><span class='nam'>__init__</span><span class='op'>(</span><span class='nam'>self</span><span class='op'>,</span> <span class='nam'>status</span><span class='op'>.</span><span class='nam'>HTTP_503</span><span class='op'>,</span> <span class='nam'>title</span><span class='op'>,</span> <span class='nam'>description</span><span class='op'>,</span> <span class='op'>**</span><span class='nam'>kwargs</span><span class='op'>)</span><span class='strut'> </span></p>
 | 
			
		||||
                
 | 
			
		||||
            </td>
 | 
			
		||||
        </tr>
 | 
			
		||||
    </table>
 | 
			
		||||
</div>
 | 
			
		||||
 | 
			
		||||
<div id='footer'>
 | 
			
		||||
    <div class='content'>
 | 
			
		||||
        <p>
 | 
			
		||||
            <a class='nav' href='index.html'>« index</a>     <a class='nav' href='http://nedbatchelder.com/code/coverage'>coverage.py v3.6</a>
 | 
			
		||||
        </p>
 | 
			
		||||
    </div>
 | 
			
		||||
</div>
 | 
			
		||||
 | 
			
		||||
</body>
 | 
			
		||||
</html>
 | 
			
		||||
							
								
								
									
										332
									
								
								tests/cover/falcon_hooks.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										332
									
								
								tests/cover/falcon_hooks.html
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,332 @@
 | 
			
		||||
<!doctype html PUBLIC "-//W3C//DTD html 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
 | 
			
		||||
<html>
 | 
			
		||||
<head>
 | 
			
		||||
    <meta http-equiv='Content-Type' content='text/html; charset=utf-8'>
 | 
			
		||||
    
 | 
			
		||||
    
 | 
			
		||||
    <meta http-equiv='X-UA-Compatible' content='IE=emulateIE7' />
 | 
			
		||||
    <title>Coverage for falcon.hooks: 100%</title>
 | 
			
		||||
    <link rel='stylesheet' href='style.css' type='text/css'>
 | 
			
		||||
    
 | 
			
		||||
    <script type='text/javascript' src='jquery-1.4.3.min.js'></script>
 | 
			
		||||
    <script type='text/javascript' src='jquery.hotkeys.js'></script>
 | 
			
		||||
    <script type='text/javascript' src='jquery.isonscreen.js'></script>
 | 
			
		||||
    <script type='text/javascript' src='coverage_html.js'></script>
 | 
			
		||||
    <script type='text/javascript' charset='utf-8'>
 | 
			
		||||
        jQuery(document).ready(coverage.pyfile_ready);
 | 
			
		||||
    </script>
 | 
			
		||||
</head>
 | 
			
		||||
<body id='pyfile'>
 | 
			
		||||
 | 
			
		||||
<div id='header'>
 | 
			
		||||
    <div class='content'>
 | 
			
		||||
        <h1>Coverage for <b>falcon.hooks</b> :
 | 
			
		||||
            <span class='pc_cov'>100%</span>
 | 
			
		||||
        </h1>
 | 
			
		||||
        <img id='keyboard_icon' src='keybd_closed.png'>
 | 
			
		||||
        <h2 class='stats'>
 | 
			
		||||
            47 statements  
 | 
			
		||||
            <span class='run hide_run shortkey_r button_toggle_run'>47 run</span>
 | 
			
		||||
            <span class='mis shortkey_m button_toggle_mis'>0 missing</span>
 | 
			
		||||
            <span class='exc shortkey_x button_toggle_exc'>0 excluded</span>
 | 
			
		||||
            
 | 
			
		||||
        </h2>
 | 
			
		||||
    </div>
 | 
			
		||||
</div>
 | 
			
		||||
 | 
			
		||||
<div class='help_panel'>
 | 
			
		||||
    <img id='panel_icon' src='keybd_open.png'>
 | 
			
		||||
<p class='legend'>Hot-keys on this page</p>
 | 
			
		||||
    <div>
 | 
			
		||||
<p class='keyhelp'>
 | 
			
		||||
        <span class='key'>r</span>
 | 
			
		||||
        <span class='key'>m</span>
 | 
			
		||||
        <span class='key'>x</span>
 | 
			
		||||
        <span class='key'>p</span>   toggle line displays
 | 
			
		||||
    </p>
 | 
			
		||||
<p class='keyhelp'>
 | 
			
		||||
        <span class='key'>j</span>
 | 
			
		||||
        <span class='key'>k</span>   next/prev highlighted chunk
 | 
			
		||||
    </p>
 | 
			
		||||
<p class='keyhelp'>
 | 
			
		||||
        <span class='key'>0</span>   (zero) top of page
 | 
			
		||||
    </p>
 | 
			
		||||
<p class='keyhelp'>
 | 
			
		||||
        <span class='key'>1</span>   (one) first highlighted chunk
 | 
			
		||||
    </p>
 | 
			
		||||
    </div>
 | 
			
		||||
</div>
 | 
			
		||||
 | 
			
		||||
<div id='source'>
 | 
			
		||||
    <table cellspacing='0' cellpadding='0'>
 | 
			
		||||
        <tr>
 | 
			
		||||
            <td class='linenos' valign='top'>
 | 
			
		||||
<p id='n1' class='pln'><a href='#n1'>1</a></p>
 | 
			
		||||
<p id='n2' class='pln'><a href='#n2'>2</a></p>
 | 
			
		||||
<p id='n3' class='pln'><a href='#n3'>3</a></p>
 | 
			
		||||
<p id='n4' class='pln'><a href='#n4'>4</a></p>
 | 
			
		||||
<p id='n5' class='pln'><a href='#n5'>5</a></p>
 | 
			
		||||
<p id='n6' class='pln'><a href='#n6'>6</a></p>
 | 
			
		||||
<p id='n7' class='pln'><a href='#n7'>7</a></p>
 | 
			
		||||
<p id='n8' class='pln'><a href='#n8'>8</a></p>
 | 
			
		||||
<p id='n9' class='pln'><a href='#n9'>9</a></p>
 | 
			
		||||
<p id='n10' class='pln'><a href='#n10'>10</a></p>
 | 
			
		||||
<p id='n11' class='pln'><a href='#n11'>11</a></p>
 | 
			
		||||
<p id='n12' class='pln'><a href='#n12'>12</a></p>
 | 
			
		||||
<p id='n13' class='pln'><a href='#n13'>13</a></p>
 | 
			
		||||
<p id='n14' class='pln'><a href='#n14'>14</a></p>
 | 
			
		||||
<p id='n15' class='pln'><a href='#n15'>15</a></p>
 | 
			
		||||
<p id='n16' class='pln'><a href='#n16'>16</a></p>
 | 
			
		||||
<p id='n17' class='pln'><a href='#n17'>17</a></p>
 | 
			
		||||
<p id='n18' class='pln'><a href='#n18'>18</a></p>
 | 
			
		||||
<p id='n19' class='stm run hide_run'><a href='#n19'>19</a></p>
 | 
			
		||||
<p id='n20' class='stm run hide_run'><a href='#n20'>20</a></p>
 | 
			
		||||
<p id='n21' class='pln'><a href='#n21'>21</a></p>
 | 
			
		||||
<p id='n22' class='stm run hide_run'><a href='#n22'>22</a></p>
 | 
			
		||||
<p id='n23' class='pln'><a href='#n23'>23</a></p>
 | 
			
		||||
<p id='n24' class='pln'><a href='#n24'>24</a></p>
 | 
			
		||||
<p id='n25' class='stm run hide_run'><a href='#n25'>25</a></p>
 | 
			
		||||
<p id='n26' class='pln'><a href='#n26'>26</a></p>
 | 
			
		||||
<p id='n27' class='pln'><a href='#n27'>27</a></p>
 | 
			
		||||
<p id='n28' class='pln'><a href='#n28'>28</a></p>
 | 
			
		||||
<p id='n29' class='pln'><a href='#n29'>29</a></p>
 | 
			
		||||
<p id='n30' class='pln'><a href='#n30'>30</a></p>
 | 
			
		||||
<p id='n31' class='pln'><a href='#n31'>31</a></p>
 | 
			
		||||
<p id='n32' class='pln'><a href='#n32'>32</a></p>
 | 
			
		||||
<p id='n33' class='pln'><a href='#n33'>33</a></p>
 | 
			
		||||
<p id='n34' class='pln'><a href='#n34'>34</a></p>
 | 
			
		||||
<p id='n35' class='pln'><a href='#n35'>35</a></p>
 | 
			
		||||
<p id='n36' class='pln'><a href='#n36'>36</a></p>
 | 
			
		||||
<p id='n37' class='pln'><a href='#n37'>37</a></p>
 | 
			
		||||
<p id='n38' class='pln'><a href='#n38'>38</a></p>
 | 
			
		||||
<p id='n39' class='pln'><a href='#n39'>39</a></p>
 | 
			
		||||
<p id='n40' class='pln'><a href='#n40'>40</a></p>
 | 
			
		||||
<p id='n41' class='pln'><a href='#n41'>41</a></p>
 | 
			
		||||
<p id='n42' class='pln'><a href='#n42'>42</a></p>
 | 
			
		||||
<p id='n43' class='pln'><a href='#n43'>43</a></p>
 | 
			
		||||
<p id='n44' class='pln'><a href='#n44'>44</a></p>
 | 
			
		||||
<p id='n45' class='stm run hide_run'><a href='#n45'>45</a></p>
 | 
			
		||||
<p id='n46' class='stm run hide_run'><a href='#n46'>46</a></p>
 | 
			
		||||
<p id='n47' class='stm run hide_run'><a href='#n47'>47</a></p>
 | 
			
		||||
<p id='n48' class='pln'><a href='#n48'>48</a></p>
 | 
			
		||||
<p id='n49' class='stm run hide_run'><a href='#n49'>49</a></p>
 | 
			
		||||
<p id='n50' class='stm run hide_run'><a href='#n50'>50</a></p>
 | 
			
		||||
<p id='n51' class='pln'><a href='#n51'>51</a></p>
 | 
			
		||||
<p id='n52' class='stm run hide_run'><a href='#n52'>52</a></p>
 | 
			
		||||
<p id='n53' class='stm run hide_run'><a href='#n53'>53</a></p>
 | 
			
		||||
<p id='n54' class='stm run hide_run'><a href='#n54'>54</a></p>
 | 
			
		||||
<p id='n55' class='pln'><a href='#n55'>55</a></p>
 | 
			
		||||
<p id='n56' class='stm run hide_run'><a href='#n56'>56</a></p>
 | 
			
		||||
<p id='n57' class='pln'><a href='#n57'>57</a></p>
 | 
			
		||||
<p id='n58' class='pln'><a href='#n58'>58</a></p>
 | 
			
		||||
<p id='n59' class='stm run hide_run'><a href='#n59'>59</a></p>
 | 
			
		||||
<p id='n60' class='stm run hide_run'><a href='#n60'>60</a></p>
 | 
			
		||||
<p id='n61' class='pln'><a href='#n61'>61</a></p>
 | 
			
		||||
<p id='n62' class='stm run hide_run'><a href='#n62'>62</a></p>
 | 
			
		||||
<p id='n63' class='stm run hide_run'><a href='#n63'>63</a></p>
 | 
			
		||||
<p id='n64' class='pln'><a href='#n64'>64</a></p>
 | 
			
		||||
<p id='n65' class='stm run hide_run'><a href='#n65'>65</a></p>
 | 
			
		||||
<p id='n66' class='pln'><a href='#n66'>66</a></p>
 | 
			
		||||
<p id='n67' class='stm run hide_run'><a href='#n67'>67</a></p>
 | 
			
		||||
<p id='n68' class='pln'><a href='#n68'>68</a></p>
 | 
			
		||||
<p id='n69' class='pln'><a href='#n69'>69</a></p>
 | 
			
		||||
<p id='n70' class='stm run hide_run'><a href='#n70'>70</a></p>
 | 
			
		||||
<p id='n71' class='pln'><a href='#n71'>71</a></p>
 | 
			
		||||
<p id='n72' class='stm run hide_run'><a href='#n72'>72</a></p>
 | 
			
		||||
<p id='n73' class='pln'><a href='#n73'>73</a></p>
 | 
			
		||||
<p id='n74' class='stm run hide_run'><a href='#n74'>74</a></p>
 | 
			
		||||
<p id='n75' class='stm run hide_run'><a href='#n75'>75</a></p>
 | 
			
		||||
<p id='n76' class='pln'><a href='#n76'>76</a></p>
 | 
			
		||||
<p id='n77' class='stm run hide_run'><a href='#n77'>77</a></p>
 | 
			
		||||
<p id='n78' class='pln'><a href='#n78'>78</a></p>
 | 
			
		||||
<p id='n79' class='stm run hide_run'><a href='#n79'>79</a></p>
 | 
			
		||||
<p id='n80' class='pln'><a href='#n80'>80</a></p>
 | 
			
		||||
<p id='n81' class='pln'><a href='#n81'>81</a></p>
 | 
			
		||||
<p id='n82' class='stm run hide_run'><a href='#n82'>82</a></p>
 | 
			
		||||
<p id='n83' class='pln'><a href='#n83'>83</a></p>
 | 
			
		||||
<p id='n84' class='pln'><a href='#n84'>84</a></p>
 | 
			
		||||
<p id='n85' class='pln'><a href='#n85'>85</a></p>
 | 
			
		||||
<p id='n86' class='pln'><a href='#n86'>86</a></p>
 | 
			
		||||
<p id='n87' class='pln'><a href='#n87'>87</a></p>
 | 
			
		||||
<p id='n88' class='pln'><a href='#n88'>88</a></p>
 | 
			
		||||
<p id='n89' class='pln'><a href='#n89'>89</a></p>
 | 
			
		||||
<p id='n90' class='pln'><a href='#n90'>90</a></p>
 | 
			
		||||
<p id='n91' class='stm run hide_run'><a href='#n91'>91</a></p>
 | 
			
		||||
<p id='n92' class='stm run hide_run'><a href='#n92'>92</a></p>
 | 
			
		||||
<p id='n93' class='stm run hide_run'><a href='#n93'>93</a></p>
 | 
			
		||||
<p id='n94' class='pln'><a href='#n94'>94</a></p>
 | 
			
		||||
<p id='n95' class='stm run hide_run'><a href='#n95'>95</a></p>
 | 
			
		||||
<p id='n96' class='stm run hide_run'><a href='#n96'>96</a></p>
 | 
			
		||||
<p id='n97' class='pln'><a href='#n97'>97</a></p>
 | 
			
		||||
<p id='n98' class='stm run hide_run'><a href='#n98'>98</a></p>
 | 
			
		||||
<p id='n99' class='stm run hide_run'><a href='#n99'>99</a></p>
 | 
			
		||||
<p id='n100' class='stm run hide_run'><a href='#n100'>100</a></p>
 | 
			
		||||
<p id='n101' class='pln'><a href='#n101'>101</a></p>
 | 
			
		||||
<p id='n102' class='stm run hide_run'><a href='#n102'>102</a></p>
 | 
			
		||||
<p id='n103' class='pln'><a href='#n103'>103</a></p>
 | 
			
		||||
<p id='n104' class='pln'><a href='#n104'>104</a></p>
 | 
			
		||||
<p id='n105' class='stm run hide_run'><a href='#n105'>105</a></p>
 | 
			
		||||
<p id='n106' class='stm run hide_run'><a href='#n106'>106</a></p>
 | 
			
		||||
<p id='n107' class='pln'><a href='#n107'>107</a></p>
 | 
			
		||||
<p id='n108' class='stm run hide_run'><a href='#n108'>108</a></p>
 | 
			
		||||
<p id='n109' class='stm run hide_run'><a href='#n109'>109</a></p>
 | 
			
		||||
<p id='n110' class='pln'><a href='#n110'>110</a></p>
 | 
			
		||||
<p id='n111' class='stm run hide_run'><a href='#n111'>111</a></p>
 | 
			
		||||
<p id='n112' class='pln'><a href='#n112'>112</a></p>
 | 
			
		||||
<p id='n113' class='stm run hide_run'><a href='#n113'>113</a></p>
 | 
			
		||||
<p id='n114' class='pln'><a href='#n114'>114</a></p>
 | 
			
		||||
<p id='n115' class='pln'><a href='#n115'>115</a></p>
 | 
			
		||||
<p id='n116' class='stm run hide_run'><a href='#n116'>116</a></p>
 | 
			
		||||
<p id='n117' class='pln'><a href='#n117'>117</a></p>
 | 
			
		||||
<p id='n118' class='stm run hide_run'><a href='#n118'>118</a></p>
 | 
			
		||||
<p id='n119' class='pln'><a href='#n119'>119</a></p>
 | 
			
		||||
<p id='n120' class='stm run hide_run'><a href='#n120'>120</a></p>
 | 
			
		||||
<p id='n121' class='stm run hide_run'><a href='#n121'>121</a></p>
 | 
			
		||||
<p id='n122' class='pln'><a href='#n122'>122</a></p>
 | 
			
		||||
<p id='n123' class='stm run hide_run'><a href='#n123'>123</a></p>
 | 
			
		||||
<p id='n124' class='pln'><a href='#n124'>124</a></p>
 | 
			
		||||
<p id='n125' class='stm run hide_run'><a href='#n125'>125</a></p>
 | 
			
		||||
                
 | 
			
		||||
            </td>
 | 
			
		||||
            <td class='text' valign='top'>
 | 
			
		||||
<p id='t1' class='pln'><span class='str'>"""Defines Falcon hooks</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t2' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t3' class='pln'><span class='str'>Copyright 2013 by Rackspace Hosting, Inc.</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t4' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t5' class='pln'><span class='str'>Licensed under the Apache License, Version 2.0 (the "License");</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t6' class='pln'><span class='str'>you may not use this file except in compliance with the License.</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t7' class='pln'><span class='str'>You may obtain a copy of the License at</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t8' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t9' class='pln'><span class='str'>   http://www.apache.org/licenses/LICENSE-2.0</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t10' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t11' class='pln'><span class='str'>Unless required by applicable law or agreed to in writing, software</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t12' class='pln'><span class='str'>distributed under the License is distributed on an "AS IS" BASIS,</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t13' class='pln'><span class='str'>WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t14' class='pln'><span class='str'>See the License for the specific language governing permissions and</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t15' class='pln'><span class='str'>limitations under the License.</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t16' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t17' class='pln'><span class='str'>"""</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t18' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t19' class='stm run hide_run'><span class='key'>import</span> <span class='nam'>six</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t20' class='stm run hide_run'><span class='key'>from</span> <span class='nam'>functools</span> <span class='key'>import</span> <span class='nam'>wraps</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t21' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t22' class='stm run hide_run'><span class='key'>from</span> <span class='nam'>falcon</span> <span class='key'>import</span> <span class='nam'>HTTP_METHODS</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t23' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t24' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t25' class='stm run hide_run'><span class='key'>def</span> <span class='nam'>before</span><span class='op'>(</span><span class='nam'>action</span><span class='op'>)</span><span class='op'>:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t26' class='pln'>    <span class='str'>"""Decorator to execute the given action function *before* the responder.</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t27' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t28' class='pln'><span class='str'>    Args:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t29' class='pln'><span class='str'>        action: A function with a similar signature to a resource responder</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t30' class='pln'><span class='str'>        method, taking (req, resp, params), where params includes values for</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t31' class='pln'><span class='str'>        URI template field names, if any. Hooks may also add pseudo-params</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t32' class='pln'><span class='str'>        of their own. For example:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t33' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t34' class='pln'><span class='str'>            def do_something(req, resp, params):</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t35' class='pln'><span class='str'>                try:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t36' class='pln'><span class='str'>                    params['id'] = int(params['id'])</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t37' class='pln'><span class='str'>                except ValueError:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t38' class='pln'><span class='str'>                    raise falcon.HTTPBadRequest('Invalid ID',</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t39' class='pln'><span class='str'>                                                'ID was not valid.')</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t40' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t41' class='pln'><span class='str'>                params['answer'] = 42</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t42' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t43' class='pln'><span class='str'>    """</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t44' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t45' class='stm run hide_run'>    <span class='key'>def</span> <span class='nam'>_before</span><span class='op'>(</span><span class='nam'>responder_or_resource</span><span class='op'>)</span><span class='op'>:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t46' class='stm run hide_run'>        <span class='key'>if</span> <span class='nam'>isinstance</span><span class='op'>(</span><span class='nam'>responder_or_resource</span><span class='op'>,</span> <span class='nam'>six</span><span class='op'>.</span><span class='nam'>class_types</span><span class='op'>)</span><span class='op'>:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t47' class='stm run hide_run'>            <span class='nam'>resource</span> <span class='op'>=</span> <span class='nam'>responder_or_resource</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t48' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t49' class='stm run hide_run'>            <span class='key'>for</span> <span class='nam'>method</span> <span class='key'>in</span> <span class='nam'>HTTP_METHODS</span><span class='op'>:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t50' class='stm run hide_run'>                <span class='nam'>responder_name</span> <span class='op'>=</span> <span class='str'>'on_'</span> <span class='op'>+</span> <span class='nam'>method</span><span class='op'>.</span><span class='nam'>lower</span><span class='op'>(</span><span class='op'>)</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t51' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t52' class='stm run hide_run'>                <span class='key'>try</span><span class='op'>:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t53' class='stm run hide_run'>                    <span class='nam'>responder</span> <span class='op'>=</span> <span class='nam'>getattr</span><span class='op'>(</span><span class='nam'>resource</span><span class='op'>,</span> <span class='nam'>responder_name</span><span class='op'>)</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t54' class='stm run hide_run'>                <span class='key'>except</span> <span class='nam'>AttributeError</span><span class='op'>:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t55' class='pln'>                    <span class='com'># resource does not implement this method</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t56' class='stm run hide_run'>                    <span class='key'>pass</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t57' class='pln'>                <span class='key'>else</span><span class='op'>:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t58' class='pln'>                    <span class='com'># Usually expect a method, but any callable will do</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t59' class='stm run hide_run'>                    <span class='key'>if</span> <span class='nam'>hasattr</span><span class='op'>(</span><span class='nam'>responder</span><span class='op'>,</span> <span class='str'>'__call__'</span><span class='op'>)</span><span class='op'>:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t60' class='stm run hide_run'>                        <span class='op'>@</span><span class='nam'>wraps</span><span class='op'>(</span><span class='nam'>responder</span><span class='op'>)</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t61' class='pln'>                        <span class='key'>def</span> <span class='nam'>do_before_all</span><span class='op'>(</span><span class='nam'>self</span><span class='op'>,</span> <span class='nam'>req</span><span class='op'>,</span> <span class='nam'>resp</span><span class='op'>,</span> <span class='op'>**</span><span class='nam'>kwargs</span><span class='op'>)</span><span class='op'>:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t62' class='stm run hide_run'>                            <span class='nam'>action</span><span class='op'>(</span><span class='nam'>req</span><span class='op'>,</span> <span class='nam'>resp</span><span class='op'>,</span> <span class='nam'>kwargs</span><span class='op'>)</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t63' class='stm run hide_run'>                            <span class='nam'>responder</span><span class='op'>(</span><span class='nam'>self</span><span class='op'>,</span> <span class='nam'>req</span><span class='op'>,</span> <span class='nam'>resp</span><span class='op'>,</span> <span class='op'>**</span><span class='nam'>kwargs</span><span class='op'>)</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t64' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t65' class='stm run hide_run'>                        <span class='nam'>setattr</span><span class='op'>(</span><span class='nam'>resource</span><span class='op'>,</span> <span class='nam'>responder_name</span><span class='op'>,</span> <span class='nam'>do_before_all</span><span class='op'>)</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t66' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t67' class='stm run hide_run'>            <span class='key'>return</span> <span class='nam'>resource</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t68' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t69' class='pln'>        <span class='key'>else</span><span class='op'>:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t70' class='stm run hide_run'>            <span class='nam'>responder</span> <span class='op'>=</span> <span class='nam'>responder_or_resource</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t71' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t72' class='stm run hide_run'>            <span class='op'>@</span><span class='nam'>wraps</span><span class='op'>(</span><span class='nam'>responder</span><span class='op'>)</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t73' class='pln'>            <span class='key'>def</span> <span class='nam'>do_before_one</span><span class='op'>(</span><span class='nam'>self</span><span class='op'>,</span> <span class='nam'>req</span><span class='op'>,</span> <span class='nam'>resp</span><span class='op'>,</span> <span class='op'>**</span><span class='nam'>kwargs</span><span class='op'>)</span><span class='op'>:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t74' class='stm run hide_run'>                <span class='nam'>action</span><span class='op'>(</span><span class='nam'>req</span><span class='op'>,</span> <span class='nam'>resp</span><span class='op'>,</span> <span class='nam'>kwargs</span><span class='op'>)</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t75' class='stm run hide_run'>                <span class='nam'>responder</span><span class='op'>(</span><span class='nam'>self</span><span class='op'>,</span> <span class='nam'>req</span><span class='op'>,</span> <span class='nam'>resp</span><span class='op'>,</span> <span class='op'>**</span><span class='nam'>kwargs</span><span class='op'>)</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t76' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t77' class='stm run hide_run'>            <span class='key'>return</span> <span class='nam'>do_before_one</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t78' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t79' class='stm run hide_run'>    <span class='key'>return</span> <span class='nam'>_before</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t80' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t81' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t82' class='stm run hide_run'><span class='key'>def</span> <span class='nam'>after</span><span class='op'>(</span><span class='nam'>action</span><span class='op'>)</span><span class='op'>:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t83' class='pln'>    <span class='str'>"""Decorator to execute the given action function *after* the responder.</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t84' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t85' class='pln'><span class='str'>    Args:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t86' class='pln'><span class='str'>        action: A function with a similar signature to a resource responder</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t87' class='pln'><span class='str'>        method, taking (req, resp).</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t88' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t89' class='pln'><span class='str'>    """</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t90' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t91' class='stm run hide_run'>    <span class='key'>def</span> <span class='nam'>_after</span><span class='op'>(</span><span class='nam'>responder_or_resource</span><span class='op'>)</span><span class='op'>:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t92' class='stm run hide_run'>        <span class='key'>if</span> <span class='nam'>isinstance</span><span class='op'>(</span><span class='nam'>responder_or_resource</span><span class='op'>,</span> <span class='nam'>six</span><span class='op'>.</span><span class='nam'>class_types</span><span class='op'>)</span><span class='op'>:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t93' class='stm run hide_run'>            <span class='nam'>resource</span> <span class='op'>=</span> <span class='nam'>responder_or_resource</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t94' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t95' class='stm run hide_run'>            <span class='key'>for</span> <span class='nam'>method</span> <span class='key'>in</span> <span class='nam'>HTTP_METHODS</span><span class='op'>:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t96' class='stm run hide_run'>                <span class='nam'>responder_name</span> <span class='op'>=</span> <span class='str'>'on_'</span> <span class='op'>+</span> <span class='nam'>method</span><span class='op'>.</span><span class='nam'>lower</span><span class='op'>(</span><span class='op'>)</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t97' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t98' class='stm run hide_run'>                <span class='key'>try</span><span class='op'>:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t99' class='stm run hide_run'>                    <span class='nam'>responder</span> <span class='op'>=</span> <span class='nam'>getattr</span><span class='op'>(</span><span class='nam'>resource</span><span class='op'>,</span> <span class='nam'>responder_name</span><span class='op'>)</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t100' class='stm run hide_run'>                <span class='key'>except</span> <span class='nam'>AttributeError</span><span class='op'>:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t101' class='pln'>                    <span class='com'># resource does not implement this method</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t102' class='stm run hide_run'>                    <span class='key'>pass</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t103' class='pln'>                <span class='key'>else</span><span class='op'>:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t104' class='pln'>                    <span class='com'># Usually expect a method, but any callable will do</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t105' class='stm run hide_run'>                    <span class='key'>if</span> <span class='nam'>hasattr</span><span class='op'>(</span><span class='nam'>responder</span><span class='op'>,</span> <span class='str'>'__call__'</span><span class='op'>)</span><span class='op'>:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t106' class='stm run hide_run'>                        <span class='op'>@</span><span class='nam'>wraps</span><span class='op'>(</span><span class='nam'>responder</span><span class='op'>)</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t107' class='pln'>                        <span class='key'>def</span> <span class='nam'>do_after_all</span><span class='op'>(</span><span class='nam'>self</span><span class='op'>,</span> <span class='nam'>req</span><span class='op'>,</span> <span class='nam'>resp</span><span class='op'>,</span> <span class='op'>**</span><span class='nam'>kwargs</span><span class='op'>)</span><span class='op'>:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t108' class='stm run hide_run'>                            <span class='nam'>responder</span><span class='op'>(</span><span class='nam'>self</span><span class='op'>,</span> <span class='nam'>req</span><span class='op'>,</span> <span class='nam'>resp</span><span class='op'>,</span> <span class='op'>**</span><span class='nam'>kwargs</span><span class='op'>)</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t109' class='stm run hide_run'>                            <span class='nam'>action</span><span class='op'>(</span><span class='nam'>req</span><span class='op'>,</span> <span class='nam'>resp</span><span class='op'>)</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t110' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t111' class='stm run hide_run'>                        <span class='nam'>setattr</span><span class='op'>(</span><span class='nam'>resource</span><span class='op'>,</span> <span class='nam'>responder_name</span><span class='op'>,</span> <span class='nam'>do_after_all</span><span class='op'>)</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t112' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t113' class='stm run hide_run'>            <span class='key'>return</span> <span class='nam'>resource</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t114' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t115' class='pln'>        <span class='key'>else</span><span class='op'>:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t116' class='stm run hide_run'>            <span class='nam'>responder</span> <span class='op'>=</span> <span class='nam'>responder_or_resource</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t117' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t118' class='stm run hide_run'>            <span class='op'>@</span><span class='nam'>wraps</span><span class='op'>(</span><span class='nam'>responder</span><span class='op'>)</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t119' class='pln'>            <span class='key'>def</span> <span class='nam'>do_after_one</span><span class='op'>(</span><span class='nam'>self</span><span class='op'>,</span> <span class='nam'>req</span><span class='op'>,</span> <span class='nam'>resp</span><span class='op'>,</span> <span class='op'>**</span><span class='nam'>kwargs</span><span class='op'>)</span><span class='op'>:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t120' class='stm run hide_run'>                <span class='nam'>responder</span><span class='op'>(</span><span class='nam'>self</span><span class='op'>,</span> <span class='nam'>req</span><span class='op'>,</span> <span class='nam'>resp</span><span class='op'>,</span> <span class='op'>**</span><span class='nam'>kwargs</span><span class='op'>)</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t121' class='stm run hide_run'>                <span class='nam'>action</span><span class='op'>(</span><span class='nam'>req</span><span class='op'>,</span> <span class='nam'>resp</span><span class='op'>)</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t122' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t123' class='stm run hide_run'>            <span class='key'>return</span> <span class='nam'>do_after_one</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t124' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t125' class='stm run hide_run'>    <span class='key'>return</span> <span class='nam'>_after</span><span class='strut'> </span></p>
 | 
			
		||||
                
 | 
			
		||||
            </td>
 | 
			
		||||
        </tr>
 | 
			
		||||
    </table>
 | 
			
		||||
</div>
 | 
			
		||||
 | 
			
		||||
<div id='footer'>
 | 
			
		||||
    <div class='content'>
 | 
			
		||||
        <p>
 | 
			
		||||
            <a class='nav' href='index.html'>« index</a>     <a class='nav' href='http://nedbatchelder.com/code/coverage'>coverage.py v3.6</a>
 | 
			
		||||
        </p>
 | 
			
		||||
    </div>
 | 
			
		||||
</div>
 | 
			
		||||
 | 
			
		||||
</body>
 | 
			
		||||
</html>
 | 
			
		||||
							
								
								
									
										336
									
								
								tests/cover/falcon_http_error.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										336
									
								
								tests/cover/falcon_http_error.html
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,336 @@
 | 
			
		||||
<!doctype html PUBLIC "-//W3C//DTD html 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
 | 
			
		||||
<html>
 | 
			
		||||
<head>
 | 
			
		||||
    <meta http-equiv='Content-Type' content='text/html; charset=utf-8'>
 | 
			
		||||
    
 | 
			
		||||
    
 | 
			
		||||
    <meta http-equiv='X-UA-Compatible' content='IE=emulateIE7' />
 | 
			
		||||
    <title>Coverage for falcon.http_error: 100%</title>
 | 
			
		||||
    <link rel='stylesheet' href='style.css' type='text/css'>
 | 
			
		||||
    
 | 
			
		||||
    <script type='text/javascript' src='jquery-1.4.3.min.js'></script>
 | 
			
		||||
    <script type='text/javascript' src='jquery.hotkeys.js'></script>
 | 
			
		||||
    <script type='text/javascript' src='jquery.isonscreen.js'></script>
 | 
			
		||||
    <script type='text/javascript' src='coverage_html.js'></script>
 | 
			
		||||
    <script type='text/javascript' charset='utf-8'>
 | 
			
		||||
        jQuery(document).ready(coverage.pyfile_ready);
 | 
			
		||||
    </script>
 | 
			
		||||
</head>
 | 
			
		||||
<body id='pyfile'>
 | 
			
		||||
 | 
			
		||||
<div id='header'>
 | 
			
		||||
    <div class='content'>
 | 
			
		||||
        <h1>Coverage for <b>falcon.http_error</b> :
 | 
			
		||||
            <span class='pc_cov'>100%</span>
 | 
			
		||||
        </h1>
 | 
			
		||||
        <img id='keyboard_icon' src='keybd_closed.png'>
 | 
			
		||||
        <h2 class='stats'>
 | 
			
		||||
            30 statements  
 | 
			
		||||
            <span class='run hide_run shortkey_r button_toggle_run'>30 run</span>
 | 
			
		||||
            <span class='mis shortkey_m button_toggle_mis'>0 missing</span>
 | 
			
		||||
            <span class='exc shortkey_x button_toggle_exc'>2 excluded</span>
 | 
			
		||||
            
 | 
			
		||||
        </h2>
 | 
			
		||||
    </div>
 | 
			
		||||
</div>
 | 
			
		||||
 | 
			
		||||
<div class='help_panel'>
 | 
			
		||||
    <img id='panel_icon' src='keybd_open.png'>
 | 
			
		||||
<p class='legend'>Hot-keys on this page</p>
 | 
			
		||||
    <div>
 | 
			
		||||
<p class='keyhelp'>
 | 
			
		||||
        <span class='key'>r</span>
 | 
			
		||||
        <span class='key'>m</span>
 | 
			
		||||
        <span class='key'>x</span>
 | 
			
		||||
        <span class='key'>p</span>   toggle line displays
 | 
			
		||||
    </p>
 | 
			
		||||
<p class='keyhelp'>
 | 
			
		||||
        <span class='key'>j</span>
 | 
			
		||||
        <span class='key'>k</span>   next/prev highlighted chunk
 | 
			
		||||
    </p>
 | 
			
		||||
<p class='keyhelp'>
 | 
			
		||||
        <span class='key'>0</span>   (zero) top of page
 | 
			
		||||
    </p>
 | 
			
		||||
<p class='keyhelp'>
 | 
			
		||||
        <span class='key'>1</span>   (one) first highlighted chunk
 | 
			
		||||
    </p>
 | 
			
		||||
    </div>
 | 
			
		||||
</div>
 | 
			
		||||
 | 
			
		||||
<div id='source'>
 | 
			
		||||
    <table cellspacing='0' cellpadding='0'>
 | 
			
		||||
        <tr>
 | 
			
		||||
            <td class='linenos' valign='top'>
 | 
			
		||||
<p id='n1' class='pln'><a href='#n1'>1</a></p>
 | 
			
		||||
<p id='n2' class='pln'><a href='#n2'>2</a></p>
 | 
			
		||||
<p id='n3' class='pln'><a href='#n3'>3</a></p>
 | 
			
		||||
<p id='n4' class='pln'><a href='#n4'>4</a></p>
 | 
			
		||||
<p id='n5' class='pln'><a href='#n5'>5</a></p>
 | 
			
		||||
<p id='n6' class='pln'><a href='#n6'>6</a></p>
 | 
			
		||||
<p id='n7' class='pln'><a href='#n7'>7</a></p>
 | 
			
		||||
<p id='n8' class='pln'><a href='#n8'>8</a></p>
 | 
			
		||||
<p id='n9' class='pln'><a href='#n9'>9</a></p>
 | 
			
		||||
<p id='n10' class='pln'><a href='#n10'>10</a></p>
 | 
			
		||||
<p id='n11' class='pln'><a href='#n11'>11</a></p>
 | 
			
		||||
<p id='n12' class='pln'><a href='#n12'>12</a></p>
 | 
			
		||||
<p id='n13' class='pln'><a href='#n13'>13</a></p>
 | 
			
		||||
<p id='n14' class='pln'><a href='#n14'>14</a></p>
 | 
			
		||||
<p id='n15' class='pln'><a href='#n15'>15</a></p>
 | 
			
		||||
<p id='n16' class='pln'><a href='#n16'>16</a></p>
 | 
			
		||||
<p id='n17' class='pln'><a href='#n17'>17</a></p>
 | 
			
		||||
<p id='n18' class='pln'><a href='#n18'>18</a></p>
 | 
			
		||||
<p id='n19' class='stm run hide_run'><a href='#n19'>19</a></p>
 | 
			
		||||
<p id='n20' class='stm run hide_run'><a href='#n20'>20</a></p>
 | 
			
		||||
<p id='n21' class='pln'><a href='#n21'>21</a></p>
 | 
			
		||||
<p id='n22' class='exc'><a href='#n22'>22</a></p>
 | 
			
		||||
<p id='n23' class='exc'><a href='#n23'>23</a></p>
 | 
			
		||||
<p id='n24' class='pln'><a href='#n24'>24</a></p>
 | 
			
		||||
<p id='n25' class='stm run hide_run'><a href='#n25'>25</a></p>
 | 
			
		||||
<p id='n26' class='pln'><a href='#n26'>26</a></p>
 | 
			
		||||
<p id='n27' class='stm run hide_run'><a href='#n27'>27</a></p>
 | 
			
		||||
<p id='n28' class='pln'><a href='#n28'>28</a></p>
 | 
			
		||||
<p id='n29' class='pln'><a href='#n29'>29</a></p>
 | 
			
		||||
<p id='n30' class='stm run hide_run'><a href='#n30'>30</a></p>
 | 
			
		||||
<p id='n31' class='pln'><a href='#n31'>31</a></p>
 | 
			
		||||
<p id='n32' class='pln'><a href='#n32'>32</a></p>
 | 
			
		||||
<p id='n33' class='pln'><a href='#n33'>33</a></p>
 | 
			
		||||
<p id='n34' class='pln'><a href='#n34'>34</a></p>
 | 
			
		||||
<p id='n35' class='pln'><a href='#n35'>35</a></p>
 | 
			
		||||
<p id='n36' class='pln'><a href='#n36'>36</a></p>
 | 
			
		||||
<p id='n37' class='pln'><a href='#n37'>37</a></p>
 | 
			
		||||
<p id='n38' class='pln'><a href='#n38'>38</a></p>
 | 
			
		||||
<p id='n39' class='pln'><a href='#n39'>39</a></p>
 | 
			
		||||
<p id='n40' class='pln'><a href='#n40'>40</a></p>
 | 
			
		||||
<p id='n41' class='pln'><a href='#n41'>41</a></p>
 | 
			
		||||
<p id='n42' class='pln'><a href='#n42'>42</a></p>
 | 
			
		||||
<p id='n43' class='pln'><a href='#n43'>43</a></p>
 | 
			
		||||
<p id='n44' class='pln'><a href='#n44'>44</a></p>
 | 
			
		||||
<p id='n45' class='pln'><a href='#n45'>45</a></p>
 | 
			
		||||
<p id='n46' class='pln'><a href='#n46'>46</a></p>
 | 
			
		||||
<p id='n47' class='pln'><a href='#n47'>47</a></p>
 | 
			
		||||
<p id='n48' class='stm run hide_run'><a href='#n48'>48</a></p>
 | 
			
		||||
<p id='n49' class='pln'><a href='#n49'>49</a></p>
 | 
			
		||||
<p id='n50' class='pln'><a href='#n50'>50</a></p>
 | 
			
		||||
<p id='n51' class='pln'><a href='#n51'>51</a></p>
 | 
			
		||||
<p id='n52' class='pln'><a href='#n52'>52</a></p>
 | 
			
		||||
<p id='n53' class='pln'><a href='#n53'>53</a></p>
 | 
			
		||||
<p id='n54' class='pln'><a href='#n54'>54</a></p>
 | 
			
		||||
<p id='n55' class='pln'><a href='#n55'>55</a></p>
 | 
			
		||||
<p id='n56' class='pln'><a href='#n56'>56</a></p>
 | 
			
		||||
<p id='n57' class='stm run hide_run'><a href='#n57'>57</a></p>
 | 
			
		||||
<p id='n58' class='pln'><a href='#n58'>58</a></p>
 | 
			
		||||
<p id='n59' class='pln'><a href='#n59'>59</a></p>
 | 
			
		||||
<p id='n60' class='pln'><a href='#n60'>60</a></p>
 | 
			
		||||
<p id='n61' class='pln'><a href='#n61'>61</a></p>
 | 
			
		||||
<p id='n62' class='pln'><a href='#n62'>62</a></p>
 | 
			
		||||
<p id='n63' class='pln'><a href='#n63'>63</a></p>
 | 
			
		||||
<p id='n64' class='pln'><a href='#n64'>64</a></p>
 | 
			
		||||
<p id='n65' class='pln'><a href='#n65'>65</a></p>
 | 
			
		||||
<p id='n66' class='pln'><a href='#n66'>66</a></p>
 | 
			
		||||
<p id='n67' class='pln'><a href='#n67'>67</a></p>
 | 
			
		||||
<p id='n68' class='pln'><a href='#n68'>68</a></p>
 | 
			
		||||
<p id='n69' class='pln'><a href='#n69'>69</a></p>
 | 
			
		||||
<p id='n70' class='pln'><a href='#n70'>70</a></p>
 | 
			
		||||
<p id='n71' class='pln'><a href='#n71'>71</a></p>
 | 
			
		||||
<p id='n72' class='pln'><a href='#n72'>72</a></p>
 | 
			
		||||
<p id='n73' class='pln'><a href='#n73'>73</a></p>
 | 
			
		||||
<p id='n74' class='pln'><a href='#n74'>74</a></p>
 | 
			
		||||
<p id='n75' class='pln'><a href='#n75'>75</a></p>
 | 
			
		||||
<p id='n76' class='pln'><a href='#n76'>76</a></p>
 | 
			
		||||
<p id='n77' class='pln'><a href='#n77'>77</a></p>
 | 
			
		||||
<p id='n78' class='pln'><a href='#n78'>78</a></p>
 | 
			
		||||
<p id='n79' class='pln'><a href='#n79'>79</a></p>
 | 
			
		||||
<p id='n80' class='pln'><a href='#n80'>80</a></p>
 | 
			
		||||
<p id='n81' class='pln'><a href='#n81'>81</a></p>
 | 
			
		||||
<p id='n82' class='pln'><a href='#n82'>82</a></p>
 | 
			
		||||
<p id='n83' class='pln'><a href='#n83'>83</a></p>
 | 
			
		||||
<p id='n84' class='pln'><a href='#n84'>84</a></p>
 | 
			
		||||
<p id='n85' class='pln'><a href='#n85'>85</a></p>
 | 
			
		||||
<p id='n86' class='stm run hide_run'><a href='#n86'>86</a></p>
 | 
			
		||||
<p id='n87' class='stm run hide_run'><a href='#n87'>87</a></p>
 | 
			
		||||
<p id='n88' class='stm run hide_run'><a href='#n88'>88</a></p>
 | 
			
		||||
<p id='n89' class='stm run hide_run'><a href='#n89'>89</a></p>
 | 
			
		||||
<p id='n90' class='stm run hide_run'><a href='#n90'>90</a></p>
 | 
			
		||||
<p id='n91' class='pln'><a href='#n91'>91</a></p>
 | 
			
		||||
<p id='n92' class='stm run hide_run'><a href='#n92'>92</a></p>
 | 
			
		||||
<p id='n93' class='stm run hide_run'><a href='#n93'>93</a></p>
 | 
			
		||||
<p id='n94' class='stm run hide_run'><a href='#n94'>94</a></p>
 | 
			
		||||
<p id='n95' class='stm run hide_run'><a href='#n95'>95</a></p>
 | 
			
		||||
<p id='n96' class='stm run hide_run'><a href='#n96'>96</a></p>
 | 
			
		||||
<p id='n97' class='pln'><a href='#n97'>97</a></p>
 | 
			
		||||
<p id='n98' class='stm run hide_run'><a href='#n98'>98</a></p>
 | 
			
		||||
<p id='n99' class='pln'><a href='#n99'>99</a></p>
 | 
			
		||||
<p id='n100' class='stm run hide_run'><a href='#n100'>100</a></p>
 | 
			
		||||
<p id='n101' class='pln'><a href='#n101'>101</a></p>
 | 
			
		||||
<p id='n102' class='pln'><a href='#n102'>102</a></p>
 | 
			
		||||
<p id='n103' class='pln'><a href='#n103'>103</a></p>
 | 
			
		||||
<p id='n104' class='pln'><a href='#n104'>104</a></p>
 | 
			
		||||
<p id='n105' class='pln'><a href='#n105'>105</a></p>
 | 
			
		||||
<p id='n106' class='pln'><a href='#n106'>106</a></p>
 | 
			
		||||
<p id='n107' class='pln'><a href='#n107'>107</a></p>
 | 
			
		||||
<p id='n108' class='pln'><a href='#n108'>108</a></p>
 | 
			
		||||
<p id='n109' class='pln'><a href='#n109'>109</a></p>
 | 
			
		||||
<p id='n110' class='pln'><a href='#n110'>110</a></p>
 | 
			
		||||
<p id='n111' class='pln'><a href='#n111'>111</a></p>
 | 
			
		||||
<p id='n112' class='stm run hide_run'><a href='#n112'>112</a></p>
 | 
			
		||||
<p id='n113' class='stm run hide_run'><a href='#n113'>113</a></p>
 | 
			
		||||
<p id='n114' class='pln'><a href='#n114'>114</a></p>
 | 
			
		||||
<p id='n115' class='stm run hide_run'><a href='#n115'>115</a></p>
 | 
			
		||||
<p id='n116' class='stm run hide_run'><a href='#n116'>116</a></p>
 | 
			
		||||
<p id='n117' class='pln'><a href='#n117'>117</a></p>
 | 
			
		||||
<p id='n118' class='stm run hide_run'><a href='#n118'>118</a></p>
 | 
			
		||||
<p id='n119' class='stm run hide_run'><a href='#n119'>119</a></p>
 | 
			
		||||
<p id='n120' class='pln'><a href='#n120'>120</a></p>
 | 
			
		||||
<p id='n121' class='stm run hide_run'><a href='#n121'>121</a></p>
 | 
			
		||||
<p id='n122' class='stm run hide_run'><a href='#n122'>122</a></p>
 | 
			
		||||
<p id='n123' class='pln'><a href='#n123'>123</a></p>
 | 
			
		||||
<p id='n124' class='stm run hide_run'><a href='#n124'>124</a></p>
 | 
			
		||||
<p id='n125' class='stm run hide_run'><a href='#n125'>125</a></p>
 | 
			
		||||
<p id='n126' class='pln'><a href='#n126'>126</a></p>
 | 
			
		||||
<p id='n127' class='stm run hide_run'><a href='#n127'>127</a></p>
 | 
			
		||||
                
 | 
			
		||||
            </td>
 | 
			
		||||
            <td class='text' valign='top'>
 | 
			
		||||
<p id='t1' class='pln'><span class='str'>"""Defines the HTTPError class.</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t2' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t3' class='pln'><span class='str'>Copyright 2013 by Rackspace Hosting, Inc.</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t4' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t5' class='pln'><span class='str'>Licensed under the Apache License, Version 2.0 (the "License");</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t6' class='pln'><span class='str'>you may not use this file except in compliance with the License.</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t7' class='pln'><span class='str'>You may obtain a copy of the License at</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t8' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t9' class='pln'><span class='str'>   http://www.apache.org/licenses/LICENSE-2.0</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t10' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t11' class='pln'><span class='str'>Unless required by applicable law or agreed to in writing, software</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t12' class='pln'><span class='str'>distributed under the License is distributed on an "AS IS" BASIS,</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t13' class='pln'><span class='str'>WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t14' class='pln'><span class='str'>See the License for the specific language governing permissions and</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t15' class='pln'><span class='str'>limitations under the License.</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t16' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t17' class='pln'><span class='str'>"""</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t18' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t19' class='stm run hide_run'><span class='key'>import</span> <span class='nam'>json</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t20' class='stm run hide_run'><span class='key'>import</span> <span class='nam'>sys</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t21' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t22' class='exc'><span class='key'>if</span> <span class='nam'>sys</span><span class='op'>.</span><span class='nam'>version_info</span> <span class='op'><</span> <span class='op'>(</span><span class='num'>2</span><span class='op'>,</span> <span class='num'>7</span><span class='op'>)</span><span class='op'>:</span>  <span class='com'># pragma: no cover</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t23' class='exc'>    <span class='key'>from</span> <span class='nam'>ordereddict</span> <span class='key'>import</span> <span class='nam'>OrderedDict</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t24' class='pln'><span class='key'>else</span><span class='op'>:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t25' class='stm run hide_run'>    <span class='key'>from</span> <span class='nam'>collections</span> <span class='key'>import</span> <span class='nam'>OrderedDict</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t26' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t27' class='stm run hide_run'><span class='key'>from</span> <span class='nam'>falcon</span><span class='op'>.</span><span class='nam'>status_codes</span> <span class='key'>import</span> <span class='op'>*</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t28' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t29' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t30' class='stm run hide_run'><span class='key'>class</span> <span class='nam'>HTTPError</span><span class='op'>(</span><span class='nam'>Exception</span><span class='op'>)</span><span class='op'>:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t31' class='pln'>    <span class='str'>"""Represents a generic HTTP error.</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t32' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t33' class='pln'><span class='str'>    Raise this or a child class to have Falcon automagically return pretty</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t34' class='pln'><span class='str'>    error responses (with an appropriate HTTP status code) to the client</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t35' class='pln'><span class='str'>    when something goes wrong.</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t36' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t37' class='pln'><span class='str'>    Attributes:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t38' class='pln'><span class='str'>        status: HTTP status line, such as "748 Confounded by Ponies".</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t39' class='pln'><span class='str'>        title: Error title to send to the client.</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t40' class='pln'><span class='str'>        description: Description of the error to send to the client.</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t41' class='pln'><span class='str'>        headers: A dictionary of extra headers to add to the response.</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t42' class='pln'><span class='str'>        link: An href that the client can provide to the user for getting help.</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t43' class='pln'><span class='str'>        code: An internal application code that a user can reference when</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t44' class='pln'><span class='str'>            requesting support for the error.</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t45' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t46' class='pln'><span class='str'>    """</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t47' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t48' class='stm run hide_run'>    <span class='nam'>__slots__</span> <span class='op'>=</span> <span class='op'>(</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t49' class='pln'>        <span class='str'>'status'</span><span class='op'>,</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t50' class='pln'>        <span class='str'>'title'</span><span class='op'>,</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t51' class='pln'>        <span class='str'>'description'</span><span class='op'>,</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t52' class='pln'>        <span class='str'>'headers'</span><span class='op'>,</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t53' class='pln'>        <span class='str'>'link'</span><span class='op'>,</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t54' class='pln'>        <span class='str'>'code'</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t55' class='pln'>    <span class='op'>)</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t56' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t57' class='stm run hide_run'>    <span class='key'>def</span> <span class='nam'>__init__</span><span class='op'>(</span><span class='nam'>self</span><span class='op'>,</span> <span class='nam'>status</span><span class='op'>,</span> <span class='nam'>title</span><span class='op'>,</span> <span class='nam'>description</span><span class='op'>=</span><span class='nam'>None</span><span class='op'>,</span> <span class='nam'>headers</span><span class='op'>=</span><span class='nam'>None</span><span class='op'>,</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t58' class='pln'>                 <span class='nam'>href</span><span class='op'>=</span><span class='nam'>None</span><span class='op'>,</span> <span class='nam'>href_text</span><span class='op'>=</span><span class='nam'>None</span><span class='op'>,</span> <span class='nam'>code</span><span class='op'>=</span><span class='nam'>None</span><span class='op'>)</span><span class='op'>:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t59' class='pln'>        <span class='str'>"""Initialize with information that can be reported to the client</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t60' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t61' class='pln'><span class='str'>        Falcon will catch instances of HTTPError (and subclasses), then use</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t62' class='pln'><span class='str'>        the associated information to generate a nice response for the client.</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t63' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t64' class='pln'><span class='str'>        Args:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t65' class='pln'><span class='str'>            status: HTTP status code and text, such as "400 Bad Request"</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t66' class='pln'><span class='str'>            title: Human-friendly error title. Set to None if you wish Falcon</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t67' class='pln'><span class='str'>                to return an empty response body (all remaining args will</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t68' class='pln'><span class='str'>                be ignored except for headers.) Do this only when you don't</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t69' class='pln'><span class='str'>                wish to disclose sensitive information about why a request was</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t70' class='pln'><span class='str'>                refused, or if the status and headers are self-descriptive.</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t71' class='pln'><span class='str'>            description: Human-friendly description of the error, along with a</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t72' class='pln'><span class='str'>                helpful suggestion or two (default None).</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t73' class='pln'><span class='str'>            headers: A dictionary of extra headers to return in the</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t74' class='pln'><span class='str'>                response to the client (default None).</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t75' class='pln'><span class='str'>            href: A URL someone can visit to find out more information</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t76' class='pln'><span class='str'>                (default None).</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t77' class='pln'><span class='str'>            href_text: If href is given, use this as the friendly</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t78' class='pln'><span class='str'>                title/description for the link (defaults to "API documentation</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t79' class='pln'><span class='str'>                for this error").</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t80' class='pln'><span class='str'>            code: An internal code that customers can reference in their</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t81' class='pln'><span class='str'>                support request or to help them when searching for knowledge</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t82' class='pln'><span class='str'>                base articles related to this error.</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t83' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t84' class='pln'><span class='str'>        """</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t85' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t86' class='stm run hide_run'>        <span class='nam'>self</span><span class='op'>.</span><span class='nam'>status</span> <span class='op'>=</span> <span class='nam'>status</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t87' class='stm run hide_run'>        <span class='nam'>self</span><span class='op'>.</span><span class='nam'>title</span> <span class='op'>=</span> <span class='nam'>title</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t88' class='stm run hide_run'>        <span class='nam'>self</span><span class='op'>.</span><span class='nam'>description</span> <span class='op'>=</span> <span class='nam'>description</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t89' class='stm run hide_run'>        <span class='nam'>self</span><span class='op'>.</span><span class='nam'>headers</span> <span class='op'>=</span> <span class='nam'>headers</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t90' class='stm run hide_run'>        <span class='nam'>self</span><span class='op'>.</span><span class='nam'>code</span> <span class='op'>=</span> <span class='nam'>code</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t91' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t92' class='stm run hide_run'>        <span class='key'>if</span> <span class='nam'>href</span><span class='op'>:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t93' class='stm run hide_run'>            <span class='nam'>link</span> <span class='op'>=</span> <span class='nam'>self</span><span class='op'>.</span><span class='nam'>link</span> <span class='op'>=</span> <span class='nam'>OrderedDict</span><span class='op'>(</span><span class='op'>)</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t94' class='stm run hide_run'>            <span class='nam'>link</span><span class='op'>[</span><span class='str'>'text'</span><span class='op'>]</span> <span class='op'>=</span> <span class='op'>(</span><span class='nam'>href_text</span> <span class='key'>or</span> <span class='str'>'API documention for this error'</span><span class='op'>)</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t95' class='stm run hide_run'>            <span class='nam'>link</span><span class='op'>[</span><span class='str'>'href'</span><span class='op'>]</span> <span class='op'>=</span> <span class='nam'>href</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t96' class='stm run hide_run'>            <span class='nam'>link</span><span class='op'>[</span><span class='str'>'rel'</span><span class='op'>]</span> <span class='op'>=</span> <span class='str'>'help'</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t97' class='pln'>        <span class='key'>else</span><span class='op'>:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t98' class='stm run hide_run'>            <span class='nam'>self</span><span class='op'>.</span><span class='nam'>link</span> <span class='op'>=</span> <span class='nam'>None</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t99' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t100' class='stm run hide_run'>    <span class='key'>def</span> <span class='nam'>json</span><span class='op'>(</span><span class='nam'>self</span><span class='op'>)</span><span class='op'>:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t101' class='pln'>        <span class='str'>"""Returns a pretty JSON-encoded version of the exception</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t102' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t103' class='pln'><span class='str'>        Note: Excludes the HTTP status line, since the results of this call</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t104' class='pln'><span class='str'>        are meant to be returned in the body of an HTTP response.</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t105' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t106' class='pln'><span class='str'>        Returns:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t107' class='pln'><span class='str'>            A JSON representation of the exception except the status line, or</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t108' class='pln'><span class='str'>            NONE if title was set to None.</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t109' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t110' class='pln'><span class='str'>        """</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t111' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t112' class='stm run hide_run'>        <span class='key'>if</span> <span class='nam'>self</span><span class='op'>.</span><span class='nam'>title</span> <span class='key'>is</span> <span class='nam'>None</span><span class='op'>:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t113' class='stm run hide_run'>            <span class='key'>return</span> <span class='nam'>None</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t114' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t115' class='stm run hide_run'>        <span class='nam'>obj</span> <span class='op'>=</span> <span class='nam'>OrderedDict</span><span class='op'>(</span><span class='op'>)</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t116' class='stm run hide_run'>        <span class='nam'>obj</span><span class='op'>[</span><span class='str'>'title'</span><span class='op'>]</span> <span class='op'>=</span> <span class='nam'>self</span><span class='op'>.</span><span class='nam'>title</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t117' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t118' class='stm run hide_run'>        <span class='key'>if</span> <span class='nam'>self</span><span class='op'>.</span><span class='nam'>description</span><span class='op'>:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t119' class='stm run hide_run'>            <span class='nam'>obj</span><span class='op'>[</span><span class='str'>'description'</span><span class='op'>]</span> <span class='op'>=</span> <span class='nam'>self</span><span class='op'>.</span><span class='nam'>description</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t120' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t121' class='stm run hide_run'>        <span class='key'>if</span> <span class='nam'>self</span><span class='op'>.</span><span class='nam'>code</span><span class='op'>:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t122' class='stm run hide_run'>            <span class='nam'>obj</span><span class='op'>[</span><span class='str'>'code'</span><span class='op'>]</span> <span class='op'>=</span> <span class='nam'>self</span><span class='op'>.</span><span class='nam'>code</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t123' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t124' class='stm run hide_run'>        <span class='key'>if</span> <span class='nam'>self</span><span class='op'>.</span><span class='nam'>link</span><span class='op'>:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t125' class='stm run hide_run'>            <span class='nam'>obj</span><span class='op'>[</span><span class='str'>'link'</span><span class='op'>]</span> <span class='op'>=</span> <span class='nam'>self</span><span class='op'>.</span><span class='nam'>link</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t126' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t127' class='stm run hide_run'>        <span class='key'>return</span> <span class='nam'>json</span><span class='op'>.</span><span class='nam'>dumps</span><span class='op'>(</span><span class='nam'>obj</span><span class='op'>,</span> <span class='nam'>indent</span><span class='op'>=</span><span class='num'>4</span><span class='op'>,</span> <span class='nam'>separators</span><span class='op'>=</span><span class='op'>(</span><span class='str'>','</span><span class='op'>,</span> <span class='str'>': '</span><span class='op'>)</span><span class='op'>)</span><span class='strut'> </span></p>
 | 
			
		||||
                
 | 
			
		||||
            </td>
 | 
			
		||||
        </tr>
 | 
			
		||||
    </table>
 | 
			
		||||
</div>
 | 
			
		||||
 | 
			
		||||
<div id='footer'>
 | 
			
		||||
    <div class='content'>
 | 
			
		||||
        <p>
 | 
			
		||||
            <a class='nav' href='index.html'>« index</a>     <a class='nav' href='http://nedbatchelder.com/code/coverage'>coverage.py v3.6</a>
 | 
			
		||||
        </p>
 | 
			
		||||
    </div>
 | 
			
		||||
</div>
 | 
			
		||||
 | 
			
		||||
</body>
 | 
			
		||||
</html>
 | 
			
		||||
							
								
								
									
										812
									
								
								tests/cover/falcon_request.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										812
									
								
								tests/cover/falcon_request.html
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,812 @@
 | 
			
		||||
<!doctype html PUBLIC "-//W3C//DTD html 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
 | 
			
		||||
<html>
 | 
			
		||||
<head>
 | 
			
		||||
    <meta http-equiv='Content-Type' content='text/html; charset=utf-8'>
 | 
			
		||||
    
 | 
			
		||||
    
 | 
			
		||||
    <meta http-equiv='X-UA-Compatible' content='IE=emulateIE7' />
 | 
			
		||||
    <title>Coverage for falcon.request: 100%</title>
 | 
			
		||||
    <link rel='stylesheet' href='style.css' type='text/css'>
 | 
			
		||||
    
 | 
			
		||||
    <script type='text/javascript' src='jquery-1.4.3.min.js'></script>
 | 
			
		||||
    <script type='text/javascript' src='jquery.hotkeys.js'></script>
 | 
			
		||||
    <script type='text/javascript' src='jquery.isonscreen.js'></script>
 | 
			
		||||
    <script type='text/javascript' src='coverage_html.js'></script>
 | 
			
		||||
    <script type='text/javascript' charset='utf-8'>
 | 
			
		||||
        jQuery(document).ready(coverage.pyfile_ready);
 | 
			
		||||
    </script>
 | 
			
		||||
</head>
 | 
			
		||||
<body id='pyfile'>
 | 
			
		||||
 | 
			
		||||
<div id='header'>
 | 
			
		||||
    <div class='content'>
 | 
			
		||||
        <h1>Coverage for <b>falcon.request</b> :
 | 
			
		||||
            <span class='pc_cov'>100%</span>
 | 
			
		||||
        </h1>
 | 
			
		||||
        <img id='keyboard_icon' src='keybd_closed.png'>
 | 
			
		||||
        <h2 class='stats'>
 | 
			
		||||
            111 statements  
 | 
			
		||||
            <span class='run hide_run shortkey_r button_toggle_run'>111 run</span>
 | 
			
		||||
            <span class='mis shortkey_m button_toggle_mis'>0 missing</span>
 | 
			
		||||
            <span class='exc shortkey_x button_toggle_exc'>0 excluded</span>
 | 
			
		||||
            
 | 
			
		||||
        </h2>
 | 
			
		||||
    </div>
 | 
			
		||||
</div>
 | 
			
		||||
 | 
			
		||||
<div class='help_panel'>
 | 
			
		||||
    <img id='panel_icon' src='keybd_open.png'>
 | 
			
		||||
<p class='legend'>Hot-keys on this page</p>
 | 
			
		||||
    <div>
 | 
			
		||||
<p class='keyhelp'>
 | 
			
		||||
        <span class='key'>r</span>
 | 
			
		||||
        <span class='key'>m</span>
 | 
			
		||||
        <span class='key'>x</span>
 | 
			
		||||
        <span class='key'>p</span>   toggle line displays
 | 
			
		||||
    </p>
 | 
			
		||||
<p class='keyhelp'>
 | 
			
		||||
        <span class='key'>j</span>
 | 
			
		||||
        <span class='key'>k</span>   next/prev highlighted chunk
 | 
			
		||||
    </p>
 | 
			
		||||
<p class='keyhelp'>
 | 
			
		||||
        <span class='key'>0</span>   (zero) top of page
 | 
			
		||||
    </p>
 | 
			
		||||
<p class='keyhelp'>
 | 
			
		||||
        <span class='key'>1</span>   (one) first highlighted chunk
 | 
			
		||||
    </p>
 | 
			
		||||
    </div>
 | 
			
		||||
</div>
 | 
			
		||||
 | 
			
		||||
<div id='source'>
 | 
			
		||||
    <table cellspacing='0' cellpadding='0'>
 | 
			
		||||
        <tr>
 | 
			
		||||
            <td class='linenos' valign='top'>
 | 
			
		||||
<p id='n1' class='pln'><a href='#n1'>1</a></p>
 | 
			
		||||
<p id='n2' class='pln'><a href='#n2'>2</a></p>
 | 
			
		||||
<p id='n3' class='pln'><a href='#n3'>3</a></p>
 | 
			
		||||
<p id='n4' class='pln'><a href='#n4'>4</a></p>
 | 
			
		||||
<p id='n5' class='pln'><a href='#n5'>5</a></p>
 | 
			
		||||
<p id='n6' class='pln'><a href='#n6'>6</a></p>
 | 
			
		||||
<p id='n7' class='pln'><a href='#n7'>7</a></p>
 | 
			
		||||
<p id='n8' class='pln'><a href='#n8'>8</a></p>
 | 
			
		||||
<p id='n9' class='pln'><a href='#n9'>9</a></p>
 | 
			
		||||
<p id='n10' class='pln'><a href='#n10'>10</a></p>
 | 
			
		||||
<p id='n11' class='pln'><a href='#n11'>11</a></p>
 | 
			
		||||
<p id='n12' class='pln'><a href='#n12'>12</a></p>
 | 
			
		||||
<p id='n13' class='pln'><a href='#n13'>13</a></p>
 | 
			
		||||
<p id='n14' class='pln'><a href='#n14'>14</a></p>
 | 
			
		||||
<p id='n15' class='pln'><a href='#n15'>15</a></p>
 | 
			
		||||
<p id='n16' class='pln'><a href='#n16'>16</a></p>
 | 
			
		||||
<p id='n17' class='pln'><a href='#n17'>17</a></p>
 | 
			
		||||
<p id='n18' class='pln'><a href='#n18'>18</a></p>
 | 
			
		||||
<p id='n19' class='stm run hide_run'><a href='#n19'>19</a></p>
 | 
			
		||||
<p id='n20' class='pln'><a href='#n20'>20</a></p>
 | 
			
		||||
<p id='n21' class='stm run hide_run'><a href='#n21'>21</a></p>
 | 
			
		||||
<p id='n22' class='pln'><a href='#n22'>22</a></p>
 | 
			
		||||
<p id='n23' class='stm run hide_run'><a href='#n23'>23</a></p>
 | 
			
		||||
<p id='n24' class='stm run hide_run'><a href='#n24'>24</a></p>
 | 
			
		||||
<p id='n25' class='pln'><a href='#n25'>25</a></p>
 | 
			
		||||
<p id='n26' class='stm run hide_run'><a href='#n26'>26</a></p>
 | 
			
		||||
<p id='n27' class='pln'><a href='#n27'>27</a></p>
 | 
			
		||||
<p id='n28' class='pln'><a href='#n28'>28</a></p>
 | 
			
		||||
<p id='n29' class='pln'><a href='#n29'>29</a></p>
 | 
			
		||||
<p id='n30' class='stm run hide_run'><a href='#n30'>30</a></p>
 | 
			
		||||
<p id='n31' class='pln'><a href='#n31'>31</a></p>
 | 
			
		||||
<p id='n32' class='pln'><a href='#n32'>32</a></p>
 | 
			
		||||
<p id='n33' class='pln'><a href='#n33'>33</a></p>
 | 
			
		||||
<p id='n34' class='pln'><a href='#n34'>34</a></p>
 | 
			
		||||
<p id='n35' class='pln'><a href='#n35'>35</a></p>
 | 
			
		||||
<p id='n36' class='pln'><a href='#n36'>36</a></p>
 | 
			
		||||
<p id='n37' class='pln'><a href='#n37'>37</a></p>
 | 
			
		||||
<p id='n38' class='pln'><a href='#n38'>38</a></p>
 | 
			
		||||
<p id='n39' class='pln'><a href='#n39'>39</a></p>
 | 
			
		||||
<p id='n40' class='pln'><a href='#n40'>40</a></p>
 | 
			
		||||
<p id='n41' class='pln'><a href='#n41'>41</a></p>
 | 
			
		||||
<p id='n42' class='pln'><a href='#n42'>42</a></p>
 | 
			
		||||
<p id='n43' class='pln'><a href='#n43'>43</a></p>
 | 
			
		||||
<p id='n44' class='pln'><a href='#n44'>44</a></p>
 | 
			
		||||
<p id='n45' class='pln'><a href='#n45'>45</a></p>
 | 
			
		||||
<p id='n46' class='pln'><a href='#n46'>46</a></p>
 | 
			
		||||
<p id='n47' class='pln'><a href='#n47'>47</a></p>
 | 
			
		||||
<p id='n48' class='pln'><a href='#n48'>48</a></p>
 | 
			
		||||
<p id='n49' class='pln'><a href='#n49'>49</a></p>
 | 
			
		||||
<p id='n50' class='pln'><a href='#n50'>50</a></p>
 | 
			
		||||
<p id='n51' class='pln'><a href='#n51'>51</a></p>
 | 
			
		||||
<p id='n52' class='pln'><a href='#n52'>52</a></p>
 | 
			
		||||
<p id='n53' class='pln'><a href='#n53'>53</a></p>
 | 
			
		||||
<p id='n54' class='pln'><a href='#n54'>54</a></p>
 | 
			
		||||
<p id='n55' class='pln'><a href='#n55'>55</a></p>
 | 
			
		||||
<p id='n56' class='pln'><a href='#n56'>56</a></p>
 | 
			
		||||
<p id='n57' class='pln'><a href='#n57'>57</a></p>
 | 
			
		||||
<p id='n58' class='pln'><a href='#n58'>58</a></p>
 | 
			
		||||
<p id='n59' class='pln'><a href='#n59'>59</a></p>
 | 
			
		||||
<p id='n60' class='pln'><a href='#n60'>60</a></p>
 | 
			
		||||
<p id='n61' class='pln'><a href='#n61'>61</a></p>
 | 
			
		||||
<p id='n62' class='pln'><a href='#n62'>62</a></p>
 | 
			
		||||
<p id='n63' class='pln'><a href='#n63'>63</a></p>
 | 
			
		||||
<p id='n64' class='pln'><a href='#n64'>64</a></p>
 | 
			
		||||
<p id='n65' class='stm run hide_run'><a href='#n65'>65</a></p>
 | 
			
		||||
<p id='n66' class='pln'><a href='#n66'>66</a></p>
 | 
			
		||||
<p id='n67' class='pln'><a href='#n67'>67</a></p>
 | 
			
		||||
<p id='n68' class='pln'><a href='#n68'>68</a></p>
 | 
			
		||||
<p id='n69' class='pln'><a href='#n69'>69</a></p>
 | 
			
		||||
<p id='n70' class='pln'><a href='#n70'>70</a></p>
 | 
			
		||||
<p id='n71' class='pln'><a href='#n71'>71</a></p>
 | 
			
		||||
<p id='n72' class='pln'><a href='#n72'>72</a></p>
 | 
			
		||||
<p id='n73' class='pln'><a href='#n73'>73</a></p>
 | 
			
		||||
<p id='n74' class='pln'><a href='#n74'>74</a></p>
 | 
			
		||||
<p id='n75' class='pln'><a href='#n75'>75</a></p>
 | 
			
		||||
<p id='n76' class='pln'><a href='#n76'>76</a></p>
 | 
			
		||||
<p id='n77' class='stm run hide_run'><a href='#n77'>77</a></p>
 | 
			
		||||
<p id='n78' class='pln'><a href='#n78'>78</a></p>
 | 
			
		||||
<p id='n79' class='pln'><a href='#n79'>79</a></p>
 | 
			
		||||
<p id='n80' class='pln'><a href='#n80'>80</a></p>
 | 
			
		||||
<p id='n81' class='pln'><a href='#n81'>81</a></p>
 | 
			
		||||
<p id='n82' class='pln'><a href='#n82'>82</a></p>
 | 
			
		||||
<p id='n83' class='pln'><a href='#n83'>83</a></p>
 | 
			
		||||
<p id='n84' class='pln'><a href='#n84'>84</a></p>
 | 
			
		||||
<p id='n85' class='pln'><a href='#n85'>85</a></p>
 | 
			
		||||
<p id='n86' class='pln'><a href='#n86'>86</a></p>
 | 
			
		||||
<p id='n87' class='pln'><a href='#n87'>87</a></p>
 | 
			
		||||
<p id='n88' class='stm run hide_run'><a href='#n88'>88</a></p>
 | 
			
		||||
<p id='n89' class='stm run hide_run'><a href='#n89'>89</a></p>
 | 
			
		||||
<p id='n90' class='pln'><a href='#n90'>90</a></p>
 | 
			
		||||
<p id='n91' class='stm run hide_run'><a href='#n91'>91</a></p>
 | 
			
		||||
<p id='n92' class='stm run hide_run'><a href='#n92'>92</a></p>
 | 
			
		||||
<p id='n93' class='stm run hide_run'><a href='#n93'>93</a></p>
 | 
			
		||||
<p id='n94' class='stm run hide_run'><a href='#n94'>94</a></p>
 | 
			
		||||
<p id='n95' class='pln'><a href='#n95'>95</a></p>
 | 
			
		||||
<p id='n96' class='pln'><a href='#n96'>96</a></p>
 | 
			
		||||
<p id='n97' class='stm run hide_run'><a href='#n97'>97</a></p>
 | 
			
		||||
<p id='n98' class='stm run hide_run'><a href='#n98'>98</a></p>
 | 
			
		||||
<p id='n99' class='pln'><a href='#n99'>99</a></p>
 | 
			
		||||
<p id='n100' class='stm run hide_run'><a href='#n100'>100</a></p>
 | 
			
		||||
<p id='n101' class='pln'><a href='#n101'>101</a></p>
 | 
			
		||||
<p id='n102' class='stm run hide_run'><a href='#n102'>102</a></p>
 | 
			
		||||
<p id='n103' class='stm run hide_run'><a href='#n103'>103</a></p>
 | 
			
		||||
<p id='n104' class='pln'><a href='#n104'>104</a></p>
 | 
			
		||||
<p id='n105' class='stm run hide_run'><a href='#n105'>105</a></p>
 | 
			
		||||
<p id='n106' class='pln'><a href='#n106'>106</a></p>
 | 
			
		||||
<p id='n107' class='pln'><a href='#n107'>107</a></p>
 | 
			
		||||
<p id='n108' class='pln'><a href='#n108'>108</a></p>
 | 
			
		||||
<p id='n109' class='pln'><a href='#n109'>109</a></p>
 | 
			
		||||
<p id='n110' class='pln'><a href='#n110'>110</a></p>
 | 
			
		||||
<p id='n111' class='pln'><a href='#n111'>111</a></p>
 | 
			
		||||
<p id='n112' class='pln'><a href='#n112'>112</a></p>
 | 
			
		||||
<p id='n113' class='pln'><a href='#n113'>113</a></p>
 | 
			
		||||
<p id='n114' class='pln'><a href='#n114'>114</a></p>
 | 
			
		||||
<p id='n115' class='pln'><a href='#n115'>115</a></p>
 | 
			
		||||
<p id='n116' class='pln'><a href='#n116'>116</a></p>
 | 
			
		||||
<p id='n117' class='stm run hide_run'><a href='#n117'>117</a></p>
 | 
			
		||||
<p id='n118' class='stm run hide_run'><a href='#n118'>118</a></p>
 | 
			
		||||
<p id='n119' class='pln'><a href='#n119'>119</a></p>
 | 
			
		||||
<p id='n120' class='stm run hide_run'><a href='#n120'>120</a></p>
 | 
			
		||||
<p id='n121' class='pln'><a href='#n121'>121</a></p>
 | 
			
		||||
<p id='n122' class='pln'><a href='#n122'>122</a></p>
 | 
			
		||||
<p id='n123' class='pln'><a href='#n123'>123</a></p>
 | 
			
		||||
<p id='n124' class='pln'><a href='#n124'>124</a></p>
 | 
			
		||||
<p id='n125' class='pln'><a href='#n125'>125</a></p>
 | 
			
		||||
<p id='n126' class='stm run hide_run'><a href='#n126'>126</a></p>
 | 
			
		||||
<p id='n127' class='pln'><a href='#n127'>127</a></p>
 | 
			
		||||
<p id='n128' class='stm run hide_run'><a href='#n128'>128</a></p>
 | 
			
		||||
<p id='n129' class='pln'><a href='#n129'>129</a></p>
 | 
			
		||||
<p id='n130' class='pln'><a href='#n130'>130</a></p>
 | 
			
		||||
<p id='n131' class='stm run hide_run'><a href='#n131'>131</a></p>
 | 
			
		||||
<p id='n132' class='stm run hide_run'><a href='#n132'>132</a></p>
 | 
			
		||||
<p id='n133' class='pln'><a href='#n133'>133</a></p>
 | 
			
		||||
<p id='n134' class='pln'><a href='#n134'>134</a></p>
 | 
			
		||||
<p id='n135' class='stm run hide_run'><a href='#n135'>135</a></p>
 | 
			
		||||
<p id='n136' class='pln'><a href='#n136'>136</a></p>
 | 
			
		||||
<p id='n137' class='stm run hide_run'><a href='#n137'>137</a></p>
 | 
			
		||||
<p id='n138' class='pln'><a href='#n138'>138</a></p>
 | 
			
		||||
<p id='n139' class='pln'><a href='#n139'>139</a></p>
 | 
			
		||||
<p id='n140' class='pln'><a href='#n140'>140</a></p>
 | 
			
		||||
<p id='n141' class='pln'><a href='#n141'>141</a></p>
 | 
			
		||||
<p id='n142' class='pln'><a href='#n142'>142</a></p>
 | 
			
		||||
<p id='n143' class='pln'><a href='#n143'>143</a></p>
 | 
			
		||||
<p id='n144' class='pln'><a href='#n144'>144</a></p>
 | 
			
		||||
<p id='n145' class='pln'><a href='#n145'>145</a></p>
 | 
			
		||||
<p id='n146' class='stm run hide_run'><a href='#n146'>146</a></p>
 | 
			
		||||
<p id='n147' class='pln'><a href='#n147'>147</a></p>
 | 
			
		||||
<p id='n148' class='stm run hide_run'><a href='#n148'>148</a></p>
 | 
			
		||||
<p id='n149' class='pln'><a href='#n149'>149</a></p>
 | 
			
		||||
<p id='n150' class='stm run hide_run'><a href='#n150'>150</a></p>
 | 
			
		||||
<p id='n151' class='pln'><a href='#n151'>151</a></p>
 | 
			
		||||
<p id='n152' class='stm run hide_run'><a href='#n152'>152</a></p>
 | 
			
		||||
<p id='n153' class='pln'><a href='#n153'>153</a></p>
 | 
			
		||||
<p id='n154' class='stm run hide_run'><a href='#n154'>154</a></p>
 | 
			
		||||
<p id='n155' class='pln'><a href='#n155'>155</a></p>
 | 
			
		||||
<p id='n156' class='stm run hide_run'><a href='#n156'>156</a></p>
 | 
			
		||||
<p id='n157' class='stm run hide_run'><a href='#n157'>157</a></p>
 | 
			
		||||
<p id='n158' class='stm run hide_run'><a href='#n158'>158</a></p>
 | 
			
		||||
<p id='n159' class='stm run hide_run'><a href='#n159'>159</a></p>
 | 
			
		||||
<p id='n160' class='stm run hide_run'><a href='#n160'>160</a></p>
 | 
			
		||||
<p id='n161' class='stm run hide_run'><a href='#n161'>161</a></p>
 | 
			
		||||
<p id='n162' class='pln'><a href='#n162'>162</a></p>
 | 
			
		||||
<p id='n163' class='stm run hide_run'><a href='#n163'>163</a></p>
 | 
			
		||||
<p id='n164' class='pln'><a href='#n164'>164</a></p>
 | 
			
		||||
<p id='n165' class='stm run hide_run'><a href='#n165'>165</a></p>
 | 
			
		||||
<p id='n166' class='pln'><a href='#n166'>166</a></p>
 | 
			
		||||
<p id='n167' class='stm run hide_run'><a href='#n167'>167</a></p>
 | 
			
		||||
<p id='n168' class='pln'><a href='#n168'>168</a></p>
 | 
			
		||||
<p id='n169' class='stm run hide_run'><a href='#n169'>169</a></p>
 | 
			
		||||
<p id='n170' class='pln'><a href='#n170'>170</a></p>
 | 
			
		||||
<p id='n171' class='stm run hide_run'><a href='#n171'>171</a></p>
 | 
			
		||||
<p id='n172' class='pln'><a href='#n172'>172</a></p>
 | 
			
		||||
<p id='n173' class='stm run hide_run'><a href='#n173'>173</a></p>
 | 
			
		||||
<p id='n174' class='pln'><a href='#n174'>174</a></p>
 | 
			
		||||
<p id='n175' class='stm run hide_run'><a href='#n175'>175</a></p>
 | 
			
		||||
<p id='n176' class='pln'><a href='#n176'>176</a></p>
 | 
			
		||||
<p id='n177' class='stm run hide_run'><a href='#n177'>177</a></p>
 | 
			
		||||
<p id='n178' class='pln'><a href='#n178'>178</a></p>
 | 
			
		||||
<p id='n179' class='stm run hide_run'><a href='#n179'>179</a></p>
 | 
			
		||||
<p id='n180' class='pln'><a href='#n180'>180</a></p>
 | 
			
		||||
<p id='n181' class='stm run hide_run'><a href='#n181'>181</a></p>
 | 
			
		||||
<p id='n182' class='pln'><a href='#n182'>182</a></p>
 | 
			
		||||
<p id='n183' class='stm run hide_run'><a href='#n183'>183</a></p>
 | 
			
		||||
<p id='n184' class='pln'><a href='#n184'>184</a></p>
 | 
			
		||||
<p id='n185' class='stm run hide_run'><a href='#n185'>185</a></p>
 | 
			
		||||
<p id='n186' class='pln'><a href='#n186'>186</a></p>
 | 
			
		||||
<p id='n187' class='stm run hide_run'><a href='#n187'>187</a></p>
 | 
			
		||||
<p id='n188' class='pln'><a href='#n188'>188</a></p>
 | 
			
		||||
<p id='n189' class='stm run hide_run'><a href='#n189'>189</a></p>
 | 
			
		||||
<p id='n190' class='pln'><a href='#n190'>190</a></p>
 | 
			
		||||
<p id='n191' class='stm run hide_run'><a href='#n191'>191</a></p>
 | 
			
		||||
<p id='n192' class='pln'><a href='#n192'>192</a></p>
 | 
			
		||||
<p id='n193' class='stm run hide_run'><a href='#n193'>193</a></p>
 | 
			
		||||
<p id='n194' class='pln'><a href='#n194'>194</a></p>
 | 
			
		||||
<p id='n195' class='stm run hide_run'><a href='#n195'>195</a></p>
 | 
			
		||||
<p id='n196' class='pln'><a href='#n196'>196</a></p>
 | 
			
		||||
<p id='n197' class='stm run hide_run'><a href='#n197'>197</a></p>
 | 
			
		||||
<p id='n198' class='pln'><a href='#n198'>198</a></p>
 | 
			
		||||
<p id='n199' class='stm run hide_run'><a href='#n199'>199</a></p>
 | 
			
		||||
<p id='n200' class='stm run hide_run'><a href='#n200'>200</a></p>
 | 
			
		||||
<p id='n201' class='stm run hide_run'><a href='#n201'>201</a></p>
 | 
			
		||||
<p id='n202' class='pln'><a href='#n202'>202</a></p>
 | 
			
		||||
<p id='n203' class='stm run hide_run'><a href='#n203'>203</a></p>
 | 
			
		||||
<p id='n204' class='stm run hide_run'><a href='#n204'>204</a></p>
 | 
			
		||||
<p id='n205' class='stm run hide_run'><a href='#n205'>205</a></p>
 | 
			
		||||
<p id='n206' class='stm run hide_run'><a href='#n206'>206</a></p>
 | 
			
		||||
<p id='n207' class='pln'><a href='#n207'>207</a></p>
 | 
			
		||||
<p id='n208' class='stm run hide_run'><a href='#n208'>208</a></p>
 | 
			
		||||
<p id='n209' class='stm run hide_run'><a href='#n209'>209</a></p>
 | 
			
		||||
<p id='n210' class='stm run hide_run'><a href='#n210'>210</a></p>
 | 
			
		||||
<p id='n211' class='pln'><a href='#n211'>211</a></p>
 | 
			
		||||
<p id='n212' class='stm run hide_run'><a href='#n212'>212</a></p>
 | 
			
		||||
<p id='n213' class='pln'><a href='#n213'>213</a></p>
 | 
			
		||||
<p id='n214' class='stm run hide_run'><a href='#n214'>214</a></p>
 | 
			
		||||
<p id='n215' class='stm run hide_run'><a href='#n215'>215</a></p>
 | 
			
		||||
<p id='n216' class='pln'><a href='#n216'>216</a></p>
 | 
			
		||||
<p id='n217' class='stm run hide_run'><a href='#n217'>217</a></p>
 | 
			
		||||
<p id='n218' class='pln'><a href='#n218'>218</a></p>
 | 
			
		||||
<p id='n219' class='stm run hide_run'><a href='#n219'>219</a></p>
 | 
			
		||||
<p id='n220' class='pln'><a href='#n220'>220</a></p>
 | 
			
		||||
<p id='n221' class='stm run hide_run'><a href='#n221'>221</a></p>
 | 
			
		||||
<p id='n222' class='pln'><a href='#n222'>222</a></p>
 | 
			
		||||
<p id='n223' class='stm run hide_run'><a href='#n223'>223</a></p>
 | 
			
		||||
<p id='n224' class='pln'><a href='#n224'>224</a></p>
 | 
			
		||||
<p id='n225' class='pln'><a href='#n225'>225</a></p>
 | 
			
		||||
<p id='n226' class='pln'><a href='#n226'>226</a></p>
 | 
			
		||||
<p id='n227' class='pln'><a href='#n227'>227</a></p>
 | 
			
		||||
<p id='n228' class='pln'><a href='#n228'>228</a></p>
 | 
			
		||||
<p id='n229' class='pln'><a href='#n229'>229</a></p>
 | 
			
		||||
<p id='n230' class='pln'><a href='#n230'>230</a></p>
 | 
			
		||||
<p id='n231' class='pln'><a href='#n231'>231</a></p>
 | 
			
		||||
<p id='n232' class='pln'><a href='#n232'>232</a></p>
 | 
			
		||||
<p id='n233' class='pln'><a href='#n233'>233</a></p>
 | 
			
		||||
<p id='n234' class='pln'><a href='#n234'>234</a></p>
 | 
			
		||||
<p id='n235' class='pln'><a href='#n235'>235</a></p>
 | 
			
		||||
<p id='n236' class='pln'><a href='#n236'>236</a></p>
 | 
			
		||||
<p id='n237' class='pln'><a href='#n237'>237</a></p>
 | 
			
		||||
<p id='n238' class='pln'><a href='#n238'>238</a></p>
 | 
			
		||||
<p id='n239' class='pln'><a href='#n239'>239</a></p>
 | 
			
		||||
<p id='n240' class='pln'><a href='#n240'>240</a></p>
 | 
			
		||||
<p id='n241' class='pln'><a href='#n241'>241</a></p>
 | 
			
		||||
<p id='n242' class='pln'><a href='#n242'>242</a></p>
 | 
			
		||||
<p id='n243' class='stm run hide_run'><a href='#n243'>243</a></p>
 | 
			
		||||
<p id='n244' class='pln'><a href='#n244'>244</a></p>
 | 
			
		||||
<p id='n245' class='pln'><a href='#n245'>245</a></p>
 | 
			
		||||
<p id='n246' class='pln'><a href='#n246'>246</a></p>
 | 
			
		||||
<p id='n247' class='stm run hide_run'><a href='#n247'>247</a></p>
 | 
			
		||||
<p id='n248' class='stm run hide_run'><a href='#n248'>248</a></p>
 | 
			
		||||
<p id='n249' class='stm run hide_run'><a href='#n249'>249</a></p>
 | 
			
		||||
<p id='n250' class='stm run hide_run'><a href='#n250'>250</a></p>
 | 
			
		||||
<p id='n251' class='pln'><a href='#n251'>251</a></p>
 | 
			
		||||
<p id='n252' class='stm run hide_run'><a href='#n252'>252</a></p>
 | 
			
		||||
<p id='n253' class='stm run hide_run'><a href='#n253'>253</a></p>
 | 
			
		||||
<p id='n254' class='pln'><a href='#n254'>254</a></p>
 | 
			
		||||
<p id='n255' class='stm run hide_run'><a href='#n255'>255</a></p>
 | 
			
		||||
<p id='n256' class='pln'><a href='#n256'>256</a></p>
 | 
			
		||||
<p id='n257' class='pln'><a href='#n257'>257</a></p>
 | 
			
		||||
<p id='n258' class='pln'><a href='#n258'>258</a></p>
 | 
			
		||||
<p id='n259' class='pln'><a href='#n259'>259</a></p>
 | 
			
		||||
<p id='n260' class='pln'><a href='#n260'>260</a></p>
 | 
			
		||||
<p id='n261' class='pln'><a href='#n261'>261</a></p>
 | 
			
		||||
<p id='n262' class='pln'><a href='#n262'>262</a></p>
 | 
			
		||||
<p id='n263' class='pln'><a href='#n263'>263</a></p>
 | 
			
		||||
<p id='n264' class='pln'><a href='#n264'>264</a></p>
 | 
			
		||||
<p id='n265' class='pln'><a href='#n265'>265</a></p>
 | 
			
		||||
<p id='n266' class='pln'><a href='#n266'>266</a></p>
 | 
			
		||||
<p id='n267' class='pln'><a href='#n267'>267</a></p>
 | 
			
		||||
<p id='n268' class='pln'><a href='#n268'>268</a></p>
 | 
			
		||||
<p id='n269' class='pln'><a href='#n269'>269</a></p>
 | 
			
		||||
<p id='n270' class='pln'><a href='#n270'>270</a></p>
 | 
			
		||||
<p id='n271' class='pln'><a href='#n271'>271</a></p>
 | 
			
		||||
<p id='n272' class='pln'><a href='#n272'>272</a></p>
 | 
			
		||||
<p id='n273' class='pln'><a href='#n273'>273</a></p>
 | 
			
		||||
<p id='n274' class='pln'><a href='#n274'>274</a></p>
 | 
			
		||||
<p id='n275' class='stm run hide_run'><a href='#n275'>275</a></p>
 | 
			
		||||
<p id='n276' class='stm run hide_run'><a href='#n276'>276</a></p>
 | 
			
		||||
<p id='n277' class='pln'><a href='#n277'>277</a></p>
 | 
			
		||||
<p id='n278' class='stm run hide_run'><a href='#n278'>278</a></p>
 | 
			
		||||
<p id='n279' class='stm run hide_run'><a href='#n279'>279</a></p>
 | 
			
		||||
<p id='n280' class='pln'><a href='#n280'>280</a></p>
 | 
			
		||||
<p id='n281' class='stm run hide_run'><a href='#n281'>281</a></p>
 | 
			
		||||
<p id='n282' class='stm run hide_run'><a href='#n282'>282</a></p>
 | 
			
		||||
<p id='n283' class='pln'><a href='#n283'>283</a></p>
 | 
			
		||||
<p id='n284' class='stm run hide_run'><a href='#n284'>284</a></p>
 | 
			
		||||
<p id='n285' class='pln'><a href='#n285'>285</a></p>
 | 
			
		||||
<p id='n286' class='pln'><a href='#n286'>286</a></p>
 | 
			
		||||
<p id='n287' class='pln'><a href='#n287'>287</a></p>
 | 
			
		||||
<p id='n288' class='pln'><a href='#n288'>288</a></p>
 | 
			
		||||
<p id='n289' class='pln'><a href='#n289'>289</a></p>
 | 
			
		||||
<p id='n290' class='pln'><a href='#n290'>290</a></p>
 | 
			
		||||
<p id='n291' class='pln'><a href='#n291'>291</a></p>
 | 
			
		||||
<p id='n292' class='pln'><a href='#n292'>292</a></p>
 | 
			
		||||
<p id='n293' class='pln'><a href='#n293'>293</a></p>
 | 
			
		||||
<p id='n294' class='pln'><a href='#n294'>294</a></p>
 | 
			
		||||
<p id='n295' class='pln'><a href='#n295'>295</a></p>
 | 
			
		||||
<p id='n296' class='pln'><a href='#n296'>296</a></p>
 | 
			
		||||
<p id='n297' class='pln'><a href='#n297'>297</a></p>
 | 
			
		||||
<p id='n298' class='pln'><a href='#n298'>298</a></p>
 | 
			
		||||
<p id='n299' class='pln'><a href='#n299'>299</a></p>
 | 
			
		||||
<p id='n300' class='pln'><a href='#n300'>300</a></p>
 | 
			
		||||
<p id='n301' class='pln'><a href='#n301'>301</a></p>
 | 
			
		||||
<p id='n302' class='pln'><a href='#n302'>302</a></p>
 | 
			
		||||
<p id='n303' class='pln'><a href='#n303'>303</a></p>
 | 
			
		||||
<p id='n304' class='pln'><a href='#n304'>304</a></p>
 | 
			
		||||
<p id='n305' class='stm run hide_run'><a href='#n305'>305</a></p>
 | 
			
		||||
<p id='n306' class='stm run hide_run'><a href='#n306'>306</a></p>
 | 
			
		||||
<p id='n307' class='stm run hide_run'><a href='#n307'>307</a></p>
 | 
			
		||||
<p id='n308' class='stm run hide_run'><a href='#n308'>308</a></p>
 | 
			
		||||
<p id='n309' class='stm run hide_run'><a href='#n309'>309</a></p>
 | 
			
		||||
<p id='n310' class='stm run hide_run'><a href='#n310'>310</a></p>
 | 
			
		||||
<p id='n311' class='pln'><a href='#n311'>311</a></p>
 | 
			
		||||
<p id='n312' class='stm run hide_run'><a href='#n312'>312</a></p>
 | 
			
		||||
<p id='n313' class='stm run hide_run'><a href='#n313'>313</a></p>
 | 
			
		||||
<p id='n314' class='pln'><a href='#n314'>314</a></p>
 | 
			
		||||
<p id='n315' class='stm run hide_run'><a href='#n315'>315</a></p>
 | 
			
		||||
<p id='n316' class='stm run hide_run'><a href='#n316'>316</a></p>
 | 
			
		||||
<p id='n317' class='pln'><a href='#n317'>317</a></p>
 | 
			
		||||
<p id='n318' class='stm run hide_run'><a href='#n318'>318</a></p>
 | 
			
		||||
<p id='n319' class='pln'><a href='#n319'>319</a></p>
 | 
			
		||||
<p id='n320' class='pln'><a href='#n320'>320</a></p>
 | 
			
		||||
<p id='n321' class='pln'><a href='#n321'>321</a></p>
 | 
			
		||||
<p id='n322' class='pln'><a href='#n322'>322</a></p>
 | 
			
		||||
<p id='n323' class='pln'><a href='#n323'>323</a></p>
 | 
			
		||||
<p id='n324' class='pln'><a href='#n324'>324</a></p>
 | 
			
		||||
<p id='n325' class='pln'><a href='#n325'>325</a></p>
 | 
			
		||||
<p id='n326' class='pln'><a href='#n326'>326</a></p>
 | 
			
		||||
<p id='n327' class='pln'><a href='#n327'>327</a></p>
 | 
			
		||||
<p id='n328' class='pln'><a href='#n328'>328</a></p>
 | 
			
		||||
<p id='n329' class='pln'><a href='#n329'>329</a></p>
 | 
			
		||||
<p id='n330' class='pln'><a href='#n330'>330</a></p>
 | 
			
		||||
<p id='n331' class='pln'><a href='#n331'>331</a></p>
 | 
			
		||||
<p id='n332' class='pln'><a href='#n332'>332</a></p>
 | 
			
		||||
<p id='n333' class='pln'><a href='#n333'>333</a></p>
 | 
			
		||||
<p id='n334' class='pln'><a href='#n334'>334</a></p>
 | 
			
		||||
<p id='n335' class='pln'><a href='#n335'>335</a></p>
 | 
			
		||||
<p id='n336' class='pln'><a href='#n336'>336</a></p>
 | 
			
		||||
<p id='n337' class='pln'><a href='#n337'>337</a></p>
 | 
			
		||||
<p id='n338' class='pln'><a href='#n338'>338</a></p>
 | 
			
		||||
<p id='n339' class='stm run hide_run'><a href='#n339'>339</a></p>
 | 
			
		||||
<p id='n340' class='stm run hide_run'><a href='#n340'>340</a></p>
 | 
			
		||||
<p id='n341' class='pln'><a href='#n341'>341</a></p>
 | 
			
		||||
<p id='n342' class='stm run hide_run'><a href='#n342'>342</a></p>
 | 
			
		||||
<p id='n343' class='stm run hide_run'><a href='#n343'>343</a></p>
 | 
			
		||||
<p id='n344' class='pln'><a href='#n344'>344</a></p>
 | 
			
		||||
<p id='n345' class='stm run hide_run'><a href='#n345'>345</a></p>
 | 
			
		||||
<p id='n346' class='pln'><a href='#n346'>346</a></p>
 | 
			
		||||
<p id='n347' class='pln'><a href='#n347'>347</a></p>
 | 
			
		||||
<p id='n348' class='pln'><a href='#n348'>348</a></p>
 | 
			
		||||
<p id='n349' class='pln'><a href='#n349'>349</a></p>
 | 
			
		||||
<p id='n350' class='pln'><a href='#n350'>350</a></p>
 | 
			
		||||
<p id='n351' class='pln'><a href='#n351'>351</a></p>
 | 
			
		||||
<p id='n352' class='stm run hide_run'><a href='#n352'>352</a></p>
 | 
			
		||||
<p id='n353' class='pln'><a href='#n353'>353</a></p>
 | 
			
		||||
<p id='n354' class='pln'><a href='#n354'>354</a></p>
 | 
			
		||||
<p id='n355' class='pln'><a href='#n355'>355</a></p>
 | 
			
		||||
<p id='n356' class='pln'><a href='#n356'>356</a></p>
 | 
			
		||||
<p id='n357' class='pln'><a href='#n357'>357</a></p>
 | 
			
		||||
<p id='n358' class='pln'><a href='#n358'>358</a></p>
 | 
			
		||||
<p id='n359' class='pln'><a href='#n359'>359</a></p>
 | 
			
		||||
<p id='n360' class='pln'><a href='#n360'>360</a></p>
 | 
			
		||||
<p id='n361' class='pln'><a href='#n361'>361</a></p>
 | 
			
		||||
<p id='n362' class='stm run hide_run'><a href='#n362'>362</a></p>
 | 
			
		||||
<p id='n363' class='stm run hide_run'><a href='#n363'>363</a></p>
 | 
			
		||||
<p id='n364' class='stm run hide_run'><a href='#n364'>364</a></p>
 | 
			
		||||
<p id='n365' class='stm run hide_run'><a href='#n365'>365</a></p>
 | 
			
		||||
                
 | 
			
		||||
            </td>
 | 
			
		||||
            <td class='text' valign='top'>
 | 
			
		||||
<p id='t1' class='pln'><span class='str'>"""Defines the Request class.</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t2' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t3' class='pln'><span class='str'>Copyright 2013 by Rackspace Hosting, Inc.</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t4' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t5' class='pln'><span class='str'>Licensed under the Apache License, Version 2.0 (the "License");</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t6' class='pln'><span class='str'>you may not use this file except in compliance with the License.</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t7' class='pln'><span class='str'>You may obtain a copy of the License at</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t8' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t9' class='pln'><span class='str'>   http://www.apache.org/licenses/LICENSE-2.0</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t10' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t11' class='pln'><span class='str'>Unless required by applicable law or agreed to in writing, software</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t12' class='pln'><span class='str'>distributed under the License is distributed on an "AS IS" BASIS,</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t13' class='pln'><span class='str'>WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t14' class='pln'><span class='str'>See the License for the specific language governing permissions and</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t15' class='pln'><span class='str'>limitations under the License.</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t16' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t17' class='pln'><span class='str'>"""</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t18' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t19' class='stm run hide_run'><span class='key'>from</span> <span class='nam'>datetime</span> <span class='key'>import</span> <span class='nam'>datetime</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t20' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t21' class='stm run hide_run'><span class='key'>import</span> <span class='nam'>six</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t22' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t23' class='stm run hide_run'><span class='key'>from</span> <span class='nam'>falcon</span><span class='op'>.</span><span class='nam'>request_helpers</span> <span class='key'>import</span> <span class='op'>*</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t24' class='stm run hide_run'><span class='key'>from</span> <span class='nam'>falcon</span><span class='op'>.</span><span class='nam'>exceptions</span> <span class='key'>import</span> <span class='op'>*</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t25' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t26' class='stm run hide_run'><span class='nam'>DEFAULT_ERROR_LOG_FORMAT</span> <span class='op'>=</span> <span class='op'>(</span><span class='str'>'{0:%Y-%m-%d %H:%M:%S} [FALCON] [ERROR]'</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t27' class='pln'>                            <span class='str'>' {1} {2}?{3} => {4}\n'</span><span class='op'>)</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t28' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t29' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t30' class='stm run hide_run'><span class='key'>class</span> <span class='nam'>Request</span><span class='op'>(</span><span class='nam'>object</span><span class='op'>)</span><span class='op'>:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t31' class='pln'>    <span class='str'>"""Represents a client's HTTP request</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t32' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t33' class='pln'><span class='str'>    Attributes:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t34' class='pln'><span class='str'>        url: The fully-qualified request URL</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t35' class='pln'><span class='str'>        protocol: Will be either 'http' or 'https'.</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t36' class='pln'><span class='str'>        app: Name of the WSGI app (if using WSGI's notion of virtual hosting).</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t37' class='pln'><span class='str'>        method: HTTP method requested (e.g., GET, POST, etc.)</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t38' class='pln'><span class='str'>        path: Path portion of the request URL (not including query string).</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t39' class='pln'><span class='str'>        query_string: Query string portion of the request URL.</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t40' class='pln'><span class='str'>        stream: Stream-like object for reading the body of the request, if any.</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t41' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t42' class='pln'><span class='str'>        accept: Value of the Accept header, or None if not found.</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t43' class='pln'><span class='str'>        auth: Value of the Authorization header, or None if not found.</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t44' class='pln'><span class='str'>        content_length: Value of the Content-Length header, converted to an</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t45' class='pln'><span class='str'>            int, or None if missing or not an integer.</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t46' class='pln'><span class='str'>        content_type: Value of the Content-Type header, or None if not found.</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t47' class='pln'><span class='str'>        date: Value of the Date header, or None if missing.</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t48' class='pln'><span class='str'>        expect: Value of the Expect header, or None if missing.</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t49' class='pln'><span class='str'>        if_match: Value of the If-Match header, or None if missing.</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t50' class='pln'><span class='str'>        if_none_match: Value of the If-None-Match header, or None if missing.</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t51' class='pln'><span class='str'>        if_modified_since: Value of the If-Modified-Since header, or None if</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t52' class='pln'><span class='str'>            missing.</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t53' class='pln'><span class='str'>        if_unmodified_since: Value of the If-Unmodified-Since header, or None</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t54' class='pln'><span class='str'>            if missing.</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t55' class='pln'><span class='str'>        if_range: Value of the If-Range header, or None if missing.</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t56' class='pln'><span class='str'>        range: A 2-member tuple representing the value of the Range header, or</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t57' class='pln'><span class='str'>            None if missing. The two members correspond to first and last byte</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t58' class='pln'><span class='str'>            positions of the requested resource, inclusive. Negative indices</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t59' class='pln'><span class='str'>            indicate offset from the end of the resource, where -1 is the last</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t60' class='pln'><span class='str'>            byte, -2 is the second-to-last byte, and so forth.</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t61' class='pln'><span class='str'>        user_agent: Value of the User-Agent string, or None if not found.</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t62' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t63' class='pln'><span class='str'>    """</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t64' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t65' class='stm run hide_run'>    <span class='nam'>__slots__</span> <span class='op'>=</span> <span class='op'>(</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t66' class='pln'>        <span class='str'>'app'</span><span class='op'>,</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t67' class='pln'>        <span class='str'>'_headers'</span><span class='op'>,</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t68' class='pln'>        <span class='str'>'method'</span><span class='op'>,</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t69' class='pln'>        <span class='str'>'_params'</span><span class='op'>,</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t70' class='pln'>        <span class='str'>'path'</span><span class='op'>,</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t71' class='pln'>        <span class='str'>'protocol'</span><span class='op'>,</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t72' class='pln'>        <span class='str'>'query_string'</span><span class='op'>,</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t73' class='pln'>        <span class='str'>'stream'</span><span class='op'>,</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t74' class='pln'>        <span class='str'>'_wsgierrors'</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t75' class='pln'>    <span class='op'>)</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t76' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t77' class='stm run hide_run'>    <span class='key'>def</span> <span class='nam'>__init__</span><span class='op'>(</span><span class='nam'>self</span><span class='op'>,</span> <span class='nam'>env</span><span class='op'>)</span><span class='op'>:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t78' class='pln'>        <span class='str'>"""Initialize attributes based on a WSGI environment dict</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t79' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t80' class='pln'><span class='str'>        Note: Request is not meant to be instantiated directory by responders.</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t81' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t82' class='pln'><span class='str'>        Args:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t83' class='pln'><span class='str'>            env: A WSGI environment dict passed in from the server. See also</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t84' class='pln'><span class='str'>                the PEP-333 spec.</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t85' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t86' class='pln'><span class='str'>        """</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t87' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t88' class='stm run hide_run'>        <span class='nam'>self</span><span class='op'>.</span><span class='nam'>_wsgierrors</span> <span class='op'>=</span> <span class='nam'>env</span><span class='op'>[</span><span class='str'>'wsgi.errors'</span><span class='op'>]</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t89' class='stm run hide_run'>        <span class='nam'>self</span><span class='op'>.</span><span class='nam'>stream</span> <span class='op'>=</span> <span class='nam'>env</span><span class='op'>[</span><span class='str'>'wsgi.input'</span><span class='op'>]</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t90' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t91' class='stm run hide_run'>        <span class='nam'>self</span><span class='op'>.</span><span class='nam'>protocol</span> <span class='op'>=</span> <span class='nam'>env</span><span class='op'>[</span><span class='str'>'wsgi.url_scheme'</span><span class='op'>]</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t92' class='stm run hide_run'>        <span class='nam'>self</span><span class='op'>.</span><span class='nam'>app</span> <span class='op'>=</span> <span class='nam'>env</span><span class='op'>[</span><span class='str'>'SCRIPT_NAME'</span><span class='op'>]</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t93' class='stm run hide_run'>        <span class='nam'>self</span><span class='op'>.</span><span class='nam'>method</span> <span class='op'>=</span> <span class='nam'>env</span><span class='op'>[</span><span class='str'>'REQUEST_METHOD'</span><span class='op'>]</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t94' class='stm run hide_run'>        <span class='nam'>self</span><span class='op'>.</span><span class='nam'>path</span> <span class='op'>=</span> <span class='nam'>env</span><span class='op'>[</span><span class='str'>'PATH_INFO'</span><span class='op'>]</span> <span class='key'>or</span> <span class='str'>'/'</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t95' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t96' class='pln'>        <span class='com'># QUERY_STRING isn't required to be in env, so let's check</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t97' class='stm run hide_run'>        <span class='key'>if</span> <span class='str'>'QUERY_STRING'</span> <span class='key'>in</span> <span class='nam'>env</span><span class='op'>:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t98' class='stm run hide_run'>            <span class='nam'>self</span><span class='op'>.</span><span class='nam'>query_string</span> <span class='op'>=</span> <span class='nam'>query_string</span> <span class='op'>=</span> <span class='nam'>env</span><span class='op'>[</span><span class='str'>'QUERY_STRING'</span><span class='op'>]</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t99' class='pln'>        <span class='key'>else</span><span class='op'>:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t100' class='stm run hide_run'>            <span class='nam'>self</span><span class='op'>.</span><span class='nam'>query_string</span> <span class='op'>=</span> <span class='nam'>query_string</span> <span class='op'>=</span> <span class='str'>''</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t101' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t102' class='stm run hide_run'>        <span class='nam'>self</span><span class='op'>.</span><span class='nam'>_params</span> <span class='op'>=</span> <span class='nam'>parse_query_string</span><span class='op'>(</span><span class='nam'>query_string</span><span class='op'>)</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t103' class='stm run hide_run'>        <span class='nam'>self</span><span class='op'>.</span><span class='nam'>_headers</span> <span class='op'>=</span> <span class='nam'>parse_headers</span><span class='op'>(</span><span class='nam'>env</span><span class='op'>)</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t104' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t105' class='stm run hide_run'>    <span class='key'>def</span> <span class='nam'>log_error</span><span class='op'>(</span><span class='nam'>self</span><span class='op'>,</span> <span class='nam'>message</span><span class='op'>)</span><span class='op'>:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t106' class='pln'>        <span class='str'>"""Log an error to wsgi.error</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t107' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t108' class='pln'><span class='str'>        Prepends timestamp and request info to message, and writes the</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t109' class='pln'><span class='str'>        result out to the WSGI server's error stream (wsgi.error).</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t110' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t111' class='pln'><span class='str'>        Args:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t112' class='pln'><span class='str'>            message: A string describing the problem. If a byte-string and</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t113' class='pln'><span class='str'>                running under Python 2, the string is assumed to be encoded</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t114' class='pln'><span class='str'>                as UTF-8.</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t115' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t116' class='pln'><span class='str'>        """</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t117' class='stm run hide_run'>        <span class='key'>if</span> <span class='key'>not</span> <span class='nam'>six</span><span class='op'>.</span><span class='nam'>PY3</span> <span class='key'>and</span> <span class='nam'>isinstance</span><span class='op'>(</span><span class='nam'>message</span><span class='op'>,</span> <span class='nam'>unicode</span><span class='op'>)</span><span class='op'>:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t118' class='stm run hide_run'>            <span class='nam'>message</span> <span class='op'>=</span> <span class='nam'>message</span><span class='op'>.</span><span class='nam'>encode</span><span class='op'>(</span><span class='str'>'utf-8'</span><span class='op'>)</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t119' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t120' class='stm run hide_run'>        <span class='nam'>log_line</span> <span class='op'>=</span> <span class='op'>(</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t121' class='pln'>            <span class='nam'>DEFAULT_ERROR_LOG_FORMAT</span><span class='op'>.</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t122' class='pln'>            <span class='nam'>format</span><span class='op'>(</span><span class='nam'>datetime</span><span class='op'>.</span><span class='nam'>now</span><span class='op'>(</span><span class='op'>)</span><span class='op'>,</span> <span class='nam'>self</span><span class='op'>.</span><span class='nam'>method</span><span class='op'>,</span> <span class='nam'>self</span><span class='op'>.</span><span class='nam'>path</span><span class='op'>,</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t123' class='pln'>                   <span class='nam'>self</span><span class='op'>.</span><span class='nam'>query_string</span><span class='op'>,</span> <span class='nam'>message</span><span class='op'>)</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t124' class='pln'>        <span class='op'>)</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t125' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t126' class='stm run hide_run'>        <span class='nam'>self</span><span class='op'>.</span><span class='nam'>_wsgierrors</span><span class='op'>.</span><span class='nam'>write</span><span class='op'>(</span><span class='nam'>log_line</span><span class='op'>)</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t127' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t128' class='stm run hide_run'>    <span class='key'>def</span> <span class='nam'>client_accepts_json</span><span class='op'>(</span><span class='nam'>self</span><span class='op'>)</span><span class='op'>:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t129' class='pln'>        <span class='str'>"""Return True if the Accept header indicates JSON support"""</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t130' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t131' class='stm run hide_run'>        <span class='nam'>accept</span> <span class='op'>=</span> <span class='nam'>self</span><span class='op'>.</span><span class='nam'>get_header</span><span class='op'>(</span><span class='str'>'Accept'</span><span class='op'>)</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t132' class='stm run hide_run'>        <span class='key'>return</span> <span class='op'>(</span><span class='op'>(</span><span class='nam'>accept</span> <span class='key'>is</span> <span class='key'>not</span> <span class='nam'>None</span><span class='op'>)</span> <span class='key'>and</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t133' class='pln'>                <span class='op'>(</span><span class='op'>(</span><span class='str'>'application/json'</span> <span class='key'>in</span> <span class='nam'>accept</span><span class='op'>)</span> <span class='key'>or</span> <span class='op'>(</span><span class='str'>'*/*'</span> <span class='key'>in</span> <span class='nam'>accept</span><span class='op'>)</span><span class='op'>)</span><span class='op'>)</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t134' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t135' class='stm run hide_run'>    <span class='op'>@</span><span class='nam'>property</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t136' class='pln'>    <span class='key'>def</span> <span class='nam'>url</span><span class='op'>(</span><span class='nam'>self</span><span class='op'>)</span><span class='op'>:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t137' class='stm run hide_run'>        <span class='key'>return</span> <span class='str'>''</span><span class='op'>.</span><span class='nam'>join</span><span class='op'>(</span><span class='op'>[</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t138' class='pln'>            <span class='nam'>self</span><span class='op'>.</span><span class='nam'>protocol</span><span class='op'>,</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t139' class='pln'>            <span class='str'>'://'</span><span class='op'>,</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t140' class='pln'>            <span class='nam'>self</span><span class='op'>.</span><span class='nam'>get_header</span><span class='op'>(</span><span class='str'>'host'</span><span class='op'>)</span><span class='op'>,</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t141' class='pln'>            <span class='nam'>self</span><span class='op'>.</span><span class='nam'>app</span><span class='op'>,</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t142' class='pln'>            <span class='nam'>self</span><span class='op'>.</span><span class='nam'>path</span><span class='op'>,</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t143' class='pln'>            <span class='nam'>self</span><span class='op'>.</span><span class='nam'>query_string</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t144' class='pln'>        <span class='op'>]</span><span class='op'>)</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t145' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t146' class='stm run hide_run'>    <span class='op'>@</span><span class='nam'>property</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t147' class='pln'>    <span class='key'>def</span> <span class='nam'>accept</span><span class='op'>(</span><span class='nam'>self</span><span class='op'>)</span><span class='op'>:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t148' class='stm run hide_run'>        <span class='key'>return</span> <span class='nam'>self</span><span class='op'>.</span><span class='nam'>_get_header_by_wsgi_name</span><span class='op'>(</span><span class='str'>'ACCEPT'</span><span class='op'>)</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t149' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t150' class='stm run hide_run'>    <span class='op'>@</span><span class='nam'>property</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t151' class='pln'>    <span class='key'>def</span> <span class='nam'>auth</span><span class='op'>(</span><span class='nam'>self</span><span class='op'>)</span><span class='op'>:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t152' class='stm run hide_run'>        <span class='key'>return</span> <span class='nam'>self</span><span class='op'>.</span><span class='nam'>_get_header_by_wsgi_name</span><span class='op'>(</span><span class='str'>'AUTHORIZATION'</span><span class='op'>)</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t153' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t154' class='stm run hide_run'>    <span class='op'>@</span><span class='nam'>property</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t155' class='pln'>    <span class='key'>def</span> <span class='nam'>content_length</span><span class='op'>(</span><span class='nam'>self</span><span class='op'>)</span><span class='op'>:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t156' class='stm run hide_run'>        <span class='nam'>value</span> <span class='op'>=</span> <span class='nam'>self</span><span class='op'>.</span><span class='nam'>_get_header_by_wsgi_name</span><span class='op'>(</span><span class='str'>'CONTENT_LENGTH'</span><span class='op'>)</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t157' class='stm run hide_run'>        <span class='key'>if</span> <span class='nam'>value</span> <span class='key'>is</span> <span class='key'>not</span> <span class='nam'>None</span><span class='op'>:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t158' class='stm run hide_run'>            <span class='key'>try</span><span class='op'>:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t159' class='stm run hide_run'>                <span class='key'>return</span> <span class='nam'>int</span><span class='op'>(</span><span class='nam'>value</span><span class='op'>)</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t160' class='stm run hide_run'>            <span class='key'>except</span> <span class='nam'>ValueError</span><span class='op'>:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t161' class='stm run hide_run'>                <span class='key'>pass</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t162' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t163' class='stm run hide_run'>        <span class='key'>return</span> <span class='nam'>None</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t164' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t165' class='stm run hide_run'>    <span class='op'>@</span><span class='nam'>property</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t166' class='pln'>    <span class='key'>def</span> <span class='nam'>content_type</span><span class='op'>(</span><span class='nam'>self</span><span class='op'>)</span><span class='op'>:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t167' class='stm run hide_run'>        <span class='key'>return</span> <span class='nam'>self</span><span class='op'>.</span><span class='nam'>_get_header_by_wsgi_name</span><span class='op'>(</span><span class='str'>'CONTENT_TYPE'</span><span class='op'>)</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t168' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t169' class='stm run hide_run'>    <span class='op'>@</span><span class='nam'>property</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t170' class='pln'>    <span class='key'>def</span> <span class='nam'>date</span><span class='op'>(</span><span class='nam'>self</span><span class='op'>)</span><span class='op'>:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t171' class='stm run hide_run'>        <span class='key'>return</span> <span class='nam'>self</span><span class='op'>.</span><span class='nam'>_get_header_by_wsgi_name</span><span class='op'>(</span><span class='str'>'DATE'</span><span class='op'>)</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t172' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t173' class='stm run hide_run'>    <span class='op'>@</span><span class='nam'>property</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t174' class='pln'>    <span class='key'>def</span> <span class='nam'>expect</span><span class='op'>(</span><span class='nam'>self</span><span class='op'>)</span><span class='op'>:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t175' class='stm run hide_run'>        <span class='key'>return</span> <span class='nam'>self</span><span class='op'>.</span><span class='nam'>_get_header_by_wsgi_name</span><span class='op'>(</span><span class='str'>'EXPECT'</span><span class='op'>)</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t176' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t177' class='stm run hide_run'>    <span class='op'>@</span><span class='nam'>property</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t178' class='pln'>    <span class='key'>def</span> <span class='nam'>if_match</span><span class='op'>(</span><span class='nam'>self</span><span class='op'>)</span><span class='op'>:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t179' class='stm run hide_run'>        <span class='key'>return</span> <span class='nam'>self</span><span class='op'>.</span><span class='nam'>_get_header_by_wsgi_name</span><span class='op'>(</span><span class='str'>'IF_MATCH'</span><span class='op'>)</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t180' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t181' class='stm run hide_run'>    <span class='op'>@</span><span class='nam'>property</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t182' class='pln'>    <span class='key'>def</span> <span class='nam'>if_none_match</span><span class='op'>(</span><span class='nam'>self</span><span class='op'>)</span><span class='op'>:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t183' class='stm run hide_run'>        <span class='key'>return</span> <span class='nam'>self</span><span class='op'>.</span><span class='nam'>_get_header_by_wsgi_name</span><span class='op'>(</span><span class='str'>'IF_NONE_MATCH'</span><span class='op'>)</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t184' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t185' class='stm run hide_run'>    <span class='op'>@</span><span class='nam'>property</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t186' class='pln'>    <span class='key'>def</span> <span class='nam'>if_modified_since</span><span class='op'>(</span><span class='nam'>self</span><span class='op'>)</span><span class='op'>:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t187' class='stm run hide_run'>        <span class='key'>return</span> <span class='nam'>self</span><span class='op'>.</span><span class='nam'>_get_header_by_wsgi_name</span><span class='op'>(</span><span class='str'>'IF_MODIFIED_SINCE'</span><span class='op'>)</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t188' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t189' class='stm run hide_run'>    <span class='op'>@</span><span class='nam'>property</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t190' class='pln'>    <span class='key'>def</span> <span class='nam'>if_unmodified_since</span><span class='op'>(</span><span class='nam'>self</span><span class='op'>)</span><span class='op'>:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t191' class='stm run hide_run'>        <span class='key'>return</span> <span class='nam'>self</span><span class='op'>.</span><span class='nam'>_get_header_by_wsgi_name</span><span class='op'>(</span><span class='str'>'IF_UNMODIFIED_SINCE'</span><span class='op'>)</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t192' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t193' class='stm run hide_run'>    <span class='op'>@</span><span class='nam'>property</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t194' class='pln'>    <span class='key'>def</span> <span class='nam'>if_range</span><span class='op'>(</span><span class='nam'>self</span><span class='op'>)</span><span class='op'>:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t195' class='stm run hide_run'>        <span class='key'>return</span> <span class='nam'>self</span><span class='op'>.</span><span class='nam'>_get_header_by_wsgi_name</span><span class='op'>(</span><span class='str'>'IF_RANGE'</span><span class='op'>)</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t196' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t197' class='stm run hide_run'>    <span class='op'>@</span><span class='nam'>property</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t198' class='pln'>    <span class='key'>def</span> <span class='nam'>range</span><span class='op'>(</span><span class='nam'>self</span><span class='op'>)</span><span class='op'>:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t199' class='stm run hide_run'>        <span class='nam'>value</span> <span class='op'>=</span> <span class='nam'>self</span><span class='op'>.</span><span class='nam'>_get_header_by_wsgi_name</span><span class='op'>(</span><span class='str'>'RANGE'</span><span class='op'>)</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t200' class='stm run hide_run'>        <span class='key'>if</span> <span class='op'>(</span><span class='nam'>value</span> <span class='key'>is</span> <span class='nam'>None</span><span class='op'>)</span> <span class='key'>or</span> <span class='op'>(</span><span class='str'>'-'</span> <span class='key'>not</span> <span class='key'>in</span> <span class='nam'>value</span><span class='op'>)</span><span class='op'>:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t201' class='stm run hide_run'>            <span class='key'>return</span> <span class='nam'>None</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t202' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t203' class='stm run hide_run'>        <span class='key'>try</span><span class='op'>:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t204' class='stm run hide_run'>            <span class='nam'>first</span><span class='op'>,</span> <span class='nam'>last</span> <span class='op'>=</span> <span class='nam'>value</span><span class='op'>.</span><span class='nam'>split</span><span class='op'>(</span><span class='str'>'-'</span><span class='op'>)</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t205' class='stm run hide_run'>        <span class='key'>except</span> <span class='nam'>ValueError</span><span class='op'>:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t206' class='stm run hide_run'>            <span class='key'>return</span> <span class='nam'>None</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t207' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t208' class='stm run hide_run'>        <span class='key'>if</span> <span class='nam'>first</span><span class='op'>:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t209' class='stm run hide_run'>            <span class='key'>if</span> <span class='key'>not</span> <span class='nam'>last</span><span class='op'>:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t210' class='stm run hide_run'>                <span class='nam'>last</span> <span class='op'>=</span> <span class='op'>-</span><span class='num'>1</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t211' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t212' class='stm run hide_run'>            <span class='key'>return</span> <span class='op'>(</span><span class='nam'>int</span><span class='op'>(</span><span class='nam'>first</span><span class='op'>)</span><span class='op'>,</span> <span class='nam'>int</span><span class='op'>(</span><span class='nam'>last</span><span class='op'>)</span><span class='op'>)</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t213' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t214' class='stm run hide_run'>        <span class='key'>elif</span> <span class='nam'>last</span><span class='op'>:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t215' class='stm run hide_run'>            <span class='key'>return</span> <span class='op'>(</span><span class='op'>-</span><span class='nam'>int</span><span class='op'>(</span><span class='nam'>last</span><span class='op'>)</span><span class='op'>,</span> <span class='op'>-</span><span class='num'>1</span><span class='op'>)</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t216' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t217' class='stm run hide_run'>        <span class='key'>return</span> <span class='nam'>None</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t218' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t219' class='stm run hide_run'>    <span class='op'>@</span><span class='nam'>property</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t220' class='pln'>    <span class='key'>def</span> <span class='nam'>user_agent</span><span class='op'>(</span><span class='nam'>self</span><span class='op'>)</span><span class='op'>:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t221' class='stm run hide_run'>        <span class='key'>return</span> <span class='nam'>self</span><span class='op'>.</span><span class='nam'>_get_header_by_wsgi_name</span><span class='op'>(</span><span class='str'>'USER_AGENT'</span><span class='op'>)</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t222' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t223' class='stm run hide_run'>    <span class='key'>def</span> <span class='nam'>get_header</span><span class='op'>(</span><span class='nam'>self</span><span class='op'>,</span> <span class='nam'>name</span><span class='op'>,</span> <span class='nam'>required</span><span class='op'>=</span><span class='nam'>False</span><span class='op'>)</span><span class='op'>:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t224' class='pln'>        <span class='str'>"""Return a header value as a string</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t225' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t226' class='pln'><span class='str'>        Args:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t227' class='pln'><span class='str'>            name: Header name, case-insensitive (e.g., 'Content-Type')</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t228' class='pln'><span class='str'>            required: Set to True to raise HttpBadRequest instead</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t229' class='pln'><span class='str'>              of returning gracefully when the header is not found</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t230' class='pln'><span class='str'>              (default False)</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t231' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t232' class='pln'><span class='str'>        Returns:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t233' class='pln'><span class='str'>            The value of the specified header if it exists, or None if the</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t234' class='pln'><span class='str'>            header is not found and is not required.</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t235' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t236' class='pln'><span class='str'>        Raises:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t237' class='pln'><span class='str'>            HTTPBadRequest: The header was not found in the request, but</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t238' class='pln'><span class='str'>                it was required.</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t239' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t240' class='pln'><span class='str'>        """</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t241' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t242' class='pln'>        <span class='com'># Use try..except to optimize for the header existing in most cases</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t243' class='stm run hide_run'>        <span class='key'>try</span><span class='op'>:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t244' class='pln'>            <span class='com'># Don't take the time to cache beforehand, using HTTP naming.</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t245' class='pln'>            <span class='com'># This will be faster, assuming that most headers are looked</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t246' class='pln'>            <span class='com'># up only once, and not all headers will be requested.</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t247' class='stm run hide_run'>            <span class='key'>return</span> <span class='nam'>self</span><span class='op'>.</span><span class='nam'>_headers</span><span class='op'>[</span><span class='nam'>name</span><span class='op'>.</span><span class='nam'>upper</span><span class='op'>(</span><span class='op'>)</span><span class='op'>.</span><span class='nam'>replace</span><span class='op'>(</span><span class='str'>'-'</span><span class='op'>,</span> <span class='str'>'_'</span><span class='op'>)</span><span class='op'>]</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t248' class='stm run hide_run'>        <span class='key'>except</span> <span class='nam'>KeyError</span><span class='op'>:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t249' class='stm run hide_run'>            <span class='key'>if</span> <span class='key'>not</span> <span class='nam'>required</span><span class='op'>:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t250' class='stm run hide_run'>                <span class='key'>return</span> <span class='nam'>None</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t251' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t252' class='stm run hide_run'>            <span class='nam'>description</span> <span class='op'>=</span> <span class='str'>'The "'</span> <span class='op'>+</span> <span class='nam'>name</span> <span class='op'>+</span> <span class='str'>'" header is required.'</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t253' class='stm run hide_run'>            <span class='key'>raise</span> <span class='nam'>HTTPBadRequest</span><span class='op'>(</span><span class='str'>'Missing header'</span><span class='op'>,</span> <span class='nam'>description</span><span class='op'>)</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t254' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t255' class='stm run hide_run'>    <span class='key'>def</span> <span class='nam'>get_param</span><span class='op'>(</span><span class='nam'>self</span><span class='op'>,</span> <span class='nam'>name</span><span class='op'>,</span> <span class='nam'>required</span><span class='op'>=</span><span class='nam'>False</span><span class='op'>)</span><span class='op'>:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t256' class='pln'>        <span class='str'>"""Return the value of a query string parameter as a string</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t257' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t258' class='pln'><span class='str'>        Args:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t259' class='pln'><span class='str'>            name: Parameter name, case-sensitive (e.g., 'sort')</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t260' class='pln'><span class='str'>            required: Set to True to raise HTTPBadRequest instead of returning</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t261' class='pln'><span class='str'>                gracefully when the parameter is not found (default False)</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t262' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t263' class='pln'><span class='str'>        Returns:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t264' class='pln'><span class='str'>            The value of the param as a string, or None if param is not found</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t265' class='pln'><span class='str'>            and is not required.</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t266' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t267' class='pln'><span class='str'>        Raises:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t268' class='pln'><span class='str'>            HTTPBadRequest: The param was not found in the request, but was</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t269' class='pln'><span class='str'>                required.</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t270' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t271' class='pln'><span class='str'>        """</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t272' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t273' class='pln'>        <span class='com'># PERF: Use if..in since it is a good all-around performer; we don't</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t274' class='pln'>        <span class='com'>#       know how likely params are to be specified by clients.</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t275' class='stm run hide_run'>        <span class='key'>if</span> <span class='nam'>name</span> <span class='key'>in</span> <span class='nam'>self</span><span class='op'>.</span><span class='nam'>_params</span><span class='op'>:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t276' class='stm run hide_run'>            <span class='key'>return</span> <span class='nam'>self</span><span class='op'>.</span><span class='nam'>_params</span><span class='op'>[</span><span class='nam'>name</span><span class='op'>]</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t277' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t278' class='stm run hide_run'>        <span class='key'>if</span> <span class='key'>not</span> <span class='nam'>required</span><span class='op'>:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t279' class='stm run hide_run'>            <span class='key'>return</span> <span class='nam'>None</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t280' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t281' class='stm run hide_run'>        <span class='nam'>message</span> <span class='op'>=</span> <span class='str'>'The "'</span> <span class='op'>+</span> <span class='nam'>name</span> <span class='op'>+</span> <span class='str'>'" query parameter is required.'</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t282' class='stm run hide_run'>        <span class='key'>raise</span> <span class='nam'>HTTPBadRequest</span><span class='op'>(</span><span class='str'>'Missing query parameter'</span><span class='op'>,</span> <span class='nam'>message</span><span class='op'>)</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t283' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t284' class='stm run hide_run'>    <span class='key'>def</span> <span class='nam'>get_param_as_int</span><span class='op'>(</span><span class='nam'>self</span><span class='op'>,</span> <span class='nam'>name</span><span class='op'>,</span> <span class='nam'>required</span><span class='op'>=</span><span class='nam'>False</span><span class='op'>)</span><span class='op'>:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t285' class='pln'>        <span class='str'>"""Return the value of a query string parameter as an int</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t286' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t287' class='pln'><span class='str'>        Args:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t288' class='pln'><span class='str'>            name: Parameter name, case-sensitive (e.g., 'limit')</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t289' class='pln'><span class='str'>            required: Set to True to raise HTTPBadRequest instead of returning</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t290' class='pln'><span class='str'>                gracefully when the parameter is not found or is not an</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t291' class='pln'><span class='str'>                integer (default False)</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t292' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t293' class='pln'><span class='str'>        Returns:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t294' class='pln'><span class='str'>            The value of the param if it is found and can be converted to an</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t295' class='pln'><span class='str'>            integer. Otherwise, returns None unless required is True.</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t296' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t297' class='pln'><span class='str'>        Raises</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t298' class='pln'><span class='str'>            HTTPBadRequest: The param was not found in the request, but was</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t299' class='pln'><span class='str'>                required.</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t300' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t301' class='pln'><span class='str'>        """</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t302' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t303' class='pln'>        <span class='com'># PERF: Use if..in since it is a good all-around performer; we don't</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t304' class='pln'>        <span class='com'>#       know how likely params are to be specified by clients.</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t305' class='stm run hide_run'>        <span class='key'>if</span> <span class='nam'>name</span> <span class='key'>in</span> <span class='nam'>self</span><span class='op'>.</span><span class='nam'>_params</span><span class='op'>:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t306' class='stm run hide_run'>            <span class='nam'>val</span> <span class='op'>=</span> <span class='nam'>self</span><span class='op'>.</span><span class='nam'>_params</span><span class='op'>[</span><span class='nam'>name</span><span class='op'>]</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t307' class='stm run hide_run'>            <span class='key'>try</span><span class='op'>:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t308' class='stm run hide_run'>                <span class='key'>return</span> <span class='nam'>int</span><span class='op'>(</span><span class='nam'>val</span><span class='op'>)</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t309' class='stm run hide_run'>            <span class='key'>except</span> <span class='nam'>ValueError</span><span class='op'>:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t310' class='stm run hide_run'>                <span class='key'>pass</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t311' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t312' class='stm run hide_run'>        <span class='key'>if</span> <span class='key'>not</span> <span class='nam'>required</span><span class='op'>:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t313' class='stm run hide_run'>            <span class='key'>return</span> <span class='nam'>None</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t314' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t315' class='stm run hide_run'>        <span class='nam'>message</span> <span class='op'>=</span> <span class='str'>'The "'</span> <span class='op'>+</span> <span class='nam'>name</span> <span class='op'>+</span> <span class='str'>'" query parameter is required.'</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t316' class='stm run hide_run'>        <span class='key'>raise</span> <span class='nam'>HTTPBadRequest</span><span class='op'>(</span><span class='str'>'Missing query parameter'</span><span class='op'>,</span> <span class='nam'>message</span><span class='op'>)</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t317' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t318' class='stm run hide_run'>    <span class='key'>def</span> <span class='nam'>get_param_as_list</span><span class='op'>(</span><span class='nam'>self</span><span class='op'>,</span> <span class='nam'>name</span><span class='op'>,</span> <span class='nam'>required</span><span class='op'>=</span><span class='nam'>False</span><span class='op'>)</span><span class='op'>:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t319' class='pln'>        <span class='str'>"""Return the value of a query string parameter as an int</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t320' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t321' class='pln'><span class='str'>        Args:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t322' class='pln'><span class='str'>            name: Parameter name, case-sensitive (e.g., 'limit')</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t323' class='pln'><span class='str'>            required: Set to True to raise HTTPBadRequest instead of returning</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t324' class='pln'><span class='str'>                gracefully when the parameter is not found or is not an</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t325' class='pln'><span class='str'>                integer (default False)</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t326' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t327' class='pln'><span class='str'>        Returns:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t328' class='pln'><span class='str'>            The value of the param if it is found and can be converted to an</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t329' class='pln'><span class='str'>            integer. Otherwise, returns None unless required is True.</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t330' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t331' class='pln'><span class='str'>        Raises</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t332' class='pln'><span class='str'>            HTTPBadRequest: The param was not found in the request, but was</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t333' class='pln'><span class='str'>                required.</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t334' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t335' class='pln'><span class='str'>        """</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t336' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t337' class='pln'>        <span class='com'># PERF: Use if..in since it is a good all-around performer; we don't</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t338' class='pln'>        <span class='com'>#       know how likely params are to be specified by clients.</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t339' class='stm run hide_run'>        <span class='key'>if</span> <span class='nam'>name</span> <span class='key'>in</span> <span class='nam'>self</span><span class='op'>.</span><span class='nam'>_params</span><span class='op'>:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t340' class='stm run hide_run'>            <span class='key'>return</span> <span class='nam'>self</span><span class='op'>.</span><span class='nam'>_params</span><span class='op'>[</span><span class='nam'>name</span><span class='op'>]</span><span class='op'>.</span><span class='nam'>split</span><span class='op'>(</span><span class='str'>','</span><span class='op'>)</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t341' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t342' class='stm run hide_run'>        <span class='key'>if</span> <span class='key'>not</span> <span class='nam'>required</span><span class='op'>:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t343' class='stm run hide_run'>            <span class='key'>return</span> <span class='nam'>None</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t344' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t345' class='stm run hide_run'>        <span class='key'>raise</span> <span class='nam'>HTTPBadRequest</span><span class='op'>(</span><span class='str'>'Missing query parameter'</span><span class='op'>,</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t346' class='pln'>                             <span class='str'>'The "'</span> <span class='op'>+</span> <span class='nam'>name</span> <span class='op'>+</span> <span class='str'>'" query parameter is required.'</span><span class='op'>)</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t347' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t348' class='pln'>    <span class='com'># -------------------------------------------------------------------------</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t349' class='pln'>    <span class='com'># Helpers</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t350' class='pln'>    <span class='com'># -------------------------------------------------------------------------</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t351' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t352' class='stm run hide_run'>    <span class='key'>def</span> <span class='nam'>_get_header_by_wsgi_name</span><span class='op'>(</span><span class='nam'>self</span><span class='op'>,</span> <span class='nam'>name</span><span class='op'>)</span><span class='op'>:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t353' class='pln'>        <span class='str'>"""Looks up a header, assuming name is already UPPERCASE_UNDERSCORE</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t354' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t355' class='pln'><span class='str'>        Args:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t356' class='pln'><span class='str'>            name: Name of the header, already uppercased, and underscored</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t357' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t358' class='pln'><span class='str'>        Returns:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t359' class='pln'><span class='str'>            Value of the specified header, or None if not found</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t360' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t361' class='pln'><span class='str'>        """</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t362' class='stm run hide_run'>        <span class='key'>try</span><span class='op'>:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t363' class='stm run hide_run'>            <span class='key'>return</span> <span class='nam'>self</span><span class='op'>.</span><span class='nam'>_headers</span><span class='op'>[</span><span class='nam'>name</span><span class='op'>]</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t364' class='stm run hide_run'>        <span class='key'>except</span> <span class='nam'>KeyError</span><span class='op'>:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t365' class='stm run hide_run'>            <span class='key'>return</span> <span class='nam'>None</span><span class='strut'> </span></p>
 | 
			
		||||
                
 | 
			
		||||
            </td>
 | 
			
		||||
        </tr>
 | 
			
		||||
    </table>
 | 
			
		||||
</div>
 | 
			
		||||
 | 
			
		||||
<div id='footer'>
 | 
			
		||||
    <div class='content'>
 | 
			
		||||
        <p>
 | 
			
		||||
            <a class='nav' href='index.html'>« index</a>     <a class='nav' href='http://nedbatchelder.com/code/coverage'>coverage.py v3.6</a>
 | 
			
		||||
        </p>
 | 
			
		||||
    </div>
 | 
			
		||||
</div>
 | 
			
		||||
 | 
			
		||||
</body>
 | 
			
		||||
</html>
 | 
			
		||||
							
								
								
									
										270
									
								
								tests/cover/falcon_request_helpers.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										270
									
								
								tests/cover/falcon_request_helpers.html
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,270 @@
 | 
			
		||||
<!doctype html PUBLIC "-//W3C//DTD html 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
 | 
			
		||||
<html>
 | 
			
		||||
<head>
 | 
			
		||||
    <meta http-equiv='Content-Type' content='text/html; charset=utf-8'>
 | 
			
		||||
    
 | 
			
		||||
    
 | 
			
		||||
    <meta http-equiv='X-UA-Compatible' content='IE=emulateIE7' />
 | 
			
		||||
    <title>Coverage for falcon.request_helpers: 100%</title>
 | 
			
		||||
    <link rel='stylesheet' href='style.css' type='text/css'>
 | 
			
		||||
    
 | 
			
		||||
    <script type='text/javascript' src='jquery-1.4.3.min.js'></script>
 | 
			
		||||
    <script type='text/javascript' src='jquery.hotkeys.js'></script>
 | 
			
		||||
    <script type='text/javascript' src='jquery.isonscreen.js'></script>
 | 
			
		||||
    <script type='text/javascript' src='coverage_html.js'></script>
 | 
			
		||||
    <script type='text/javascript' charset='utf-8'>
 | 
			
		||||
        jQuery(document).ready(coverage.pyfile_ready);
 | 
			
		||||
    </script>
 | 
			
		||||
</head>
 | 
			
		||||
<body id='pyfile'>
 | 
			
		||||
 | 
			
		||||
<div id='header'>
 | 
			
		||||
    <div class='content'>
 | 
			
		||||
        <h1>Coverage for <b>falcon.request_helpers</b> :
 | 
			
		||||
            <span class='pc_cov'>100%</span>
 | 
			
		||||
        </h1>
 | 
			
		||||
        <img id='keyboard_icon' src='keybd_closed.png'>
 | 
			
		||||
        <h2 class='stats'>
 | 
			
		||||
            23 statements  
 | 
			
		||||
            <span class='run hide_run shortkey_r button_toggle_run'>23 run</span>
 | 
			
		||||
            <span class='mis shortkey_m button_toggle_mis'>0 missing</span>
 | 
			
		||||
            <span class='exc shortkey_x button_toggle_exc'>0 excluded</span>
 | 
			
		||||
            
 | 
			
		||||
        </h2>
 | 
			
		||||
    </div>
 | 
			
		||||
</div>
 | 
			
		||||
 | 
			
		||||
<div class='help_panel'>
 | 
			
		||||
    <img id='panel_icon' src='keybd_open.png'>
 | 
			
		||||
<p class='legend'>Hot-keys on this page</p>
 | 
			
		||||
    <div>
 | 
			
		||||
<p class='keyhelp'>
 | 
			
		||||
        <span class='key'>r</span>
 | 
			
		||||
        <span class='key'>m</span>
 | 
			
		||||
        <span class='key'>x</span>
 | 
			
		||||
        <span class='key'>p</span>   toggle line displays
 | 
			
		||||
    </p>
 | 
			
		||||
<p class='keyhelp'>
 | 
			
		||||
        <span class='key'>j</span>
 | 
			
		||||
        <span class='key'>k</span>   next/prev highlighted chunk
 | 
			
		||||
    </p>
 | 
			
		||||
<p class='keyhelp'>
 | 
			
		||||
        <span class='key'>0</span>   (zero) top of page
 | 
			
		||||
    </p>
 | 
			
		||||
<p class='keyhelp'>
 | 
			
		||||
        <span class='key'>1</span>   (one) first highlighted chunk
 | 
			
		||||
    </p>
 | 
			
		||||
    </div>
 | 
			
		||||
</div>
 | 
			
		||||
 | 
			
		||||
<div id='source'>
 | 
			
		||||
    <table cellspacing='0' cellpadding='0'>
 | 
			
		||||
        <tr>
 | 
			
		||||
            <td class='linenos' valign='top'>
 | 
			
		||||
<p id='n1' class='pln'><a href='#n1'>1</a></p>
 | 
			
		||||
<p id='n2' class='pln'><a href='#n2'>2</a></p>
 | 
			
		||||
<p id='n3' class='pln'><a href='#n3'>3</a></p>
 | 
			
		||||
<p id='n4' class='pln'><a href='#n4'>4</a></p>
 | 
			
		||||
<p id='n5' class='pln'><a href='#n5'>5</a></p>
 | 
			
		||||
<p id='n6' class='pln'><a href='#n6'>6</a></p>
 | 
			
		||||
<p id='n7' class='pln'><a href='#n7'>7</a></p>
 | 
			
		||||
<p id='n8' class='pln'><a href='#n8'>8</a></p>
 | 
			
		||||
<p id='n9' class='pln'><a href='#n9'>9</a></p>
 | 
			
		||||
<p id='n10' class='pln'><a href='#n10'>10</a></p>
 | 
			
		||||
<p id='n11' class='pln'><a href='#n11'>11</a></p>
 | 
			
		||||
<p id='n12' class='pln'><a href='#n12'>12</a></p>
 | 
			
		||||
<p id='n13' class='pln'><a href='#n13'>13</a></p>
 | 
			
		||||
<p id='n14' class='pln'><a href='#n14'>14</a></p>
 | 
			
		||||
<p id='n15' class='pln'><a href='#n15'>15</a></p>
 | 
			
		||||
<p id='n16' class='pln'><a href='#n16'>16</a></p>
 | 
			
		||||
<p id='n17' class='pln'><a href='#n17'>17</a></p>
 | 
			
		||||
<p id='n18' class='pln'><a href='#n18'>18</a></p>
 | 
			
		||||
<p id='n19' class='stm run hide_run'><a href='#n19'>19</a></p>
 | 
			
		||||
<p id='n20' class='pln'><a href='#n20'>20</a></p>
 | 
			
		||||
<p id='n21' class='stm run hide_run'><a href='#n21'>21</a></p>
 | 
			
		||||
<p id='n22' class='pln'><a href='#n22'>22</a></p>
 | 
			
		||||
<p id='n23' class='pln'><a href='#n23'>23</a></p>
 | 
			
		||||
<p id='n24' class='stm run hide_run'><a href='#n24'>24</a></p>
 | 
			
		||||
<p id='n25' class='pln'><a href='#n25'>25</a></p>
 | 
			
		||||
<p id='n26' class='pln'><a href='#n26'>26</a></p>
 | 
			
		||||
<p id='n27' class='pln'><a href='#n27'>27</a></p>
 | 
			
		||||
<p id='n28' class='pln'><a href='#n28'>28</a></p>
 | 
			
		||||
<p id='n29' class='pln'><a href='#n29'>29</a></p>
 | 
			
		||||
<p id='n30' class='pln'><a href='#n30'>30</a></p>
 | 
			
		||||
<p id='n31' class='pln'><a href='#n31'>31</a></p>
 | 
			
		||||
<p id='n32' class='pln'><a href='#n32'>32</a></p>
 | 
			
		||||
<p id='n33' class='pln'><a href='#n33'>33</a></p>
 | 
			
		||||
<p id='n34' class='pln'><a href='#n34'>34</a></p>
 | 
			
		||||
<p id='n35' class='pln'><a href='#n35'>35</a></p>
 | 
			
		||||
<p id='n36' class='pln'><a href='#n36'>36</a></p>
 | 
			
		||||
<p id='n37' class='pln'><a href='#n37'>37</a></p>
 | 
			
		||||
<p id='n38' class='pln'><a href='#n38'>38</a></p>
 | 
			
		||||
<p id='n39' class='pln'><a href='#n39'>39</a></p>
 | 
			
		||||
<p id='n40' class='pln'><a href='#n40'>40</a></p>
 | 
			
		||||
<p id='n41' class='pln'><a href='#n41'>41</a></p>
 | 
			
		||||
<p id='n42' class='pln'><a href='#n42'>42</a></p>
 | 
			
		||||
<p id='n43' class='pln'><a href='#n43'>43</a></p>
 | 
			
		||||
<p id='n44' class='pln'><a href='#n44'>44</a></p>
 | 
			
		||||
<p id='n45' class='stm run hide_run'><a href='#n45'>45</a></p>
 | 
			
		||||
<p id='n46' class='stm run hide_run'><a href='#n46'>46</a></p>
 | 
			
		||||
<p id='n47' class='stm run hide_run'><a href='#n47'>47</a></p>
 | 
			
		||||
<p id='n48' class='pln'><a href='#n48'>48</a></p>
 | 
			
		||||
<p id='n49' class='stm run hide_run'><a href='#n49'>49</a></p>
 | 
			
		||||
<p id='n50' class='pln'><a href='#n50'>50</a></p>
 | 
			
		||||
<p id='n51' class='pln'><a href='#n51'>51</a></p>
 | 
			
		||||
<p id='n52' class='stm run hide_run'><a href='#n52'>52</a></p>
 | 
			
		||||
<p id='n53' class='pln'><a href='#n53'>53</a></p>
 | 
			
		||||
<p id='n54' class='pln'><a href='#n54'>54</a></p>
 | 
			
		||||
<p id='n55' class='pln'><a href='#n55'>55</a></p>
 | 
			
		||||
<p id='n56' class='pln'><a href='#n56'>56</a></p>
 | 
			
		||||
<p id='n57' class='pln'><a href='#n57'>57</a></p>
 | 
			
		||||
<p id='n58' class='pln'><a href='#n58'>58</a></p>
 | 
			
		||||
<p id='n59' class='pln'><a href='#n59'>59</a></p>
 | 
			
		||||
<p id='n60' class='pln'><a href='#n60'>60</a></p>
 | 
			
		||||
<p id='n61' class='pln'><a href='#n61'>61</a></p>
 | 
			
		||||
<p id='n62' class='pln'><a href='#n62'>62</a></p>
 | 
			
		||||
<p id='n63' class='pln'><a href='#n63'>63</a></p>
 | 
			
		||||
<p id='n64' class='pln'><a href='#n64'>64</a></p>
 | 
			
		||||
<p id='n65' class='pln'><a href='#n65'>65</a></p>
 | 
			
		||||
<p id='n66' class='pln'><a href='#n66'>66</a></p>
 | 
			
		||||
<p id='n67' class='pln'><a href='#n67'>67</a></p>
 | 
			
		||||
<p id='n68' class='pln'><a href='#n68'>68</a></p>
 | 
			
		||||
<p id='n69' class='pln'><a href='#n69'>69</a></p>
 | 
			
		||||
<p id='n70' class='pln'><a href='#n70'>70</a></p>
 | 
			
		||||
<p id='n71' class='stm run hide_run'><a href='#n71'>71</a></p>
 | 
			
		||||
<p id='n72' class='stm run hide_run'><a href='#n72'>72</a></p>
 | 
			
		||||
<p id='n73' class='stm run hide_run'><a href='#n73'>73</a></p>
 | 
			
		||||
<p id='n74' class='stm run hide_run'><a href='#n74'>74</a></p>
 | 
			
		||||
<p id='n75' class='pln'><a href='#n75'>75</a></p>
 | 
			
		||||
<p id='n76' class='pln'><a href='#n76'>76</a></p>
 | 
			
		||||
<p id='n77' class='stm run hide_run'><a href='#n77'>77</a></p>
 | 
			
		||||
<p id='n78' class='stm run hide_run'><a href='#n78'>78</a></p>
 | 
			
		||||
<p id='n79' class='pln'><a href='#n79'>79</a></p>
 | 
			
		||||
<p id='n80' class='pln'><a href='#n80'>80</a></p>
 | 
			
		||||
<p id='n81' class='stm run hide_run'><a href='#n81'>81</a></p>
 | 
			
		||||
<p id='n82' class='stm run hide_run'><a href='#n82'>82</a></p>
 | 
			
		||||
<p id='n83' class='pln'><a href='#n83'>83</a></p>
 | 
			
		||||
<p id='n84' class='pln'><a href='#n84'>84</a></p>
 | 
			
		||||
<p id='n85' class='stm run hide_run'><a href='#n85'>85</a></p>
 | 
			
		||||
<p id='n86' class='stm run hide_run'><a href='#n86'>86</a></p>
 | 
			
		||||
<p id='n87' class='stm run hide_run'><a href='#n87'>87</a></p>
 | 
			
		||||
<p id='n88' class='pln'><a href='#n88'>88</a></p>
 | 
			
		||||
<p id='n89' class='stm run hide_run'><a href='#n89'>89</a></p>
 | 
			
		||||
<p id='n90' class='stm run hide_run'><a href='#n90'>90</a></p>
 | 
			
		||||
<p id='n91' class='pln'><a href='#n91'>91</a></p>
 | 
			
		||||
<p id='n92' class='stm run hide_run'><a href='#n92'>92</a></p>
 | 
			
		||||
<p id='n93' class='pln'><a href='#n93'>93</a></p>
 | 
			
		||||
<p id='n94' class='stm run hide_run'><a href='#n94'>94</a></p>
 | 
			
		||||
                
 | 
			
		||||
            </td>
 | 
			
		||||
            <td class='text' valign='top'>
 | 
			
		||||
<p id='t1' class='pln'><span class='str'>"""Defines private helper functions for the Request class.</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t2' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t3' class='pln'><span class='str'>Copyright 2013 by Rackspace Hosting, Inc.</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t4' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t5' class='pln'><span class='str'>Licensed under the Apache License, Version 2.0 (the "License");</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t6' class='pln'><span class='str'>you may not use this file except in compliance with the License.</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t7' class='pln'><span class='str'>You may obtain a copy of the License at</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t8' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t9' class='pln'><span class='str'>   http://www.apache.org/licenses/LICENSE-2.0</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t10' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t11' class='pln'><span class='str'>Unless required by applicable law or agreed to in writing, software</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t12' class='pln'><span class='str'>distributed under the License is distributed on an "AS IS" BASIS,</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t13' class='pln'><span class='str'>WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t14' class='pln'><span class='str'>See the License for the specific language governing permissions and</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t15' class='pln'><span class='str'>limitations under the License.</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t16' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t17' class='pln'><span class='str'>"""</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t18' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t19' class='stm run hide_run'><span class='key'>import</span> <span class='nam'>re</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t20' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t21' class='stm run hide_run'><span class='nam'>QS_PATTERN</span> <span class='op'>=</span> <span class='nam'>re</span><span class='op'>.</span><span class='nam'>compile</span><span class='op'>(</span><span class='str'>r'([a-zA-Z_]+)=([^&]+)'</span><span class='op'>)</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t22' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t23' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t24' class='stm run hide_run'><span class='key'>def</span> <span class='nam'>parse_query_string</span><span class='op'>(</span><span class='nam'>query_string</span><span class='op'>)</span><span class='op'>:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t25' class='pln'>    <span class='str'>"""Parse a query string into a dict</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t26' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t27' class='pln'><span class='str'>    Query string parameters are assumed to use standard form-encoding. Only</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t28' class='pln'><span class='str'>    parameters with values are parsed. for example, given "foo=bar&flag",</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t29' class='pln'><span class='str'>    this function would ignore "flag".</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t30' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t31' class='pln'><span class='str'>    Args:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t32' class='pln'><span class='str'>        query_string: The query string to parse</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t33' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t34' class='pln'><span class='str'>    Returns:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t35' class='pln'><span class='str'>        A dict containing (name, value) pairs, one per query parameter. Note</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t36' class='pln'><span class='str'>        that value will be a string, and that name is case-sensitive, both</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t37' class='pln'><span class='str'>        copied directly from the query string.</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t38' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t39' class='pln'><span class='str'>    Raises:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t40' class='pln'><span class='str'>        TypeError: query_string was not a string or buffer</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t41' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t42' class='pln'><span class='str'>    """</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t43' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t44' class='pln'>    <span class='com'># PERF: use for loop in lieu of the dict constructor</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t45' class='stm run hide_run'>    <span class='nam'>params</span> <span class='op'>=</span> <span class='op'>{</span><span class='op'>}</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t46' class='stm run hide_run'>    <span class='key'>for</span> <span class='nam'>k</span><span class='op'>,</span> <span class='nam'>v</span> <span class='key'>in</span> <span class='nam'>QS_PATTERN</span><span class='op'>.</span><span class='nam'>findall</span><span class='op'>(</span><span class='nam'>query_string</span><span class='op'>)</span><span class='op'>:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t47' class='stm run hide_run'>        <span class='nam'>params</span><span class='op'>[</span><span class='nam'>k</span><span class='op'>]</span> <span class='op'>=</span> <span class='nam'>v</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t48' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t49' class='stm run hide_run'>    <span class='key'>return</span> <span class='nam'>params</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t50' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t51' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t52' class='stm run hide_run'><span class='key'>def</span> <span class='nam'>parse_headers</span><span class='op'>(</span><span class='nam'>env</span><span class='op'>)</span><span class='op'>:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t53' class='pln'>    <span class='str'>"""Parse HTTP headers out of a WSGI environ dictionary</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t54' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t55' class='pln'><span class='str'>    Args:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t56' class='pln'><span class='str'>        env: A WSGI environ dictionary</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t57' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t58' class='pln'><span class='str'>    Returns:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t59' class='pln'><span class='str'>        A dict containing (name, value) pairs, one per HTTP header</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t60' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t61' class='pln'><span class='str'>    Raises:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t62' class='pln'><span class='str'>        KeyError: The env dictionary did not contain a key that is required by</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t63' class='pln'><span class='str'>            PEP-333.</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t64' class='pln'><span class='str'>        TypeError: env is not dictionary-like. In other words, it has no</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t65' class='pln'><span class='str'>            attribute '__getitem__'.</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t66' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t67' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t68' class='pln'><span class='str'>    """</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t69' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t70' class='pln'>    <span class='com'># Parse HTTP_*</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t71' class='stm run hide_run'>    <span class='nam'>headers</span> <span class='op'>=</span> <span class='op'>{</span><span class='op'>}</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t72' class='stm run hide_run'>    <span class='key'>for</span> <span class='nam'>key</span> <span class='key'>in</span> <span class='nam'>env</span><span class='op'>:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t73' class='stm run hide_run'>        <span class='key'>if</span> <span class='nam'>key</span><span class='op'>.</span><span class='nam'>startswith</span><span class='op'>(</span><span class='str'>'HTTP_'</span><span class='op'>)</span><span class='op'>:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t74' class='stm run hide_run'>            <span class='nam'>headers</span><span class='op'>[</span><span class='nam'>key</span><span class='op'>[</span><span class='num'>5</span><span class='op'>:</span><span class='op'>]</span><span class='op'>]</span> <span class='op'>=</span> <span class='nam'>env</span><span class='op'>[</span><span class='nam'>key</span><span class='op'>]</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t75' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t76' class='pln'>    <span class='com'># Per the WSGI spec, Content-Type is not under HTTP_*</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t77' class='stm run hide_run'>    <span class='key'>if</span> <span class='str'>'CONTENT_TYPE'</span> <span class='key'>in</span> <span class='nam'>env</span><span class='op'>:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t78' class='stm run hide_run'>        <span class='nam'>headers</span><span class='op'>[</span><span class='str'>'CONTENT_TYPE'</span><span class='op'>]</span> <span class='op'>=</span> <span class='nam'>env</span><span class='op'>[</span><span class='str'>'CONTENT_TYPE'</span><span class='op'>]</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t79' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t80' class='pln'>    <span class='com'># Per the WSGI spec, Content-Length is not under HTTP_*</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t81' class='stm run hide_run'>    <span class='key'>if</span> <span class='str'>'CONTENT_LENGTH'</span> <span class='key'>in</span> <span class='nam'>env</span><span class='op'>:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t82' class='stm run hide_run'>        <span class='nam'>headers</span><span class='op'>[</span><span class='str'>'CONTENT_LENGTH'</span><span class='op'>]</span> <span class='op'>=</span> <span class='nam'>env</span><span class='op'>[</span><span class='str'>'CONTENT_LENGTH'</span><span class='op'>]</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t83' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t84' class='pln'>    <span class='com'># Fallback to SERVER_* vars if the Host header isn't specified</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t85' class='stm run hide_run'>    <span class='key'>if</span> <span class='str'>'HOST'</span> <span class='key'>not</span> <span class='key'>in</span> <span class='nam'>headers</span><span class='op'>:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t86' class='stm run hide_run'>        <span class='nam'>host</span> <span class='op'>=</span> <span class='nam'>env</span><span class='op'>[</span><span class='str'>'SERVER_NAME'</span><span class='op'>]</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t87' class='stm run hide_run'>        <span class='nam'>port</span> <span class='op'>=</span> <span class='nam'>env</span><span class='op'>[</span><span class='str'>'SERVER_PORT'</span><span class='op'>]</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t88' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t89' class='stm run hide_run'>        <span class='key'>if</span> <span class='nam'>port</span> <span class='op'>!=</span> <span class='str'>'80'</span><span class='op'>:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t90' class='stm run hide_run'>            <span class='nam'>host</span> <span class='op'>=</span> <span class='str'>''</span><span class='op'>.</span><span class='nam'>join</span><span class='op'>(</span><span class='op'>[</span><span class='nam'>host</span><span class='op'>,</span> <span class='str'>':'</span><span class='op'>,</span> <span class='nam'>port</span><span class='op'>]</span><span class='op'>)</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t91' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t92' class='stm run hide_run'>        <span class='nam'>headers</span><span class='op'>[</span><span class='str'>'HOST'</span><span class='op'>]</span> <span class='op'>=</span> <span class='nam'>host</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t93' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t94' class='stm run hide_run'>    <span class='key'>return</span> <span class='nam'>headers</span><span class='strut'> </span></p>
 | 
			
		||||
                
 | 
			
		||||
            </td>
 | 
			
		||||
        </tr>
 | 
			
		||||
    </table>
 | 
			
		||||
</div>
 | 
			
		||||
 | 
			
		||||
<div id='footer'>
 | 
			
		||||
    <div class='content'>
 | 
			
		||||
        <p>
 | 
			
		||||
            <a class='nav' href='index.html'>« index</a>     <a class='nav' href='http://nedbatchelder.com/code/coverage'>coverage.py v3.6</a>
 | 
			
		||||
        </p>
 | 
			
		||||
    </div>
 | 
			
		||||
</div>
 | 
			
		||||
 | 
			
		||||
</body>
 | 
			
		||||
</html>
 | 
			
		||||
							
								
								
									
										172
									
								
								tests/cover/falcon_responders.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										172
									
								
								tests/cover/falcon_responders.html
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,172 @@
 | 
			
		||||
<!doctype html PUBLIC "-//W3C//DTD html 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
 | 
			
		||||
<html>
 | 
			
		||||
<head>
 | 
			
		||||
    <meta http-equiv='Content-Type' content='text/html; charset=utf-8'>
 | 
			
		||||
    
 | 
			
		||||
    
 | 
			
		||||
    <meta http-equiv='X-UA-Compatible' content='IE=emulateIE7' />
 | 
			
		||||
    <title>Coverage for falcon.responders: 100%</title>
 | 
			
		||||
    <link rel='stylesheet' href='style.css' type='text/css'>
 | 
			
		||||
    
 | 
			
		||||
    <script type='text/javascript' src='jquery-1.4.3.min.js'></script>
 | 
			
		||||
    <script type='text/javascript' src='jquery.hotkeys.js'></script>
 | 
			
		||||
    <script type='text/javascript' src='jquery.isonscreen.js'></script>
 | 
			
		||||
    <script type='text/javascript' src='coverage_html.js'></script>
 | 
			
		||||
    <script type='text/javascript' charset='utf-8'>
 | 
			
		||||
        jQuery(document).ready(coverage.pyfile_ready);
 | 
			
		||||
    </script>
 | 
			
		||||
</head>
 | 
			
		||||
<body id='pyfile'>
 | 
			
		||||
 | 
			
		||||
<div id='header'>
 | 
			
		||||
    <div class='content'>
 | 
			
		||||
        <h1>Coverage for <b>falcon.responders</b> :
 | 
			
		||||
            <span class='pc_cov'>100%</span>
 | 
			
		||||
        </h1>
 | 
			
		||||
        <img id='keyboard_icon' src='keybd_closed.png'>
 | 
			
		||||
        <h2 class='stats'>
 | 
			
		||||
            10 statements  
 | 
			
		||||
            <span class='run hide_run shortkey_r button_toggle_run'>10 run</span>
 | 
			
		||||
            <span class='mis shortkey_m button_toggle_mis'>0 missing</span>
 | 
			
		||||
            <span class='exc shortkey_x button_toggle_exc'>0 excluded</span>
 | 
			
		||||
            
 | 
			
		||||
        </h2>
 | 
			
		||||
    </div>
 | 
			
		||||
</div>
 | 
			
		||||
 | 
			
		||||
<div class='help_panel'>
 | 
			
		||||
    <img id='panel_icon' src='keybd_open.png'>
 | 
			
		||||
<p class='legend'>Hot-keys on this page</p>
 | 
			
		||||
    <div>
 | 
			
		||||
<p class='keyhelp'>
 | 
			
		||||
        <span class='key'>r</span>
 | 
			
		||||
        <span class='key'>m</span>
 | 
			
		||||
        <span class='key'>x</span>
 | 
			
		||||
        <span class='key'>p</span>   toggle line displays
 | 
			
		||||
    </p>
 | 
			
		||||
<p class='keyhelp'>
 | 
			
		||||
        <span class='key'>j</span>
 | 
			
		||||
        <span class='key'>k</span>   next/prev highlighted chunk
 | 
			
		||||
    </p>
 | 
			
		||||
<p class='keyhelp'>
 | 
			
		||||
        <span class='key'>0</span>   (zero) top of page
 | 
			
		||||
    </p>
 | 
			
		||||
<p class='keyhelp'>
 | 
			
		||||
        <span class='key'>1</span>   (one) first highlighted chunk
 | 
			
		||||
    </p>
 | 
			
		||||
    </div>
 | 
			
		||||
</div>
 | 
			
		||||
 | 
			
		||||
<div id='source'>
 | 
			
		||||
    <table cellspacing='0' cellpadding='0'>
 | 
			
		||||
        <tr>
 | 
			
		||||
            <td class='linenos' valign='top'>
 | 
			
		||||
<p id='n1' class='pln'><a href='#n1'>1</a></p>
 | 
			
		||||
<p id='n2' class='pln'><a href='#n2'>2</a></p>
 | 
			
		||||
<p id='n3' class='pln'><a href='#n3'>3</a></p>
 | 
			
		||||
<p id='n4' class='pln'><a href='#n4'>4</a></p>
 | 
			
		||||
<p id='n5' class='pln'><a href='#n5'>5</a></p>
 | 
			
		||||
<p id='n6' class='pln'><a href='#n6'>6</a></p>
 | 
			
		||||
<p id='n7' class='pln'><a href='#n7'>7</a></p>
 | 
			
		||||
<p id='n8' class='pln'><a href='#n8'>8</a></p>
 | 
			
		||||
<p id='n9' class='pln'><a href='#n9'>9</a></p>
 | 
			
		||||
<p id='n10' class='pln'><a href='#n10'>10</a></p>
 | 
			
		||||
<p id='n11' class='pln'><a href='#n11'>11</a></p>
 | 
			
		||||
<p id='n12' class='pln'><a href='#n12'>12</a></p>
 | 
			
		||||
<p id='n13' class='pln'><a href='#n13'>13</a></p>
 | 
			
		||||
<p id='n14' class='pln'><a href='#n14'>14</a></p>
 | 
			
		||||
<p id='n15' class='pln'><a href='#n15'>15</a></p>
 | 
			
		||||
<p id='n16' class='pln'><a href='#n16'>16</a></p>
 | 
			
		||||
<p id='n17' class='pln'><a href='#n17'>17</a></p>
 | 
			
		||||
<p id='n18' class='pln'><a href='#n18'>18</a></p>
 | 
			
		||||
<p id='n19' class='stm run hide_run'><a href='#n19'>19</a></p>
 | 
			
		||||
<p id='n20' class='pln'><a href='#n20'>20</a></p>
 | 
			
		||||
<p id='n21' class='pln'><a href='#n21'>21</a></p>
 | 
			
		||||
<p id='n22' class='stm run hide_run'><a href='#n22'>22</a></p>
 | 
			
		||||
<p id='n23' class='pln'><a href='#n23'>23</a></p>
 | 
			
		||||
<p id='n24' class='stm run hide_run'><a href='#n24'>24</a></p>
 | 
			
		||||
<p id='n25' class='pln'><a href='#n25'>25</a></p>
 | 
			
		||||
<p id='n26' class='pln'><a href='#n26'>26</a></p>
 | 
			
		||||
<p id='n27' class='stm run hide_run'><a href='#n27'>27</a></p>
 | 
			
		||||
<p id='n28' class='pln'><a href='#n28'>28</a></p>
 | 
			
		||||
<p id='n29' class='stm run hide_run'><a href='#n29'>29</a></p>
 | 
			
		||||
<p id='n30' class='pln'><a href='#n30'>30</a></p>
 | 
			
		||||
<p id='n31' class='pln'><a href='#n31'>31</a></p>
 | 
			
		||||
<p id='n32' class='stm run hide_run'><a href='#n32'>32</a></p>
 | 
			
		||||
<p id='n33' class='pln'><a href='#n33'>33</a></p>
 | 
			
		||||
<p id='n34' class='pln'><a href='#n34'>34</a></p>
 | 
			
		||||
<p id='n35' class='pln'><a href='#n35'>35</a></p>
 | 
			
		||||
<p id='n36' class='pln'><a href='#n36'>36</a></p>
 | 
			
		||||
<p id='n37' class='pln'><a href='#n37'>37</a></p>
 | 
			
		||||
<p id='n38' class='pln'><a href='#n38'>38</a></p>
 | 
			
		||||
<p id='n39' class='pln'><a href='#n39'>39</a></p>
 | 
			
		||||
<p id='n40' class='pln'><a href='#n40'>40</a></p>
 | 
			
		||||
<p id='n41' class='stm run hide_run'><a href='#n41'>41</a></p>
 | 
			
		||||
<p id='n42' class='stm run hide_run'><a href='#n42'>42</a></p>
 | 
			
		||||
<p id='n43' class='stm run hide_run'><a href='#n43'>43</a></p>
 | 
			
		||||
<p id='n44' class='pln'><a href='#n44'>44</a></p>
 | 
			
		||||
<p id='n45' class='stm run hide_run'><a href='#n45'>45</a></p>
 | 
			
		||||
                
 | 
			
		||||
            </td>
 | 
			
		||||
            <td class='text' valign='top'>
 | 
			
		||||
<p id='t1' class='pln'><span class='str'>"""Default responders for handling common error cases.</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t2' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t3' class='pln'><span class='str'>Copyright 2013 by Rackspace Hosting, Inc.</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t4' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t5' class='pln'><span class='str'>Licensed under the Apache License, Version 2.0 (the "License");</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t6' class='pln'><span class='str'>you may not use this file except in compliance with the License.</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t7' class='pln'><span class='str'>You may obtain a copy of the License at</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t8' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t9' class='pln'><span class='str'>   http://www.apache.org/licenses/LICENSE-2.0</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t10' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t11' class='pln'><span class='str'>Unless required by applicable law or agreed to in writing, software</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t12' class='pln'><span class='str'>distributed under the License is distributed on an "AS IS" BASIS,</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t13' class='pln'><span class='str'>WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t14' class='pln'><span class='str'>See the License for the specific language governing permissions and</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t15' class='pln'><span class='str'>limitations under the License.</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t16' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t17' class='pln'><span class='str'>"""</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t18' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t19' class='stm run hide_run'><span class='key'>from</span> <span class='nam'>falcon</span><span class='op'>.</span><span class='nam'>status_codes</span> <span class='key'>import</span> <span class='op'>*</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t20' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t21' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t22' class='stm run hide_run'><span class='key'>def</span> <span class='nam'>path_not_found</span><span class='op'>(</span><span class='nam'>req</span><span class='op'>,</span> <span class='nam'>resp</span><span class='op'>)</span><span class='op'>:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t23' class='pln'>    <span class='str'>"""Simply sets responseto "404 Not Found", no body."""</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t24' class='stm run hide_run'>    <span class='nam'>resp</span><span class='op'>.</span><span class='nam'>status</span> <span class='op'>=</span> <span class='nam'>HTTP_404</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t25' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t26' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t27' class='stm run hide_run'><span class='key'>def</span> <span class='nam'>bad_request</span><span class='op'>(</span><span class='nam'>req</span><span class='op'>,</span> <span class='nam'>resp</span><span class='op'>)</span><span class='op'>:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t28' class='pln'>    <span class='str'>"""Sets response to "400 Bad Request", no body."""</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t29' class='stm run hide_run'>    <span class='nam'>resp</span><span class='op'>.</span><span class='nam'>status</span> <span class='op'>=</span> <span class='nam'>HTTP_400</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t30' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t31' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t32' class='stm run hide_run'><span class='key'>def</span> <span class='nam'>create_method_not_allowed</span><span class='op'>(</span><span class='nam'>allowed_methods</span><span class='op'>)</span><span class='op'>:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t33' class='pln'>    <span class='str'>"""Creates a responder for "405 Method Not Allowed".ipyth</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t34' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t35' class='pln'><span class='str'>    Args:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t36' class='pln'><span class='str'>        allowed_methods: A list of HTTP methods (uppercase) that should be</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t37' class='pln'><span class='str'>            returned in the Allow header.</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t38' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t39' class='pln'><span class='str'>    """</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t40' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t41' class='stm run hide_run'>    <span class='key'>def</span> <span class='nam'>method_not_allowed</span><span class='op'>(</span><span class='nam'>req</span><span class='op'>,</span> <span class='nam'>resp</span><span class='op'>,</span> <span class='op'>**</span><span class='nam'>params</span><span class='op'>)</span><span class='op'>:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t42' class='stm run hide_run'>        <span class='nam'>resp</span><span class='op'>.</span><span class='nam'>status</span> <span class='op'>=</span> <span class='nam'>HTTP_405</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t43' class='stm run hide_run'>        <span class='nam'>resp</span><span class='op'>.</span><span class='nam'>set_header</span><span class='op'>(</span><span class='str'>'Allow'</span><span class='op'>,</span> <span class='str'>', '</span><span class='op'>.</span><span class='nam'>join</span><span class='op'>(</span><span class='nam'>allowed_methods</span><span class='op'>)</span><span class='op'>)</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t44' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t45' class='stm run hide_run'>    <span class='key'>return</span> <span class='nam'>method_not_allowed</span><span class='strut'> </span></p>
 | 
			
		||||
                
 | 
			
		||||
            </td>
 | 
			
		||||
        </tr>
 | 
			
		||||
    </table>
 | 
			
		||||
</div>
 | 
			
		||||
 | 
			
		||||
<div id='footer'>
 | 
			
		||||
    <div class='content'>
 | 
			
		||||
        <p>
 | 
			
		||||
            <a class='nav' href='index.html'>« index</a>     <a class='nav' href='http://nedbatchelder.com/code/coverage'>coverage.py v3.6</a>
 | 
			
		||||
        </p>
 | 
			
		||||
    </div>
 | 
			
		||||
</div>
 | 
			
		||||
 | 
			
		||||
</body>
 | 
			
		||||
</html>
 | 
			
		||||
							
								
								
									
										454
									
								
								tests/cover/falcon_response.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										454
									
								
								tests/cover/falcon_response.html
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,454 @@
 | 
			
		||||
<!doctype html PUBLIC "-//W3C//DTD html 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
 | 
			
		||||
<html>
 | 
			
		||||
<head>
 | 
			
		||||
    <meta http-equiv='Content-Type' content='text/html; charset=utf-8'>
 | 
			
		||||
    
 | 
			
		||||
    
 | 
			
		||||
    <meta http-equiv='X-UA-Compatible' content='IE=emulateIE7' />
 | 
			
		||||
    <title>Coverage for falcon.response: 100%</title>
 | 
			
		||||
    <link rel='stylesheet' href='style.css' type='text/css'>
 | 
			
		||||
    
 | 
			
		||||
    <script type='text/javascript' src='jquery-1.4.3.min.js'></script>
 | 
			
		||||
    <script type='text/javascript' src='jquery.hotkeys.js'></script>
 | 
			
		||||
    <script type='text/javascript' src='jquery.isonscreen.js'></script>
 | 
			
		||||
    <script type='text/javascript' src='coverage_html.js'></script>
 | 
			
		||||
    <script type='text/javascript' charset='utf-8'>
 | 
			
		||||
        jQuery(document).ready(coverage.pyfile_ready);
 | 
			
		||||
    </script>
 | 
			
		||||
</head>
 | 
			
		||||
<body id='pyfile'>
 | 
			
		||||
 | 
			
		||||
<div id='header'>
 | 
			
		||||
    <div class='content'>
 | 
			
		||||
        <h1>Coverage for <b>falcon.response</b> :
 | 
			
		||||
            <span class='pc_cov'>100%</span>
 | 
			
		||||
        </h1>
 | 
			
		||||
        <img id='keyboard_icon' src='keybd_closed.png'>
 | 
			
		||||
        <h2 class='stats'>
 | 
			
		||||
            30 statements  
 | 
			
		||||
            <span class='run hide_run shortkey_r button_toggle_run'>30 run</span>
 | 
			
		||||
            <span class='mis shortkey_m button_toggle_mis'>0 missing</span>
 | 
			
		||||
            <span class='exc shortkey_x button_toggle_exc'>0 excluded</span>
 | 
			
		||||
            
 | 
			
		||||
        </h2>
 | 
			
		||||
    </div>
 | 
			
		||||
</div>
 | 
			
		||||
 | 
			
		||||
<div class='help_panel'>
 | 
			
		||||
    <img id='panel_icon' src='keybd_open.png'>
 | 
			
		||||
<p class='legend'>Hot-keys on this page</p>
 | 
			
		||||
    <div>
 | 
			
		||||
<p class='keyhelp'>
 | 
			
		||||
        <span class='key'>r</span>
 | 
			
		||||
        <span class='key'>m</span>
 | 
			
		||||
        <span class='key'>x</span>
 | 
			
		||||
        <span class='key'>p</span>   toggle line displays
 | 
			
		||||
    </p>
 | 
			
		||||
<p class='keyhelp'>
 | 
			
		||||
        <span class='key'>j</span>
 | 
			
		||||
        <span class='key'>k</span>   next/prev highlighted chunk
 | 
			
		||||
    </p>
 | 
			
		||||
<p class='keyhelp'>
 | 
			
		||||
        <span class='key'>0</span>   (zero) top of page
 | 
			
		||||
    </p>
 | 
			
		||||
<p class='keyhelp'>
 | 
			
		||||
        <span class='key'>1</span>   (one) first highlighted chunk
 | 
			
		||||
    </p>
 | 
			
		||||
    </div>
 | 
			
		||||
</div>
 | 
			
		||||
 | 
			
		||||
<div id='source'>
 | 
			
		||||
    <table cellspacing='0' cellpadding='0'>
 | 
			
		||||
        <tr>
 | 
			
		||||
            <td class='linenos' valign='top'>
 | 
			
		||||
<p id='n1' class='pln'><a href='#n1'>1</a></p>
 | 
			
		||||
<p id='n2' class='pln'><a href='#n2'>2</a></p>
 | 
			
		||||
<p id='n3' class='pln'><a href='#n3'>3</a></p>
 | 
			
		||||
<p id='n4' class='pln'><a href='#n4'>4</a></p>
 | 
			
		||||
<p id='n5' class='pln'><a href='#n5'>5</a></p>
 | 
			
		||||
<p id='n6' class='pln'><a href='#n6'>6</a></p>
 | 
			
		||||
<p id='n7' class='pln'><a href='#n7'>7</a></p>
 | 
			
		||||
<p id='n8' class='pln'><a href='#n8'>8</a></p>
 | 
			
		||||
<p id='n9' class='pln'><a href='#n9'>9</a></p>
 | 
			
		||||
<p id='n10' class='pln'><a href='#n10'>10</a></p>
 | 
			
		||||
<p id='n11' class='pln'><a href='#n11'>11</a></p>
 | 
			
		||||
<p id='n12' class='pln'><a href='#n12'>12</a></p>
 | 
			
		||||
<p id='n13' class='pln'><a href='#n13'>13</a></p>
 | 
			
		||||
<p id='n14' class='pln'><a href='#n14'>14</a></p>
 | 
			
		||||
<p id='n15' class='pln'><a href='#n15'>15</a></p>
 | 
			
		||||
<p id='n16' class='pln'><a href='#n16'>16</a></p>
 | 
			
		||||
<p id='n17' class='pln'><a href='#n17'>17</a></p>
 | 
			
		||||
<p id='n18' class='pln'><a href='#n18'>18</a></p>
 | 
			
		||||
<p id='n19' class='stm run hide_run'><a href='#n19'>19</a></p>
 | 
			
		||||
<p id='n20' class='stm run hide_run'><a href='#n20'>20</a></p>
 | 
			
		||||
<p id='n21' class='pln'><a href='#n21'>21</a></p>
 | 
			
		||||
<p id='n22' class='pln'><a href='#n22'>22</a></p>
 | 
			
		||||
<p id='n23' class='stm run hide_run'><a href='#n23'>23</a></p>
 | 
			
		||||
<p id='n24' class='pln'><a href='#n24'>24</a></p>
 | 
			
		||||
<p id='n25' class='pln'><a href='#n25'>25</a></p>
 | 
			
		||||
<p id='n26' class='pln'><a href='#n26'>26</a></p>
 | 
			
		||||
<p id='n27' class='pln'><a href='#n27'>27</a></p>
 | 
			
		||||
<p id='n28' class='pln'><a href='#n28'>28</a></p>
 | 
			
		||||
<p id='n29' class='pln'><a href='#n29'>29</a></p>
 | 
			
		||||
<p id='n30' class='pln'><a href='#n30'>30</a></p>
 | 
			
		||||
<p id='n31' class='pln'><a href='#n31'>31</a></p>
 | 
			
		||||
<p id='n32' class='pln'><a href='#n32'>32</a></p>
 | 
			
		||||
<p id='n33' class='pln'><a href='#n33'>33</a></p>
 | 
			
		||||
<p id='n34' class='pln'><a href='#n34'>34</a></p>
 | 
			
		||||
<p id='n35' class='pln'><a href='#n35'>35</a></p>
 | 
			
		||||
<p id='n36' class='pln'><a href='#n36'>36</a></p>
 | 
			
		||||
<p id='n37' class='pln'><a href='#n37'>37</a></p>
 | 
			
		||||
<p id='n38' class='pln'><a href='#n38'>38</a></p>
 | 
			
		||||
<p id='n39' class='pln'><a href='#n39'>39</a></p>
 | 
			
		||||
<p id='n40' class='pln'><a href='#n40'>40</a></p>
 | 
			
		||||
<p id='n41' class='pln'><a href='#n41'>41</a></p>
 | 
			
		||||
<p id='n42' class='pln'><a href='#n42'>42</a></p>
 | 
			
		||||
<p id='n43' class='pln'><a href='#n43'>43</a></p>
 | 
			
		||||
<p id='n44' class='pln'><a href='#n44'>44</a></p>
 | 
			
		||||
<p id='n45' class='pln'><a href='#n45'>45</a></p>
 | 
			
		||||
<p id='n46' class='pln'><a href='#n46'>46</a></p>
 | 
			
		||||
<p id='n47' class='pln'><a href='#n47'>47</a></p>
 | 
			
		||||
<p id='n48' class='pln'><a href='#n48'>48</a></p>
 | 
			
		||||
<p id='n49' class='pln'><a href='#n49'>49</a></p>
 | 
			
		||||
<p id='n50' class='pln'><a href='#n50'>50</a></p>
 | 
			
		||||
<p id='n51' class='pln'><a href='#n51'>51</a></p>
 | 
			
		||||
<p id='n52' class='pln'><a href='#n52'>52</a></p>
 | 
			
		||||
<p id='n53' class='pln'><a href='#n53'>53</a></p>
 | 
			
		||||
<p id='n54' class='pln'><a href='#n54'>54</a></p>
 | 
			
		||||
<p id='n55' class='pln'><a href='#n55'>55</a></p>
 | 
			
		||||
<p id='n56' class='pln'><a href='#n56'>56</a></p>
 | 
			
		||||
<p id='n57' class='pln'><a href='#n57'>57</a></p>
 | 
			
		||||
<p id='n58' class='pln'><a href='#n58'>58</a></p>
 | 
			
		||||
<p id='n59' class='pln'><a href='#n59'>59</a></p>
 | 
			
		||||
<p id='n60' class='pln'><a href='#n60'>60</a></p>
 | 
			
		||||
<p id='n61' class='pln'><a href='#n61'>61</a></p>
 | 
			
		||||
<p id='n62' class='pln'><a href='#n62'>62</a></p>
 | 
			
		||||
<p id='n63' class='pln'><a href='#n63'>63</a></p>
 | 
			
		||||
<p id='n64' class='pln'><a href='#n64'>64</a></p>
 | 
			
		||||
<p id='n65' class='pln'><a href='#n65'>65</a></p>
 | 
			
		||||
<p id='n66' class='pln'><a href='#n66'>66</a></p>
 | 
			
		||||
<p id='n67' class='pln'><a href='#n67'>67</a></p>
 | 
			
		||||
<p id='n68' class='pln'><a href='#n68'>68</a></p>
 | 
			
		||||
<p id='n69' class='pln'><a href='#n69'>69</a></p>
 | 
			
		||||
<p id='n70' class='pln'><a href='#n70'>70</a></p>
 | 
			
		||||
<p id='n71' class='pln'><a href='#n71'>71</a></p>
 | 
			
		||||
<p id='n72' class='pln'><a href='#n72'>72</a></p>
 | 
			
		||||
<p id='n73' class='pln'><a href='#n73'>73</a></p>
 | 
			
		||||
<p id='n74' class='pln'><a href='#n74'>74</a></p>
 | 
			
		||||
<p id='n75' class='stm run hide_run'><a href='#n75'>75</a></p>
 | 
			
		||||
<p id='n76' class='pln'><a href='#n76'>76</a></p>
 | 
			
		||||
<p id='n77' class='pln'><a href='#n77'>77</a></p>
 | 
			
		||||
<p id='n78' class='pln'><a href='#n78'>78</a></p>
 | 
			
		||||
<p id='n79' class='pln'><a href='#n79'>79</a></p>
 | 
			
		||||
<p id='n80' class='pln'><a href='#n80'>80</a></p>
 | 
			
		||||
<p id='n81' class='pln'><a href='#n81'>81</a></p>
 | 
			
		||||
<p id='n82' class='pln'><a href='#n82'>82</a></p>
 | 
			
		||||
<p id='n83' class='pln'><a href='#n83'>83</a></p>
 | 
			
		||||
<p id='n84' class='stm run hide_run'><a href='#n84'>84</a></p>
 | 
			
		||||
<p id='n85' class='pln'><a href='#n85'>85</a></p>
 | 
			
		||||
<p id='n86' class='pln'><a href='#n86'>86</a></p>
 | 
			
		||||
<p id='n87' class='pln'><a href='#n87'>87</a></p>
 | 
			
		||||
<p id='n88' class='pln'><a href='#n88'>88</a></p>
 | 
			
		||||
<p id='n89' class='pln'><a href='#n89'>89</a></p>
 | 
			
		||||
<p id='n90' class='pln'><a href='#n90'>90</a></p>
 | 
			
		||||
<p id='n91' class='pln'><a href='#n91'>91</a></p>
 | 
			
		||||
<p id='n92' class='stm run hide_run'><a href='#n92'>92</a></p>
 | 
			
		||||
<p id='n93' class='stm run hide_run'><a href='#n93'>93</a></p>
 | 
			
		||||
<p id='n94' class='pln'><a href='#n94'>94</a></p>
 | 
			
		||||
<p id='n95' class='stm run hide_run'><a href='#n95'>95</a></p>
 | 
			
		||||
<p id='n96' class='stm run hide_run'><a href='#n96'>96</a></p>
 | 
			
		||||
<p id='n97' class='stm run hide_run'><a href='#n97'>97</a></p>
 | 
			
		||||
<p id='n98' class='stm run hide_run'><a href='#n98'>98</a></p>
 | 
			
		||||
<p id='n99' class='pln'><a href='#n99'>99</a></p>
 | 
			
		||||
<p id='n100' class='stm run hide_run'><a href='#n100'>100</a></p>
 | 
			
		||||
<p id='n101' class='pln'><a href='#n101'>101</a></p>
 | 
			
		||||
<p id='n102' class='pln'><a href='#n102'>102</a></p>
 | 
			
		||||
<p id='n103' class='pln'><a href='#n103'>103</a></p>
 | 
			
		||||
<p id='n104' class='pln'><a href='#n104'>104</a></p>
 | 
			
		||||
<p id='n105' class='pln'><a href='#n105'>105</a></p>
 | 
			
		||||
<p id='n106' class='pln'><a href='#n106'>106</a></p>
 | 
			
		||||
<p id='n107' class='pln'><a href='#n107'>107</a></p>
 | 
			
		||||
<p id='n108' class='pln'><a href='#n108'>108</a></p>
 | 
			
		||||
<p id='n109' class='pln'><a href='#n109'>109</a></p>
 | 
			
		||||
<p id='n110' class='pln'><a href='#n110'>110</a></p>
 | 
			
		||||
<p id='n111' class='pln'><a href='#n111'>111</a></p>
 | 
			
		||||
<p id='n112' class='pln'><a href='#n112'>112</a></p>
 | 
			
		||||
<p id='n113' class='pln'><a href='#n113'>113</a></p>
 | 
			
		||||
<p id='n114' class='pln'><a href='#n114'>114</a></p>
 | 
			
		||||
<p id='n115' class='stm run hide_run'><a href='#n115'>115</a></p>
 | 
			
		||||
<p id='n116' class='pln'><a href='#n116'>116</a></p>
 | 
			
		||||
<p id='n117' class='stm run hide_run'><a href='#n117'>117</a></p>
 | 
			
		||||
<p id='n118' class='pln'><a href='#n118'>118</a></p>
 | 
			
		||||
<p id='n119' class='pln'><a href='#n119'>119</a></p>
 | 
			
		||||
<p id='n120' class='pln'><a href='#n120'>120</a></p>
 | 
			
		||||
<p id='n121' class='pln'><a href='#n121'>121</a></p>
 | 
			
		||||
<p id='n122' class='pln'><a href='#n122'>122</a></p>
 | 
			
		||||
<p id='n123' class='pln'><a href='#n123'>123</a></p>
 | 
			
		||||
<p id='n124' class='pln'><a href='#n124'>124</a></p>
 | 
			
		||||
<p id='n125' class='pln'><a href='#n125'>125</a></p>
 | 
			
		||||
<p id='n126' class='pln'><a href='#n126'>126</a></p>
 | 
			
		||||
<p id='n127' class='pln'><a href='#n127'>127</a></p>
 | 
			
		||||
<p id='n128' class='pln'><a href='#n128'>128</a></p>
 | 
			
		||||
<p id='n129' class='pln'><a href='#n129'>129</a></p>
 | 
			
		||||
<p id='n130' class='pln'><a href='#n130'>130</a></p>
 | 
			
		||||
<p id='n131' class='pln'><a href='#n131'>131</a></p>
 | 
			
		||||
<p id='n132' class='pln'><a href='#n132'>132</a></p>
 | 
			
		||||
<p id='n133' class='stm run hide_run'><a href='#n133'>133</a></p>
 | 
			
		||||
<p id='n134' class='pln'><a href='#n134'>134</a></p>
 | 
			
		||||
<p id='n135' class='stm run hide_run'><a href='#n135'>135</a></p>
 | 
			
		||||
<p id='n136' class='pln'><a href='#n136'>136</a></p>
 | 
			
		||||
<p id='n137' class='pln'><a href='#n137'>137</a></p>
 | 
			
		||||
<p id='n138' class='pln'><a href='#n138'>138</a></p>
 | 
			
		||||
<p id='n139' class='pln'><a href='#n139'>139</a></p>
 | 
			
		||||
<p id='n140' class='stm run hide_run'><a href='#n140'>140</a></p>
 | 
			
		||||
<p id='n141' class='pln'><a href='#n141'>141</a></p>
 | 
			
		||||
<p id='n142' class='pln'><a href='#n142'>142</a></p>
 | 
			
		||||
<p id='n143' class='stm run hide_run'><a href='#n143'>143</a></p>
 | 
			
		||||
<p id='n144' class='pln'><a href='#n144'>144</a></p>
 | 
			
		||||
<p id='n145' class='pln'><a href='#n145'>145</a></p>
 | 
			
		||||
<p id='n146' class='pln'><a href='#n146'>146</a></p>
 | 
			
		||||
<p id='n147' class='pln'><a href='#n147'>147</a></p>
 | 
			
		||||
<p id='n148' class='stm run hide_run'><a href='#n148'>148</a></p>
 | 
			
		||||
<p id='n149' class='pln'><a href='#n149'>149</a></p>
 | 
			
		||||
<p id='n150' class='pln'><a href='#n150'>150</a></p>
 | 
			
		||||
<p id='n151' class='stm run hide_run'><a href='#n151'>151</a></p>
 | 
			
		||||
<p id='n152' class='pln'><a href='#n152'>152</a></p>
 | 
			
		||||
<p id='n153' class='pln'><a href='#n153'>153</a></p>
 | 
			
		||||
<p id='n154' class='stm run hide_run'><a href='#n154'>154</a></p>
 | 
			
		||||
<p id='n155' class='pln'><a href='#n155'>155</a></p>
 | 
			
		||||
<p id='n156' class='pln'><a href='#n156'>156</a></p>
 | 
			
		||||
<p id='n157' class='pln'><a href='#n157'>157</a></p>
 | 
			
		||||
<p id='n158' class='stm run hide_run'><a href='#n158'>158</a></p>
 | 
			
		||||
<p id='n159' class='pln'><a href='#n159'>159</a></p>
 | 
			
		||||
<p id='n160' class='pln'><a href='#n160'>160</a></p>
 | 
			
		||||
<p id='n161' class='stm run hide_run'><a href='#n161'>161</a></p>
 | 
			
		||||
<p id='n162' class='pln'><a href='#n162'>162</a></p>
 | 
			
		||||
<p id='n163' class='pln'><a href='#n163'>163</a></p>
 | 
			
		||||
<p id='n164' class='pln'><a href='#n164'>164</a></p>
 | 
			
		||||
<p id='n165' class='stm run hide_run'><a href='#n165'>165</a></p>
 | 
			
		||||
<p id='n166' class='pln'><a href='#n166'>166</a></p>
 | 
			
		||||
<p id='n167' class='pln'><a href='#n167'>167</a></p>
 | 
			
		||||
<p id='n168' class='pln'><a href='#n168'>168</a></p>
 | 
			
		||||
<p id='n169' class='stm run hide_run'><a href='#n169'>169</a></p>
 | 
			
		||||
<p id='n170' class='pln'><a href='#n170'>170</a></p>
 | 
			
		||||
<p id='n171' class='pln'><a href='#n171'>171</a></p>
 | 
			
		||||
<p id='n172' class='pln'><a href='#n172'>172</a></p>
 | 
			
		||||
<p id='n173' class='pln'><a href='#n173'>173</a></p>
 | 
			
		||||
<p id='n174' class='pln'><a href='#n174'>174</a></p>
 | 
			
		||||
<p id='n175' class='pln'><a href='#n175'>175</a></p>
 | 
			
		||||
<p id='n176' class='pln'><a href='#n176'>176</a></p>
 | 
			
		||||
<p id='n177' class='pln'><a href='#n177'>177</a></p>
 | 
			
		||||
<p id='n178' class='stm run hide_run'><a href='#n178'>178</a></p>
 | 
			
		||||
<p id='n179' class='stm run hide_run'><a href='#n179'>179</a></p>
 | 
			
		||||
<p id='n180' class='pln'><a href='#n180'>180</a></p>
 | 
			
		||||
<p id='n181' class='pln'><a href='#n181'>181</a></p>
 | 
			
		||||
<p id='n182' class='pln'><a href='#n182'>182</a></p>
 | 
			
		||||
<p id='n183' class='stm run hide_run'><a href='#n183'>183</a></p>
 | 
			
		||||
<p id='n184' class='stm run hide_run'><a href='#n184'>184</a></p>
 | 
			
		||||
<p id='n185' class='pln'><a href='#n185'>185</a></p>
 | 
			
		||||
<p id='n186' class='stm run hide_run'><a href='#n186'>186</a></p>
 | 
			
		||||
                
 | 
			
		||||
            </td>
 | 
			
		||||
            <td class='text' valign='top'>
 | 
			
		||||
<p id='t1' class='pln'><span class='str'>"""Defines the Response class</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t2' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t3' class='pln'><span class='str'>Copyright 2013 by Rackspace Hosting, Inc.</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t4' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t5' class='pln'><span class='str'>Licensed under the Apache License, Version 2.0 (the "License");</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t6' class='pln'><span class='str'>you may not use this file except in compliance with the License.</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t7' class='pln'><span class='str'>You may obtain a copy of the License at</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t8' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t9' class='pln'><span class='str'>   http://www.apache.org/licenses/LICENSE-2.0</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t10' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t11' class='pln'><span class='str'>Unless required by applicable law or agreed to in writing, software</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t12' class='pln'><span class='str'>distributed under the License is distributed on an "AS IS" BASIS,</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t13' class='pln'><span class='str'>WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t14' class='pln'><span class='str'>See the License for the specific language governing permissions and</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t15' class='pln'><span class='str'>limitations under the License.</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t16' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t17' class='pln'><span class='str'>"""</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t18' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t19' class='stm run hide_run'><span class='key'>from</span> <span class='op'>.</span><span class='nam'>util</span> <span class='key'>import</span> <span class='nam'>dt_to_http</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t20' class='stm run hide_run'><span class='key'>from</span> <span class='op'>.</span><span class='nam'>response_helpers</span> <span class='key'>import</span> <span class='op'>*</span>  <span class='com'># NOQA</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t21' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t22' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t23' class='stm run hide_run'><span class='key'>class</span> <span class='nam'>Response</span><span class='op'>(</span><span class='nam'>object</span><span class='op'>)</span><span class='op'>:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t24' class='pln'>    <span class='str'>"""Represents an HTTP response to a client request</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t25' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t26' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t27' class='pln'><span class='str'>    Attributes:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t28' class='pln'><span class='str'>        status: HTTP status code, such as "200 OK" (see also falcon.HTTP_*)</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t29' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t30' class='pln'><span class='str'>        body: String representing response content. If Unicode, Falcon will</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t31' class='pln'><span class='str'>            encode as UTF-8 in the response. If data is already a byte string,</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t32' class='pln'><span class='str'>            use the data attribute instead (it's faster).</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t33' class='pln'><span class='str'>        data: Byte string representing response content.</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t34' class='pln'><span class='str'>        stream: Iterable stream-like object, representing response content.</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t35' class='pln'><span class='str'>        stream_len: Expected length of stream (e.g., file size).</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t36' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t37' class='pln'><span class='str'>        content_type: Value for the Content-Type header</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t38' class='pln'><span class='str'>        etag: Value for the ETag header</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t39' class='pln'><span class='str'>        cache_control: A list of cache directives (see http://goo.gl/fILS5</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t40' class='pln'><span class='str'>            and http://goo.gl/sM9Xx for a good description.) The list will be</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t41' class='pln'><span class='str'>            joined with ', ' to produce the value for the Cache-Control</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t42' class='pln'><span class='str'>            header.</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t43' class='pln'><span class='str'>        last_modified: A datetime (UTC) instance to use as the Last-Modified</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t44' class='pln'><span class='str'>            header. Falcon will format the datetime as an HTTP date. See</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t45' class='pln'><span class='str'>            also: http://goo.gl/R7So4</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t46' class='pln'><span class='str'>        retry_after: Number of seconds to use as the value for the Retry-After</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t47' class='pln'><span class='str'>            header. Note that the HTTP-date option is not supported. See</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t48' class='pln'><span class='str'>            also: http://goo.gl/DIrWr</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t49' class='pln'><span class='str'>        vary: Value to use for the Vary header. From Wikipedia: "Tells</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t50' class='pln'><span class='str'>            downstream proxies how to match future request headers to decide</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t51' class='pln'><span class='str'>            whether the cached response can be used rather than requesting a</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t52' class='pln'><span class='str'>            fresh one from the origin server." See also: http://goo.gl/NGHdL</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t53' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t54' class='pln'><span class='str'>            Assumed to be a list of values. For a single asterisk or field</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t55' class='pln'><span class='str'>            value, simply pass a single-element list.</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t56' class='pln'><span class='str'>        location: Value for the Location header. Note that relative URIs are</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t57' class='pln'><span class='str'>            OK per http://goo.gl/DbVqR</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t58' class='pln'><span class='str'>        content_location: Value for the Content-Location header. See</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t59' class='pln'><span class='str'>            also: http://goo.gl/1slsA</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t60' class='pln'><span class='str'>        content_range: A tuple to use in constructing a value for the</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t61' class='pln'><span class='str'>            Content-Range header. The tuple has the form (start, end, length),</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t62' class='pln'><span class='str'>            where start and end is the inclusive byte range, and length is the</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t63' class='pln'><span class='str'>            total number of bytes, or '*' if unknown.</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t64' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t65' class='pln'><span class='str'>            Note: You only need to use the alternate form, "bytes */1234", for</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t66' class='pln'><span class='str'>            responses that use the status "416 Range Not Satisfiable". In this</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t67' class='pln'><span class='str'>            case, raising falcon.HTTPRangeNotSatisfiable will do the right</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t68' class='pln'><span class='str'>            thing.</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t69' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t70' class='pln'><span class='str'>            See also: http://goo.gl/Iglhp</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t71' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t72' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t73' class='pln'><span class='str'>    """</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t74' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t75' class='stm run hide_run'>    <span class='nam'>__slots__</span> <span class='op'>=</span> <span class='op'>(</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t76' class='pln'>        <span class='str'>'body'</span><span class='op'>,</span>  <span class='com'># Stuff</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t77' class='pln'>        <span class='str'>'data'</span><span class='op'>,</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t78' class='pln'>        <span class='str'>'_headers'</span><span class='op'>,</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t79' class='pln'>        <span class='str'>'status'</span><span class='op'>,</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t80' class='pln'>        <span class='str'>'stream'</span><span class='op'>,</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t81' class='pln'>        <span class='str'>'stream_len'</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t82' class='pln'>    <span class='op'>)</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t83' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t84' class='stm run hide_run'>    <span class='key'>def</span> <span class='nam'>__init__</span><span class='op'>(</span><span class='nam'>self</span><span class='op'>)</span><span class='op'>:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t85' class='pln'>        <span class='str'>"""Initialize response attributes to default values</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t86' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t87' class='pln'><span class='str'>        Args:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t88' class='pln'><span class='str'>            wsgierrors: File-like stream for logging errors</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t89' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t90' class='pln'><span class='str'>        """</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t91' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t92' class='stm run hide_run'>        <span class='nam'>self</span><span class='op'>.</span><span class='nam'>status</span> <span class='op'>=</span> <span class='str'>'200 OK'</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t93' class='stm run hide_run'>        <span class='nam'>self</span><span class='op'>.</span><span class='nam'>_headers</span> <span class='op'>=</span> <span class='op'>{</span><span class='op'>}</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t94' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t95' class='stm run hide_run'>        <span class='nam'>self</span><span class='op'>.</span><span class='nam'>body</span> <span class='op'>=</span> <span class='nam'>None</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t96' class='stm run hide_run'>        <span class='nam'>self</span><span class='op'>.</span><span class='nam'>data</span> <span class='op'>=</span> <span class='nam'>None</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t97' class='stm run hide_run'>        <span class='nam'>self</span><span class='op'>.</span><span class='nam'>stream</span> <span class='op'>=</span> <span class='nam'>None</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t98' class='stm run hide_run'>        <span class='nam'>self</span><span class='op'>.</span><span class='nam'>stream_len</span> <span class='op'>=</span> <span class='nam'>None</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t99' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t100' class='stm run hide_run'>    <span class='key'>def</span> <span class='nam'>set_header</span><span class='op'>(</span><span class='nam'>self</span><span class='op'>,</span> <span class='nam'>name</span><span class='op'>,</span> <span class='nam'>value</span><span class='op'>)</span><span class='op'>:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t101' class='pln'>        <span class='str'>"""Set a header for this response to a given value.</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t102' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t103' class='pln'><span class='str'>        Warning: Overwrites the existing value, if any.</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t104' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t105' class='pln'><span class='str'>        Args:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t106' class='pln'><span class='str'>            name: Header name to set. Must be of type str or StringType, and</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t107' class='pln'><span class='str'>                only character values 0x00 through 0xFF may be used on</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t108' class='pln'><span class='str'>                platforms that use wide characters.</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t109' class='pln'><span class='str'>            value: Value for the header. Must be of type str or StringType, and</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t110' class='pln'><span class='str'>                only character values 0x00 through 0xFF may be used on</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t111' class='pln'><span class='str'>                platforms that use wide characters.</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t112' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t113' class='pln'><span class='str'>        """</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t114' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t115' class='stm run hide_run'>        <span class='nam'>self</span><span class='op'>.</span><span class='nam'>_headers</span><span class='op'>[</span><span class='nam'>name</span><span class='op'>]</span> <span class='op'>=</span> <span class='nam'>value</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t116' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t117' class='stm run hide_run'>    <span class='key'>def</span> <span class='nam'>set_headers</span><span class='op'>(</span><span class='nam'>self</span><span class='op'>,</span> <span class='nam'>headers</span><span class='op'>)</span><span class='op'>:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t118' class='pln'>        <span class='str'>"""Set several headers at once. May be faster than set_header().</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t119' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t120' class='pln'><span class='str'>        Warning: Overwrites existing values, if any.</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t121' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t122' class='pln'><span class='str'>        Args:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t123' class='pln'><span class='str'>            headers: A dict containing header names and values to set. Both</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t124' class='pln'><span class='str'>                names and values must be of type str or StringType, and</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t125' class='pln'><span class='str'>                only character values 0x00 through 0xFF may be used on</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t126' class='pln'><span class='str'>                platforms that use wide characters.</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t127' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t128' class='pln'><span class='str'>        Raises:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t129' class='pln'><span class='str'>            ValueError: headers was not a dictionary or list of tuples.</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t130' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t131' class='pln'><span class='str'>        """</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t132' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t133' class='stm run hide_run'>        <span class='nam'>self</span><span class='op'>.</span><span class='nam'>_headers</span><span class='op'>.</span><span class='nam'>update</span><span class='op'>(</span><span class='nam'>headers</span><span class='op'>)</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t134' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t135' class='stm run hide_run'>    <span class='nam'>cache_control</span> <span class='op'>=</span> <span class='nam'>header_property</span><span class='op'>(</span><span class='str'>'Cache-Control'</span><span class='op'>,</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t136' class='pln'>                                    <span class='op'>(</span><span class='str'>'A list of cache directives to use as '</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t137' class='pln'>                                     <span class='str'>'the value of the Cache-Control header.'</span><span class='op'>)</span><span class='op'>,</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t138' class='pln'>                                    <span class='key'>lambda</span> <span class='nam'>v</span><span class='op'>:</span> <span class='str'>', '</span><span class='op'>.</span><span class='nam'>join</span><span class='op'>(</span><span class='nam'>v</span><span class='op'>)</span><span class='op'>)</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t139' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t140' class='stm run hide_run'>    <span class='nam'>content_location</span> <span class='op'>=</span> <span class='nam'>header_property</span><span class='op'>(</span><span class='str'>'Content-Location'</span><span class='op'>,</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t141' class='pln'>                                       <span class='str'>'Sets the Content-Location header.'</span><span class='op'>)</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t142' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t143' class='stm run hide_run'>    <span class='nam'>content_range</span> <span class='op'>=</span> <span class='nam'>header_property</span><span class='op'>(</span><span class='str'>'Content-Range'</span><span class='op'>,</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t144' class='pln'>                                    <span class='op'>(</span><span class='str'>'Sets the Content-Range header. Value '</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t145' class='pln'>                                     <span class='str'>'is assumed to be a tuple.'</span><span class='op'>)</span><span class='op'>,</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t146' class='pln'>                                    <span class='nam'>format_range</span><span class='op'>)</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t147' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t148' class='stm run hide_run'>    <span class='nam'>content_type</span> <span class='op'>=</span> <span class='nam'>header_property</span><span class='op'>(</span><span class='str'>'Content-Type'</span><span class='op'>,</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t149' class='pln'>                                   <span class='str'>'Sets the Content-Type header.'</span><span class='op'>)</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t150' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t151' class='stm run hide_run'>    <span class='nam'>etag</span> <span class='op'>=</span> <span class='nam'>header_property</span><span class='op'>(</span><span class='str'>'ETag'</span><span class='op'>,</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t152' class='pln'>                           <span class='str'>'Sets the ETag header.'</span><span class='op'>)</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t153' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t154' class='stm run hide_run'>    <span class='nam'>last_modified</span> <span class='op'>=</span> <span class='nam'>header_property</span><span class='op'>(</span><span class='str'>'Last-Modified'</span><span class='op'>,</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t155' class='pln'>                                    <span class='str'>'Sets the Last-Modified header.'</span><span class='op'>,</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t156' class='pln'>                                    <span class='nam'>dt_to_http</span><span class='op'>)</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t157' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t158' class='stm run hide_run'>    <span class='nam'>location</span> <span class='op'>=</span> <span class='nam'>header_property</span><span class='op'>(</span><span class='str'>'Location'</span><span class='op'>,</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t159' class='pln'>                               <span class='str'>'Sets the Location header.'</span><span class='op'>)</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t160' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t161' class='stm run hide_run'>    <span class='nam'>retry_after</span> <span class='op'>=</span> <span class='nam'>header_property</span><span class='op'>(</span><span class='str'>'Retry-After'</span><span class='op'>,</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t162' class='pln'>                                  <span class='str'>'Sets the Retry-After header.'</span><span class='op'>,</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t163' class='pln'>                                  <span class='nam'>str</span><span class='op'>)</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t164' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t165' class='stm run hide_run'>    <span class='nam'>vary</span> <span class='op'>=</span> <span class='nam'>header_property</span><span class='op'>(</span><span class='str'>'Vary'</span><span class='op'>,</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t166' class='pln'>                           <span class='str'>'A list of header names to use for the Vary header'</span><span class='op'>,</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t167' class='pln'>                           <span class='key'>lambda</span> <span class='nam'>v</span><span class='op'>:</span> <span class='str'>', '</span><span class='op'>.</span><span class='nam'>join</span><span class='op'>(</span><span class='nam'>v</span><span class='op'>)</span><span class='op'>)</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t168' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t169' class='stm run hide_run'>    <span class='key'>def</span> <span class='nam'>_wsgi_headers</span><span class='op'>(</span><span class='nam'>self</span><span class='op'>,</span> <span class='nam'>media_type</span><span class='op'>=</span><span class='nam'>None</span><span class='op'>)</span><span class='op'>:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t170' class='pln'>        <span class='str'>"""Convert headers into the format expected by WSGI servers</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t171' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t172' class='pln'><span class='str'>        Args:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t173' class='pln'><span class='str'>            media_type: Default media type to use for the Content-Type</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t174' class='pln'><span class='str'>                header if the header was not set explicitly. (default None)</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t175' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t176' class='pln'><span class='str'>        """</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t177' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t178' class='stm run hide_run'>        <span class='nam'>headers</span> <span class='op'>=</span> <span class='nam'>self</span><span class='op'>.</span><span class='nam'>_headers</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t179' class='stm run hide_run'>        <span class='nam'>set_content_type</span> <span class='op'>=</span> <span class='op'>(</span><span class='nam'>media_type</span> <span class='key'>is</span> <span class='key'>not</span> <span class='nam'>None</span> <span class='key'>and</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t180' class='pln'>                            <span class='str'>'Content-Type'</span> <span class='key'>not</span> <span class='key'>in</span> <span class='nam'>headers</span> <span class='key'>and</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t181' class='pln'>                            <span class='str'>'content-type'</span> <span class='key'>not</span> <span class='key'>in</span> <span class='nam'>headers</span><span class='op'>)</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t182' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t183' class='stm run hide_run'>        <span class='key'>if</span> <span class='nam'>set_content_type</span><span class='op'>:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t184' class='stm run hide_run'>            <span class='nam'>headers</span><span class='op'>[</span><span class='str'>'Content-Type'</span><span class='op'>]</span> <span class='op'>=</span> <span class='nam'>media_type</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t185' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t186' class='stm run hide_run'>        <span class='key'>return</span> <span class='nam'>list</span><span class='op'>(</span><span class='nam'>headers</span><span class='op'>.</span><span class='nam'>items</span><span class='op'>(</span><span class='op'>)</span><span class='op'>)</span><span class='strut'> </span></p>
 | 
			
		||||
                
 | 
			
		||||
            </td>
 | 
			
		||||
        </tr>
 | 
			
		||||
    </table>
 | 
			
		||||
</div>
 | 
			
		||||
 | 
			
		||||
<div id='footer'>
 | 
			
		||||
    <div class='content'>
 | 
			
		||||
        <p>
 | 
			
		||||
            <a class='nav' href='index.html'>« index</a>     <a class='nav' href='http://nedbatchelder.com/code/coverage'>coverage.py v3.6</a>
 | 
			
		||||
        </p>
 | 
			
		||||
    </div>
 | 
			
		||||
</div>
 | 
			
		||||
 | 
			
		||||
</body>
 | 
			
		||||
</html>
 | 
			
		||||
							
								
								
									
										202
									
								
								tests/cover/falcon_response_helpers.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										202
									
								
								tests/cover/falcon_response_helpers.html
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,202 @@
 | 
			
		||||
<!doctype html PUBLIC "-//W3C//DTD html 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
 | 
			
		||||
<html>
 | 
			
		||||
<head>
 | 
			
		||||
    <meta http-equiv='Content-Type' content='text/html; charset=utf-8'>
 | 
			
		||||
    
 | 
			
		||||
    
 | 
			
		||||
    <meta http-equiv='X-UA-Compatible' content='IE=emulateIE7' />
 | 
			
		||||
    <title>Coverage for falcon.response_helpers: 100%</title>
 | 
			
		||||
    <link rel='stylesheet' href='style.css' type='text/css'>
 | 
			
		||||
    
 | 
			
		||||
    <script type='text/javascript' src='jquery-1.4.3.min.js'></script>
 | 
			
		||||
    <script type='text/javascript' src='jquery.hotkeys.js'></script>
 | 
			
		||||
    <script type='text/javascript' src='jquery.isonscreen.js'></script>
 | 
			
		||||
    <script type='text/javascript' src='coverage_html.js'></script>
 | 
			
		||||
    <script type='text/javascript' charset='utf-8'>
 | 
			
		||||
        jQuery(document).ready(coverage.pyfile_ready);
 | 
			
		||||
    </script>
 | 
			
		||||
</head>
 | 
			
		||||
<body id='pyfile'>
 | 
			
		||||
 | 
			
		||||
<div id='header'>
 | 
			
		||||
    <div class='content'>
 | 
			
		||||
        <h1>Coverage for <b>falcon.response_helpers</b> :
 | 
			
		||||
            <span class='pc_cov'>100%</span>
 | 
			
		||||
        </h1>
 | 
			
		||||
        <img id='keyboard_icon' src='keybd_closed.png'>
 | 
			
		||||
        <h2 class='stats'>
 | 
			
		||||
            13 statements  
 | 
			
		||||
            <span class='run hide_run shortkey_r button_toggle_run'>13 run</span>
 | 
			
		||||
            <span class='mis shortkey_m button_toggle_mis'>0 missing</span>
 | 
			
		||||
            <span class='exc shortkey_x button_toggle_exc'>0 excluded</span>
 | 
			
		||||
            
 | 
			
		||||
        </h2>
 | 
			
		||||
    </div>
 | 
			
		||||
</div>
 | 
			
		||||
 | 
			
		||||
<div class='help_panel'>
 | 
			
		||||
    <img id='panel_icon' src='keybd_open.png'>
 | 
			
		||||
<p class='legend'>Hot-keys on this page</p>
 | 
			
		||||
    <div>
 | 
			
		||||
<p class='keyhelp'>
 | 
			
		||||
        <span class='key'>r</span>
 | 
			
		||||
        <span class='key'>m</span>
 | 
			
		||||
        <span class='key'>x</span>
 | 
			
		||||
        <span class='key'>p</span>   toggle line displays
 | 
			
		||||
    </p>
 | 
			
		||||
<p class='keyhelp'>
 | 
			
		||||
        <span class='key'>j</span>
 | 
			
		||||
        <span class='key'>k</span>   next/prev highlighted chunk
 | 
			
		||||
    </p>
 | 
			
		||||
<p class='keyhelp'>
 | 
			
		||||
        <span class='key'>0</span>   (zero) top of page
 | 
			
		||||
    </p>
 | 
			
		||||
<p class='keyhelp'>
 | 
			
		||||
        <span class='key'>1</span>   (one) first highlighted chunk
 | 
			
		||||
    </p>
 | 
			
		||||
    </div>
 | 
			
		||||
</div>
 | 
			
		||||
 | 
			
		||||
<div id='source'>
 | 
			
		||||
    <table cellspacing='0' cellpadding='0'>
 | 
			
		||||
        <tr>
 | 
			
		||||
            <td class='linenos' valign='top'>
 | 
			
		||||
<p id='n1' class='pln'><a href='#n1'>1</a></p>
 | 
			
		||||
<p id='n2' class='pln'><a href='#n2'>2</a></p>
 | 
			
		||||
<p id='n3' class='pln'><a href='#n3'>3</a></p>
 | 
			
		||||
<p id='n4' class='pln'><a href='#n4'>4</a></p>
 | 
			
		||||
<p id='n5' class='pln'><a href='#n5'>5</a></p>
 | 
			
		||||
<p id='n6' class='pln'><a href='#n6'>6</a></p>
 | 
			
		||||
<p id='n7' class='pln'><a href='#n7'>7</a></p>
 | 
			
		||||
<p id='n8' class='pln'><a href='#n8'>8</a></p>
 | 
			
		||||
<p id='n9' class='pln'><a href='#n9'>9</a></p>
 | 
			
		||||
<p id='n10' class='pln'><a href='#n10'>10</a></p>
 | 
			
		||||
<p id='n11' class='pln'><a href='#n11'>11</a></p>
 | 
			
		||||
<p id='n12' class='pln'><a href='#n12'>12</a></p>
 | 
			
		||||
<p id='n13' class='pln'><a href='#n13'>13</a></p>
 | 
			
		||||
<p id='n14' class='pln'><a href='#n14'>14</a></p>
 | 
			
		||||
<p id='n15' class='pln'><a href='#n15'>15</a></p>
 | 
			
		||||
<p id='n16' class='pln'><a href='#n16'>16</a></p>
 | 
			
		||||
<p id='n17' class='pln'><a href='#n17'>17</a></p>
 | 
			
		||||
<p id='n18' class='pln'><a href='#n18'>18</a></p>
 | 
			
		||||
<p id='n19' class='pln'><a href='#n19'>19</a></p>
 | 
			
		||||
<p id='n20' class='stm run hide_run'><a href='#n20'>20</a></p>
 | 
			
		||||
<p id='n21' class='pln'><a href='#n21'>21</a></p>
 | 
			
		||||
<p id='n22' class='pln'><a href='#n22'>22</a></p>
 | 
			
		||||
<p id='n23' class='pln'><a href='#n23'>23</a></p>
 | 
			
		||||
<p id='n24' class='pln'><a href='#n24'>24</a></p>
 | 
			
		||||
<p id='n25' class='pln'><a href='#n25'>25</a></p>
 | 
			
		||||
<p id='n26' class='pln'><a href='#n26'>26</a></p>
 | 
			
		||||
<p id='n27' class='pln'><a href='#n27'>27</a></p>
 | 
			
		||||
<p id='n28' class='pln'><a href='#n28'>28</a></p>
 | 
			
		||||
<p id='n29' class='pln'><a href='#n29'>29</a></p>
 | 
			
		||||
<p id='n30' class='pln'><a href='#n30'>30</a></p>
 | 
			
		||||
<p id='n31' class='pln'><a href='#n31'>31</a></p>
 | 
			
		||||
<p id='n32' class='stm run hide_run'><a href='#n32'>32</a></p>
 | 
			
		||||
<p id='n33' class='stm run hide_run'><a href='#n33'>33</a></p>
 | 
			
		||||
<p id='n34' class='stm run hide_run'><a href='#n34'>34</a></p>
 | 
			
		||||
<p id='n35' class='stm run hide_run'><a href='#n35'>35</a></p>
 | 
			
		||||
<p id='n36' class='stm run hide_run'><a href='#n36'>36</a></p>
 | 
			
		||||
<p id='n37' class='pln'><a href='#n37'>37</a></p>
 | 
			
		||||
<p id='n38' class='stm run hide_run'><a href='#n38'>38</a></p>
 | 
			
		||||
<p id='n39' class='stm run hide_run'><a href='#n39'>39</a></p>
 | 
			
		||||
<p id='n40' class='pln'><a href='#n40'>40</a></p>
 | 
			
		||||
<p id='n41' class='stm run hide_run'><a href='#n41'>41</a></p>
 | 
			
		||||
<p id='n42' class='stm run hide_run'><a href='#n42'>42</a></p>
 | 
			
		||||
<p id='n43' class='pln'><a href='#n43'>43</a></p>
 | 
			
		||||
<p id='n44' class='stm run hide_run'><a href='#n44'>44</a></p>
 | 
			
		||||
<p id='n45' class='pln'><a href='#n45'>45</a></p>
 | 
			
		||||
<p id='n46' class='pln'><a href='#n46'>46</a></p>
 | 
			
		||||
<p id='n47' class='stm run hide_run'><a href='#n47'>47</a></p>
 | 
			
		||||
<p id='n48' class='pln'><a href='#n48'>48</a></p>
 | 
			
		||||
<p id='n49' class='pln'><a href='#n49'>49</a></p>
 | 
			
		||||
<p id='n50' class='pln'><a href='#n50'>50</a></p>
 | 
			
		||||
<p id='n51' class='pln'><a href='#n51'>51</a></p>
 | 
			
		||||
<p id='n52' class='pln'><a href='#n52'>52</a></p>
 | 
			
		||||
<p id='n53' class='pln'><a href='#n53'>53</a></p>
 | 
			
		||||
<p id='n54' class='pln'><a href='#n54'>54</a></p>
 | 
			
		||||
<p id='n55' class='pln'><a href='#n55'>55</a></p>
 | 
			
		||||
<p id='n56' class='pln'><a href='#n56'>56</a></p>
 | 
			
		||||
<p id='n57' class='stm run hide_run'><a href='#n57'>57</a></p>
 | 
			
		||||
<p id='n58' class='pln'><a href='#n58'>58</a></p>
 | 
			
		||||
<p id='n59' class='pln'><a href='#n59'>59</a></p>
 | 
			
		||||
<p id='n60' class='pln'><a href='#n60'>60</a></p>
 | 
			
		||||
                
 | 
			
		||||
            </td>
 | 
			
		||||
            <td class='text' valign='top'>
 | 
			
		||||
<p id='t1' class='pln'><span class='str'>"""Includes private helpers for the Response class.</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t2' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t3' class='pln'><span class='str'>Copyright 2013 by Rackspace Hosting, Inc.</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t4' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t5' class='pln'><span class='str'>Licensed under the Apache License, Version 2.0 (the "License");</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t6' class='pln'><span class='str'>you may not use this file except in compliance with the License.</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t7' class='pln'><span class='str'>You may obtain a copy of the License at</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t8' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t9' class='pln'><span class='str'>   http://www.apache.org/licenses/LICENSE-2.0</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t10' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t11' class='pln'><span class='str'>Unless required by applicable law or agreed to in writing, software</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t12' class='pln'><span class='str'>distributed under the License is distributed on an "AS IS" BASIS,</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t13' class='pln'><span class='str'>WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t14' class='pln'><span class='str'>See the License for the specific language governing permissions and</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t15' class='pln'><span class='str'>limitations under the License.</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t16' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t17' class='pln'><span class='str'>"""</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t18' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t19' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t20' class='stm run hide_run'><span class='key'>def</span> <span class='nam'>header_property</span><span class='op'>(</span><span class='nam'>name</span><span class='op'>,</span> <span class='nam'>doc</span><span class='op'>,</span> <span class='nam'>transform</span><span class='op'>=</span><span class='key'>lambda</span> <span class='nam'>v</span><span class='op'>:</span> <span class='nam'>v</span><span class='op'>)</span><span class='op'>:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t21' class='pln'>    <span class='str'>"""Creates a header getter/setter.</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t22' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t23' class='pln'><span class='str'>    Args:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t24' class='pln'><span class='str'>        name: Header name, e.g., "Content-Type"</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t25' class='pln'><span class='str'>        doc: Docstring for the property</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t26' class='pln'><span class='str'>        transform: Transformation function to use when setting the</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t27' class='pln'><span class='str'>            property. The value will be passed to the function, and</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t28' class='pln'><span class='str'>            the function should return the transformed value to use</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t29' class='pln'><span class='str'>            as the value of the header (default lambda v: v)</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t30' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t31' class='pln'><span class='str'>    """</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t32' class='stm run hide_run'>    <span class='key'>def</span> <span class='nam'>fget</span><span class='op'>(</span><span class='nam'>self</span><span class='op'>)</span><span class='op'>:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t33' class='stm run hide_run'>        <span class='key'>try</span><span class='op'>:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t34' class='stm run hide_run'>            <span class='key'>return</span> <span class='nam'>self</span><span class='op'>.</span><span class='nam'>_headers</span><span class='op'>[</span><span class='nam'>name</span><span class='op'>]</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t35' class='stm run hide_run'>        <span class='key'>except</span> <span class='nam'>KeyError</span><span class='op'>:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t36' class='stm run hide_run'>            <span class='key'>return</span> <span class='nam'>None</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t37' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t38' class='stm run hide_run'>    <span class='key'>def</span> <span class='nam'>fset</span><span class='op'>(</span><span class='nam'>self</span><span class='op'>,</span> <span class='nam'>value</span><span class='op'>)</span><span class='op'>:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t39' class='stm run hide_run'>        <span class='nam'>self</span><span class='op'>.</span><span class='nam'>_headers</span><span class='op'>[</span><span class='nam'>name</span><span class='op'>]</span> <span class='op'>=</span> <span class='nam'>transform</span><span class='op'>(</span><span class='nam'>value</span><span class='op'>)</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t40' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t41' class='stm run hide_run'>    <span class='key'>def</span> <span class='nam'>fdel</span><span class='op'>(</span><span class='nam'>self</span><span class='op'>)</span><span class='op'>:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t42' class='stm run hide_run'>        <span class='key'>del</span> <span class='nam'>self</span><span class='op'>.</span><span class='nam'>_headers</span><span class='op'>[</span><span class='nam'>name</span><span class='op'>]</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t43' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t44' class='stm run hide_run'>    <span class='key'>return</span> <span class='nam'>property</span><span class='op'>(</span><span class='nam'>fget</span><span class='op'>,</span> <span class='nam'>fset</span><span class='op'>,</span> <span class='nam'>fdel</span><span class='op'>,</span> <span class='nam'>doc</span><span class='op'>)</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t45' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t46' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t47' class='stm run hide_run'><span class='key'>def</span> <span class='nam'>format_range</span><span class='op'>(</span><span class='nam'>value</span><span class='op'>)</span><span class='op'>:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t48' class='pln'>    <span class='str'>"""Formats a range header tuple per the HTTP spec.</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t49' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t50' class='pln'><span class='str'>    Args:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t51' class='pln'><span class='str'>        value: Tuple passed to req.range</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t52' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t53' class='pln'><span class='str'>    """</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t54' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t55' class='pln'>    <span class='com'># PERF: Concatenation is faster than % string formatting as well</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t56' class='pln'>    <span class='com'>#       as ''.join() in this case.</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t57' class='stm run hide_run'>    <span class='key'>return</span> <span class='op'>(</span><span class='str'>'bytes '</span> <span class='op'>+</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t58' class='pln'>            <span class='nam'>str</span><span class='op'>(</span><span class='nam'>value</span><span class='op'>[</span><span class='num'>0</span><span class='op'>]</span><span class='op'>)</span> <span class='op'>+</span> <span class='str'>'-'</span> <span class='op'>+</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t59' class='pln'>            <span class='nam'>str</span><span class='op'>(</span><span class='nam'>value</span><span class='op'>[</span><span class='num'>1</span><span class='op'>]</span><span class='op'>)</span> <span class='op'>+</span> <span class='str'>'/'</span> <span class='op'>+</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t60' class='pln'>            <span class='nam'>str</span><span class='op'>(</span><span class='nam'>value</span><span class='op'>[</span><span class='num'>2</span><span class='op'>]</span><span class='op'>)</span><span class='op'>)</span><span class='strut'> </span></p>
 | 
			
		||||
                
 | 
			
		||||
            </td>
 | 
			
		||||
        </tr>
 | 
			
		||||
    </table>
 | 
			
		||||
</div>
 | 
			
		||||
 | 
			
		||||
<div id='footer'>
 | 
			
		||||
    <div class='content'>
 | 
			
		||||
        <p>
 | 
			
		||||
            <a class='nav' href='index.html'>« index</a>     <a class='nav' href='http://nedbatchelder.com/code/coverage'>coverage.py v3.6</a>
 | 
			
		||||
        </p>
 | 
			
		||||
    </div>
 | 
			
		||||
</div>
 | 
			
		||||
 | 
			
		||||
</body>
 | 
			
		||||
</html>
 | 
			
		||||
							
								
								
									
										340
									
								
								tests/cover/falcon_status_codes.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										340
									
								
								tests/cover/falcon_status_codes.html
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,340 @@
 | 
			
		||||
<!doctype html PUBLIC "-//W3C//DTD html 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
 | 
			
		||||
<html>
 | 
			
		||||
<head>
 | 
			
		||||
    <meta http-equiv='Content-Type' content='text/html; charset=utf-8'>
 | 
			
		||||
    
 | 
			
		||||
    
 | 
			
		||||
    <meta http-equiv='X-UA-Compatible' content='IE=emulateIE7' />
 | 
			
		||||
    <title>Coverage for falcon.status_codes: 100%</title>
 | 
			
		||||
    <link rel='stylesheet' href='style.css' type='text/css'>
 | 
			
		||||
    
 | 
			
		||||
    <script type='text/javascript' src='jquery-1.4.3.min.js'></script>
 | 
			
		||||
    <script type='text/javascript' src='jquery.hotkeys.js'></script>
 | 
			
		||||
    <script type='text/javascript' src='jquery.isonscreen.js'></script>
 | 
			
		||||
    <script type='text/javascript' src='coverage_html.js'></script>
 | 
			
		||||
    <script type='text/javascript' charset='utf-8'>
 | 
			
		||||
        jQuery(document).ready(coverage.pyfile_ready);
 | 
			
		||||
    </script>
 | 
			
		||||
</head>
 | 
			
		||||
<body id='pyfile'>
 | 
			
		||||
 | 
			
		||||
<div id='header'>
 | 
			
		||||
    <div class='content'>
 | 
			
		||||
        <h1>Coverage for <b>falcon.status_codes</b> :
 | 
			
		||||
            <span class='pc_cov'>100%</span>
 | 
			
		||||
        </h1>
 | 
			
		||||
        <img id='keyboard_icon' src='keybd_closed.png'>
 | 
			
		||||
        <h2 class='stats'>
 | 
			
		||||
            89 statements  
 | 
			
		||||
            <span class='run hide_run shortkey_r button_toggle_run'>89 run</span>
 | 
			
		||||
            <span class='mis shortkey_m button_toggle_mis'>0 missing</span>
 | 
			
		||||
            <span class='exc shortkey_x button_toggle_exc'>0 excluded</span>
 | 
			
		||||
            
 | 
			
		||||
        </h2>
 | 
			
		||||
    </div>
 | 
			
		||||
</div>
 | 
			
		||||
 | 
			
		||||
<div class='help_panel'>
 | 
			
		||||
    <img id='panel_icon' src='keybd_open.png'>
 | 
			
		||||
<p class='legend'>Hot-keys on this page</p>
 | 
			
		||||
    <div>
 | 
			
		||||
<p class='keyhelp'>
 | 
			
		||||
        <span class='key'>r</span>
 | 
			
		||||
        <span class='key'>m</span>
 | 
			
		||||
        <span class='key'>x</span>
 | 
			
		||||
        <span class='key'>p</span>   toggle line displays
 | 
			
		||||
    </p>
 | 
			
		||||
<p class='keyhelp'>
 | 
			
		||||
        <span class='key'>j</span>
 | 
			
		||||
        <span class='key'>k</span>   next/prev highlighted chunk
 | 
			
		||||
    </p>
 | 
			
		||||
<p class='keyhelp'>
 | 
			
		||||
        <span class='key'>0</span>   (zero) top of page
 | 
			
		||||
    </p>
 | 
			
		||||
<p class='keyhelp'>
 | 
			
		||||
        <span class='key'>1</span>   (one) first highlighted chunk
 | 
			
		||||
    </p>
 | 
			
		||||
    </div>
 | 
			
		||||
</div>
 | 
			
		||||
 | 
			
		||||
<div id='source'>
 | 
			
		||||
    <table cellspacing='0' cellpadding='0'>
 | 
			
		||||
        <tr>
 | 
			
		||||
            <td class='linenos' valign='top'>
 | 
			
		||||
<p id='n1' class='pln'><a href='#n1'>1</a></p>
 | 
			
		||||
<p id='n2' class='pln'><a href='#n2'>2</a></p>
 | 
			
		||||
<p id='n3' class='pln'><a href='#n3'>3</a></p>
 | 
			
		||||
<p id='n4' class='pln'><a href='#n4'>4</a></p>
 | 
			
		||||
<p id='n5' class='pln'><a href='#n5'>5</a></p>
 | 
			
		||||
<p id='n6' class='pln'><a href='#n6'>6</a></p>
 | 
			
		||||
<p id='n7' class='pln'><a href='#n7'>7</a></p>
 | 
			
		||||
<p id='n8' class='pln'><a href='#n8'>8</a></p>
 | 
			
		||||
<p id='n9' class='pln'><a href='#n9'>9</a></p>
 | 
			
		||||
<p id='n10' class='pln'><a href='#n10'>10</a></p>
 | 
			
		||||
<p id='n11' class='pln'><a href='#n11'>11</a></p>
 | 
			
		||||
<p id='n12' class='pln'><a href='#n12'>12</a></p>
 | 
			
		||||
<p id='n13' class='pln'><a href='#n13'>13</a></p>
 | 
			
		||||
<p id='n14' class='pln'><a href='#n14'>14</a></p>
 | 
			
		||||
<p id='n15' class='pln'><a href='#n15'>15</a></p>
 | 
			
		||||
<p id='n16' class='pln'><a href='#n16'>16</a></p>
 | 
			
		||||
<p id='n17' class='pln'><a href='#n17'>17</a></p>
 | 
			
		||||
<p id='n18' class='pln'><a href='#n18'>18</a></p>
 | 
			
		||||
<p id='n19' class='stm run hide_run'><a href='#n19'>19</a></p>
 | 
			
		||||
<p id='n20' class='stm run hide_run'><a href='#n20'>20</a></p>
 | 
			
		||||
<p id='n21' class='pln'><a href='#n21'>21</a></p>
 | 
			
		||||
<p id='n22' class='stm run hide_run'><a href='#n22'>22</a></p>
 | 
			
		||||
<p id='n23' class='stm run hide_run'><a href='#n23'>23</a></p>
 | 
			
		||||
<p id='n24' class='stm run hide_run'><a href='#n24'>24</a></p>
 | 
			
		||||
<p id='n25' class='stm run hide_run'><a href='#n25'>25</a></p>
 | 
			
		||||
<p id='n26' class='stm run hide_run'><a href='#n26'>26</a></p>
 | 
			
		||||
<p id='n27' class='stm run hide_run'><a href='#n27'>27</a></p>
 | 
			
		||||
<p id='n28' class='stm run hide_run'><a href='#n28'>28</a></p>
 | 
			
		||||
<p id='n29' class='stm run hide_run'><a href='#n29'>29</a></p>
 | 
			
		||||
<p id='n30' class='pln'><a href='#n30'>30</a></p>
 | 
			
		||||
<p id='n31' class='pln'><a href='#n31'>31</a></p>
 | 
			
		||||
<p id='n32' class='stm run hide_run'><a href='#n32'>32</a></p>
 | 
			
		||||
<p id='n33' class='stm run hide_run'><a href='#n33'>33</a></p>
 | 
			
		||||
<p id='n34' class='stm run hide_run'><a href='#n34'>34</a></p>
 | 
			
		||||
<p id='n35' class='stm run hide_run'><a href='#n35'>35</a></p>
 | 
			
		||||
<p id='n36' class='stm run hide_run'><a href='#n36'>36</a></p>
 | 
			
		||||
<p id='n37' class='stm run hide_run'><a href='#n37'>37</a></p>
 | 
			
		||||
<p id='n38' class='stm run hide_run'><a href='#n38'>38</a></p>
 | 
			
		||||
<p id='n39' class='pln'><a href='#n39'>39</a></p>
 | 
			
		||||
<p id='n40' class='stm run hide_run'><a href='#n40'>40</a></p>
 | 
			
		||||
<p id='n41' class='stm run hide_run'><a href='#n41'>41</a></p>
 | 
			
		||||
<p id='n42' class='stm run hide_run'><a href='#n42'>42</a></p>
 | 
			
		||||
<p id='n43' class='stm run hide_run'><a href='#n43'>43</a></p>
 | 
			
		||||
<p id='n44' class='stm run hide_run'><a href='#n44'>44</a></p>
 | 
			
		||||
<p id='n45' class='stm run hide_run'><a href='#n45'>45</a></p>
 | 
			
		||||
<p id='n46' class='stm run hide_run'><a href='#n46'>46</a></p>
 | 
			
		||||
<p id='n47' class='stm run hide_run'><a href='#n47'>47</a></p>
 | 
			
		||||
<p id='n48' class='stm run hide_run'><a href='#n48'>48</a></p>
 | 
			
		||||
<p id='n49' class='stm run hide_run'><a href='#n49'>49</a></p>
 | 
			
		||||
<p id='n50' class='stm run hide_run'><a href='#n50'>50</a></p>
 | 
			
		||||
<p id='n51' class='stm run hide_run'><a href='#n51'>51</a></p>
 | 
			
		||||
<p id='n52' class='stm run hide_run'><a href='#n52'>52</a></p>
 | 
			
		||||
<p id='n53' class='stm run hide_run'><a href='#n53'>53</a></p>
 | 
			
		||||
<p id='n54' class='stm run hide_run'><a href='#n54'>54</a></p>
 | 
			
		||||
<p id='n55' class='stm run hide_run'><a href='#n55'>55</a></p>
 | 
			
		||||
<p id='n56' class='stm run hide_run'><a href='#n56'>56</a></p>
 | 
			
		||||
<p id='n57' class='stm run hide_run'><a href='#n57'>57</a></p>
 | 
			
		||||
<p id='n58' class='stm run hide_run'><a href='#n58'>58</a></p>
 | 
			
		||||
<p id='n59' class='pln'><a href='#n59'>59</a></p>
 | 
			
		||||
<p id='n60' class='stm run hide_run'><a href='#n60'>60</a></p>
 | 
			
		||||
<p id='n61' class='stm run hide_run'><a href='#n61'>61</a></p>
 | 
			
		||||
<p id='n62' class='stm run hide_run'><a href='#n62'>62</a></p>
 | 
			
		||||
<p id='n63' class='stm run hide_run'><a href='#n63'>63</a></p>
 | 
			
		||||
<p id='n64' class='stm run hide_run'><a href='#n64'>64</a></p>
 | 
			
		||||
<p id='n65' class='stm run hide_run'><a href='#n65'>65</a></p>
 | 
			
		||||
<p id='n66' class='pln'><a href='#n66'>66</a></p>
 | 
			
		||||
<p id='n67' class='pln'><a href='#n67'>67</a></p>
 | 
			
		||||
<p id='n68' class='stm run hide_run'><a href='#n68'>68</a></p>
 | 
			
		||||
<p id='n69' class='stm run hide_run'><a href='#n69'>69</a></p>
 | 
			
		||||
<p id='n70' class='stm run hide_run'><a href='#n70'>70</a></p>
 | 
			
		||||
<p id='n71' class='pln'><a href='#n71'>71</a></p>
 | 
			
		||||
<p id='n72' class='pln'><a href='#n72'>72</a></p>
 | 
			
		||||
<p id='n73' class='stm run hide_run'><a href='#n73'>73</a></p>
 | 
			
		||||
<p id='n74' class='stm run hide_run'><a href='#n74'>74</a></p>
 | 
			
		||||
<p id='n75' class='stm run hide_run'><a href='#n75'>75</a></p>
 | 
			
		||||
<p id='n76' class='stm run hide_run'><a href='#n76'>76</a></p>
 | 
			
		||||
<p id='n77' class='pln'><a href='#n77'>77</a></p>
 | 
			
		||||
<p id='n78' class='pln'><a href='#n78'>78</a></p>
 | 
			
		||||
<p id='n79' class='stm run hide_run'><a href='#n79'>79</a></p>
 | 
			
		||||
<p id='n80' class='stm run hide_run'><a href='#n80'>80</a></p>
 | 
			
		||||
<p id='n81' class='stm run hide_run'><a href='#n81'>81</a></p>
 | 
			
		||||
<p id='n82' class='stm run hide_run'><a href='#n82'>82</a></p>
 | 
			
		||||
<p id='n83' class='stm run hide_run'><a href='#n83'>83</a></p>
 | 
			
		||||
<p id='n84' class='stm run hide_run'><a href='#n84'>84</a></p>
 | 
			
		||||
<p id='n85' class='stm run hide_run'><a href='#n85'>85</a></p>
 | 
			
		||||
<p id='n86' class='stm run hide_run'><a href='#n86'>86</a></p>
 | 
			
		||||
<p id='n87' class='pln'><a href='#n87'>87</a></p>
 | 
			
		||||
<p id='n88' class='pln'><a href='#n88'>88</a></p>
 | 
			
		||||
<p id='n89' class='stm run hide_run'><a href='#n89'>89</a></p>
 | 
			
		||||
<p id='n90' class='stm run hide_run'><a href='#n90'>90</a></p>
 | 
			
		||||
<p id='n91' class='stm run hide_run'><a href='#n91'>91</a></p>
 | 
			
		||||
<p id='n92' class='stm run hide_run'><a href='#n92'>92</a></p>
 | 
			
		||||
<p id='n93' class='stm run hide_run'><a href='#n93'>93</a></p>
 | 
			
		||||
<p id='n94' class='stm run hide_run'><a href='#n94'>94</a></p>
 | 
			
		||||
<p id='n95' class='pln'><a href='#n95'>95</a></p>
 | 
			
		||||
<p id='n96' class='stm run hide_run'><a href='#n96'>96</a></p>
 | 
			
		||||
<p id='n97' class='stm run hide_run'><a href='#n97'>97</a></p>
 | 
			
		||||
<p id='n98' class='pln'><a href='#n98'>98</a></p>
 | 
			
		||||
<p id='n99' class='pln'><a href='#n99'>99</a></p>
 | 
			
		||||
<p id='n100' class='stm run hide_run'><a href='#n100'>100</a></p>
 | 
			
		||||
<p id='n101' class='stm run hide_run'><a href='#n101'>101</a></p>
 | 
			
		||||
<p id='n102' class='stm run hide_run'><a href='#n102'>102</a></p>
 | 
			
		||||
<p id='n103' class='stm run hide_run'><a href='#n103'>103</a></p>
 | 
			
		||||
<p id='n104' class='stm run hide_run'><a href='#n104'>104</a></p>
 | 
			
		||||
<p id='n105' class='pln'><a href='#n105'>105</a></p>
 | 
			
		||||
<p id='n106' class='pln'><a href='#n106'>106</a></p>
 | 
			
		||||
<p id='n107' class='stm run hide_run'><a href='#n107'>107</a></p>
 | 
			
		||||
<p id='n108' class='stm run hide_run'><a href='#n108'>108</a></p>
 | 
			
		||||
<p id='n109' class='stm run hide_run'><a href='#n109'>109</a></p>
 | 
			
		||||
<p id='n110' class='stm run hide_run'><a href='#n110'>110</a></p>
 | 
			
		||||
<p id='n111' class='stm run hide_run'><a href='#n111'>111</a></p>
 | 
			
		||||
<p id='n112' class='stm run hide_run'><a href='#n112'>112</a></p>
 | 
			
		||||
<p id='n113' class='stm run hide_run'><a href='#n113'>113</a></p>
 | 
			
		||||
<p id='n114' class='stm run hide_run'><a href='#n114'>114</a></p>
 | 
			
		||||
<p id='n115' class='pln'><a href='#n115'>115</a></p>
 | 
			
		||||
<p id='n116' class='pln'><a href='#n116'>116</a></p>
 | 
			
		||||
<p id='n117' class='stm run hide_run'><a href='#n117'>117</a></p>
 | 
			
		||||
<p id='n118' class='stm run hide_run'><a href='#n118'>118</a></p>
 | 
			
		||||
<p id='n119' class='stm run hide_run'><a href='#n119'>119</a></p>
 | 
			
		||||
<p id='n120' class='stm run hide_run'><a href='#n120'>120</a></p>
 | 
			
		||||
<p id='n121' class='stm run hide_run'><a href='#n121'>121</a></p>
 | 
			
		||||
<p id='n122' class='stm run hide_run'><a href='#n122'>122</a></p>
 | 
			
		||||
<p id='n123' class='stm run hide_run'><a href='#n123'>123</a></p>
 | 
			
		||||
<p id='n124' class='pln'><a href='#n124'>124</a></p>
 | 
			
		||||
<p id='n125' class='pln'><a href='#n125'>125</a></p>
 | 
			
		||||
<p id='n126' class='stm run hide_run'><a href='#n126'>126</a></p>
 | 
			
		||||
<p id='n127' class='stm run hide_run'><a href='#n127'>127</a></p>
 | 
			
		||||
<p id='n128' class='stm run hide_run'><a href='#n128'>128</a></p>
 | 
			
		||||
<p id='n129' class='stm run hide_run'><a href='#n129'>129</a></p>
 | 
			
		||||
                
 | 
			
		||||
            </td>
 | 
			
		||||
            <td class='text' valign='top'>
 | 
			
		||||
<p id='t1' class='pln'><span class='str'>"""Defines HTTP status codes.</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t2' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t3' class='pln'><span class='str'>Copyright 2013 by Rackspace Hosting, Inc.</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t4' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t5' class='pln'><span class='str'>Licensed under the Apache License, Version 2.0 (the "License");</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t6' class='pln'><span class='str'>you may not use this file except in compliance with the License.</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t7' class='pln'><span class='str'>You may obtain a copy of the License at</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t8' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t9' class='pln'><span class='str'>   http://www.apache.org/licenses/LICENSE-2.0</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t10' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t11' class='pln'><span class='str'>Unless required by applicable law or agreed to in writing, software</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t12' class='pln'><span class='str'>distributed under the License is distributed on an "AS IS" BASIS,</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t13' class='pln'><span class='str'>WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t14' class='pln'><span class='str'>See the License for the specific language governing permissions and</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t15' class='pln'><span class='str'>limitations under the License.</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t16' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t17' class='pln'><span class='str'>"""</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t18' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t19' class='stm run hide_run'><span class='nam'>HTTP_100</span> <span class='op'>=</span> <span class='str'>'100 Continue'</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t20' class='stm run hide_run'><span class='nam'>HTTP_101</span> <span class='op'>=</span> <span class='str'>'101 Switching Protocols'</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t21' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t22' class='stm run hide_run'><span class='nam'>HTTP_200</span> <span class='op'>=</span> <span class='str'>'200 OK'</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t23' class='stm run hide_run'><span class='nam'>HTTP_201</span> <span class='op'>=</span> <span class='str'>'201 Created'</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t24' class='stm run hide_run'><span class='nam'>HTTP_202</span> <span class='op'>=</span> <span class='str'>'202 Accepted'</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t25' class='stm run hide_run'><span class='nam'>HTTP_203</span> <span class='op'>=</span> <span class='str'>'203 Non-Authoritative Information'</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t26' class='stm run hide_run'><span class='nam'>HTTP_204</span> <span class='op'>=</span> <span class='str'>'204 No Content'</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t27' class='stm run hide_run'><span class='nam'>HTTP_205</span> <span class='op'>=</span> <span class='str'>'205 Reset Content'</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t28' class='stm run hide_run'><span class='nam'>HTTP_206</span> <span class='op'>=</span> <span class='str'>'206 Partial Content'</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t29' class='stm run hide_run'><span class='nam'>HTTP_226</span> <span class='op'>=</span> <span class='str'>'226 IM Used'</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t30' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t31' class='pln'><span class='com'># TODO: 3xx</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t32' class='stm run hide_run'><span class='nam'>HTTP_300</span> <span class='op'>=</span> <span class='str'>'300 Multiple Choices'</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t33' class='stm run hide_run'><span class='nam'>HTTP_301</span> <span class='op'>=</span> <span class='str'>'301 Moved Permanently'</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t34' class='stm run hide_run'><span class='nam'>HTTP_302</span> <span class='op'>=</span> <span class='str'>'302 Found'</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t35' class='stm run hide_run'><span class='nam'>HTTP_303</span> <span class='op'>=</span> <span class='str'>'303 See Other'</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t36' class='stm run hide_run'><span class='nam'>HTTP_304</span> <span class='op'>=</span> <span class='str'>'304 Not Modified'</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t37' class='stm run hide_run'><span class='nam'>HTTP_305</span> <span class='op'>=</span> <span class='str'>'305 Use Proxy'</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t38' class='stm run hide_run'><span class='nam'>HTTP_307</span> <span class='op'>=</span> <span class='str'>'307 Temporary Redirect'</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t39' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t40' class='stm run hide_run'><span class='nam'>HTTP_400</span> <span class='op'>=</span> <span class='str'>'400 Bad Request'</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t41' class='stm run hide_run'><span class='nam'>HTTP_401</span> <span class='op'>=</span> <span class='str'>'401 Unauthorized'</span>  <span class='com'># <-- Really means "unauthenticated"</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t42' class='stm run hide_run'><span class='nam'>HTTP_402</span> <span class='op'>=</span> <span class='str'>'402 Payment Required'</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t43' class='stm run hide_run'><span class='nam'>HTTP_403</span> <span class='op'>=</span> <span class='str'>'403 Forbidden'</span>  <span class='com'># <-- Really means "unauthorized"</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t44' class='stm run hide_run'><span class='nam'>HTTP_404</span> <span class='op'>=</span> <span class='str'>'404 Not Found'</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t45' class='stm run hide_run'><span class='nam'>HTTP_405</span> <span class='op'>=</span> <span class='str'>'405 Method Not Allowed'</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t46' class='stm run hide_run'><span class='nam'>HTTP_406</span> <span class='op'>=</span> <span class='str'>'406 Not Acceptable'</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t47' class='stm run hide_run'><span class='nam'>HTTP_407</span> <span class='op'>=</span> <span class='str'>'407 Proxy Authentication Required'</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t48' class='stm run hide_run'><span class='nam'>HTTP_408</span> <span class='op'>=</span> <span class='str'>'408 Request Time-out'</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t49' class='stm run hide_run'><span class='nam'>HTTP_409</span> <span class='op'>=</span> <span class='str'>'409 Conflict'</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t50' class='stm run hide_run'><span class='nam'>HTTP_410</span> <span class='op'>=</span> <span class='str'>'410 Gone'</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t51' class='stm run hide_run'><span class='nam'>HTTP_411</span> <span class='op'>=</span> <span class='str'>'411 Length Required'</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t52' class='stm run hide_run'><span class='nam'>HTTP_412</span> <span class='op'>=</span> <span class='str'>'412 Precondition Failed'</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t53' class='stm run hide_run'><span class='nam'>HTTP_413</span> <span class='op'>=</span> <span class='str'>'413 Payload Too Large'</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t54' class='stm run hide_run'><span class='nam'>HTTP_414</span> <span class='op'>=</span> <span class='str'>'414 URI Too Long'</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t55' class='stm run hide_run'><span class='nam'>HTTP_415</span> <span class='op'>=</span> <span class='str'>'415 Unsupported Media Type'</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t56' class='stm run hide_run'><span class='nam'>HTTP_416</span> <span class='op'>=</span> <span class='str'>'416 Range Not Satisfiable'</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t57' class='stm run hide_run'><span class='nam'>HTTP_417</span> <span class='op'>=</span> <span class='str'>'417 Expectation Failed'</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t58' class='stm run hide_run'><span class='nam'>HTTP_426</span> <span class='op'>=</span> <span class='str'>'426 Upgrade Required'</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t59' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t60' class='stm run hide_run'><span class='nam'>HTTP_500</span> <span class='op'>=</span> <span class='str'>'500 Internal Server Error'</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t61' class='stm run hide_run'><span class='nam'>HTTP_501</span> <span class='op'>=</span> <span class='str'>'501 Not Implemented'</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t62' class='stm run hide_run'><span class='nam'>HTTP_502</span> <span class='op'>=</span> <span class='str'>'502 Bad Gateway'</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t63' class='stm run hide_run'><span class='nam'>HTTP_503</span> <span class='op'>=</span> <span class='str'>'503 Service Unavailable'</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t64' class='stm run hide_run'><span class='nam'>HTTP_504</span> <span class='op'>=</span> <span class='str'>'504 Gateway Time-out'</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t65' class='stm run hide_run'><span class='nam'>HTTP_505</span> <span class='op'>=</span> <span class='str'>'505 HTTP Version not supported'</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t66' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t67' class='pln'><span class='com'># 70X - Inexcusable</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t68' class='stm run hide_run'><span class='nam'>HTTP_701</span> <span class='op'>=</span> <span class='str'>'701 Meh'</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t69' class='stm run hide_run'><span class='nam'>HTTP_702</span> <span class='op'>=</span> <span class='str'>'702 Emacs'</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t70' class='stm run hide_run'><span class='nam'>HTTP_703</span> <span class='op'>=</span> <span class='str'>'703 Explosion'</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t71' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t72' class='pln'><span class='com'># 71X - Novelty Implementations</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t73' class='stm run hide_run'><span class='nam'>HTTP_710</span> <span class='op'>=</span> <span class='str'>'710 PHP'</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t74' class='stm run hide_run'><span class='nam'>HTTP_711</span> <span class='op'>=</span> <span class='str'>'711 Convenience Store'</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t75' class='stm run hide_run'><span class='nam'>HTTP_712</span> <span class='op'>=</span> <span class='str'>'712 NoSQL'</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t76' class='stm run hide_run'><span class='nam'>HTTP_719</span> <span class='op'>=</span> <span class='str'>'719 I am not a teapot'</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t77' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t78' class='pln'><span class='com'># 72X - Edge Cases</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t79' class='stm run hide_run'><span class='nam'>HTTP_720</span> <span class='op'>=</span> <span class='str'>'720 Unpossible'</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t80' class='stm run hide_run'><span class='nam'>HTTP_721</span> <span class='op'>=</span> <span class='str'>'721 Known Unknowns'</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t81' class='stm run hide_run'><span class='nam'>HTTP_722</span> <span class='op'>=</span> <span class='str'>'722 Unknown Unknowns'</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t82' class='stm run hide_run'><span class='nam'>HTTP_723</span> <span class='op'>=</span> <span class='str'>'723 Tricky'</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t83' class='stm run hide_run'><span class='nam'>HTTP_724</span> <span class='op'>=</span> <span class='str'>'724 This line should be unreachable'</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t84' class='stm run hide_run'><span class='nam'>HTTP_725</span> <span class='op'>=</span> <span class='str'>'725 It works on my machine'</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t85' class='stm run hide_run'><span class='nam'>HTTP_726</span> <span class='op'>=</span> <span class='str'>"726 It's a feature, not a bug"</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t86' class='stm run hide_run'><span class='nam'>HTTP_727</span> <span class='op'>=</span> <span class='str'>'727 32 bits is plenty'</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t87' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t88' class='pln'><span class='com'># 74X - Meme Driven</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t89' class='stm run hide_run'><span class='nam'>HTTP_740</span> <span class='op'>=</span> <span class='str'>'740 Computer says no'</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t90' class='stm run hide_run'><span class='nam'>HTTP_741</span> <span class='op'>=</span> <span class='str'>'741 Compiling'</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t91' class='stm run hide_run'><span class='nam'>HTTP_742</span> <span class='op'>=</span> <span class='str'>'742 A kitten dies'</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t92' class='stm run hide_run'><span class='nam'>HTTP_743</span> <span class='op'>=</span> <span class='str'>'743 I thought I knew regular expressions'</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t93' class='stm run hide_run'><span class='nam'>HTTP_744</span> <span class='op'>=</span> <span class='str'>'744 Y U NO write integration tests?'</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t94' class='stm run hide_run'><span class='nam'>HTTP_745</span> <span class='op'>=</span> <span class='op'>(</span><span class='str'>"745 I don't always test my code, but when I do"</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t95' class='pln'>            <span class='str'>"I do it in production"</span><span class='op'>)</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t96' class='stm run hide_run'><span class='nam'>HTTP_748</span> <span class='op'>=</span> <span class='str'>'748 Confounded by Ponies'</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t97' class='stm run hide_run'><span class='nam'>HTTP_749</span> <span class='op'>=</span> <span class='str'>'749 Reserved for Chuck Norris'</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t98' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t99' class='pln'><span class='com'># 75X - Syntax Errors</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t100' class='stm run hide_run'><span class='nam'>HTTP_750</span> <span class='op'>=</span> <span class='str'>"750 Didn't bother to compile it"</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t101' class='stm run hide_run'><span class='nam'>HTTP_753</span> <span class='op'>=</span> <span class='str'>'753 Syntax Error'</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t102' class='stm run hide_run'><span class='nam'>HTTP_754</span> <span class='op'>=</span> <span class='str'>'754 Too many semi-colons'</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t103' class='stm run hide_run'><span class='nam'>HTTP_755</span> <span class='op'>=</span> <span class='str'>'755 Not enough semi-colons'</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t104' class='stm run hide_run'><span class='nam'>HTTP_759</span> <span class='op'>=</span> <span class='str'>'759 Unexpected T_PAAMAYIM_NEKUDOTAYIM'</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t105' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t106' class='pln'><span class='com'># 77X - Predictable Problems</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t107' class='stm run hide_run'><span class='nam'>HTTP_771</span> <span class='op'>=</span> <span class='str'>'771 Cached for too long'</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t108' class='stm run hide_run'><span class='nam'>HTTP_772</span> <span class='op'>=</span> <span class='str'>'772 Not cached long enough'</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t109' class='stm run hide_run'><span class='nam'>HTTP_773</span> <span class='op'>=</span> <span class='str'>'773 Not cached at all'</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t110' class='stm run hide_run'><span class='nam'>HTTP_774</span> <span class='op'>=</span> <span class='str'>'774 Why was this cached?'</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t111' class='stm run hide_run'><span class='nam'>HTTP_776</span> <span class='op'>=</span> <span class='str'>'776 Error on the Exception'</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t112' class='stm run hide_run'><span class='nam'>HTTP_777</span> <span class='op'>=</span> <span class='str'>'777 Coincidence'</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t113' class='stm run hide_run'><span class='nam'>HTTP_778</span> <span class='op'>=</span> <span class='str'>'778 Off By One Error'</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t114' class='stm run hide_run'><span class='nam'>HTTP_779</span> <span class='op'>=</span> <span class='str'>'779 Off By Too Many To Count Error'</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t115' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t116' class='pln'><span class='com'># 78X - Somebody Else's Problem</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t117' class='stm run hide_run'><span class='nam'>HTTP_780</span> <span class='op'>=</span> <span class='str'>'780 Project owner not responding'</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t118' class='stm run hide_run'><span class='nam'>HTTP_781</span> <span class='op'>=</span> <span class='str'>'781 Operations'</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t119' class='stm run hide_run'><span class='nam'>HTTP_782</span> <span class='op'>=</span> <span class='str'>'782 QA'</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t120' class='stm run hide_run'><span class='nam'>HTTP_783</span> <span class='op'>=</span> <span class='str'>'783 It was a customer request, honestly'</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t121' class='stm run hide_run'><span class='nam'>HTTP_784</span> <span class='op'>=</span> <span class='str'>'784 Management, obviously'</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t122' class='stm run hide_run'><span class='nam'>HTTP_785</span> <span class='op'>=</span> <span class='str'>'785 TPS Cover Sheet not attached'</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t123' class='stm run hide_run'><span class='nam'>HTTP_786</span> <span class='op'>=</span> <span class='str'>'786 Try it now'</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t124' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t125' class='pln'><span class='com'># 79X - Internet crashed</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t126' class='stm run hide_run'><span class='nam'>HTTP_791</span> <span class='op'>=</span> <span class='str'>'791 The Internet shut down due to copyright restrictions'</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t127' class='stm run hide_run'><span class='nam'>HTTP_792</span> <span class='op'>=</span> <span class='str'>'792 Climate change driven catastrophic weather event'</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t128' class='stm run hide_run'><span class='nam'>HTTP_797</span> <span class='op'>=</span> <span class='str'>'797 This is the last page of the Internet. Go back'</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t129' class='stm run hide_run'><span class='nam'>HTTP_799</span> <span class='op'>=</span> <span class='str'>'799 End of the world'</span><span class='strut'> </span></p>
 | 
			
		||||
                
 | 
			
		||||
            </td>
 | 
			
		||||
        </tr>
 | 
			
		||||
    </table>
 | 
			
		||||
</div>
 | 
			
		||||
 | 
			
		||||
<div id='footer'>
 | 
			
		||||
    <div class='content'>
 | 
			
		||||
        <p>
 | 
			
		||||
            <a class='nav' href='index.html'>« index</a>     <a class='nav' href='http://nedbatchelder.com/code/coverage'>coverage.py v3.6</a>
 | 
			
		||||
        </p>
 | 
			
		||||
    </div>
 | 
			
		||||
</div>
 | 
			
		||||
 | 
			
		||||
</body>
 | 
			
		||||
</html>
 | 
			
		||||
							
								
								
									
										148
									
								
								tests/cover/falcon_util.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										148
									
								
								tests/cover/falcon_util.html
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,148 @@
 | 
			
		||||
<!doctype html PUBLIC "-//W3C//DTD html 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
 | 
			
		||||
<html>
 | 
			
		||||
<head>
 | 
			
		||||
    <meta http-equiv='Content-Type' content='text/html; charset=utf-8'>
 | 
			
		||||
    
 | 
			
		||||
    
 | 
			
		||||
    <meta http-equiv='X-UA-Compatible' content='IE=emulateIE7' />
 | 
			
		||||
    <title>Coverage for falcon.util: 100%</title>
 | 
			
		||||
    <link rel='stylesheet' href='style.css' type='text/css'>
 | 
			
		||||
    
 | 
			
		||||
    <script type='text/javascript' src='jquery-1.4.3.min.js'></script>
 | 
			
		||||
    <script type='text/javascript' src='jquery.hotkeys.js'></script>
 | 
			
		||||
    <script type='text/javascript' src='jquery.isonscreen.js'></script>
 | 
			
		||||
    <script type='text/javascript' src='coverage_html.js'></script>
 | 
			
		||||
    <script type='text/javascript' charset='utf-8'>
 | 
			
		||||
        jQuery(document).ready(coverage.pyfile_ready);
 | 
			
		||||
    </script>
 | 
			
		||||
</head>
 | 
			
		||||
<body id='pyfile'>
 | 
			
		||||
 | 
			
		||||
<div id='header'>
 | 
			
		||||
    <div class='content'>
 | 
			
		||||
        <h1>Coverage for <b>falcon.util</b> :
 | 
			
		||||
            <span class='pc_cov'>100%</span>
 | 
			
		||||
        </h1>
 | 
			
		||||
        <img id='keyboard_icon' src='keybd_closed.png'>
 | 
			
		||||
        <h2 class='stats'>
 | 
			
		||||
            2 statements  
 | 
			
		||||
            <span class='run hide_run shortkey_r button_toggle_run'>2 run</span>
 | 
			
		||||
            <span class='mis shortkey_m button_toggle_mis'>0 missing</span>
 | 
			
		||||
            <span class='exc shortkey_x button_toggle_exc'>0 excluded</span>
 | 
			
		||||
            
 | 
			
		||||
        </h2>
 | 
			
		||||
    </div>
 | 
			
		||||
</div>
 | 
			
		||||
 | 
			
		||||
<div class='help_panel'>
 | 
			
		||||
    <img id='panel_icon' src='keybd_open.png'>
 | 
			
		||||
<p class='legend'>Hot-keys on this page</p>
 | 
			
		||||
    <div>
 | 
			
		||||
<p class='keyhelp'>
 | 
			
		||||
        <span class='key'>r</span>
 | 
			
		||||
        <span class='key'>m</span>
 | 
			
		||||
        <span class='key'>x</span>
 | 
			
		||||
        <span class='key'>p</span>   toggle line displays
 | 
			
		||||
    </p>
 | 
			
		||||
<p class='keyhelp'>
 | 
			
		||||
        <span class='key'>j</span>
 | 
			
		||||
        <span class='key'>k</span>   next/prev highlighted chunk
 | 
			
		||||
    </p>
 | 
			
		||||
<p class='keyhelp'>
 | 
			
		||||
        <span class='key'>0</span>   (zero) top of page
 | 
			
		||||
    </p>
 | 
			
		||||
<p class='keyhelp'>
 | 
			
		||||
        <span class='key'>1</span>   (one) first highlighted chunk
 | 
			
		||||
    </p>
 | 
			
		||||
    </div>
 | 
			
		||||
</div>
 | 
			
		||||
 | 
			
		||||
<div id='source'>
 | 
			
		||||
    <table cellspacing='0' cellpadding='0'>
 | 
			
		||||
        <tr>
 | 
			
		||||
            <td class='linenos' valign='top'>
 | 
			
		||||
<p id='n1' class='pln'><a href='#n1'>1</a></p>
 | 
			
		||||
<p id='n2' class='pln'><a href='#n2'>2</a></p>
 | 
			
		||||
<p id='n3' class='pln'><a href='#n3'>3</a></p>
 | 
			
		||||
<p id='n4' class='pln'><a href='#n4'>4</a></p>
 | 
			
		||||
<p id='n5' class='pln'><a href='#n5'>5</a></p>
 | 
			
		||||
<p id='n6' class='pln'><a href='#n6'>6</a></p>
 | 
			
		||||
<p id='n7' class='pln'><a href='#n7'>7</a></p>
 | 
			
		||||
<p id='n8' class='pln'><a href='#n8'>8</a></p>
 | 
			
		||||
<p id='n9' class='pln'><a href='#n9'>9</a></p>
 | 
			
		||||
<p id='n10' class='pln'><a href='#n10'>10</a></p>
 | 
			
		||||
<p id='n11' class='pln'><a href='#n11'>11</a></p>
 | 
			
		||||
<p id='n12' class='pln'><a href='#n12'>12</a></p>
 | 
			
		||||
<p id='n13' class='pln'><a href='#n13'>13</a></p>
 | 
			
		||||
<p id='n14' class='pln'><a href='#n14'>14</a></p>
 | 
			
		||||
<p id='n15' class='pln'><a href='#n15'>15</a></p>
 | 
			
		||||
<p id='n16' class='pln'><a href='#n16'>16</a></p>
 | 
			
		||||
<p id='n17' class='pln'><a href='#n17'>17</a></p>
 | 
			
		||||
<p id='n18' class='pln'><a href='#n18'>18</a></p>
 | 
			
		||||
<p id='n19' class='pln'><a href='#n19'>19</a></p>
 | 
			
		||||
<p id='n20' class='stm run hide_run'><a href='#n20'>20</a></p>
 | 
			
		||||
<p id='n21' class='pln'><a href='#n21'>21</a></p>
 | 
			
		||||
<p id='n22' class='pln'><a href='#n22'>22</a></p>
 | 
			
		||||
<p id='n23' class='pln'><a href='#n23'>23</a></p>
 | 
			
		||||
<p id='n24' class='pln'><a href='#n24'>24</a></p>
 | 
			
		||||
<p id='n25' class='pln'><a href='#n25'>25</a></p>
 | 
			
		||||
<p id='n26' class='pln'><a href='#n26'>26</a></p>
 | 
			
		||||
<p id='n27' class='pln'><a href='#n27'>27</a></p>
 | 
			
		||||
<p id='n28' class='pln'><a href='#n28'>28</a></p>
 | 
			
		||||
<p id='n29' class='pln'><a href='#n29'>29</a></p>
 | 
			
		||||
<p id='n30' class='pln'><a href='#n30'>30</a></p>
 | 
			
		||||
<p id='n31' class='pln'><a href='#n31'>31</a></p>
 | 
			
		||||
<p id='n32' class='pln'><a href='#n32'>32</a></p>
 | 
			
		||||
<p id='n33' class='stm run hide_run'><a href='#n33'>33</a></p>
 | 
			
		||||
                
 | 
			
		||||
            </td>
 | 
			
		||||
            <td class='text' valign='top'>
 | 
			
		||||
<p id='t1' class='pln'><span class='str'>"""Defines Falcon utility functions</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t2' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t3' class='pln'><span class='str'>Copyright 2013 by Rackspace Hosting, Inc.</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t4' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t5' class='pln'><span class='str'>Licensed under the Apache License, Version 2.0 (the "License");</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t6' class='pln'><span class='str'>you may not use this file except in compliance with the License.</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t7' class='pln'><span class='str'>You may obtain a copy of the License at</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t8' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t9' class='pln'><span class='str'>   http://www.apache.org/licenses/LICENSE-2.0</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t10' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t11' class='pln'><span class='str'>Unless required by applicable law or agreed to in writing, software</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t12' class='pln'><span class='str'>distributed under the License is distributed on an "AS IS" BASIS,</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t13' class='pln'><span class='str'>WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t14' class='pln'><span class='str'>See the License for the specific language governing permissions and</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t15' class='pln'><span class='str'>limitations under the License.</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t16' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t17' class='pln'><span class='str'>"""</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t18' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t19' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t20' class='stm run hide_run'><span class='key'>def</span> <span class='nam'>dt_to_http</span><span class='op'>(</span><span class='nam'>dt</span><span class='op'>)</span><span class='op'>:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t21' class='pln'>    <span class='str'>"""Converts a datetime instance to an HTTP date string.</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t22' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t23' class='pln'><span class='str'>    Args:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t24' class='pln'><span class='str'>        dt: A datetime object, assumed to be UTC</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t25' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t26' class='pln'><span class='str'>    Returns:</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t27' class='pln'><span class='str'>        An HTTP date string, e.g., "Tue, 15 Nov 1994 12:45:26 GMT". See</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t28' class='pln'><span class='str'>        also: http://goo.gl/R7So4</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t29' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t30' class='pln'><span class='str'>    """</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t31' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t32' class='pln'>    <span class='com'># Tue, 15 Nov 1994 12:45:26 GMT</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t33' class='stm run hide_run'>    <span class='key'>return</span> <span class='nam'>dt</span><span class='op'>.</span><span class='nam'>strftime</span><span class='op'>(</span><span class='str'>'%a, %d %b %Y %H:%M:%S GMT'</span><span class='op'>)</span><span class='strut'> </span></p>
 | 
			
		||||
                
 | 
			
		||||
            </td>
 | 
			
		||||
        </tr>
 | 
			
		||||
    </table>
 | 
			
		||||
</div>
 | 
			
		||||
 | 
			
		||||
<div id='footer'>
 | 
			
		||||
    <div class='content'>
 | 
			
		||||
        <p>
 | 
			
		||||
            <a class='nav' href='index.html'>« index</a>     <a class='nav' href='http://nedbatchelder.com/code/coverage'>coverage.py v3.6</a>
 | 
			
		||||
        </p>
 | 
			
		||||
    </div>
 | 
			
		||||
</div>
 | 
			
		||||
 | 
			
		||||
</body>
 | 
			
		||||
</html>
 | 
			
		||||
							
								
								
									
										126
									
								
								tests/cover/falcon_version.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										126
									
								
								tests/cover/falcon_version.html
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,126 @@
 | 
			
		||||
<!doctype html PUBLIC "-//W3C//DTD html 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
 | 
			
		||||
<html>
 | 
			
		||||
<head>
 | 
			
		||||
    <meta http-equiv='Content-Type' content='text/html; charset=utf-8'>
 | 
			
		||||
    
 | 
			
		||||
    
 | 
			
		||||
    <meta http-equiv='X-UA-Compatible' content='IE=emulateIE7' />
 | 
			
		||||
    <title>Coverage for falcon.version: 100%</title>
 | 
			
		||||
    <link rel='stylesheet' href='style.css' type='text/css'>
 | 
			
		||||
    
 | 
			
		||||
    <script type='text/javascript' src='jquery-1.4.3.min.js'></script>
 | 
			
		||||
    <script type='text/javascript' src='jquery.hotkeys.js'></script>
 | 
			
		||||
    <script type='text/javascript' src='jquery.isonscreen.js'></script>
 | 
			
		||||
    <script type='text/javascript' src='coverage_html.js'></script>
 | 
			
		||||
    <script type='text/javascript' charset='utf-8'>
 | 
			
		||||
        jQuery(document).ready(coverage.pyfile_ready);
 | 
			
		||||
    </script>
 | 
			
		||||
</head>
 | 
			
		||||
<body id='pyfile'>
 | 
			
		||||
 | 
			
		||||
<div id='header'>
 | 
			
		||||
    <div class='content'>
 | 
			
		||||
        <h1>Coverage for <b>falcon.version</b> :
 | 
			
		||||
            <span class='pc_cov'>100%</span>
 | 
			
		||||
        </h1>
 | 
			
		||||
        <img id='keyboard_icon' src='keybd_closed.png'>
 | 
			
		||||
        <h2 class='stats'>
 | 
			
		||||
            3 statements  
 | 
			
		||||
            <span class='run hide_run shortkey_r button_toggle_run'>3 run</span>
 | 
			
		||||
            <span class='mis shortkey_m button_toggle_mis'>0 missing</span>
 | 
			
		||||
            <span class='exc shortkey_x button_toggle_exc'>0 excluded</span>
 | 
			
		||||
            
 | 
			
		||||
        </h2>
 | 
			
		||||
    </div>
 | 
			
		||||
</div>
 | 
			
		||||
 | 
			
		||||
<div class='help_panel'>
 | 
			
		||||
    <img id='panel_icon' src='keybd_open.png'>
 | 
			
		||||
<p class='legend'>Hot-keys on this page</p>
 | 
			
		||||
    <div>
 | 
			
		||||
<p class='keyhelp'>
 | 
			
		||||
        <span class='key'>r</span>
 | 
			
		||||
        <span class='key'>m</span>
 | 
			
		||||
        <span class='key'>x</span>
 | 
			
		||||
        <span class='key'>p</span>   toggle line displays
 | 
			
		||||
    </p>
 | 
			
		||||
<p class='keyhelp'>
 | 
			
		||||
        <span class='key'>j</span>
 | 
			
		||||
        <span class='key'>k</span>   next/prev highlighted chunk
 | 
			
		||||
    </p>
 | 
			
		||||
<p class='keyhelp'>
 | 
			
		||||
        <span class='key'>0</span>   (zero) top of page
 | 
			
		||||
    </p>
 | 
			
		||||
<p class='keyhelp'>
 | 
			
		||||
        <span class='key'>1</span>   (one) first highlighted chunk
 | 
			
		||||
    </p>
 | 
			
		||||
    </div>
 | 
			
		||||
</div>
 | 
			
		||||
 | 
			
		||||
<div id='source'>
 | 
			
		||||
    <table cellspacing='0' cellpadding='0'>
 | 
			
		||||
        <tr>
 | 
			
		||||
            <td class='linenos' valign='top'>
 | 
			
		||||
<p id='n1' class='pln'><a href='#n1'>1</a></p>
 | 
			
		||||
<p id='n2' class='pln'><a href='#n2'>2</a></p>
 | 
			
		||||
<p id='n3' class='pln'><a href='#n3'>3</a></p>
 | 
			
		||||
<p id='n4' class='pln'><a href='#n4'>4</a></p>
 | 
			
		||||
<p id='n5' class='pln'><a href='#n5'>5</a></p>
 | 
			
		||||
<p id='n6' class='pln'><a href='#n6'>6</a></p>
 | 
			
		||||
<p id='n7' class='pln'><a href='#n7'>7</a></p>
 | 
			
		||||
<p id='n8' class='pln'><a href='#n8'>8</a></p>
 | 
			
		||||
<p id='n9' class='pln'><a href='#n9'>9</a></p>
 | 
			
		||||
<p id='n10' class='pln'><a href='#n10'>10</a></p>
 | 
			
		||||
<p id='n11' class='pln'><a href='#n11'>11</a></p>
 | 
			
		||||
<p id='n12' class='pln'><a href='#n12'>12</a></p>
 | 
			
		||||
<p id='n13' class='pln'><a href='#n13'>13</a></p>
 | 
			
		||||
<p id='n14' class='pln'><a href='#n14'>14</a></p>
 | 
			
		||||
<p id='n15' class='pln'><a href='#n15'>15</a></p>
 | 
			
		||||
<p id='n16' class='pln'><a href='#n16'>16</a></p>
 | 
			
		||||
<p id='n17' class='pln'><a href='#n17'>17</a></p>
 | 
			
		||||
<p id='n18' class='pln'><a href='#n18'>18</a></p>
 | 
			
		||||
<p id='n19' class='stm run hide_run'><a href='#n19'>19</a></p>
 | 
			
		||||
<p id='n20' class='pln'><a href='#n20'>20</a></p>
 | 
			
		||||
<p id='n21' class='stm run hide_run'><a href='#n21'>21</a></p>
 | 
			
		||||
<p id='n22' class='stm run hide_run'><a href='#n22'>22</a></p>
 | 
			
		||||
                
 | 
			
		||||
            </td>
 | 
			
		||||
            <td class='text' valign='top'>
 | 
			
		||||
<p id='t1' class='pln'><span class='str'>"""Falcon version</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t2' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t3' class='pln'><span class='str'>Copyright 2013 by Rackspace Hosting, Inc.</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t4' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t5' class='pln'><span class='str'>Licensed under the Apache License, Version 2.0 (the "License");</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t6' class='pln'><span class='str'>you may not use this file except in compliance with the License.</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t7' class='pln'><span class='str'>You may obtain a copy of the License at</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t8' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t9' class='pln'><span class='str'>   http://www.apache.org/licenses/LICENSE-2.0</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t10' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t11' class='pln'><span class='str'>Unless required by applicable law or agreed to in writing, software</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t12' class='pln'><span class='str'>distributed under the License is distributed on an "AS IS" BASIS,</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t13' class='pln'><span class='str'>WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t14' class='pln'><span class='str'>See the License for the specific language governing permissions and</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t15' class='pln'><span class='str'>limitations under the License.</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t16' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t17' class='pln'><span class='str'>"""</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t18' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t19' class='stm run hide_run'><span class='nam'>VERSION_TUPLE</span> <span class='op'>=</span> <span class='op'>(</span><span class='num'>0</span><span class='op'>,</span> <span class='num'>1</span><span class='op'>,</span> <span class='num'>2</span><span class='op'>,</span> <span class='str'>'-dev'</span><span class='op'>)</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t20' class='pln'><span class='strut'> </span></p>
 | 
			
		||||
<p id='t21' class='stm run hide_run'><span class='nam'>version</span> <span class='op'>=</span> <span class='str'>'.'</span><span class='op'>.</span><span class='nam'>join</span><span class='op'>(</span><span class='nam'>map</span><span class='op'>(</span><span class='nam'>str</span><span class='op'>,</span> <span class='nam'>VERSION_TUPLE</span><span class='op'>[</span><span class='op'>:</span><span class='op'>-</span><span class='num'>1</span><span class='op'>]</span><span class='op'>)</span><span class='op'>)</span> <span class='op'>+</span> <span class='nam'>VERSION_TUPLE</span><span class='op'>[</span><span class='op'>-</span><span class='num'>1</span><span class='op'>]</span><span class='strut'> </span></p>
 | 
			
		||||
<p id='t22' class='stm run hide_run'><span class='str'>"""Current version of Falcon."""</span><span class='strut'> </span></p>
 | 
			
		||||
                
 | 
			
		||||
            </td>
 | 
			
		||||
        </tr>
 | 
			
		||||
    </table>
 | 
			
		||||
</div>
 | 
			
		||||
 | 
			
		||||
<div id='footer'>
 | 
			
		||||
    <div class='content'>
 | 
			
		||||
        <p>
 | 
			
		||||
            <a class='nav' href='index.html'>« index</a>     <a class='nav' href='http://nedbatchelder.com/code/coverage'>coverage.py v3.6</a>
 | 
			
		||||
        </p>
 | 
			
		||||
    </div>
 | 
			
		||||
</div>
 | 
			
		||||
 | 
			
		||||
</body>
 | 
			
		||||
</html>
 | 
			
		||||
							
								
								
									
										207
									
								
								tests/cover/index.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										207
									
								
								tests/cover/index.html
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,207 @@
 | 
			
		||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
 | 
			
		||||
<html>
 | 
			
		||||
<head>
 | 
			
		||||
    <meta http-equiv='Content-Type' content='text/html; charset=utf-8'>
 | 
			
		||||
    <title>Coverage report</title>
 | 
			
		||||
    <link rel='stylesheet' href='style.css' type='text/css'>
 | 
			
		||||
    
 | 
			
		||||
    <script type='text/javascript' src='jquery-1.4.3.min.js'></script>
 | 
			
		||||
    <script type='text/javascript' src='jquery.tablesorter.min.js'></script>
 | 
			
		||||
    <script type='text/javascript' src='jquery.hotkeys.js'></script>
 | 
			
		||||
    <script type='text/javascript' src='coverage_html.js'></script>
 | 
			
		||||
    <script type='text/javascript' charset='utf-8'>
 | 
			
		||||
        jQuery(document).ready(coverage.index_ready);
 | 
			
		||||
    </script>
 | 
			
		||||
</head>
 | 
			
		||||
<body id='indexfile'>
 | 
			
		||||
 | 
			
		||||
<div id='header'>
 | 
			
		||||
    <div class='content'>
 | 
			
		||||
        <h1>Coverage report:
 | 
			
		||||
            <span class='pc_cov'>100%</span>
 | 
			
		||||
        </h1>
 | 
			
		||||
        <img id='keyboard_icon' src='keybd_closed.png'>
 | 
			
		||||
    </div>
 | 
			
		||||
</div>
 | 
			
		||||
 | 
			
		||||
<div class='help_panel'>
 | 
			
		||||
    <img id='panel_icon' src='keybd_open.png'>
 | 
			
		||||
    <p class='legend'>Hot-keys on this page</p>
 | 
			
		||||
    <div>
 | 
			
		||||
    <p class='keyhelp'>
 | 
			
		||||
        <span class='key'>n</span>
 | 
			
		||||
        <span class='key'>s</span>
 | 
			
		||||
        <span class='key'>m</span>
 | 
			
		||||
        <span class='key'>x</span>
 | 
			
		||||
        
 | 
			
		||||
        <span class='key'>c</span>   change column sorting
 | 
			
		||||
    </p>
 | 
			
		||||
    </div>
 | 
			
		||||
</div>
 | 
			
		||||
 | 
			
		||||
<div id='index'>
 | 
			
		||||
    <table class='index'>
 | 
			
		||||
        <thead>
 | 
			
		||||
            
 | 
			
		||||
            <tr class='tablehead' title='Click to sort'>
 | 
			
		||||
                <th class='name left headerSortDown shortkey_n'>Module</th>
 | 
			
		||||
                <th class='shortkey_s'>statements</th>
 | 
			
		||||
                <th class='shortkey_m'>missing</th>
 | 
			
		||||
                <th class='shortkey_x'>excluded</th>
 | 
			
		||||
                
 | 
			
		||||
                <th class='right shortkey_c'>coverage</th>
 | 
			
		||||
            </tr>
 | 
			
		||||
        </thead>
 | 
			
		||||
        
 | 
			
		||||
        <tfoot>
 | 
			
		||||
            <tr class='total'>
 | 
			
		||||
                <td class='name left'>Total</td>
 | 
			
		||||
                <td>557</td>
 | 
			
		||||
                <td>0</td>
 | 
			
		||||
                <td>2</td>
 | 
			
		||||
                
 | 
			
		||||
                <td class='right'>100%</td>
 | 
			
		||||
            </tr>
 | 
			
		||||
        </tfoot>
 | 
			
		||||
        <tbody>
 | 
			
		||||
            
 | 
			
		||||
            <tr class='file'>
 | 
			
		||||
                <td class='name left'><a href='falcon.html'>falcon</a></td>
 | 
			
		||||
                <td>11</td>
 | 
			
		||||
                <td>0</td>
 | 
			
		||||
                <td>0</td>
 | 
			
		||||
                
 | 
			
		||||
                <td class='right'>100%</td>
 | 
			
		||||
            </tr>
 | 
			
		||||
            
 | 
			
		||||
            <tr class='file'>
 | 
			
		||||
                <td class='name left'><a href='falcon_api.html'>falcon.api</a></td>
 | 
			
		||||
                <td>55</td>
 | 
			
		||||
                <td>0</td>
 | 
			
		||||
                <td>0</td>
 | 
			
		||||
                
 | 
			
		||||
                <td class='right'>100%</td>
 | 
			
		||||
            </tr>
 | 
			
		||||
            
 | 
			
		||||
            <tr class='file'>
 | 
			
		||||
                <td class='name left'><a href='falcon_api_helpers.html'>falcon.api_helpers</a></td>
 | 
			
		||||
                <td>82</td>
 | 
			
		||||
                <td>0</td>
 | 
			
		||||
                <td>0</td>
 | 
			
		||||
                
 | 
			
		||||
                <td class='right'>100%</td>
 | 
			
		||||
            </tr>
 | 
			
		||||
            
 | 
			
		||||
            <tr class='file'>
 | 
			
		||||
                <td class='name left'><a href='falcon_exceptions.html'>falcon.exceptions</a></td>
 | 
			
		||||
                <td>51</td>
 | 
			
		||||
                <td>0</td>
 | 
			
		||||
                <td>0</td>
 | 
			
		||||
                
 | 
			
		||||
                <td class='right'>100%</td>
 | 
			
		||||
            </tr>
 | 
			
		||||
            
 | 
			
		||||
            <tr class='file'>
 | 
			
		||||
                <td class='name left'><a href='falcon_hooks.html'>falcon.hooks</a></td>
 | 
			
		||||
                <td>47</td>
 | 
			
		||||
                <td>0</td>
 | 
			
		||||
                <td>0</td>
 | 
			
		||||
                
 | 
			
		||||
                <td class='right'>100%</td>
 | 
			
		||||
            </tr>
 | 
			
		||||
            
 | 
			
		||||
            <tr class='file'>
 | 
			
		||||
                <td class='name left'><a href='falcon_http_error.html'>falcon.http_error</a></td>
 | 
			
		||||
                <td>30</td>
 | 
			
		||||
                <td>0</td>
 | 
			
		||||
                <td>2</td>
 | 
			
		||||
                
 | 
			
		||||
                <td class='right'>100%</td>
 | 
			
		||||
            </tr>
 | 
			
		||||
            
 | 
			
		||||
            <tr class='file'>
 | 
			
		||||
                <td class='name left'><a href='falcon_request.html'>falcon.request</a></td>
 | 
			
		||||
                <td>111</td>
 | 
			
		||||
                <td>0</td>
 | 
			
		||||
                <td>0</td>
 | 
			
		||||
                
 | 
			
		||||
                <td class='right'>100%</td>
 | 
			
		||||
            </tr>
 | 
			
		||||
            
 | 
			
		||||
            <tr class='file'>
 | 
			
		||||
                <td class='name left'><a href='falcon_request_helpers.html'>falcon.request_helpers</a></td>
 | 
			
		||||
                <td>23</td>
 | 
			
		||||
                <td>0</td>
 | 
			
		||||
                <td>0</td>
 | 
			
		||||
                
 | 
			
		||||
                <td class='right'>100%</td>
 | 
			
		||||
            </tr>
 | 
			
		||||
            
 | 
			
		||||
            <tr class='file'>
 | 
			
		||||
                <td class='name left'><a href='falcon_responders.html'>falcon.responders</a></td>
 | 
			
		||||
                <td>10</td>
 | 
			
		||||
                <td>0</td>
 | 
			
		||||
                <td>0</td>
 | 
			
		||||
                
 | 
			
		||||
                <td class='right'>100%</td>
 | 
			
		||||
            </tr>
 | 
			
		||||
            
 | 
			
		||||
            <tr class='file'>
 | 
			
		||||
                <td class='name left'><a href='falcon_response.html'>falcon.response</a></td>
 | 
			
		||||
                <td>30</td>
 | 
			
		||||
                <td>0</td>
 | 
			
		||||
                <td>0</td>
 | 
			
		||||
                
 | 
			
		||||
                <td class='right'>100%</td>
 | 
			
		||||
            </tr>
 | 
			
		||||
            
 | 
			
		||||
            <tr class='file'>
 | 
			
		||||
                <td class='name left'><a href='falcon_response_helpers.html'>falcon.response_helpers</a></td>
 | 
			
		||||
                <td>13</td>
 | 
			
		||||
                <td>0</td>
 | 
			
		||||
                <td>0</td>
 | 
			
		||||
                
 | 
			
		||||
                <td class='right'>100%</td>
 | 
			
		||||
            </tr>
 | 
			
		||||
            
 | 
			
		||||
            <tr class='file'>
 | 
			
		||||
                <td class='name left'><a href='falcon_status_codes.html'>falcon.status_codes</a></td>
 | 
			
		||||
                <td>89</td>
 | 
			
		||||
                <td>0</td>
 | 
			
		||||
                <td>0</td>
 | 
			
		||||
                
 | 
			
		||||
                <td class='right'>100%</td>
 | 
			
		||||
            </tr>
 | 
			
		||||
            
 | 
			
		||||
            <tr class='file'>
 | 
			
		||||
                <td class='name left'><a href='falcon_util.html'>falcon.util</a></td>
 | 
			
		||||
                <td>2</td>
 | 
			
		||||
                <td>0</td>
 | 
			
		||||
                <td>0</td>
 | 
			
		||||
                
 | 
			
		||||
                <td class='right'>100%</td>
 | 
			
		||||
            </tr>
 | 
			
		||||
            
 | 
			
		||||
            <tr class='file'>
 | 
			
		||||
                <td class='name left'><a href='falcon_version.html'>falcon.version</a></td>
 | 
			
		||||
                <td>3</td>
 | 
			
		||||
                <td>0</td>
 | 
			
		||||
                <td>0</td>
 | 
			
		||||
                
 | 
			
		||||
                <td class='right'>100%</td>
 | 
			
		||||
            </tr>
 | 
			
		||||
            
 | 
			
		||||
        </tbody>
 | 
			
		||||
    </table>
 | 
			
		||||
</div>
 | 
			
		||||
 | 
			
		||||
<div id='footer'>
 | 
			
		||||
    <div class='content'>
 | 
			
		||||
        <p>
 | 
			
		||||
            <a class='nav' href='http://nedbatchelder.com/code/coverage'>coverage.py v3.6</a>
 | 
			
		||||
        </p>
 | 
			
		||||
    </div>
 | 
			
		||||
</div>
 | 
			
		||||
 | 
			
		||||
</body>
 | 
			
		||||
</html>
 | 
			
		||||
							
								
								
									
										166
									
								
								tests/cover/jquery-1.4.3.min.js
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										166
									
								
								tests/cover/jquery-1.4.3.min.js
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,166 @@
 | 
			
		||||
/*!
 | 
			
		||||
 * jQuery JavaScript Library v1.4.3
 | 
			
		||||
 * http://jquery.com/
 | 
			
		||||
 *
 | 
			
		||||
 * Copyright 2010, John Resig
 | 
			
		||||
 * Dual licensed under the MIT or GPL Version 2 licenses.
 | 
			
		||||
 * http://jquery.org/license
 | 
			
		||||
 *
 | 
			
		||||
 * Includes Sizzle.js
 | 
			
		||||
 * http://sizzlejs.com/
 | 
			
		||||
 * Copyright 2010, The Dojo Foundation
 | 
			
		||||
 * Released under the MIT, BSD, and GPL Licenses.
 | 
			
		||||
 *
 | 
			
		||||
 * Date: Thu Oct 14 23:10:06 2010 -0400
 | 
			
		||||
 */
 | 
			
		||||
(function(E,A){function U(){return false}function ba(){return true}function ja(a,b,d){d[0].type=a;return c.event.handle.apply(b,d)}function Ga(a){var b,d,e=[],f=[],h,k,l,n,s,v,B,D;k=c.data(this,this.nodeType?"events":"__events__");if(typeof k==="function")k=k.events;if(!(a.liveFired===this||!k||!k.live||a.button&&a.type==="click")){if(a.namespace)D=RegExp("(^|\\.)"+a.namespace.split(".").join("\\.(?:.*\\.)?")+"(\\.|$)");a.liveFired=this;var H=k.live.slice(0);for(n=0;n<H.length;n++){k=H[n];k.origType.replace(X,
 | 
			
		||||
"")===a.type?f.push(k.selector):H.splice(n--,1)}f=c(a.target).closest(f,a.currentTarget);s=0;for(v=f.length;s<v;s++){B=f[s];for(n=0;n<H.length;n++){k=H[n];if(B.selector===k.selector&&(!D||D.test(k.namespace))){l=B.elem;h=null;if(k.preType==="mouseenter"||k.preType==="mouseleave"){a.type=k.preType;h=c(a.relatedTarget).closest(k.selector)[0]}if(!h||h!==l)e.push({elem:l,handleObj:k,level:B.level})}}}s=0;for(v=e.length;s<v;s++){f=e[s];if(d&&f.level>d)break;a.currentTarget=f.elem;a.data=f.handleObj.data;
 | 
			
		||||
a.handleObj=f.handleObj;D=f.handleObj.origHandler.apply(f.elem,arguments);if(D===false||a.isPropagationStopped()){d=f.level;if(D===false)b=false}}return b}}function Y(a,b){return(a&&a!=="*"?a+".":"")+b.replace(Ha,"`").replace(Ia,"&")}function ka(a,b,d){if(c.isFunction(b))return c.grep(a,function(f,h){return!!b.call(f,h,f)===d});else if(b.nodeType)return c.grep(a,function(f){return f===b===d});else if(typeof b==="string"){var e=c.grep(a,function(f){return f.nodeType===1});if(Ja.test(b))return c.filter(b,
 | 
			
		||||
e,!d);else b=c.filter(b,e)}return c.grep(a,function(f){return c.inArray(f,b)>=0===d})}function la(a,b){var d=0;b.each(function(){if(this.nodeName===(a[d]&&a[d].nodeName)){var e=c.data(a[d++]),f=c.data(this,e);if(e=e&&e.events){delete f.handle;f.events={};for(var h in e)for(var k in e[h])c.event.add(this,h,e[h][k],e[h][k].data)}}})}function Ka(a,b){b.src?c.ajax({url:b.src,async:false,dataType:"script"}):c.globalEval(b.text||b.textContent||b.innerHTML||"");b.parentNode&&b.parentNode.removeChild(b)}
 | 
			
		||||
function ma(a,b,d){var e=b==="width"?a.offsetWidth:a.offsetHeight;if(d==="border")return e;c.each(b==="width"?La:Ma,function(){d||(e-=parseFloat(c.css(a,"padding"+this))||0);if(d==="margin")e+=parseFloat(c.css(a,"margin"+this))||0;else e-=parseFloat(c.css(a,"border"+this+"Width"))||0});return e}function ca(a,b,d,e){if(c.isArray(b)&&b.length)c.each(b,function(f,h){d||Na.test(a)?e(a,h):ca(a+"["+(typeof h==="object"||c.isArray(h)?f:"")+"]",h,d,e)});else if(!d&&b!=null&&typeof b==="object")c.isEmptyObject(b)?
 | 
			
		||||
e(a,""):c.each(b,function(f,h){ca(a+"["+f+"]",h,d,e)});else e(a,b)}function S(a,b){var d={};c.each(na.concat.apply([],na.slice(0,b)),function(){d[this]=a});return d}function oa(a){if(!da[a]){var b=c("<"+a+">").appendTo("body"),d=b.css("display");b.remove();if(d==="none"||d==="")d="block";da[a]=d}return da[a]}function ea(a){return c.isWindow(a)?a:a.nodeType===9?a.defaultView||a.parentWindow:false}var u=E.document,c=function(){function a(){if(!b.isReady){try{u.documentElement.doScroll("left")}catch(i){setTimeout(a,
 | 
			
		||||
1);return}b.ready()}}var b=function(i,r){return new b.fn.init(i,r)},d=E.jQuery,e=E.$,f,h=/^(?:[^<]*(<[\w\W]+>)[^>]*$|#([\w\-]+)$)/,k=/\S/,l=/^\s+/,n=/\s+$/,s=/\W/,v=/\d/,B=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,D=/^[\],:{}\s]*$/,H=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,w=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,G=/(?:^|:|,)(?:\s*\[)+/g,M=/(webkit)[ \/]([\w.]+)/,g=/(opera)(?:.*version)?[ \/]([\w.]+)/,j=/(msie) ([\w.]+)/,o=/(mozilla)(?:.*? rv:([\w.]+))?/,m=navigator.userAgent,p=false,
 | 
			
		||||
q=[],t,x=Object.prototype.toString,C=Object.prototype.hasOwnProperty,P=Array.prototype.push,N=Array.prototype.slice,R=String.prototype.trim,Q=Array.prototype.indexOf,L={};b.fn=b.prototype={init:function(i,r){var y,z,F;if(!i)return this;if(i.nodeType){this.context=this[0]=i;this.length=1;return this}if(i==="body"&&!r&&u.body){this.context=u;this[0]=u.body;this.selector="body";this.length=1;return this}if(typeof i==="string")if((y=h.exec(i))&&(y[1]||!r))if(y[1]){F=r?r.ownerDocument||r:u;if(z=B.exec(i))if(b.isPlainObject(r)){i=
 | 
			
		||||
[u.createElement(z[1])];b.fn.attr.call(i,r,true)}else i=[F.createElement(z[1])];else{z=b.buildFragment([y[1]],[F]);i=(z.cacheable?z.fragment.cloneNode(true):z.fragment).childNodes}return b.merge(this,i)}else{if((z=u.getElementById(y[2]))&&z.parentNode){if(z.id!==y[2])return f.find(i);this.length=1;this[0]=z}this.context=u;this.selector=i;return this}else if(!r&&!s.test(i)){this.selector=i;this.context=u;i=u.getElementsByTagName(i);return b.merge(this,i)}else return!r||r.jquery?(r||f).find(i):b(r).find(i);
 | 
			
		||||
else if(b.isFunction(i))return f.ready(i);if(i.selector!==A){this.selector=i.selector;this.context=i.context}return b.makeArray(i,this)},selector:"",jquery:"1.4.3",length:0,size:function(){return this.length},toArray:function(){return N.call(this,0)},get:function(i){return i==null?this.toArray():i<0?this.slice(i)[0]:this[i]},pushStack:function(i,r,y){var z=b();b.isArray(i)?P.apply(z,i):b.merge(z,i);z.prevObject=this;z.context=this.context;if(r==="find")z.selector=this.selector+(this.selector?" ":
 | 
			
		||||
"")+y;else if(r)z.selector=this.selector+"."+r+"("+y+")";return z},each:function(i,r){return b.each(this,i,r)},ready:function(i){b.bindReady();if(b.isReady)i.call(u,b);else q&&q.push(i);return this},eq:function(i){return i===-1?this.slice(i):this.slice(i,+i+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(N.apply(this,arguments),"slice",N.call(arguments).join(","))},map:function(i){return this.pushStack(b.map(this,function(r,y){return i.call(r,
 | 
			
		||||
y,r)}))},end:function(){return this.prevObject||b(null)},push:P,sort:[].sort,splice:[].splice};b.fn.init.prototype=b.fn;b.extend=b.fn.extend=function(){var i=arguments[0]||{},r=1,y=arguments.length,z=false,F,I,K,J,fa;if(typeof i==="boolean"){z=i;i=arguments[1]||{};r=2}if(typeof i!=="object"&&!b.isFunction(i))i={};if(y===r){i=this;--r}for(;r<y;r++)if((F=arguments[r])!=null)for(I in F){K=i[I];J=F[I];if(i!==J)if(z&&J&&(b.isPlainObject(J)||(fa=b.isArray(J)))){if(fa){fa=false;clone=K&&b.isArray(K)?K:[]}else clone=
 | 
			
		||||
K&&b.isPlainObject(K)?K:{};i[I]=b.extend(z,clone,J)}else if(J!==A)i[I]=J}return i};b.extend({noConflict:function(i){E.$=e;if(i)E.jQuery=d;return b},isReady:false,readyWait:1,ready:function(i){i===true&&b.readyWait--;if(!b.readyWait||i!==true&&!b.isReady){if(!u.body)return setTimeout(b.ready,1);b.isReady=true;if(!(i!==true&&--b.readyWait>0)){if(q){for(var r=0;i=q[r++];)i.call(u,b);q=null}b.fn.triggerHandler&&b(u).triggerHandler("ready")}}},bindReady:function(){if(!p){p=true;if(u.readyState==="complete")return setTimeout(b.ready,
 | 
			
		||||
1);if(u.addEventListener){u.addEventListener("DOMContentLoaded",t,false);E.addEventListener("load",b.ready,false)}else if(u.attachEvent){u.attachEvent("onreadystatechange",t);E.attachEvent("onload",b.ready);var i=false;try{i=E.frameElement==null}catch(r){}u.documentElement.doScroll&&i&&a()}}},isFunction:function(i){return b.type(i)==="function"},isArray:Array.isArray||function(i){return b.type(i)==="array"},isWindow:function(i){return i&&typeof i==="object"&&"setInterval"in i},isNaN:function(i){return i==
 | 
			
		||||
null||!v.test(i)||isNaN(i)},type:function(i){return i==null?String(i):L[x.call(i)]||"object"},isPlainObject:function(i){if(!i||b.type(i)!=="object"||i.nodeType||b.isWindow(i))return false;if(i.constructor&&!C.call(i,"constructor")&&!C.call(i.constructor.prototype,"isPrototypeOf"))return false;for(var r in i);return r===A||C.call(i,r)},isEmptyObject:function(i){for(var r in i)return false;return true},error:function(i){throw i;},parseJSON:function(i){if(typeof i!=="string"||!i)return null;i=b.trim(i);
 | 
			
		||||
if(D.test(i.replace(H,"@").replace(w,"]").replace(G,"")))return E.JSON&&E.JSON.parse?E.JSON.parse(i):(new Function("return "+i))();else b.error("Invalid JSON: "+i)},noop:function(){},globalEval:function(i){if(i&&k.test(i)){var r=u.getElementsByTagName("head")[0]||u.documentElement,y=u.createElement("script");y.type="text/javascript";if(b.support.scriptEval)y.appendChild(u.createTextNode(i));else y.text=i;r.insertBefore(y,r.firstChild);r.removeChild(y)}},nodeName:function(i,r){return i.nodeName&&i.nodeName.toUpperCase()===
 | 
			
		||||
r.toUpperCase()},each:function(i,r,y){var z,F=0,I=i.length,K=I===A||b.isFunction(i);if(y)if(K)for(z in i){if(r.apply(i[z],y)===false)break}else for(;F<I;){if(r.apply(i[F++],y)===false)break}else if(K)for(z in i){if(r.call(i[z],z,i[z])===false)break}else for(y=i[0];F<I&&r.call(y,F,y)!==false;y=i[++F]);return i},trim:R?function(i){return i==null?"":R.call(i)}:function(i){return i==null?"":i.toString().replace(l,"").replace(n,"")},makeArray:function(i,r){var y=r||[];if(i!=null){var z=b.type(i);i.length==
 | 
			
		||||
null||z==="string"||z==="function"||z==="regexp"||b.isWindow(i)?P.call(y,i):b.merge(y,i)}return y},inArray:function(i,r){if(r.indexOf)return r.indexOf(i);for(var y=0,z=r.length;y<z;y++)if(r[y]===i)return y;return-1},merge:function(i,r){var y=i.length,z=0;if(typeof r.length==="number")for(var F=r.length;z<F;z++)i[y++]=r[z];else for(;r[z]!==A;)i[y++]=r[z++];i.length=y;return i},grep:function(i,r,y){var z=[],F;y=!!y;for(var I=0,K=i.length;I<K;I++){F=!!r(i[I],I);y!==F&&z.push(i[I])}return z},map:function(i,
 | 
			
		||||
r,y){for(var z=[],F,I=0,K=i.length;I<K;I++){F=r(i[I],I,y);if(F!=null)z[z.length]=F}return z.concat.apply([],z)},guid:1,proxy:function(i,r,y){if(arguments.length===2)if(typeof r==="string"){y=i;i=y[r];r=A}else if(r&&!b.isFunction(r)){y=r;r=A}if(!r&&i)r=function(){return i.apply(y||this,arguments)};if(i)r.guid=i.guid=i.guid||r.guid||b.guid++;return r},access:function(i,r,y,z,F,I){var K=i.length;if(typeof r==="object"){for(var J in r)b.access(i,J,r[J],z,F,y);return i}if(y!==A){z=!I&&z&&b.isFunction(y);
 | 
			
		||||
for(J=0;J<K;J++)F(i[J],r,z?y.call(i[J],J,F(i[J],r)):y,I);return i}return K?F(i[0],r):A},now:function(){return(new Date).getTime()},uaMatch:function(i){i=i.toLowerCase();i=M.exec(i)||g.exec(i)||j.exec(i)||i.indexOf("compatible")<0&&o.exec(i)||[];return{browser:i[1]||"",version:i[2]||"0"}},browser:{}});b.each("Boolean Number String Function Array Date RegExp Object".split(" "),function(i,r){L["[object "+r+"]"]=r.toLowerCase()});m=b.uaMatch(m);if(m.browser){b.browser[m.browser]=true;b.browser.version=
 | 
			
		||||
m.version}if(b.browser.webkit)b.browser.safari=true;if(Q)b.inArray=function(i,r){return Q.call(r,i)};if(!/\s/.test("\u00a0")){l=/^[\s\xA0]+/;n=/[\s\xA0]+$/}f=b(u);if(u.addEventListener)t=function(){u.removeEventListener("DOMContentLoaded",t,false);b.ready()};else if(u.attachEvent)t=function(){if(u.readyState==="complete"){u.detachEvent("onreadystatechange",t);b.ready()}};return E.jQuery=E.$=b}();(function(){c.support={};var a=u.documentElement,b=u.createElement("script"),d=u.createElement("div"),
 | 
			
		||||
e="script"+c.now();d.style.display="none";d.innerHTML="   <link/><table></table><a href='/a' style='color:red;float:left;opacity:.55;'>a</a><input type='checkbox'/>";var f=d.getElementsByTagName("*"),h=d.getElementsByTagName("a")[0],k=u.createElement("select"),l=k.appendChild(u.createElement("option"));if(!(!f||!f.length||!h)){c.support={leadingWhitespace:d.firstChild.nodeType===3,tbody:!d.getElementsByTagName("tbody").length,htmlSerialize:!!d.getElementsByTagName("link").length,style:/red/.test(h.getAttribute("style")),
 | 
			
		||||
hrefNormalized:h.getAttribute("href")==="/a",opacity:/^0.55$/.test(h.style.opacity),cssFloat:!!h.style.cssFloat,checkOn:d.getElementsByTagName("input")[0].value==="on",optSelected:l.selected,optDisabled:false,checkClone:false,scriptEval:false,noCloneEvent:true,boxModel:null,inlineBlockNeedsLayout:false,shrinkWrapBlocks:false,reliableHiddenOffsets:true};k.disabled=true;c.support.optDisabled=!l.disabled;b.type="text/javascript";try{b.appendChild(u.createTextNode("window."+e+"=1;"))}catch(n){}a.insertBefore(b,
 | 
			
		||||
a.firstChild);if(E[e]){c.support.scriptEval=true;delete E[e]}a.removeChild(b);if(d.attachEvent&&d.fireEvent){d.attachEvent("onclick",function s(){c.support.noCloneEvent=false;d.detachEvent("onclick",s)});d.cloneNode(true).fireEvent("onclick")}d=u.createElement("div");d.innerHTML="<input type='radio' name='radiotest' checked='checked'/>";a=u.createDocumentFragment();a.appendChild(d.firstChild);c.support.checkClone=a.cloneNode(true).cloneNode(true).lastChild.checked;c(function(){var s=u.createElement("div");
 | 
			
		||||
s.style.width=s.style.paddingLeft="1px";u.body.appendChild(s);c.boxModel=c.support.boxModel=s.offsetWidth===2;if("zoom"in s.style){s.style.display="inline";s.style.zoom=1;c.support.inlineBlockNeedsLayout=s.offsetWidth===2;s.style.display="";s.innerHTML="<div style='width:4px;'></div>";c.support.shrinkWrapBlocks=s.offsetWidth!==2}s.innerHTML="<table><tr><td style='padding:0;display:none'></td><td>t</td></tr></table>";var v=s.getElementsByTagName("td");c.support.reliableHiddenOffsets=v[0].offsetHeight===
 | 
			
		||||
0;v[0].style.display="";v[1].style.display="none";c.support.reliableHiddenOffsets=c.support.reliableHiddenOffsets&&v[0].offsetHeight===0;s.innerHTML="";u.body.removeChild(s).style.display="none"});a=function(s){var v=u.createElement("div");s="on"+s;var B=s in v;if(!B){v.setAttribute(s,"return;");B=typeof v[s]==="function"}return B};c.support.submitBubbles=a("submit");c.support.changeBubbles=a("change");a=b=d=f=h=null}})();c.props={"for":"htmlFor","class":"className",readonly:"readOnly",maxlength:"maxLength",
 | 
			
		||||
cellspacing:"cellSpacing",rowspan:"rowSpan",colspan:"colSpan",tabindex:"tabIndex",usemap:"useMap",frameborder:"frameBorder"};var pa={},Oa=/^(?:\{.*\}|\[.*\])$/;c.extend({cache:{},uuid:0,expando:"jQuery"+c.now(),noData:{embed:true,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:true},data:function(a,b,d){if(c.acceptData(a)){a=a==E?pa:a;var e=a.nodeType,f=e?a[c.expando]:null,h=c.cache;if(!(e&&!f&&typeof b==="string"&&d===A)){if(e)f||(a[c.expando]=f=++c.uuid);else h=a;if(typeof b==="object")if(e)h[f]=
 | 
			
		||||
c.extend(h[f],b);else c.extend(h,b);else if(e&&!h[f])h[f]={};a=e?h[f]:h;if(d!==A)a[b]=d;return typeof b==="string"?a[b]:a}}},removeData:function(a,b){if(c.acceptData(a)){a=a==E?pa:a;var d=a.nodeType,e=d?a[c.expando]:a,f=c.cache,h=d?f[e]:e;if(b){if(h){delete h[b];d&&c.isEmptyObject(h)&&c.removeData(a)}}else if(d&&c.support.deleteExpando)delete a[c.expando];else if(a.removeAttribute)a.removeAttribute(c.expando);else if(d)delete f[e];else for(var k in a)delete a[k]}},acceptData:function(a){if(a.nodeName){var b=
 | 
			
		||||
c.noData[a.nodeName.toLowerCase()];if(b)return!(b===true||a.getAttribute("classid")!==b)}return true}});c.fn.extend({data:function(a,b){if(typeof a==="undefined")return this.length?c.data(this[0]):null;else if(typeof a==="object")return this.each(function(){c.data(this,a)});var d=a.split(".");d[1]=d[1]?"."+d[1]:"";if(b===A){var e=this.triggerHandler("getData"+d[1]+"!",[d[0]]);if(e===A&&this.length){e=c.data(this[0],a);if(e===A&&this[0].nodeType===1){e=this[0].getAttribute("data-"+a);if(typeof e===
 | 
			
		||||
"string")try{e=e==="true"?true:e==="false"?false:e==="null"?null:!c.isNaN(e)?parseFloat(e):Oa.test(e)?c.parseJSON(e):e}catch(f){}else e=A}}return e===A&&d[1]?this.data(d[0]):e}else return this.each(function(){var h=c(this),k=[d[0],b];h.triggerHandler("setData"+d[1]+"!",k);c.data(this,a,b);h.triggerHandler("changeData"+d[1]+"!",k)})},removeData:function(a){return this.each(function(){c.removeData(this,a)})}});c.extend({queue:function(a,b,d){if(a){b=(b||"fx")+"queue";var e=c.data(a,b);if(!d)return e||
 | 
			
		||||
[];if(!e||c.isArray(d))e=c.data(a,b,c.makeArray(d));else e.push(d);return e}},dequeue:function(a,b){b=b||"fx";var d=c.queue(a,b),e=d.shift();if(e==="inprogress")e=d.shift();if(e){b==="fx"&&d.unshift("inprogress");e.call(a,function(){c.dequeue(a,b)})}}});c.fn.extend({queue:function(a,b){if(typeof a!=="string"){b=a;a="fx"}if(b===A)return c.queue(this[0],a);return this.each(function(){var d=c.queue(this,a,b);a==="fx"&&d[0]!=="inprogress"&&c.dequeue(this,a)})},dequeue:function(a){return this.each(function(){c.dequeue(this,
 | 
			
		||||
a)})},delay:function(a,b){a=c.fx?c.fx.speeds[a]||a:a;b=b||"fx";return this.queue(b,function(){var d=this;setTimeout(function(){c.dequeue(d,b)},a)})},clearQueue:function(a){return this.queue(a||"fx",[])}});var qa=/[\n\t]/g,ga=/\s+/,Pa=/\r/g,Qa=/^(?:href|src|style)$/,Ra=/^(?:button|input)$/i,Sa=/^(?:button|input|object|select|textarea)$/i,Ta=/^a(?:rea)?$/i,ra=/^(?:radio|checkbox)$/i;c.fn.extend({attr:function(a,b){return c.access(this,a,b,true,c.attr)},removeAttr:function(a){return this.each(function(){c.attr(this,
 | 
			
		||||
a,"");this.nodeType===1&&this.removeAttribute(a)})},addClass:function(a){if(c.isFunction(a))return this.each(function(s){var v=c(this);v.addClass(a.call(this,s,v.attr("class")))});if(a&&typeof a==="string")for(var b=(a||"").split(ga),d=0,e=this.length;d<e;d++){var f=this[d];if(f.nodeType===1)if(f.className){for(var h=" "+f.className+" ",k=f.className,l=0,n=b.length;l<n;l++)if(h.indexOf(" "+b[l]+" ")<0)k+=" "+b[l];f.className=c.trim(k)}else f.className=a}return this},removeClass:function(a){if(c.isFunction(a))return this.each(function(n){var s=
 | 
			
		||||
c(this);s.removeClass(a.call(this,n,s.attr("class")))});if(a&&typeof a==="string"||a===A)for(var b=(a||"").split(ga),d=0,e=this.length;d<e;d++){var f=this[d];if(f.nodeType===1&&f.className)if(a){for(var h=(" "+f.className+" ").replace(qa," "),k=0,l=b.length;k<l;k++)h=h.replace(" "+b[k]+" "," ");f.className=c.trim(h)}else f.className=""}return this},toggleClass:function(a,b){var d=typeof a,e=typeof b==="boolean";if(c.isFunction(a))return this.each(function(f){var h=c(this);h.toggleClass(a.call(this,
 | 
			
		||||
f,h.attr("class"),b),b)});return this.each(function(){if(d==="string")for(var f,h=0,k=c(this),l=b,n=a.split(ga);f=n[h++];){l=e?l:!k.hasClass(f);k[l?"addClass":"removeClass"](f)}else if(d==="undefined"||d==="boolean"){this.className&&c.data(this,"__className__",this.className);this.className=this.className||a===false?"":c.data(this,"__className__")||""}})},hasClass:function(a){a=" "+a+" ";for(var b=0,d=this.length;b<d;b++)if((" "+this[b].className+" ").replace(qa," ").indexOf(a)>-1)return true;return false},
 | 
			
		||||
val:function(a){if(!arguments.length){var b=this[0];if(b){if(c.nodeName(b,"option")){var d=b.attributes.value;return!d||d.specified?b.value:b.text}if(c.nodeName(b,"select")){var e=b.selectedIndex;d=[];var f=b.options;b=b.type==="select-one";if(e<0)return null;var h=b?e:0;for(e=b?e+1:f.length;h<e;h++){var k=f[h];if(k.selected&&(c.support.optDisabled?!k.disabled:k.getAttribute("disabled")===null)&&(!k.parentNode.disabled||!c.nodeName(k.parentNode,"optgroup"))){a=c(k).val();if(b)return a;d.push(a)}}return d}if(ra.test(b.type)&&
 | 
			
		||||
!c.support.checkOn)return b.getAttribute("value")===null?"on":b.value;return(b.value||"").replace(Pa,"")}return A}var l=c.isFunction(a);return this.each(function(n){var s=c(this),v=a;if(this.nodeType===1){if(l)v=a.call(this,n,s.val());if(v==null)v="";else if(typeof v==="number")v+="";else if(c.isArray(v))v=c.map(v,function(D){return D==null?"":D+""});if(c.isArray(v)&&ra.test(this.type))this.checked=c.inArray(s.val(),v)>=0;else if(c.nodeName(this,"select")){var B=c.makeArray(v);c("option",this).each(function(){this.selected=
 | 
			
		||||
c.inArray(c(this).val(),B)>=0});if(!B.length)this.selectedIndex=-1}else this.value=v}})}});c.extend({attrFn:{val:true,css:true,html:true,text:true,data:true,width:true,height:true,offset:true},attr:function(a,b,d,e){if(!a||a.nodeType===3||a.nodeType===8)return A;if(e&&b in c.attrFn)return c(a)[b](d);e=a.nodeType!==1||!c.isXMLDoc(a);var f=d!==A;b=e&&c.props[b]||b;if(a.nodeType===1){var h=Qa.test(b);if((b in a||a[b]!==A)&&e&&!h){if(f){b==="type"&&Ra.test(a.nodeName)&&a.parentNode&&c.error("type property can't be changed");
 | 
			
		||||
if(d===null)a.nodeType===1&&a.removeAttribute(b);else a[b]=d}if(c.nodeName(a,"form")&&a.getAttributeNode(b))return a.getAttributeNode(b).nodeValue;if(b==="tabIndex")return(b=a.getAttributeNode("tabIndex"))&&b.specified?b.value:Sa.test(a.nodeName)||Ta.test(a.nodeName)&&a.href?0:A;return a[b]}if(!c.support.style&&e&&b==="style"){if(f)a.style.cssText=""+d;return a.style.cssText}f&&a.setAttribute(b,""+d);if(!a.attributes[b]&&a.hasAttribute&&!a.hasAttribute(b))return A;a=!c.support.hrefNormalized&&e&&
 | 
			
		||||
h?a.getAttribute(b,2):a.getAttribute(b);return a===null?A:a}}});var X=/\.(.*)$/,ha=/^(?:textarea|input|select)$/i,Ha=/\./g,Ia=/ /g,Ua=/[^\w\s.|`]/g,Va=function(a){return a.replace(Ua,"\\$&")},sa={focusin:0,focusout:0};c.event={add:function(a,b,d,e){if(!(a.nodeType===3||a.nodeType===8)){if(c.isWindow(a)&&a!==E&&!a.frameElement)a=E;if(d===false)d=U;var f,h;if(d.handler){f=d;d=f.handler}if(!d.guid)d.guid=c.guid++;if(h=c.data(a)){var k=a.nodeType?"events":"__events__",l=h[k],n=h.handle;if(typeof l===
 | 
			
		||||
"function"){n=l.handle;l=l.events}else if(!l){a.nodeType||(h[k]=h=function(){});h.events=l={}}if(!n)h.handle=n=function(){return typeof c!=="undefined"&&!c.event.triggered?c.event.handle.apply(n.elem,arguments):A};n.elem=a;b=b.split(" ");for(var s=0,v;k=b[s++];){h=f?c.extend({},f):{handler:d,data:e};if(k.indexOf(".")>-1){v=k.split(".");k=v.shift();h.namespace=v.slice(0).sort().join(".")}else{v=[];h.namespace=""}h.type=k;if(!h.guid)h.guid=d.guid;var B=l[k],D=c.event.special[k]||{};if(!B){B=l[k]=[];
 | 
			
		||||
if(!D.setup||D.setup.call(a,e,v,n)===false)if(a.addEventListener)a.addEventListener(k,n,false);else a.attachEvent&&a.attachEvent("on"+k,n)}if(D.add){D.add.call(a,h);if(!h.handler.guid)h.handler.guid=d.guid}B.push(h);c.event.global[k]=true}a=null}}},global:{},remove:function(a,b,d,e){if(!(a.nodeType===3||a.nodeType===8)){if(d===false)d=U;var f,h,k=0,l,n,s,v,B,D,H=a.nodeType?"events":"__events__",w=c.data(a),G=w&&w[H];if(w&&G){if(typeof G==="function"){w=G;G=G.events}if(b&&b.type){d=b.handler;b=b.type}if(!b||
 | 
			
		||||
typeof b==="string"&&b.charAt(0)==="."){b=b||"";for(f in G)c.event.remove(a,f+b)}else{for(b=b.split(" ");f=b[k++];){v=f;l=f.indexOf(".")<0;n=[];if(!l){n=f.split(".");f=n.shift();s=RegExp("(^|\\.)"+c.map(n.slice(0).sort(),Va).join("\\.(?:.*\\.)?")+"(\\.|$)")}if(B=G[f])if(d){v=c.event.special[f]||{};for(h=e||0;h<B.length;h++){D=B[h];if(d.guid===D.guid){if(l||s.test(D.namespace)){e==null&&B.splice(h--,1);v.remove&&v.remove.call(a,D)}if(e!=null)break}}if(B.length===0||e!=null&&B.length===1){if(!v.teardown||
 | 
			
		||||
v.teardown.call(a,n)===false)c.removeEvent(a,f,w.handle);delete G[f]}}else for(h=0;h<B.length;h++){D=B[h];if(l||s.test(D.namespace)){c.event.remove(a,v,D.handler,h);B.splice(h--,1)}}}if(c.isEmptyObject(G)){if(b=w.handle)b.elem=null;delete w.events;delete w.handle;if(typeof w==="function")c.removeData(a,H);else c.isEmptyObject(w)&&c.removeData(a)}}}}},trigger:function(a,b,d,e){var f=a.type||a;if(!e){a=typeof a==="object"?a[c.expando]?a:c.extend(c.Event(f),a):c.Event(f);if(f.indexOf("!")>=0){a.type=
 | 
			
		||||
f=f.slice(0,-1);a.exclusive=true}if(!d){a.stopPropagation();c.event.global[f]&&c.each(c.cache,function(){this.events&&this.events[f]&&c.event.trigger(a,b,this.handle.elem)})}if(!d||d.nodeType===3||d.nodeType===8)return A;a.result=A;a.target=d;b=c.makeArray(b);b.unshift(a)}a.currentTarget=d;(e=d.nodeType?c.data(d,"handle"):(c.data(d,"__events__")||{}).handle)&&e.apply(d,b);e=d.parentNode||d.ownerDocument;try{if(!(d&&d.nodeName&&c.noData[d.nodeName.toLowerCase()]))if(d["on"+f]&&d["on"+f].apply(d,b)===
 | 
			
		||||
false){a.result=false;a.preventDefault()}}catch(h){}if(!a.isPropagationStopped()&&e)c.event.trigger(a,b,e,true);else if(!a.isDefaultPrevented()){e=a.target;var k,l=f.replace(X,""),n=c.nodeName(e,"a")&&l==="click",s=c.event.special[l]||{};if((!s._default||s._default.call(d,a)===false)&&!n&&!(e&&e.nodeName&&c.noData[e.nodeName.toLowerCase()])){try{if(e[l]){if(k=e["on"+l])e["on"+l]=null;c.event.triggered=true;e[l]()}}catch(v){}if(k)e["on"+l]=k;c.event.triggered=false}}},handle:function(a){var b,d,e;
 | 
			
		||||
d=[];var f,h=c.makeArray(arguments);a=h[0]=c.event.fix(a||E.event);a.currentTarget=this;b=a.type.indexOf(".")<0&&!a.exclusive;if(!b){e=a.type.split(".");a.type=e.shift();d=e.slice(0).sort();e=RegExp("(^|\\.)"+d.join("\\.(?:.*\\.)?")+"(\\.|$)")}a.namespace=a.namespace||d.join(".");f=c.data(this,this.nodeType?"events":"__events__");if(typeof f==="function")f=f.events;d=(f||{})[a.type];if(f&&d){d=d.slice(0);f=0;for(var k=d.length;f<k;f++){var l=d[f];if(b||e.test(l.namespace)){a.handler=l.handler;a.data=
 | 
			
		||||
l.data;a.handleObj=l;l=l.handler.apply(this,h);if(l!==A){a.result=l;if(l===false){a.preventDefault();a.stopPropagation()}}if(a.isImmediatePropagationStopped())break}}}return a.result},props:"altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode layerX layerY metaKey newValue offsetX offsetY pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which".split(" "),
 | 
			
		||||
fix:function(a){if(a[c.expando])return a;var b=a;a=c.Event(b);for(var d=this.props.length,e;d;){e=this.props[--d];a[e]=b[e]}if(!a.target)a.target=a.srcElement||u;if(a.target.nodeType===3)a.target=a.target.parentNode;if(!a.relatedTarget&&a.fromElement)a.relatedTarget=a.fromElement===a.target?a.toElement:a.fromElement;if(a.pageX==null&&a.clientX!=null){b=u.documentElement;d=u.body;a.pageX=a.clientX+(b&&b.scrollLeft||d&&d.scrollLeft||0)-(b&&b.clientLeft||d&&d.clientLeft||0);a.pageY=a.clientY+(b&&b.scrollTop||
 | 
			
		||||
d&&d.scrollTop||0)-(b&&b.clientTop||d&&d.clientTop||0)}if(a.which==null&&(a.charCode!=null||a.keyCode!=null))a.which=a.charCode!=null?a.charCode:a.keyCode;if(!a.metaKey&&a.ctrlKey)a.metaKey=a.ctrlKey;if(!a.which&&a.button!==A)a.which=a.button&1?1:a.button&2?3:a.button&4?2:0;return a},guid:1E8,proxy:c.proxy,special:{ready:{setup:c.bindReady,teardown:c.noop},live:{add:function(a){c.event.add(this,Y(a.origType,a.selector),c.extend({},a,{handler:Ga,guid:a.handler.guid}))},remove:function(a){c.event.remove(this,
 | 
			
		||||
Y(a.origType,a.selector),a)}},beforeunload:{setup:function(a,b,d){if(c.isWindow(this))this.onbeforeunload=d},teardown:function(a,b){if(this.onbeforeunload===b)this.onbeforeunload=null}}}};c.removeEvent=u.removeEventListener?function(a,b,d){a.removeEventListener&&a.removeEventListener(b,d,false)}:function(a,b,d){a.detachEvent&&a.detachEvent("on"+b,d)};c.Event=function(a){if(!this.preventDefault)return new c.Event(a);if(a&&a.type){this.originalEvent=a;this.type=a.type}else this.type=a;this.timeStamp=
 | 
			
		||||
c.now();this[c.expando]=true};c.Event.prototype={preventDefault:function(){this.isDefaultPrevented=ba;var a=this.originalEvent;if(a)if(a.preventDefault)a.preventDefault();else a.returnValue=false},stopPropagation:function(){this.isPropagationStopped=ba;var a=this.originalEvent;if(a){a.stopPropagation&&a.stopPropagation();a.cancelBubble=true}},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=ba;this.stopPropagation()},isDefaultPrevented:U,isPropagationStopped:U,isImmediatePropagationStopped:U};
 | 
			
		||||
var ta=function(a){var b=a.relatedTarget;try{for(;b&&b!==this;)b=b.parentNode;if(b!==this){a.type=a.data;c.event.handle.apply(this,arguments)}}catch(d){}},ua=function(a){a.type=a.data;c.event.handle.apply(this,arguments)};c.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(a,b){c.event.special[a]={setup:function(d){c.event.add(this,b,d&&d.selector?ua:ta,a)},teardown:function(d){c.event.remove(this,b,d&&d.selector?ua:ta)}}});if(!c.support.submitBubbles)c.event.special.submit={setup:function(){if(this.nodeName.toLowerCase()!==
 | 
			
		||||
"form"){c.event.add(this,"click.specialSubmit",function(a){var b=a.target,d=b.type;if((d==="submit"||d==="image")&&c(b).closest("form").length){a.liveFired=A;return ja("submit",this,arguments)}});c.event.add(this,"keypress.specialSubmit",function(a){var b=a.target,d=b.type;if((d==="text"||d==="password")&&c(b).closest("form").length&&a.keyCode===13){a.liveFired=A;return ja("submit",this,arguments)}})}else return false},teardown:function(){c.event.remove(this,".specialSubmit")}};if(!c.support.changeBubbles){var V,
 | 
			
		||||
va=function(a){var b=a.type,d=a.value;if(b==="radio"||b==="checkbox")d=a.checked;else if(b==="select-multiple")d=a.selectedIndex>-1?c.map(a.options,function(e){return e.selected}).join("-"):"";else if(a.nodeName.toLowerCase()==="select")d=a.selectedIndex;return d},Z=function(a,b){var d=a.target,e,f;if(!(!ha.test(d.nodeName)||d.readOnly)){e=c.data(d,"_change_data");f=va(d);if(a.type!=="focusout"||d.type!=="radio")c.data(d,"_change_data",f);if(!(e===A||f===e))if(e!=null||f){a.type="change";a.liveFired=
 | 
			
		||||
A;return c.event.trigger(a,b,d)}}};c.event.special.change={filters:{focusout:Z,beforedeactivate:Z,click:function(a){var b=a.target,d=b.type;if(d==="radio"||d==="checkbox"||b.nodeName.toLowerCase()==="select")return Z.call(this,a)},keydown:function(a){var b=a.target,d=b.type;if(a.keyCode===13&&b.nodeName.toLowerCase()!=="textarea"||a.keyCode===32&&(d==="checkbox"||d==="radio")||d==="select-multiple")return Z.call(this,a)},beforeactivate:function(a){a=a.target;c.data(a,"_change_data",va(a))}},setup:function(){if(this.type===
 | 
			
		||||
"file")return false;for(var a in V)c.event.add(this,a+".specialChange",V[a]);return ha.test(this.nodeName)},teardown:function(){c.event.remove(this,".specialChange");return ha.test(this.nodeName)}};V=c.event.special.change.filters;V.focus=V.beforeactivate}u.addEventListener&&c.each({focus:"focusin",blur:"focusout"},function(a,b){function d(e){e=c.event.fix(e);e.type=b;return c.event.trigger(e,null,e.target)}c.event.special[b]={setup:function(){sa[b]++===0&&u.addEventListener(a,d,true)},teardown:function(){--sa[b]===
 | 
			
		||||
0&&u.removeEventListener(a,d,true)}}});c.each(["bind","one"],function(a,b){c.fn[b]=function(d,e,f){if(typeof d==="object"){for(var h in d)this[b](h,e,d[h],f);return this}if(c.isFunction(e)||e===false){f=e;e=A}var k=b==="one"?c.proxy(f,function(n){c(this).unbind(n,k);return f.apply(this,arguments)}):f;if(d==="unload"&&b!=="one")this.one(d,e,f);else{h=0;for(var l=this.length;h<l;h++)c.event.add(this[h],d,k,e)}return this}});c.fn.extend({unbind:function(a,b){if(typeof a==="object"&&!a.preventDefault)for(var d in a)this.unbind(d,
 | 
			
		||||
a[d]);else{d=0;for(var e=this.length;d<e;d++)c.event.remove(this[d],a,b)}return this},delegate:function(a,b,d,e){return this.live(b,d,e,a)},undelegate:function(a,b,d){return arguments.length===0?this.unbind("live"):this.die(b,null,d,a)},trigger:function(a,b){return this.each(function(){c.event.trigger(a,b,this)})},triggerHandler:function(a,b){if(this[0]){var d=c.Event(a);d.preventDefault();d.stopPropagation();c.event.trigger(d,b,this[0]);return d.result}},toggle:function(a){for(var b=arguments,d=
 | 
			
		||||
1;d<b.length;)c.proxy(a,b[d++]);return this.click(c.proxy(a,function(e){var f=(c.data(this,"lastToggle"+a.guid)||0)%d;c.data(this,"lastToggle"+a.guid,f+1);e.preventDefault();return b[f].apply(this,arguments)||false}))},hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)}});var wa={focus:"focusin",blur:"focusout",mouseenter:"mouseover",mouseleave:"mouseout"};c.each(["live","die"],function(a,b){c.fn[b]=function(d,e,f,h){var k,l=0,n,s,v=h||this.selector;h=h?this:c(this.context);if(typeof d===
 | 
			
		||||
"object"&&!d.preventDefault){for(k in d)h[b](k,e,d[k],v);return this}if(c.isFunction(e)){f=e;e=A}for(d=(d||"").split(" ");(k=d[l++])!=null;){n=X.exec(k);s="";if(n){s=n[0];k=k.replace(X,"")}if(k==="hover")d.push("mouseenter"+s,"mouseleave"+s);else{n=k;if(k==="focus"||k==="blur"){d.push(wa[k]+s);k+=s}else k=(wa[k]||k)+s;if(b==="live"){s=0;for(var B=h.length;s<B;s++)c.event.add(h[s],"live."+Y(k,v),{data:e,selector:v,handler:f,origType:k,origHandler:f,preType:n})}else h.unbind("live."+Y(k,v),f)}}return this}});
 | 
			
		||||
c.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error".split(" "),function(a,b){c.fn[b]=function(d,e){if(e==null){e=d;d=null}return arguments.length>0?this.bind(b,d,e):this.trigger(b)};if(c.attrFn)c.attrFn[b]=true});E.attachEvent&&!E.addEventListener&&c(E).bind("unload",function(){for(var a in c.cache)if(c.cache[a].handle)try{c.event.remove(c.cache[a].handle.elem)}catch(b){}});
 | 
			
		||||
(function(){function a(g,j,o,m,p,q){p=0;for(var t=m.length;p<t;p++){var x=m[p];if(x){x=x[g];for(var C=false;x;){if(x.sizcache===o){C=m[x.sizset];break}if(x.nodeType===1&&!q){x.sizcache=o;x.sizset=p}if(x.nodeName.toLowerCase()===j){C=x;break}x=x[g]}m[p]=C}}}function b(g,j,o,m,p,q){p=0;for(var t=m.length;p<t;p++){var x=m[p];if(x){x=x[g];for(var C=false;x;){if(x.sizcache===o){C=m[x.sizset];break}if(x.nodeType===1){if(!q){x.sizcache=o;x.sizset=p}if(typeof j!=="string"){if(x===j){C=true;break}}else if(l.filter(j,
 | 
			
		||||
[x]).length>0){C=x;break}}x=x[g]}m[p]=C}}}var d=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,e=0,f=Object.prototype.toString,h=false,k=true;[0,0].sort(function(){k=false;return 0});var l=function(g,j,o,m){o=o||[];var p=j=j||u;if(j.nodeType!==1&&j.nodeType!==9)return[];if(!g||typeof g!=="string")return o;var q=[],t,x,C,P,N=true,R=l.isXML(j),Q=g,L;do{d.exec("");if(t=d.exec(Q)){Q=t[3];q.push(t[1]);if(t[2]){P=t[3];
 | 
			
		||||
break}}}while(t);if(q.length>1&&s.exec(g))if(q.length===2&&n.relative[q[0]])x=M(q[0]+q[1],j);else for(x=n.relative[q[0]]?[j]:l(q.shift(),j);q.length;){g=q.shift();if(n.relative[g])g+=q.shift();x=M(g,x)}else{if(!m&&q.length>1&&j.nodeType===9&&!R&&n.match.ID.test(q[0])&&!n.match.ID.test(q[q.length-1])){t=l.find(q.shift(),j,R);j=t.expr?l.filter(t.expr,t.set)[0]:t.set[0]}if(j){t=m?{expr:q.pop(),set:D(m)}:l.find(q.pop(),q.length===1&&(q[0]==="~"||q[0]==="+")&&j.parentNode?j.parentNode:j,R);x=t.expr?l.filter(t.expr,
 | 
			
		||||
t.set):t.set;if(q.length>0)C=D(x);else N=false;for(;q.length;){t=L=q.pop();if(n.relative[L])t=q.pop();else L="";if(t==null)t=j;n.relative[L](C,t,R)}}else C=[]}C||(C=x);C||l.error(L||g);if(f.call(C)==="[object Array]")if(N)if(j&&j.nodeType===1)for(g=0;C[g]!=null;g++){if(C[g]&&(C[g]===true||C[g].nodeType===1&&l.contains(j,C[g])))o.push(x[g])}else for(g=0;C[g]!=null;g++)C[g]&&C[g].nodeType===1&&o.push(x[g]);else o.push.apply(o,C);else D(C,o);if(P){l(P,p,o,m);l.uniqueSort(o)}return o};l.uniqueSort=function(g){if(w){h=
 | 
			
		||||
k;g.sort(w);if(h)for(var j=1;j<g.length;j++)g[j]===g[j-1]&&g.splice(j--,1)}return g};l.matches=function(g,j){return l(g,null,null,j)};l.matchesSelector=function(g,j){return l(j,null,null,[g]).length>0};l.find=function(g,j,o){var m;if(!g)return[];for(var p=0,q=n.order.length;p<q;p++){var t=n.order[p],x;if(x=n.leftMatch[t].exec(g)){var C=x[1];x.splice(1,1);if(C.substr(C.length-1)!=="\\"){x[1]=(x[1]||"").replace(/\\/g,"");m=n.find[t](x,j,o);if(m!=null){g=g.replace(n.match[t],"");break}}}}m||(m=j.getElementsByTagName("*"));
 | 
			
		||||
return{set:m,expr:g}};l.filter=function(g,j,o,m){for(var p=g,q=[],t=j,x,C,P=j&&j[0]&&l.isXML(j[0]);g&&j.length;){for(var N in n.filter)if((x=n.leftMatch[N].exec(g))!=null&&x[2]){var R=n.filter[N],Q,L;L=x[1];C=false;x.splice(1,1);if(L.substr(L.length-1)!=="\\"){if(t===q)q=[];if(n.preFilter[N])if(x=n.preFilter[N](x,t,o,q,m,P)){if(x===true)continue}else C=Q=true;if(x)for(var i=0;(L=t[i])!=null;i++)if(L){Q=R(L,x,i,t);var r=m^!!Q;if(o&&Q!=null)if(r)C=true;else t[i]=false;else if(r){q.push(L);C=true}}if(Q!==
 | 
			
		||||
A){o||(t=q);g=g.replace(n.match[N],"");if(!C)return[];break}}}if(g===p)if(C==null)l.error(g);else break;p=g}return t};l.error=function(g){throw"Syntax error, unrecognized expression: "+g;};var n=l.selectors={order:["ID","NAME","TAG"],match:{ID:/#((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,CLASS:/\.((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,NAME:/\[name=['"]*((?:[\w\u00c0-\uFFFF\-]|\\.)+)['"]*\]/,ATTR:/\[\s*((?:[\w\u00c0-\uFFFF\-]|\\.)+)\s*(?:(\S?=)\s*(['"]*)(.*?)\3|)\s*\]/,TAG:/^((?:[\w\u00c0-\uFFFF\*\-]|\\.)+)/,CHILD:/:(only|nth|last|first)-child(?:\((even|odd|[\dn+\-]*)\))?/,
 | 
			
		||||
POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^\-]|$)/,PSEUDO:/:((?:[\w\u00c0-\uFFFF\-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/},leftMatch:{},attrMap:{"class":"className","for":"htmlFor"},attrHandle:{href:function(g){return g.getAttribute("href")}},relative:{"+":function(g,j){var o=typeof j==="string",m=o&&!/\W/.test(j);o=o&&!m;if(m)j=j.toLowerCase();m=0;for(var p=g.length,q;m<p;m++)if(q=g[m]){for(;(q=q.previousSibling)&&q.nodeType!==1;);g[m]=o||q&&q.nodeName.toLowerCase()===
 | 
			
		||||
j?q||false:q===j}o&&l.filter(j,g,true)},">":function(g,j){var o=typeof j==="string",m,p=0,q=g.length;if(o&&!/\W/.test(j))for(j=j.toLowerCase();p<q;p++){if(m=g[p]){o=m.parentNode;g[p]=o.nodeName.toLowerCase()===j?o:false}}else{for(;p<q;p++)if(m=g[p])g[p]=o?m.parentNode:m.parentNode===j;o&&l.filter(j,g,true)}},"":function(g,j,o){var m=e++,p=b,q;if(typeof j==="string"&&!/\W/.test(j)){q=j=j.toLowerCase();p=a}p("parentNode",j,m,g,q,o)},"~":function(g,j,o){var m=e++,p=b,q;if(typeof j==="string"&&!/\W/.test(j)){q=
 | 
			
		||||
j=j.toLowerCase();p=a}p("previousSibling",j,m,g,q,o)}},find:{ID:function(g,j,o){if(typeof j.getElementById!=="undefined"&&!o)return(g=j.getElementById(g[1]))&&g.parentNode?[g]:[]},NAME:function(g,j){if(typeof j.getElementsByName!=="undefined"){for(var o=[],m=j.getElementsByName(g[1]),p=0,q=m.length;p<q;p++)m[p].getAttribute("name")===g[1]&&o.push(m[p]);return o.length===0?null:o}},TAG:function(g,j){return j.getElementsByTagName(g[1])}},preFilter:{CLASS:function(g,j,o,m,p,q){g=" "+g[1].replace(/\\/g,
 | 
			
		||||
"")+" ";if(q)return g;q=0;for(var t;(t=j[q])!=null;q++)if(t)if(p^(t.className&&(" "+t.className+" ").replace(/[\t\n]/g," ").indexOf(g)>=0))o||m.push(t);else if(o)j[q]=false;return false},ID:function(g){return g[1].replace(/\\/g,"")},TAG:function(g){return g[1].toLowerCase()},CHILD:function(g){if(g[1]==="nth"){var j=/(-?)(\d*)n((?:\+|-)?\d*)/.exec(g[2]==="even"&&"2n"||g[2]==="odd"&&"2n+1"||!/\D/.test(g[2])&&"0n+"+g[2]||g[2]);g[2]=j[1]+(j[2]||1)-0;g[3]=j[3]-0}g[0]=e++;return g},ATTR:function(g,j,o,
 | 
			
		||||
m,p,q){j=g[1].replace(/\\/g,"");if(!q&&n.attrMap[j])g[1]=n.attrMap[j];if(g[2]==="~=")g[4]=" "+g[4]+" ";return g},PSEUDO:function(g,j,o,m,p){if(g[1]==="not")if((d.exec(g[3])||"").length>1||/^\w/.test(g[3]))g[3]=l(g[3],null,null,j);else{g=l.filter(g[3],j,o,true^p);o||m.push.apply(m,g);return false}else if(n.match.POS.test(g[0])||n.match.CHILD.test(g[0]))return true;return g},POS:function(g){g.unshift(true);return g}},filters:{enabled:function(g){return g.disabled===false&&g.type!=="hidden"},disabled:function(g){return g.disabled===
 | 
			
		||||
true},checked:function(g){return g.checked===true},selected:function(g){return g.selected===true},parent:function(g){return!!g.firstChild},empty:function(g){return!g.firstChild},has:function(g,j,o){return!!l(o[3],g).length},header:function(g){return/h\d/i.test(g.nodeName)},text:function(g){return"text"===g.type},radio:function(g){return"radio"===g.type},checkbox:function(g){return"checkbox"===g.type},file:function(g){return"file"===g.type},password:function(g){return"password"===g.type},submit:function(g){return"submit"===
 | 
			
		||||
g.type},image:function(g){return"image"===g.type},reset:function(g){return"reset"===g.type},button:function(g){return"button"===g.type||g.nodeName.toLowerCase()==="button"},input:function(g){return/input|select|textarea|button/i.test(g.nodeName)}},setFilters:{first:function(g,j){return j===0},last:function(g,j,o,m){return j===m.length-1},even:function(g,j){return j%2===0},odd:function(g,j){return j%2===1},lt:function(g,j,o){return j<o[3]-0},gt:function(g,j,o){return j>o[3]-0},nth:function(g,j,o){return o[3]-
 | 
			
		||||
0===j},eq:function(g,j,o){return o[3]-0===j}},filter:{PSEUDO:function(g,j,o,m){var p=j[1],q=n.filters[p];if(q)return q(g,o,j,m);else if(p==="contains")return(g.textContent||g.innerText||l.getText([g])||"").indexOf(j[3])>=0;else if(p==="not"){j=j[3];o=0;for(m=j.length;o<m;o++)if(j[o]===g)return false;return true}else l.error("Syntax error, unrecognized expression: "+p)},CHILD:function(g,j){var o=j[1],m=g;switch(o){case "only":case "first":for(;m=m.previousSibling;)if(m.nodeType===1)return false;if(o===
 | 
			
		||||
"first")return true;m=g;case "last":for(;m=m.nextSibling;)if(m.nodeType===1)return false;return true;case "nth":o=j[2];var p=j[3];if(o===1&&p===0)return true;var q=j[0],t=g.parentNode;if(t&&(t.sizcache!==q||!g.nodeIndex)){var x=0;for(m=t.firstChild;m;m=m.nextSibling)if(m.nodeType===1)m.nodeIndex=++x;t.sizcache=q}m=g.nodeIndex-p;return o===0?m===0:m%o===0&&m/o>=0}},ID:function(g,j){return g.nodeType===1&&g.getAttribute("id")===j},TAG:function(g,j){return j==="*"&&g.nodeType===1||g.nodeName.toLowerCase()===
 | 
			
		||||
j},CLASS:function(g,j){return(" "+(g.className||g.getAttribute("class"))+" ").indexOf(j)>-1},ATTR:function(g,j){var o=j[1];o=n.attrHandle[o]?n.attrHandle[o](g):g[o]!=null?g[o]:g.getAttribute(o);var m=o+"",p=j[2],q=j[4];return o==null?p==="!=":p==="="?m===q:p==="*="?m.indexOf(q)>=0:p==="~="?(" "+m+" ").indexOf(q)>=0:!q?m&&o!==false:p==="!="?m!==q:p==="^="?m.indexOf(q)===0:p==="$="?m.substr(m.length-q.length)===q:p==="|="?m===q||m.substr(0,q.length+1)===q+"-":false},POS:function(g,j,o,m){var p=n.setFilters[j[2]];
 | 
			
		||||
if(p)return p(g,o,j,m)}}},s=n.match.POS,v=function(g,j){return"\\"+(j-0+1)},B;for(B in n.match){n.match[B]=RegExp(n.match[B].source+/(?![^\[]*\])(?![^\(]*\))/.source);n.leftMatch[B]=RegExp(/(^(?:.|\r|\n)*?)/.source+n.match[B].source.replace(/\\(\d+)/g,v))}var D=function(g,j){g=Array.prototype.slice.call(g,0);if(j){j.push.apply(j,g);return j}return g};try{Array.prototype.slice.call(u.documentElement.childNodes,0)}catch(H){D=function(g,j){var o=j||[],m=0;if(f.call(g)==="[object Array]")Array.prototype.push.apply(o,
 | 
			
		||||
g);else if(typeof g.length==="number")for(var p=g.length;m<p;m++)o.push(g[m]);else for(;g[m];m++)o.push(g[m]);return o}}var w,G;if(u.documentElement.compareDocumentPosition)w=function(g,j){if(g===j){h=true;return 0}if(!g.compareDocumentPosition||!j.compareDocumentPosition)return g.compareDocumentPosition?-1:1;return g.compareDocumentPosition(j)&4?-1:1};else{w=function(g,j){var o=[],m=[],p=g.parentNode,q=j.parentNode,t=p;if(g===j){h=true;return 0}else if(p===q)return G(g,j);else if(p){if(!q)return 1}else return-1;
 | 
			
		||||
for(;t;){o.unshift(t);t=t.parentNode}for(t=q;t;){m.unshift(t);t=t.parentNode}p=o.length;q=m.length;for(t=0;t<p&&t<q;t++)if(o[t]!==m[t])return G(o[t],m[t]);return t===p?G(g,m[t],-1):G(o[t],j,1)};G=function(g,j,o){if(g===j)return o;for(g=g.nextSibling;g;){if(g===j)return-1;g=g.nextSibling}return 1}}l.getText=function(g){for(var j="",o,m=0;g[m];m++){o=g[m];if(o.nodeType===3||o.nodeType===4)j+=o.nodeValue;else if(o.nodeType!==8)j+=l.getText(o.childNodes)}return j};(function(){var g=u.createElement("div"),
 | 
			
		||||
j="script"+(new Date).getTime();g.innerHTML="<a name='"+j+"'/>";var o=u.documentElement;o.insertBefore(g,o.firstChild);if(u.getElementById(j)){n.find.ID=function(m,p,q){if(typeof p.getElementById!=="undefined"&&!q)return(p=p.getElementById(m[1]))?p.id===m[1]||typeof p.getAttributeNode!=="undefined"&&p.getAttributeNode("id").nodeValue===m[1]?[p]:A:[]};n.filter.ID=function(m,p){var q=typeof m.getAttributeNode!=="undefined"&&m.getAttributeNode("id");return m.nodeType===1&&q&&q.nodeValue===p}}o.removeChild(g);
 | 
			
		||||
o=g=null})();(function(){var g=u.createElement("div");g.appendChild(u.createComment(""));if(g.getElementsByTagName("*").length>0)n.find.TAG=function(j,o){var m=o.getElementsByTagName(j[1]);if(j[1]==="*"){for(var p=[],q=0;m[q];q++)m[q].nodeType===1&&p.push(m[q]);m=p}return m};g.innerHTML="<a href='#'></a>";if(g.firstChild&&typeof g.firstChild.getAttribute!=="undefined"&&g.firstChild.getAttribute("href")!=="#")n.attrHandle.href=function(j){return j.getAttribute("href",2)};g=null})();u.querySelectorAll&&
 | 
			
		||||
function(){var g=l,j=u.createElement("div");j.innerHTML="<p class='TEST'></p>";if(!(j.querySelectorAll&&j.querySelectorAll(".TEST").length===0)){l=function(m,p,q,t){p=p||u;if(!t&&!l.isXML(p))if(p.nodeType===9)try{return D(p.querySelectorAll(m),q)}catch(x){}else if(p.nodeType===1&&p.nodeName.toLowerCase()!=="object"){var C=p.id,P=p.id="__sizzle__";try{return D(p.querySelectorAll("#"+P+" "+m),q)}catch(N){}finally{if(C)p.id=C;else p.removeAttribute("id")}}return g(m,p,q,t)};for(var o in g)l[o]=g[o];
 | 
			
		||||
j=null}}();(function(){var g=u.documentElement,j=g.matchesSelector||g.mozMatchesSelector||g.webkitMatchesSelector||g.msMatchesSelector,o=false;try{j.call(u.documentElement,":sizzle")}catch(m){o=true}if(j)l.matchesSelector=function(p,q){try{if(o||!n.match.PSEUDO.test(q))return j.call(p,q)}catch(t){}return l(q,null,null,[p]).length>0}})();(function(){var g=u.createElement("div");g.innerHTML="<div class='test e'></div><div class='test'></div>";if(!(!g.getElementsByClassName||g.getElementsByClassName("e").length===
 | 
			
		||||
0)){g.lastChild.className="e";if(g.getElementsByClassName("e").length!==1){n.order.splice(1,0,"CLASS");n.find.CLASS=function(j,o,m){if(typeof o.getElementsByClassName!=="undefined"&&!m)return o.getElementsByClassName(j[1])};g=null}}})();l.contains=u.documentElement.contains?function(g,j){return g!==j&&(g.contains?g.contains(j):true)}:function(g,j){return!!(g.compareDocumentPosition(j)&16)};l.isXML=function(g){return(g=(g?g.ownerDocument||g:0).documentElement)?g.nodeName!=="HTML":false};var M=function(g,
 | 
			
		||||
j){for(var o=[],m="",p,q=j.nodeType?[j]:j;p=n.match.PSEUDO.exec(g);){m+=p[0];g=g.replace(n.match.PSEUDO,"")}g=n.relative[g]?g+"*":g;p=0;for(var t=q.length;p<t;p++)l(g,q[p],o);return l.filter(m,o)};c.find=l;c.expr=l.selectors;c.expr[":"]=c.expr.filters;c.unique=l.uniqueSort;c.text=l.getText;c.isXMLDoc=l.isXML;c.contains=l.contains})();var Wa=/Until$/,Xa=/^(?:parents|prevUntil|prevAll)/,Ya=/,/,Ja=/^.[^:#\[\.,]*$/,Za=Array.prototype.slice,$a=c.expr.match.POS;c.fn.extend({find:function(a){for(var b=this.pushStack("",
 | 
			
		||||
"find",a),d=0,e=0,f=this.length;e<f;e++){d=b.length;c.find(a,this[e],b);if(e>0)for(var h=d;h<b.length;h++)for(var k=0;k<d;k++)if(b[k]===b[h]){b.splice(h--,1);break}}return b},has:function(a){var b=c(a);return this.filter(function(){for(var d=0,e=b.length;d<e;d++)if(c.contains(this,b[d]))return true})},not:function(a){return this.pushStack(ka(this,a,false),"not",a)},filter:function(a){return this.pushStack(ka(this,a,true),"filter",a)},is:function(a){return!!a&&c.filter(a,this).length>0},closest:function(a,
 | 
			
		||||
b){var d=[],e,f,h=this[0];if(c.isArray(a)){var k={},l,n=1;if(h&&a.length){e=0;for(f=a.length;e<f;e++){l=a[e];k[l]||(k[l]=c.expr.match.POS.test(l)?c(l,b||this.context):l)}for(;h&&h.ownerDocument&&h!==b;){for(l in k){e=k[l];if(e.jquery?e.index(h)>-1:c(h).is(e))d.push({selector:l,elem:h,level:n})}h=h.parentNode;n++}}return d}k=$a.test(a)?c(a,b||this.context):null;e=0;for(f=this.length;e<f;e++)for(h=this[e];h;)if(k?k.index(h)>-1:c.find.matchesSelector(h,a)){d.push(h);break}else{h=h.parentNode;if(!h||
 | 
			
		||||
!h.ownerDocument||h===b)break}d=d.length>1?c.unique(d):d;return this.pushStack(d,"closest",a)},index:function(a){if(!a||typeof a==="string")return c.inArray(this[0],a?c(a):this.parent().children());return c.inArray(a.jquery?a[0]:a,this)},add:function(a,b){var d=typeof a==="string"?c(a,b||this.context):c.makeArray(a),e=c.merge(this.get(),d);return this.pushStack(!d[0]||!d[0].parentNode||d[0].parentNode.nodeType===11||!e[0]||!e[0].parentNode||e[0].parentNode.nodeType===11?e:c.unique(e))},andSelf:function(){return this.add(this.prevObject)}});
 | 
			
		||||
c.each({parent:function(a){return(a=a.parentNode)&&a.nodeType!==11?a:null},parents:function(a){return c.dir(a,"parentNode")},parentsUntil:function(a,b,d){return c.dir(a,"parentNode",d)},next:function(a){return c.nth(a,2,"nextSibling")},prev:function(a){return c.nth(a,2,"previousSibling")},nextAll:function(a){return c.dir(a,"nextSibling")},prevAll:function(a){return c.dir(a,"previousSibling")},nextUntil:function(a,b,d){return c.dir(a,"nextSibling",d)},prevUntil:function(a,b,d){return c.dir(a,"previousSibling",
 | 
			
		||||
d)},siblings:function(a){return c.sibling(a.parentNode.firstChild,a)},children:function(a){return c.sibling(a.firstChild)},contents:function(a){return c.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:c.makeArray(a.childNodes)}},function(a,b){c.fn[a]=function(d,e){var f=c.map(this,b,d);Wa.test(a)||(e=d);if(e&&typeof e==="string")f=c.filter(e,f);f=this.length>1?c.unique(f):f;if((this.length>1||Ya.test(e))&&Xa.test(a))f=f.reverse();return this.pushStack(f,a,Za.call(arguments).join(","))}});
 | 
			
		||||
c.extend({filter:function(a,b,d){if(d)a=":not("+a+")";return b.length===1?c.find.matchesSelector(b[0],a)?[b[0]]:[]:c.find.matches(a,b)},dir:function(a,b,d){var e=[];for(a=a[b];a&&a.nodeType!==9&&(d===A||a.nodeType!==1||!c(a).is(d));){a.nodeType===1&&e.push(a);a=a[b]}return e},nth:function(a,b,d){b=b||1;for(var e=0;a;a=a[d])if(a.nodeType===1&&++e===b)break;return a},sibling:function(a,b){for(var d=[];a;a=a.nextSibling)a.nodeType===1&&a!==b&&d.push(a);return d}});var xa=/ jQuery\d+="(?:\d+|null)"/g,
 | 
			
		||||
$=/^\s+/,ya=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,za=/<([\w:]+)/,ab=/<tbody/i,bb=/<|&#?\w+;/,Aa=/<(?:script|object|embed|option|style)/i,Ba=/checked\s*(?:[^=]|=\s*.checked.)/i,cb=/\=([^="'>\s]+\/)>/g,O={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],
 | 
			
		||||
area:[1,"<map>","</map>"],_default:[0,"",""]};O.optgroup=O.option;O.tbody=O.tfoot=O.colgroup=O.caption=O.thead;O.th=O.td;if(!c.support.htmlSerialize)O._default=[1,"div<div>","</div>"];c.fn.extend({text:function(a){if(c.isFunction(a))return this.each(function(b){var d=c(this);d.text(a.call(this,b,d.text()))});if(typeof a!=="object"&&a!==A)return this.empty().append((this[0]&&this[0].ownerDocument||u).createTextNode(a));return c.text(this)},wrapAll:function(a){if(c.isFunction(a))return this.each(function(d){c(this).wrapAll(a.call(this,
 | 
			
		||||
d))});if(this[0]){var b=c(a,this[0].ownerDocument).eq(0).clone(true);this[0].parentNode&&b.insertBefore(this[0]);b.map(function(){for(var d=this;d.firstChild&&d.firstChild.nodeType===1;)d=d.firstChild;return d}).append(this)}return this},wrapInner:function(a){if(c.isFunction(a))return this.each(function(b){c(this).wrapInner(a.call(this,b))});return this.each(function(){var b=c(this),d=b.contents();d.length?d.wrapAll(a):b.append(a)})},wrap:function(a){return this.each(function(){c(this).wrapAll(a)})},
 | 
			
		||||
unwrap:function(){return this.parent().each(function(){c.nodeName(this,"body")||c(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,true,function(a){this.nodeType===1&&this.appendChild(a)})},prepend:function(){return this.domManip(arguments,true,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,false,function(b){this.parentNode.insertBefore(b,this)});else if(arguments.length){var a=
 | 
			
		||||
c(arguments[0]);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,false,function(b){this.parentNode.insertBefore(b,this.nextSibling)});else if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,c(arguments[0]).toArray());return a}},remove:function(a,b){for(var d=0,e;(e=this[d])!=null;d++)if(!a||c.filter(a,[e]).length){if(!b&&e.nodeType===1){c.cleanData(e.getElementsByTagName("*"));
 | 
			
		||||
c.cleanData([e])}e.parentNode&&e.parentNode.removeChild(e)}return this},empty:function(){for(var a=0,b;(b=this[a])!=null;a++)for(b.nodeType===1&&c.cleanData(b.getElementsByTagName("*"));b.firstChild;)b.removeChild(b.firstChild);return this},clone:function(a){var b=this.map(function(){if(!c.support.noCloneEvent&&!c.isXMLDoc(this)){var d=this.outerHTML,e=this.ownerDocument;if(!d){d=e.createElement("div");d.appendChild(this.cloneNode(true));d=d.innerHTML}return c.clean([d.replace(xa,"").replace(cb,'="$1">').replace($,
 | 
			
		||||
"")],e)[0]}else return this.cloneNode(true)});if(a===true){la(this,b);la(this.find("*"),b.find("*"))}return b},html:function(a){if(a===A)return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(xa,""):null;else if(typeof a==="string"&&!Aa.test(a)&&(c.support.leadingWhitespace||!$.test(a))&&!O[(za.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(ya,"<$1></$2>");try{for(var b=0,d=this.length;b<d;b++)if(this[b].nodeType===1){c.cleanData(this[b].getElementsByTagName("*"));this[b].innerHTML=a}}catch(e){this.empty().append(a)}}else c.isFunction(a)?
 | 
			
		||||
this.each(function(f){var h=c(this);h.html(a.call(this,f,h.html()))}):this.empty().append(a);return this},replaceWith:function(a){if(this[0]&&this[0].parentNode){if(c.isFunction(a))return this.each(function(b){var d=c(this),e=d.html();d.replaceWith(a.call(this,b,e))});if(typeof a!=="string")a=c(a).detach();return this.each(function(){var b=this.nextSibling,d=this.parentNode;c(this).remove();b?c(b).before(a):c(d).append(a)})}else return this.pushStack(c(c.isFunction(a)?a():a),"replaceWith",a)},detach:function(a){return this.remove(a,
 | 
			
		||||
true)},domManip:function(a,b,d){var e,f,h=a[0],k=[],l;if(!c.support.checkClone&&arguments.length===3&&typeof h==="string"&&Ba.test(h))return this.each(function(){c(this).domManip(a,b,d,true)});if(c.isFunction(h))return this.each(function(s){var v=c(this);a[0]=h.call(this,s,b?v.html():A);v.domManip(a,b,d)});if(this[0]){e=h&&h.parentNode;e=c.support.parentNode&&e&&e.nodeType===11&&e.childNodes.length===this.length?{fragment:e}:c.buildFragment(a,this,k);l=e.fragment;if(f=l.childNodes.length===1?l=l.firstChild:
 | 
			
		||||
l.firstChild){b=b&&c.nodeName(f,"tr");f=0;for(var n=this.length;f<n;f++)d.call(b?c.nodeName(this[f],"table")?this[f].getElementsByTagName("tbody")[0]||this[f].appendChild(this[f].ownerDocument.createElement("tbody")):this[f]:this[f],f>0||e.cacheable||this.length>1?l.cloneNode(true):l)}k.length&&c.each(k,Ka)}return this}});c.buildFragment=function(a,b,d){var e,f,h;b=b&&b[0]?b[0].ownerDocument||b[0]:u;if(a.length===1&&typeof a[0]==="string"&&a[0].length<512&&b===u&&!Aa.test(a[0])&&(c.support.checkClone||
 | 
			
		||||
!Ba.test(a[0]))){f=true;if(h=c.fragments[a[0]])if(h!==1)e=h}if(!e){e=b.createDocumentFragment();c.clean(a,b,e,d)}if(f)c.fragments[a[0]]=h?e:1;return{fragment:e,cacheable:f}};c.fragments={};c.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){c.fn[a]=function(d){var e=[];d=c(d);var f=this.length===1&&this[0].parentNode;if(f&&f.nodeType===11&&f.childNodes.length===1&&d.length===1){d[b](this[0]);return this}else{f=0;for(var h=
 | 
			
		||||
d.length;f<h;f++){var k=(f>0?this.clone(true):this).get();c(d[f])[b](k);e=e.concat(k)}return this.pushStack(e,a,d.selector)}}});c.extend({clean:function(a,b,d,e){b=b||u;if(typeof b.createElement==="undefined")b=b.ownerDocument||b[0]&&b[0].ownerDocument||u;for(var f=[],h=0,k;(k=a[h])!=null;h++){if(typeof k==="number")k+="";if(k){if(typeof k==="string"&&!bb.test(k))k=b.createTextNode(k);else if(typeof k==="string"){k=k.replace(ya,"<$1></$2>");var l=(za.exec(k)||["",""])[1].toLowerCase(),n=O[l]||O._default,
 | 
			
		||||
s=n[0],v=b.createElement("div");for(v.innerHTML=n[1]+k+n[2];s--;)v=v.lastChild;if(!c.support.tbody){s=ab.test(k);l=l==="table"&&!s?v.firstChild&&v.firstChild.childNodes:n[1]==="<table>"&&!s?v.childNodes:[];for(n=l.length-1;n>=0;--n)c.nodeName(l[n],"tbody")&&!l[n].childNodes.length&&l[n].parentNode.removeChild(l[n])}!c.support.leadingWhitespace&&$.test(k)&&v.insertBefore(b.createTextNode($.exec(k)[0]),v.firstChild);k=v.childNodes}if(k.nodeType)f.push(k);else f=c.merge(f,k)}}if(d)for(h=0;f[h];h++)if(e&&
 | 
			
		||||
c.nodeName(f[h],"script")&&(!f[h].type||f[h].type.toLowerCase()==="text/javascript"))e.push(f[h].parentNode?f[h].parentNode.removeChild(f[h]):f[h]);else{f[h].nodeType===1&&f.splice.apply(f,[h+1,0].concat(c.makeArray(f[h].getElementsByTagName("script"))));d.appendChild(f[h])}return f},cleanData:function(a){for(var b,d,e=c.cache,f=c.event.special,h=c.support.deleteExpando,k=0,l;(l=a[k])!=null;k++)if(!(l.nodeName&&c.noData[l.nodeName.toLowerCase()]))if(d=l[c.expando]){if((b=e[d])&&b.events)for(var n in b.events)f[n]?
 | 
			
		||||
c.event.remove(l,n):c.removeEvent(l,n,b.handle);if(h)delete l[c.expando];else l.removeAttribute&&l.removeAttribute(c.expando);delete e[d]}}});var Ca=/alpha\([^)]*\)/i,db=/opacity=([^)]*)/,eb=/-([a-z])/ig,fb=/([A-Z])/g,Da=/^-?\d+(?:px)?$/i,gb=/^-?\d/,hb={position:"absolute",visibility:"hidden",display:"block"},La=["Left","Right"],Ma=["Top","Bottom"],W,ib=u.defaultView&&u.defaultView.getComputedStyle,jb=function(a,b){return b.toUpperCase()};c.fn.css=function(a,b){if(arguments.length===2&&b===A)return this;
 | 
			
		||||
return c.access(this,a,b,true,function(d,e,f){return f!==A?c.style(d,e,f):c.css(d,e)})};c.extend({cssHooks:{opacity:{get:function(a,b){if(b){var d=W(a,"opacity","opacity");return d===""?"1":d}else return a.style.opacity}}},cssNumber:{zIndex:true,fontWeight:true,opacity:true,zoom:true,lineHeight:true},cssProps:{"float":c.support.cssFloat?"cssFloat":"styleFloat"},style:function(a,b,d,e){if(!(!a||a.nodeType===3||a.nodeType===8||!a.style)){var f,h=c.camelCase(b),k=a.style,l=c.cssHooks[h];b=c.cssProps[h]||
 | 
			
		||||
h;if(d!==A){if(!(typeof d==="number"&&isNaN(d)||d==null)){if(typeof d==="number"&&!c.cssNumber[h])d+="px";if(!l||!("set"in l)||(d=l.set(a,d))!==A)try{k[b]=d}catch(n){}}}else{if(l&&"get"in l&&(f=l.get(a,false,e))!==A)return f;return k[b]}}},css:function(a,b,d){var e,f=c.camelCase(b),h=c.cssHooks[f];b=c.cssProps[f]||f;if(h&&"get"in h&&(e=h.get(a,true,d))!==A)return e;else if(W)return W(a,b,f)},swap:function(a,b,d){var e={},f;for(f in b){e[f]=a.style[f];a.style[f]=b[f]}d.call(a);for(f in b)a.style[f]=
 | 
			
		||||
e[f]},camelCase:function(a){return a.replace(eb,jb)}});c.curCSS=c.css;c.each(["height","width"],function(a,b){c.cssHooks[b]={get:function(d,e,f){var h;if(e){if(d.offsetWidth!==0)h=ma(d,b,f);else c.swap(d,hb,function(){h=ma(d,b,f)});return h+"px"}},set:function(d,e){if(Da.test(e)){e=parseFloat(e);if(e>=0)return e+"px"}else return e}}});if(!c.support.opacity)c.cssHooks.opacity={get:function(a,b){return db.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?parseFloat(RegExp.$1)/100+"":
 | 
			
		||||
b?"1":""},set:function(a,b){var d=a.style;d.zoom=1;var e=c.isNaN(b)?"":"alpha(opacity="+b*100+")",f=d.filter||"";d.filter=Ca.test(f)?f.replace(Ca,e):d.filter+" "+e}};if(ib)W=function(a,b,d){var e;d=d.replace(fb,"-$1").toLowerCase();if(!(b=a.ownerDocument.defaultView))return A;if(b=b.getComputedStyle(a,null)){e=b.getPropertyValue(d);if(e===""&&!c.contains(a.ownerDocument.documentElement,a))e=c.style(a,d)}return e};else if(u.documentElement.currentStyle)W=function(a,b){var d,e,f=a.currentStyle&&a.currentStyle[b],
 | 
			
		||||
h=a.style;if(!Da.test(f)&&gb.test(f)){d=h.left;e=a.runtimeStyle.left;a.runtimeStyle.left=a.currentStyle.left;h.left=b==="fontSize"?"1em":f||0;f=h.pixelLeft+"px";h.left=d;a.runtimeStyle.left=e}return f};if(c.expr&&c.expr.filters){c.expr.filters.hidden=function(a){var b=a.offsetHeight;return a.offsetWidth===0&&b===0||!c.support.reliableHiddenOffsets&&(a.style.display||c.css(a,"display"))==="none"};c.expr.filters.visible=function(a){return!c.expr.filters.hidden(a)}}var kb=c.now(),lb=/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi,
 | 
			
		||||
mb=/^(?:select|textarea)/i,nb=/^(?:color|date|datetime|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,ob=/^(?:GET|HEAD|DELETE)$/,Na=/\[\]$/,T=/\=\?(&|$)/,ia=/\?/,pb=/([?&])_=[^&]*/,qb=/^(\w+:)?\/\/([^\/?#]+)/,rb=/%20/g,sb=/#.*$/,Ea=c.fn.load;c.fn.extend({load:function(a,b,d){if(typeof a!=="string"&&Ea)return Ea.apply(this,arguments);else if(!this.length)return this;var e=a.indexOf(" ");if(e>=0){var f=a.slice(e,a.length);a=a.slice(0,e)}e="GET";if(b)if(c.isFunction(b)){d=
 | 
			
		||||
b;b=null}else if(typeof b==="object"){b=c.param(b,c.ajaxSettings.traditional);e="POST"}var h=this;c.ajax({url:a,type:e,dataType:"html",data:b,complete:function(k,l){if(l==="success"||l==="notmodified")h.html(f?c("<div>").append(k.responseText.replace(lb,"")).find(f):k.responseText);d&&h.each(d,[k.responseText,l,k])}});return this},serialize:function(){return c.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?c.makeArray(this.elements):this}).filter(function(){return this.name&&
 | 
			
		||||
!this.disabled&&(this.checked||mb.test(this.nodeName)||nb.test(this.type))}).map(function(a,b){var d=c(this).val();return d==null?null:c.isArray(d)?c.map(d,function(e){return{name:b.name,value:e}}):{name:b.name,value:d}}).get()}});c.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(a,b){c.fn[b]=function(d){return this.bind(b,d)}});c.extend({get:function(a,b,d,e){if(c.isFunction(b)){e=e||d;d=b;b=null}return c.ajax({type:"GET",url:a,data:b,success:d,dataType:e})},
 | 
			
		||||
getScript:function(a,b){return c.get(a,null,b,"script")},getJSON:function(a,b,d){return c.get(a,b,d,"json")},post:function(a,b,d,e){if(c.isFunction(b)){e=e||d;d=b;b={}}return c.ajax({type:"POST",url:a,data:b,success:d,dataType:e})},ajaxSetup:function(a){c.extend(c.ajaxSettings,a)},ajaxSettings:{url:location.href,global:true,type:"GET",contentType:"application/x-www-form-urlencoded",processData:true,async:true,xhr:function(){return new E.XMLHttpRequest},accepts:{xml:"application/xml, text/xml",html:"text/html",
 | 
			
		||||
script:"text/javascript, application/javascript",json:"application/json, text/javascript",text:"text/plain",_default:"*/*"}},ajax:function(a){var b=c.extend(true,{},c.ajaxSettings,a),d,e,f,h=b.type.toUpperCase(),k=ob.test(h);b.url=b.url.replace(sb,"");b.context=a&&a.context!=null?a.context:b;if(b.data&&b.processData&&typeof b.data!=="string")b.data=c.param(b.data,b.traditional);if(b.dataType==="jsonp"){if(h==="GET")T.test(b.url)||(b.url+=(ia.test(b.url)?"&":"?")+(b.jsonp||"callback")+"=?");else if(!b.data||
 | 
			
		||||
!T.test(b.data))b.data=(b.data?b.data+"&":"")+(b.jsonp||"callback")+"=?";b.dataType="json"}if(b.dataType==="json"&&(b.data&&T.test(b.data)||T.test(b.url))){d=b.jsonpCallback||"jsonp"+kb++;if(b.data)b.data=(b.data+"").replace(T,"="+d+"$1");b.url=b.url.replace(T,"="+d+"$1");b.dataType="script";var l=E[d];E[d]=function(m){f=m;c.handleSuccess(b,w,e,f);c.handleComplete(b,w,e,f);if(c.isFunction(l))l(m);else{E[d]=A;try{delete E[d]}catch(p){}}v&&v.removeChild(B)}}if(b.dataType==="script"&&b.cache===null)b.cache=
 | 
			
		||||
false;if(b.cache===false&&h==="GET"){var n=c.now(),s=b.url.replace(pb,"$1_="+n);b.url=s+(s===b.url?(ia.test(b.url)?"&":"?")+"_="+n:"")}if(b.data&&h==="GET")b.url+=(ia.test(b.url)?"&":"?")+b.data;b.global&&c.active++===0&&c.event.trigger("ajaxStart");n=(n=qb.exec(b.url))&&(n[1]&&n[1]!==location.protocol||n[2]!==location.host);if(b.dataType==="script"&&h==="GET"&&n){var v=u.getElementsByTagName("head")[0]||u.documentElement,B=u.createElement("script");if(b.scriptCharset)B.charset=b.scriptCharset;B.src=
 | 
			
		||||
b.url;if(!d){var D=false;B.onload=B.onreadystatechange=function(){if(!D&&(!this.readyState||this.readyState==="loaded"||this.readyState==="complete")){D=true;c.handleSuccess(b,w,e,f);c.handleComplete(b,w,e,f);B.onload=B.onreadystatechange=null;v&&B.parentNode&&v.removeChild(B)}}}v.insertBefore(B,v.firstChild);return A}var H=false,w=b.xhr();if(w){b.username?w.open(h,b.url,b.async,b.username,b.password):w.open(h,b.url,b.async);try{if(b.data!=null&&!k||a&&a.contentType)w.setRequestHeader("Content-Type",
 | 
			
		||||
b.contentType);if(b.ifModified){c.lastModified[b.url]&&w.setRequestHeader("If-Modified-Since",c.lastModified[b.url]);c.etag[b.url]&&w.setRequestHeader("If-None-Match",c.etag[b.url])}n||w.setRequestHeader("X-Requested-With","XMLHttpRequest");w.setRequestHeader("Accept",b.dataType&&b.accepts[b.dataType]?b.accepts[b.dataType]+", */*; q=0.01":b.accepts._default)}catch(G){}if(b.beforeSend&&b.beforeSend.call(b.context,w,b)===false){b.global&&c.active--===1&&c.event.trigger("ajaxStop");w.abort();return false}b.global&&
 | 
			
		||||
c.triggerGlobal(b,"ajaxSend",[w,b]);var M=w.onreadystatechange=function(m){if(!w||w.readyState===0||m==="abort"){H||c.handleComplete(b,w,e,f);H=true;if(w)w.onreadystatechange=c.noop}else if(!H&&w&&(w.readyState===4||m==="timeout")){H=true;w.onreadystatechange=c.noop;e=m==="timeout"?"timeout":!c.httpSuccess(w)?"error":b.ifModified&&c.httpNotModified(w,b.url)?"notmodified":"success";var p;if(e==="success")try{f=c.httpData(w,b.dataType,b)}catch(q){e="parsererror";p=q}if(e==="success"||e==="notmodified")d||
 | 
			
		||||
c.handleSuccess(b,w,e,f);else c.handleError(b,w,e,p);d||c.handleComplete(b,w,e,f);m==="timeout"&&w.abort();if(b.async)w=null}};try{var g=w.abort;w.abort=function(){w&&g.call&&g.call(w);M("abort")}}catch(j){}b.async&&b.timeout>0&&setTimeout(function(){w&&!H&&M("timeout")},b.timeout);try{w.send(k||b.data==null?null:b.data)}catch(o){c.handleError(b,w,null,o);c.handleComplete(b,w,e,f)}b.async||M();return w}},param:function(a,b){var d=[],e=function(h,k){k=c.isFunction(k)?k():k;d[d.length]=encodeURIComponent(h)+
 | 
			
		||||
"="+encodeURIComponent(k)};if(b===A)b=c.ajaxSettings.traditional;if(c.isArray(a)||a.jquery)c.each(a,function(){e(this.name,this.value)});else for(var f in a)ca(f,a[f],b,e);return d.join("&").replace(rb,"+")}});c.extend({active:0,lastModified:{},etag:{},handleError:function(a,b,d,e){a.error&&a.error.call(a.context,b,d,e);a.global&&c.triggerGlobal(a,"ajaxError",[b,a,e])},handleSuccess:function(a,b,d,e){a.success&&a.success.call(a.context,e,d,b);a.global&&c.triggerGlobal(a,"ajaxSuccess",[b,a])},handleComplete:function(a,
 | 
			
		||||
b,d){a.complete&&a.complete.call(a.context,b,d);a.global&&c.triggerGlobal(a,"ajaxComplete",[b,a]);a.global&&c.active--===1&&c.event.trigger("ajaxStop")},triggerGlobal:function(a,b,d){(a.context&&a.context.url==null?c(a.context):c.event).trigger(b,d)},httpSuccess:function(a){try{return!a.status&&location.protocol==="file:"||a.status>=200&&a.status<300||a.status===304||a.status===1223}catch(b){}return false},httpNotModified:function(a,b){var d=a.getResponseHeader("Last-Modified"),e=a.getResponseHeader("Etag");
 | 
			
		||||
if(d)c.lastModified[b]=d;if(e)c.etag[b]=e;return a.status===304},httpData:function(a,b,d){var e=a.getResponseHeader("content-type")||"",f=b==="xml"||!b&&e.indexOf("xml")>=0;a=f?a.responseXML:a.responseText;f&&a.documentElement.nodeName==="parsererror"&&c.error("parsererror");if(d&&d.dataFilter)a=d.dataFilter(a,b);if(typeof a==="string")if(b==="json"||!b&&e.indexOf("json")>=0)a=c.parseJSON(a);else if(b==="script"||!b&&e.indexOf("javascript")>=0)c.globalEval(a);return a}});if(E.ActiveXObject)c.ajaxSettings.xhr=
 | 
			
		||||
function(){if(E.location.protocol!=="file:")try{return new E.XMLHttpRequest}catch(a){}try{return new E.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}};c.support.ajax=!!c.ajaxSettings.xhr();var da={},tb=/^(?:toggle|show|hide)$/,ub=/^([+\-]=)?([\d+.\-]+)(.*)$/,aa,na=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]];c.fn.extend({show:function(a,b,d){if(a||a===0)return this.animate(S("show",3),a,b,d);else{a=
 | 
			
		||||
0;for(b=this.length;a<b;a++){if(!c.data(this[a],"olddisplay")&&this[a].style.display==="none")this[a].style.display="";this[a].style.display===""&&c.css(this[a],"display")==="none"&&c.data(this[a],"olddisplay",oa(this[a].nodeName))}for(a=0;a<b;a++)this[a].style.display=c.data(this[a],"olddisplay")||"";return this}},hide:function(a,b,d){if(a||a===0)return this.animate(S("hide",3),a,b,d);else{a=0;for(b=this.length;a<b;a++){d=c.css(this[a],"display");d!=="none"&&c.data(this[a],"olddisplay",d)}for(a=
 | 
			
		||||
0;a<b;a++)this[a].style.display="none";return this}},_toggle:c.fn.toggle,toggle:function(a,b,d){var e=typeof a==="boolean";if(c.isFunction(a)&&c.isFunction(b))this._toggle.apply(this,arguments);else a==null||e?this.each(function(){var f=e?a:c(this).is(":hidden");c(this)[f?"show":"hide"]()}):this.animate(S("toggle",3),a,b,d);return this},fadeTo:function(a,b,d,e){return this.filter(":hidden").css("opacity",0).show().end().animate({opacity:b},a,d,e)},animate:function(a,b,d,e){var f=c.speed(b,d,e);if(c.isEmptyObject(a))return this.each(f.complete);
 | 
			
		||||
return this[f.queue===false?"each":"queue"](function(){var h=c.extend({},f),k,l=this.nodeType===1,n=l&&c(this).is(":hidden"),s=this;for(k in a){var v=c.camelCase(k);if(k!==v){a[v]=a[k];delete a[k];k=v}if(a[k]==="hide"&&n||a[k]==="show"&&!n)return h.complete.call(this);if(l&&(k==="height"||k==="width")){h.overflow=[this.style.overflow,this.style.overflowX,this.style.overflowY];if(c.css(this,"display")==="inline"&&c.css(this,"float")==="none")if(c.support.inlineBlockNeedsLayout)if(oa(this.nodeName)===
 | 
			
		||||
"inline")this.style.display="inline-block";else{this.style.display="inline";this.style.zoom=1}else this.style.display="inline-block"}if(c.isArray(a[k])){(h.specialEasing=h.specialEasing||{})[k]=a[k][1];a[k]=a[k][0]}}if(h.overflow!=null)this.style.overflow="hidden";h.curAnim=c.extend({},a);c.each(a,function(B,D){var H=new c.fx(s,h,B);if(tb.test(D))H[D==="toggle"?n?"show":"hide":D](a);else{var w=ub.exec(D),G=H.cur(true)||0;if(w){var M=parseFloat(w[2]),g=w[3]||"px";if(g!=="px"){c.style(s,B,(M||1)+g);
 | 
			
		||||
G=(M||1)/H.cur(true)*G;c.style(s,B,G+g)}if(w[1])M=(w[1]==="-="?-1:1)*M+G;H.custom(G,M,g)}else H.custom(G,D,"")}});return true})},stop:function(a,b){var d=c.timers;a&&this.queue([]);this.each(function(){for(var e=d.length-1;e>=0;e--)if(d[e].elem===this){b&&d[e](true);d.splice(e,1)}});b||this.dequeue();return this}});c.each({slideDown:S("show",1),slideUp:S("hide",1),slideToggle:S("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"}},function(a,b){c.fn[a]=function(d,e,f){return this.animate(b,
 | 
			
		||||
d,e,f)}});c.extend({speed:function(a,b,d){var e=a&&typeof a==="object"?c.extend({},a):{complete:d||!d&&b||c.isFunction(a)&&a,duration:a,easing:d&&b||b&&!c.isFunction(b)&&b};e.duration=c.fx.off?0:typeof e.duration==="number"?e.duration:e.duration in c.fx.speeds?c.fx.speeds[e.duration]:c.fx.speeds._default;e.old=e.complete;e.complete=function(){e.queue!==false&&c(this).dequeue();c.isFunction(e.old)&&e.old.call(this)};return e},easing:{linear:function(a,b,d,e){return d+e*a},swing:function(a,b,d,e){return(-Math.cos(a*
 | 
			
		||||
Math.PI)/2+0.5)*e+d}},timers:[],fx:function(a,b,d){this.options=b;this.elem=a;this.prop=d;if(!b.orig)b.orig={}}});c.fx.prototype={update:function(){this.options.step&&this.options.step.call(this.elem,this.now,this);(c.fx.step[this.prop]||c.fx.step._default)(this)},cur:function(){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null))return this.elem[this.prop];var a=parseFloat(c.css(this.elem,this.prop));return a&&a>-1E4?a:0},custom:function(a,b,d){function e(h){return f.step(h)}
 | 
			
		||||
this.startTime=c.now();this.start=a;this.end=b;this.unit=d||this.unit||"px";this.now=this.start;this.pos=this.state=0;var f=this;a=c.fx;e.elem=this.elem;if(e()&&c.timers.push(e)&&!aa)aa=setInterval(a.tick,a.interval)},show:function(){this.options.orig[this.prop]=c.style(this.elem,this.prop);this.options.show=true;this.custom(this.prop==="width"||this.prop==="height"?1:0,this.cur());c(this.elem).show()},hide:function(){this.options.orig[this.prop]=c.style(this.elem,this.prop);this.options.hide=true;
 | 
			
		||||
this.custom(this.cur(),0)},step:function(a){var b=c.now(),d=true;if(a||b>=this.options.duration+this.startTime){this.now=this.end;this.pos=this.state=1;this.update();this.options.curAnim[this.prop]=true;for(var e in this.options.curAnim)if(this.options.curAnim[e]!==true)d=false;if(d){if(this.options.overflow!=null&&!c.support.shrinkWrapBlocks){var f=this.elem,h=this.options;c.each(["","X","Y"],function(l,n){f.style["overflow"+n]=h.overflow[l]})}this.options.hide&&c(this.elem).hide();if(this.options.hide||
 | 
			
		||||
this.options.show)for(var k in this.options.curAnim)c.style(this.elem,k,this.options.orig[k]);this.options.complete.call(this.elem)}return false}else{a=b-this.startTime;this.state=a/this.options.duration;b=this.options.easing||(c.easing.swing?"swing":"linear");this.pos=c.easing[this.options.specialEasing&&this.options.specialEasing[this.prop]||b](this.state,a,0,1,this.options.duration);this.now=this.start+(this.end-this.start)*this.pos;this.update()}return true}};c.extend(c.fx,{tick:function(){for(var a=
 | 
			
		||||
c.timers,b=0;b<a.length;b++)a[b]()||a.splice(b--,1);a.length||c.fx.stop()},interval:13,stop:function(){clearInterval(aa);aa=null},speeds:{slow:600,fast:200,_default:400},step:{opacity:function(a){c.style(a.elem,"opacity",a.now)},_default:function(a){if(a.elem.style&&a.elem.style[a.prop]!=null)a.elem.style[a.prop]=(a.prop==="width"||a.prop==="height"?Math.max(0,a.now):a.now)+a.unit;else a.elem[a.prop]=a.now}}});if(c.expr&&c.expr.filters)c.expr.filters.animated=function(a){return c.grep(c.timers,function(b){return a===
 | 
			
		||||
b.elem}).length};var vb=/^t(?:able|d|h)$/i,Fa=/^(?:body|html)$/i;c.fn.offset="getBoundingClientRect"in u.documentElement?function(a){var b=this[0],d;if(a)return this.each(function(k){c.offset.setOffset(this,a,k)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return c.offset.bodyOffset(b);try{d=b.getBoundingClientRect()}catch(e){}var f=b.ownerDocument,h=f.documentElement;if(!d||!c.contains(h,b))return d||{top:0,left:0};b=f.body;f=ea(f);return{top:d.top+(f.pageYOffset||c.support.boxModel&&
 | 
			
		||||
h.scrollTop||b.scrollTop)-(h.clientTop||b.clientTop||0),left:d.left+(f.pageXOffset||c.support.boxModel&&h.scrollLeft||b.scrollLeft)-(h.clientLeft||b.clientLeft||0)}}:function(a){var b=this[0];if(a)return this.each(function(s){c.offset.setOffset(this,a,s)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return c.offset.bodyOffset(b);c.offset.initialize();var d=b.offsetParent,e=b.ownerDocument,f,h=e.documentElement,k=e.body;f=(e=e.defaultView)?e.getComputedStyle(b,null):b.currentStyle;
 | 
			
		||||
for(var l=b.offsetTop,n=b.offsetLeft;(b=b.parentNode)&&b!==k&&b!==h;){if(c.offset.supportsFixedPosition&&f.position==="fixed")break;f=e?e.getComputedStyle(b,null):b.currentStyle;l-=b.scrollTop;n-=b.scrollLeft;if(b===d){l+=b.offsetTop;n+=b.offsetLeft;if(c.offset.doesNotAddBorder&&!(c.offset.doesAddBorderForTableAndCells&&vb.test(b.nodeName))){l+=parseFloat(f.borderTopWidth)||0;n+=parseFloat(f.borderLeftWidth)||0}d=b.offsetParent}if(c.offset.subtractsBorderForOverflowNotVisible&&f.overflow!=="visible"){l+=
 | 
			
		||||
parseFloat(f.borderTopWidth)||0;n+=parseFloat(f.borderLeftWidth)||0}f=f}if(f.position==="relative"||f.position==="static"){l+=k.offsetTop;n+=k.offsetLeft}if(c.offset.supportsFixedPosition&&f.position==="fixed"){l+=Math.max(h.scrollTop,k.scrollTop);n+=Math.max(h.scrollLeft,k.scrollLeft)}return{top:l,left:n}};c.offset={initialize:function(){var a=u.body,b=u.createElement("div"),d,e,f,h=parseFloat(c.css(a,"marginTop"))||0;c.extend(b.style,{position:"absolute",top:0,left:0,margin:0,border:0,width:"1px",
 | 
			
		||||
height:"1px",visibility:"hidden"});b.innerHTML="<div style='position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;'><div></div></div><table style='position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;' cellpadding='0' cellspacing='0'><tr><td></td></tr></table>";a.insertBefore(b,a.firstChild);d=b.firstChild;e=d.firstChild;f=d.nextSibling.firstChild.firstChild;this.doesNotAddBorder=e.offsetTop!==5;this.doesAddBorderForTableAndCells=
 | 
			
		||||
f.offsetTop===5;e.style.position="fixed";e.style.top="20px";this.supportsFixedPosition=e.offsetTop===20||e.offsetTop===15;e.style.position=e.style.top="";d.style.overflow="hidden";d.style.position="relative";this.subtractsBorderForOverflowNotVisible=e.offsetTop===-5;this.doesNotIncludeMarginInBodyOffset=a.offsetTop!==h;a.removeChild(b);c.offset.initialize=c.noop},bodyOffset:function(a){var b=a.offsetTop,d=a.offsetLeft;c.offset.initialize();if(c.offset.doesNotIncludeMarginInBodyOffset){b+=parseFloat(c.css(a,
 | 
			
		||||
"marginTop"))||0;d+=parseFloat(c.css(a,"marginLeft"))||0}return{top:b,left:d}},setOffset:function(a,b,d){var e=c.css(a,"position");if(e==="static")a.style.position="relative";var f=c(a),h=f.offset(),k=c.css(a,"top"),l=c.css(a,"left"),n=e==="absolute"&&c.inArray("auto",[k,l])>-1;e={};var s={};if(n)s=f.position();k=n?s.top:parseInt(k,10)||0;l=n?s.left:parseInt(l,10)||0;if(c.isFunction(b))b=b.call(a,d,h);if(b.top!=null)e.top=b.top-h.top+k;if(b.left!=null)e.left=b.left-h.left+l;"using"in b?b.using.call(a,
 | 
			
		||||
e):f.css(e)}};c.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),d=this.offset(),e=Fa.test(b[0].nodeName)?{top:0,left:0}:b.offset();d.top-=parseFloat(c.css(a,"marginTop"))||0;d.left-=parseFloat(c.css(a,"marginLeft"))||0;e.top+=parseFloat(c.css(b[0],"borderTopWidth"))||0;e.left+=parseFloat(c.css(b[0],"borderLeftWidth"))||0;return{top:d.top-e.top,left:d.left-e.left}},offsetParent:function(){return this.map(function(){for(var a=this.offsetParent||u.body;a&&!Fa.test(a.nodeName)&&
 | 
			
		||||
c.css(a,"position")==="static";)a=a.offsetParent;return a})}});c.each(["Left","Top"],function(a,b){var d="scroll"+b;c.fn[d]=function(e){var f=this[0],h;if(!f)return null;if(e!==A)return this.each(function(){if(h=ea(this))h.scrollTo(!a?e:c(h).scrollLeft(),a?e:c(h).scrollTop());else this[d]=e});else return(h=ea(f))?"pageXOffset"in h?h[a?"pageYOffset":"pageXOffset"]:c.support.boxModel&&h.document.documentElement[d]||h.document.body[d]:f[d]}});c.each(["Height","Width"],function(a,b){var d=b.toLowerCase();
 | 
			
		||||
c.fn["inner"+b]=function(){return this[0]?parseFloat(c.css(this[0],d,"padding")):null};c.fn["outer"+b]=function(e){return this[0]?parseFloat(c.css(this[0],d,e?"margin":"border")):null};c.fn[d]=function(e){var f=this[0];if(!f)return e==null?null:this;if(c.isFunction(e))return this.each(function(h){var k=c(this);k[d](e.call(this,h,k[d]()))});return c.isWindow(f)?f.document.compatMode==="CSS1Compat"&&f.document.documentElement["client"+b]||f.document.body["client"+b]:f.nodeType===9?Math.max(f.documentElement["client"+
 | 
			
		||||
b],f.body["scroll"+b],f.documentElement["scroll"+b],f.body["offset"+b],f.documentElement["offset"+b]):e===A?parseFloat(c.css(f,d)):this.css(d,typeof e==="string"?e:e+"px")}})})(window);
 | 
			
		||||
							
								
								
									
										99
									
								
								tests/cover/jquery.hotkeys.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										99
									
								
								tests/cover/jquery.hotkeys.js
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,99 @@
 | 
			
		||||
/*
 | 
			
		||||
 * jQuery Hotkeys Plugin
 | 
			
		||||
 * Copyright 2010, John Resig
 | 
			
		||||
 * Dual licensed under the MIT or GPL Version 2 licenses.
 | 
			
		||||
 *
 | 
			
		||||
 * Based upon the plugin by Tzury Bar Yochay:
 | 
			
		||||
 * http://github.com/tzuryby/hotkeys
 | 
			
		||||
 *
 | 
			
		||||
 * Original idea by:
 | 
			
		||||
 * Binny V A, http://www.openjs.com/scripts/events/keyboard_shortcuts/
 | 
			
		||||
*/
 | 
			
		||||
 | 
			
		||||
(function(jQuery){
 | 
			
		||||
 | 
			
		||||
	jQuery.hotkeys = {
 | 
			
		||||
		version: "0.8",
 | 
			
		||||
 | 
			
		||||
		specialKeys: {
 | 
			
		||||
			8: "backspace", 9: "tab", 13: "return", 16: "shift", 17: "ctrl", 18: "alt", 19: "pause",
 | 
			
		||||
			20: "capslock", 27: "esc", 32: "space", 33: "pageup", 34: "pagedown", 35: "end", 36: "home",
 | 
			
		||||
			37: "left", 38: "up", 39: "right", 40: "down", 45: "insert", 46: "del",
 | 
			
		||||
			96: "0", 97: "1", 98: "2", 99: "3", 100: "4", 101: "5", 102: "6", 103: "7",
 | 
			
		||||
			104: "8", 105: "9", 106: "*", 107: "+", 109: "-", 110: ".", 111 : "/",
 | 
			
		||||
			112: "f1", 113: "f2", 114: "f3", 115: "f4", 116: "f5", 117: "f6", 118: "f7", 119: "f8",
 | 
			
		||||
			120: "f9", 121: "f10", 122: "f11", 123: "f12", 144: "numlock", 145: "scroll", 191: "/", 224: "meta"
 | 
			
		||||
		},
 | 
			
		||||
 | 
			
		||||
		shiftNums: {
 | 
			
		||||
			"`": "~", "1": "!", "2": "@", "3": "#", "4": "$", "5": "%", "6": "^", "7": "&",
 | 
			
		||||
			"8": "*", "9": "(", "0": ")", "-": "_", "=": "+", ";": ": ", "'": "\"", ",": "<",
 | 
			
		||||
			".": ">",  "/": "?",  "\\": "|"
 | 
			
		||||
		}
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	function keyHandler( handleObj ) {
 | 
			
		||||
		// Only care when a possible input has been specified
 | 
			
		||||
		if ( typeof handleObj.data !== "string" ) {
 | 
			
		||||
			return;
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		var origHandler = handleObj.handler,
 | 
			
		||||
			keys = handleObj.data.toLowerCase().split(" ");
 | 
			
		||||
 | 
			
		||||
		handleObj.handler = function( event ) {
 | 
			
		||||
			// Don't fire in text-accepting inputs that we didn't directly bind to
 | 
			
		||||
			if ( this !== event.target && (/textarea|select/i.test( event.target.nodeName ) ||
 | 
			
		||||
				 event.target.type === "text") ) {
 | 
			
		||||
				return;
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
			// Keypress represents characters, not special keys
 | 
			
		||||
			var special = event.type !== "keypress" && jQuery.hotkeys.specialKeys[ event.which ],
 | 
			
		||||
				character = String.fromCharCode( event.which ).toLowerCase(),
 | 
			
		||||
				key, modif = "", possible = {};
 | 
			
		||||
 | 
			
		||||
			// check combinations (alt|ctrl|shift+anything)
 | 
			
		||||
			if ( event.altKey && special !== "alt" ) {
 | 
			
		||||
				modif += "alt+";
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
			if ( event.ctrlKey && special !== "ctrl" ) {
 | 
			
		||||
				modif += "ctrl+";
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
			// TODO: Need to make sure this works consistently across platforms
 | 
			
		||||
			if ( event.metaKey && !event.ctrlKey && special !== "meta" ) {
 | 
			
		||||
				modif += "meta+";
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
			if ( event.shiftKey && special !== "shift" ) {
 | 
			
		||||
				modif += "shift+";
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
			if ( special ) {
 | 
			
		||||
				possible[ modif + special ] = true;
 | 
			
		||||
 | 
			
		||||
			} else {
 | 
			
		||||
				possible[ modif + character ] = true;
 | 
			
		||||
				possible[ modif + jQuery.hotkeys.shiftNums[ character ] ] = true;
 | 
			
		||||
 | 
			
		||||
				// "$" can be triggered as "Shift+4" or "Shift+$" or just "$"
 | 
			
		||||
				if ( modif === "shift+" ) {
 | 
			
		||||
					possible[ jQuery.hotkeys.shiftNums[ character ] ] = true;
 | 
			
		||||
				}
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
			for ( var i = 0, l = keys.length; i < l; i++ ) {
 | 
			
		||||
				if ( possible[ keys[i] ] ) {
 | 
			
		||||
					return origHandler.apply( this, arguments );
 | 
			
		||||
				}
 | 
			
		||||
			}
 | 
			
		||||
		};
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	jQuery.each([ "keydown", "keyup", "keypress" ], function() {
 | 
			
		||||
		jQuery.event.special[ this ] = { add: keyHandler };
 | 
			
		||||
	});
 | 
			
		||||
 | 
			
		||||
})( jQuery );
 | 
			
		||||
							
								
								
									
										53
									
								
								tests/cover/jquery.isonscreen.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										53
									
								
								tests/cover/jquery.isonscreen.js
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,53 @@
 | 
			
		||||
/* Copyright (c) 2010
 | 
			
		||||
 * @author Laurence Wheway
 | 
			
		||||
 * Dual licensed under the MIT (http://www.opensource.org/licenses/mit-license.php)
 | 
			
		||||
 * and GPL (http://www.opensource.org/licenses/gpl-license.php) licenses.
 | 
			
		||||
 *
 | 
			
		||||
 * @version 1.2.0
 | 
			
		||||
 */
 | 
			
		||||
(function($) {
 | 
			
		||||
	jQuery.extend({
 | 
			
		||||
		isOnScreen: function(box, container) {
 | 
			
		||||
			//ensure numbers come in as intgers (not strings) and remove 'px' is it's there
 | 
			
		||||
			for(var i in box){box[i] = parseFloat(box[i])};
 | 
			
		||||
			for(var i in container){container[i] = parseFloat(container[i])};
 | 
			
		||||
 | 
			
		||||
			if(!container){
 | 
			
		||||
				container = {
 | 
			
		||||
					left: $(window).scrollLeft(),
 | 
			
		||||
					top: $(window).scrollTop(),
 | 
			
		||||
					width: $(window).width(),
 | 
			
		||||
					height: $(window).height()
 | 
			
		||||
				}
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
			if(	box.left+box.width-container.left > 0 &&
 | 
			
		||||
				box.left < container.width+container.left &&
 | 
			
		||||
				box.top+box.height-container.top > 0 &&
 | 
			
		||||
				box.top < container.height+container.top
 | 
			
		||||
			) return true;
 | 
			
		||||
			return false;
 | 
			
		||||
		}
 | 
			
		||||
	})
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
	jQuery.fn.isOnScreen = function (container) {
 | 
			
		||||
		for(var i in container){container[i] = parseFloat(container[i])};
 | 
			
		||||
 | 
			
		||||
		if(!container){
 | 
			
		||||
			container = {
 | 
			
		||||
				left: $(window).scrollLeft(),
 | 
			
		||||
				top: $(window).scrollTop(),
 | 
			
		||||
				width: $(window).width(),
 | 
			
		||||
				height: $(window).height()
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		if(	$(this).offset().left+$(this).width()-container.left > 0 &&
 | 
			
		||||
			$(this).offset().left < container.width+container.left &&
 | 
			
		||||
			$(this).offset().top+$(this).height()-container.top > 0 &&
 | 
			
		||||
			$(this).offset().top < container.height+container.top
 | 
			
		||||
		) return true;
 | 
			
		||||
		return false;
 | 
			
		||||
	}
 | 
			
		||||
})(jQuery);
 | 
			
		||||
							
								
								
									
										2
									
								
								tests/cover/jquery.tablesorter.min.js
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								tests/cover/jquery.tablesorter.min.js
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								tests/cover/keybd_closed.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								tests/cover/keybd_closed.png
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| 
		 After Width: | Height: | Size: 264 B  | 
							
								
								
									
										
											BIN
										
									
								
								tests/cover/keybd_open.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								tests/cover/keybd_open.png
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| 
		 After Width: | Height: | Size: 267 B  | 
							
								
								
									
										512
									
								
								tests/cover/status.dat
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										512
									
								
								tests/cover/status.dat
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,512 @@
 | 
			
		||||
(dp1
 | 
			
		||||
S'files'
 | 
			
		||||
p2
 | 
			
		||||
(dp3
 | 
			
		||||
S'falcon_request_helpers'
 | 
			
		||||
p4
 | 
			
		||||
(dp5
 | 
			
		||||
S'index'
 | 
			
		||||
p6
 | 
			
		||||
(dp7
 | 
			
		||||
S'html_filename'
 | 
			
		||||
p8
 | 
			
		||||
S'falcon_request_helpers.html'
 | 
			
		||||
p9
 | 
			
		||||
sS'name'
 | 
			
		||||
p10
 | 
			
		||||
S'falcon.request_helpers'
 | 
			
		||||
p11
 | 
			
		||||
sS'nums'
 | 
			
		||||
p12
 | 
			
		||||
ccopy_reg
 | 
			
		||||
_reconstructor
 | 
			
		||||
p13
 | 
			
		||||
(ccoverage.results
 | 
			
		||||
Numbers
 | 
			
		||||
p14
 | 
			
		||||
c__builtin__
 | 
			
		||||
object
 | 
			
		||||
p15
 | 
			
		||||
NtRp16
 | 
			
		||||
(dp17
 | 
			
		||||
S'n_files'
 | 
			
		||||
p18
 | 
			
		||||
I1
 | 
			
		||||
sS'n_branches'
 | 
			
		||||
p19
 | 
			
		||||
I0
 | 
			
		||||
sS'n_statements'
 | 
			
		||||
p20
 | 
			
		||||
I23
 | 
			
		||||
sS'n_excluded'
 | 
			
		||||
p21
 | 
			
		||||
I0
 | 
			
		||||
sS'n_partial_branches'
 | 
			
		||||
p22
 | 
			
		||||
I0
 | 
			
		||||
sS'n_missing'
 | 
			
		||||
p23
 | 
			
		||||
I0
 | 
			
		||||
sS'n_missing_branches'
 | 
			
		||||
p24
 | 
			
		||||
I0
 | 
			
		||||
sbssS'hash'
 | 
			
		||||
p25
 | 
			
		||||
S'<\x1b\x85C\xfc\xfd\xb1\xaa\x18\xd6\x98\x01\x12Vu\xb6'
 | 
			
		||||
p26
 | 
			
		||||
ssS'falcon_response_helpers'
 | 
			
		||||
p27
 | 
			
		||||
(dp28
 | 
			
		||||
g6
 | 
			
		||||
(dp29
 | 
			
		||||
g8
 | 
			
		||||
S'falcon_response_helpers.html'
 | 
			
		||||
p30
 | 
			
		||||
sg10
 | 
			
		||||
S'falcon.response_helpers'
 | 
			
		||||
p31
 | 
			
		||||
sg12
 | 
			
		||||
g13
 | 
			
		||||
(g14
 | 
			
		||||
g15
 | 
			
		||||
NtRp32
 | 
			
		||||
(dp33
 | 
			
		||||
g18
 | 
			
		||||
I1
 | 
			
		||||
sg19
 | 
			
		||||
I0
 | 
			
		||||
sg20
 | 
			
		||||
I13
 | 
			
		||||
sg21
 | 
			
		||||
I0
 | 
			
		||||
sg22
 | 
			
		||||
I0
 | 
			
		||||
sg23
 | 
			
		||||
I0
 | 
			
		||||
sg24
 | 
			
		||||
I0
 | 
			
		||||
sbssg25
 | 
			
		||||
S'\x97\x81\xcbH\x0f\xcepe \x93VT\x10\xad\x13\x9c'
 | 
			
		||||
p34
 | 
			
		||||
ssS'falcon_status_codes'
 | 
			
		||||
p35
 | 
			
		||||
(dp36
 | 
			
		||||
g6
 | 
			
		||||
(dp37
 | 
			
		||||
g8
 | 
			
		||||
S'falcon_status_codes.html'
 | 
			
		||||
p38
 | 
			
		||||
sg10
 | 
			
		||||
S'falcon.status_codes'
 | 
			
		||||
p39
 | 
			
		||||
sg12
 | 
			
		||||
g13
 | 
			
		||||
(g14
 | 
			
		||||
g15
 | 
			
		||||
NtRp40
 | 
			
		||||
(dp41
 | 
			
		||||
g18
 | 
			
		||||
I1
 | 
			
		||||
sg19
 | 
			
		||||
I0
 | 
			
		||||
sg20
 | 
			
		||||
I89
 | 
			
		||||
sg21
 | 
			
		||||
I0
 | 
			
		||||
sg22
 | 
			
		||||
I0
 | 
			
		||||
sg23
 | 
			
		||||
I0
 | 
			
		||||
sg24
 | 
			
		||||
I0
 | 
			
		||||
sbssg25
 | 
			
		||||
S'd\xe6D\xc7\x1a\xb3:-\xd2)z\xf3\xa5\xd1\xc6a'
 | 
			
		||||
p42
 | 
			
		||||
ssS'falcon_response'
 | 
			
		||||
p43
 | 
			
		||||
(dp44
 | 
			
		||||
g6
 | 
			
		||||
(dp45
 | 
			
		||||
g8
 | 
			
		||||
S'falcon_response.html'
 | 
			
		||||
p46
 | 
			
		||||
sg10
 | 
			
		||||
S'falcon.response'
 | 
			
		||||
p47
 | 
			
		||||
sg12
 | 
			
		||||
g13
 | 
			
		||||
(g14
 | 
			
		||||
g15
 | 
			
		||||
NtRp48
 | 
			
		||||
(dp49
 | 
			
		||||
g18
 | 
			
		||||
I1
 | 
			
		||||
sg19
 | 
			
		||||
I0
 | 
			
		||||
sg20
 | 
			
		||||
I30
 | 
			
		||||
sg21
 | 
			
		||||
I0
 | 
			
		||||
sg22
 | 
			
		||||
I0
 | 
			
		||||
sg23
 | 
			
		||||
I0
 | 
			
		||||
sg24
 | 
			
		||||
I0
 | 
			
		||||
sbssg25
 | 
			
		||||
S'Y\xd9i0\x05\xefx\xfc\x06m\xc2\x1fV/k\x8f'
 | 
			
		||||
p50
 | 
			
		||||
ssS'falcon_api'
 | 
			
		||||
p51
 | 
			
		||||
(dp52
 | 
			
		||||
g6
 | 
			
		||||
(dp53
 | 
			
		||||
g8
 | 
			
		||||
S'falcon_api.html'
 | 
			
		||||
p54
 | 
			
		||||
sg10
 | 
			
		||||
S'falcon.api'
 | 
			
		||||
p55
 | 
			
		||||
sg12
 | 
			
		||||
g13
 | 
			
		||||
(g14
 | 
			
		||||
g15
 | 
			
		||||
NtRp56
 | 
			
		||||
(dp57
 | 
			
		||||
g18
 | 
			
		||||
I1
 | 
			
		||||
sg19
 | 
			
		||||
I0
 | 
			
		||||
sg20
 | 
			
		||||
I55
 | 
			
		||||
sg21
 | 
			
		||||
I0
 | 
			
		||||
sg22
 | 
			
		||||
I0
 | 
			
		||||
sg23
 | 
			
		||||
I0
 | 
			
		||||
sg24
 | 
			
		||||
I0
 | 
			
		||||
sbssg25
 | 
			
		||||
S'\x06`\xb9\x90\xfe<\xa3\xdcNqiK\xb6;\x1b\xf2'
 | 
			
		||||
p58
 | 
			
		||||
ssS'falcon_util'
 | 
			
		||||
p59
 | 
			
		||||
(dp60
 | 
			
		||||
g6
 | 
			
		||||
(dp61
 | 
			
		||||
g8
 | 
			
		||||
S'falcon_util.html'
 | 
			
		||||
p62
 | 
			
		||||
sg10
 | 
			
		||||
S'falcon.util'
 | 
			
		||||
p63
 | 
			
		||||
sg12
 | 
			
		||||
g13
 | 
			
		||||
(g14
 | 
			
		||||
g15
 | 
			
		||||
NtRp64
 | 
			
		||||
(dp65
 | 
			
		||||
g18
 | 
			
		||||
I1
 | 
			
		||||
sg19
 | 
			
		||||
I0
 | 
			
		||||
sg20
 | 
			
		||||
I2
 | 
			
		||||
sg21
 | 
			
		||||
I0
 | 
			
		||||
sg22
 | 
			
		||||
I0
 | 
			
		||||
sg23
 | 
			
		||||
I0
 | 
			
		||||
sg24
 | 
			
		||||
I0
 | 
			
		||||
sbssg25
 | 
			
		||||
S'\xe1\xee$?\xf1\xb4\x04i\x06\xe7\x19\xd3\xb8\x90M\x15'
 | 
			
		||||
p66
 | 
			
		||||
ssS'falcon_version'
 | 
			
		||||
p67
 | 
			
		||||
(dp68
 | 
			
		||||
g6
 | 
			
		||||
(dp69
 | 
			
		||||
g8
 | 
			
		||||
S'falcon_version.html'
 | 
			
		||||
p70
 | 
			
		||||
sg10
 | 
			
		||||
S'falcon.version'
 | 
			
		||||
p71
 | 
			
		||||
sg12
 | 
			
		||||
g13
 | 
			
		||||
(g14
 | 
			
		||||
g15
 | 
			
		||||
NtRp72
 | 
			
		||||
(dp73
 | 
			
		||||
g18
 | 
			
		||||
I1
 | 
			
		||||
sg19
 | 
			
		||||
I0
 | 
			
		||||
sg20
 | 
			
		||||
I3
 | 
			
		||||
sg21
 | 
			
		||||
I0
 | 
			
		||||
sg22
 | 
			
		||||
I0
 | 
			
		||||
sg23
 | 
			
		||||
I0
 | 
			
		||||
sg24
 | 
			
		||||
I0
 | 
			
		||||
sbssg25
 | 
			
		||||
S'\x1b_\xd7a\x124\xafb\xbe\x0f\x8c\x95\x0b\ng\x11'
 | 
			
		||||
p74
 | 
			
		||||
ssS'falcon_api_helpers'
 | 
			
		||||
p75
 | 
			
		||||
(dp76
 | 
			
		||||
g6
 | 
			
		||||
(dp77
 | 
			
		||||
g8
 | 
			
		||||
S'falcon_api_helpers.html'
 | 
			
		||||
p78
 | 
			
		||||
sg10
 | 
			
		||||
S'falcon.api_helpers'
 | 
			
		||||
p79
 | 
			
		||||
sg12
 | 
			
		||||
g13
 | 
			
		||||
(g14
 | 
			
		||||
g15
 | 
			
		||||
NtRp80
 | 
			
		||||
(dp81
 | 
			
		||||
g18
 | 
			
		||||
I1
 | 
			
		||||
sg19
 | 
			
		||||
I0
 | 
			
		||||
sg20
 | 
			
		||||
I82
 | 
			
		||||
sg21
 | 
			
		||||
I0
 | 
			
		||||
sg22
 | 
			
		||||
I0
 | 
			
		||||
sg23
 | 
			
		||||
I0
 | 
			
		||||
sg24
 | 
			
		||||
I0
 | 
			
		||||
sbssg25
 | 
			
		||||
S'\xee\x88\xb4\x99\x17Y%\xbe\xcb\x80\xda\xe0\xdb\xa4Z\x97'
 | 
			
		||||
p82
 | 
			
		||||
ssS'falcon_responders'
 | 
			
		||||
p83
 | 
			
		||||
(dp84
 | 
			
		||||
g6
 | 
			
		||||
(dp85
 | 
			
		||||
g8
 | 
			
		||||
S'falcon_responders.html'
 | 
			
		||||
p86
 | 
			
		||||
sg10
 | 
			
		||||
S'falcon.responders'
 | 
			
		||||
p87
 | 
			
		||||
sg12
 | 
			
		||||
g13
 | 
			
		||||
(g14
 | 
			
		||||
g15
 | 
			
		||||
NtRp88
 | 
			
		||||
(dp89
 | 
			
		||||
g18
 | 
			
		||||
I1
 | 
			
		||||
sg19
 | 
			
		||||
I0
 | 
			
		||||
sg20
 | 
			
		||||
I10
 | 
			
		||||
sg21
 | 
			
		||||
I0
 | 
			
		||||
sg22
 | 
			
		||||
I0
 | 
			
		||||
sg23
 | 
			
		||||
I0
 | 
			
		||||
sg24
 | 
			
		||||
I0
 | 
			
		||||
sbssg25
 | 
			
		||||
S'\x81LS\x030pqG\xb0J\xe1B\xda\x07\xaa-'
 | 
			
		||||
p90
 | 
			
		||||
ssS'falcon_request'
 | 
			
		||||
p91
 | 
			
		||||
(dp92
 | 
			
		||||
g6
 | 
			
		||||
(dp93
 | 
			
		||||
g8
 | 
			
		||||
S'falcon_request.html'
 | 
			
		||||
p94
 | 
			
		||||
sg10
 | 
			
		||||
S'falcon.request'
 | 
			
		||||
p95
 | 
			
		||||
sg12
 | 
			
		||||
g13
 | 
			
		||||
(g14
 | 
			
		||||
g15
 | 
			
		||||
NtRp96
 | 
			
		||||
(dp97
 | 
			
		||||
g18
 | 
			
		||||
I1
 | 
			
		||||
sg19
 | 
			
		||||
I0
 | 
			
		||||
sg20
 | 
			
		||||
I111
 | 
			
		||||
sg21
 | 
			
		||||
I0
 | 
			
		||||
sg22
 | 
			
		||||
I0
 | 
			
		||||
sg23
 | 
			
		||||
I0
 | 
			
		||||
sg24
 | 
			
		||||
I0
 | 
			
		||||
sbssg25
 | 
			
		||||
S'\x11$\xed\xbe!\xa6\xeci\x04\x8a:\xb42\xaf6Q'
 | 
			
		||||
p98
 | 
			
		||||
ssS'falcon_http_error'
 | 
			
		||||
p99
 | 
			
		||||
(dp100
 | 
			
		||||
g6
 | 
			
		||||
(dp101
 | 
			
		||||
S'html_filename'
 | 
			
		||||
p102
 | 
			
		||||
S'falcon_http_error.html'
 | 
			
		||||
p103
 | 
			
		||||
sS'name'
 | 
			
		||||
p104
 | 
			
		||||
S'falcon.http_error'
 | 
			
		||||
p105
 | 
			
		||||
sS'nums'
 | 
			
		||||
p106
 | 
			
		||||
g13
 | 
			
		||||
(g14
 | 
			
		||||
g15
 | 
			
		||||
NtRp107
 | 
			
		||||
(dp108
 | 
			
		||||
g18
 | 
			
		||||
I1
 | 
			
		||||
sg19
 | 
			
		||||
I0
 | 
			
		||||
sg20
 | 
			
		||||
I30
 | 
			
		||||
sg21
 | 
			
		||||
I2
 | 
			
		||||
sg22
 | 
			
		||||
I0
 | 
			
		||||
sg23
 | 
			
		||||
I0
 | 
			
		||||
sg24
 | 
			
		||||
I0
 | 
			
		||||
sbssg25
 | 
			
		||||
S'=O\x83,\xef\xcc\x11\x80\xb6\x84\xc1I\x1c\x05\x92\x18'
 | 
			
		||||
p109
 | 
			
		||||
ssS'falcon'
 | 
			
		||||
p110
 | 
			
		||||
(dp111
 | 
			
		||||
g6
 | 
			
		||||
(dp112
 | 
			
		||||
g8
 | 
			
		||||
S'falcon.html'
 | 
			
		||||
p113
 | 
			
		||||
sg10
 | 
			
		||||
g110
 | 
			
		||||
sg12
 | 
			
		||||
g13
 | 
			
		||||
(g14
 | 
			
		||||
g15
 | 
			
		||||
NtRp114
 | 
			
		||||
(dp115
 | 
			
		||||
g18
 | 
			
		||||
I1
 | 
			
		||||
sg19
 | 
			
		||||
I0
 | 
			
		||||
sg20
 | 
			
		||||
I11
 | 
			
		||||
sg21
 | 
			
		||||
I0
 | 
			
		||||
sg22
 | 
			
		||||
I0
 | 
			
		||||
sg23
 | 
			
		||||
I0
 | 
			
		||||
sg24
 | 
			
		||||
I0
 | 
			
		||||
sbssg25
 | 
			
		||||
S'\xffaW\x12\xdf\x9f<\x0e\xf3\x87\x95ecKx\xf5'
 | 
			
		||||
p116
 | 
			
		||||
ssS'falcon_exceptions'
 | 
			
		||||
p117
 | 
			
		||||
(dp118
 | 
			
		||||
g6
 | 
			
		||||
(dp119
 | 
			
		||||
g8
 | 
			
		||||
S'falcon_exceptions.html'
 | 
			
		||||
p120
 | 
			
		||||
sg10
 | 
			
		||||
S'falcon.exceptions'
 | 
			
		||||
p121
 | 
			
		||||
sg12
 | 
			
		||||
g13
 | 
			
		||||
(g14
 | 
			
		||||
g15
 | 
			
		||||
NtRp122
 | 
			
		||||
(dp123
 | 
			
		||||
g18
 | 
			
		||||
I1
 | 
			
		||||
sg19
 | 
			
		||||
I0
 | 
			
		||||
sg20
 | 
			
		||||
I51
 | 
			
		||||
sg21
 | 
			
		||||
I0
 | 
			
		||||
sg22
 | 
			
		||||
I0
 | 
			
		||||
sg23
 | 
			
		||||
I0
 | 
			
		||||
sg24
 | 
			
		||||
I0
 | 
			
		||||
sbssg25
 | 
			
		||||
S'\xf7`\xcfJ\xd9\xe8\xfdt\xe5\x05\xd9\xc8[\x97\x8b\xd3'
 | 
			
		||||
p124
 | 
			
		||||
ssS'falcon_hooks'
 | 
			
		||||
p125
 | 
			
		||||
(dp126
 | 
			
		||||
g6
 | 
			
		||||
(dp127
 | 
			
		||||
g8
 | 
			
		||||
S'falcon_hooks.html'
 | 
			
		||||
p128
 | 
			
		||||
sg10
 | 
			
		||||
S'falcon.hooks'
 | 
			
		||||
p129
 | 
			
		||||
sg12
 | 
			
		||||
g13
 | 
			
		||||
(g14
 | 
			
		||||
g15
 | 
			
		||||
NtRp130
 | 
			
		||||
(dp131
 | 
			
		||||
g18
 | 
			
		||||
I1
 | 
			
		||||
sg19
 | 
			
		||||
I0
 | 
			
		||||
sg20
 | 
			
		||||
I47
 | 
			
		||||
sg21
 | 
			
		||||
I0
 | 
			
		||||
sg22
 | 
			
		||||
I0
 | 
			
		||||
sg23
 | 
			
		||||
I0
 | 
			
		||||
sg24
 | 
			
		||||
I0
 | 
			
		||||
sbssg25
 | 
			
		||||
S'\xaf\x07\xc85\xf1R]\xc7SV=\xb7\xcb\xee\xb1\xe5'
 | 
			
		||||
p132
 | 
			
		||||
sssS'version'
 | 
			
		||||
p133
 | 
			
		||||
S'3.6'
 | 
			
		||||
p134
 | 
			
		||||
sS'settings'
 | 
			
		||||
p135
 | 
			
		||||
S'\x0f\xd0JHYv\x01n\xf0\xee\xc3\xb3\xad.\xf1\xae'
 | 
			
		||||
p136
 | 
			
		||||
sS'format'
 | 
			
		||||
p137
 | 
			
		||||
I1
 | 
			
		||||
s.
 | 
			
		||||
							
								
								
									
										300
									
								
								tests/cover/style.css
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										300
									
								
								tests/cover/style.css
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,300 @@
 | 
			
		||||
/* CSS styles for Coverage. */
 | 
			
		||||
/* Page-wide styles */
 | 
			
		||||
html, body, h1, h2, h3, p, td, th {
 | 
			
		||||
    margin: 0;
 | 
			
		||||
    padding: 0;
 | 
			
		||||
    border: 0;
 | 
			
		||||
    outline: 0;
 | 
			
		||||
    font-weight: inherit;
 | 
			
		||||
    font-style: inherit;
 | 
			
		||||
    font-size: 100%;
 | 
			
		||||
    font-family: inherit;
 | 
			
		||||
    vertical-align: baseline;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
/* Set baseline grid to 16 pt. */
 | 
			
		||||
body {
 | 
			
		||||
    font-family: georgia, serif;
 | 
			
		||||
    font-size: 1em;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
html>body {
 | 
			
		||||
    font-size: 16px;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
/* Set base font size to 12/16 */
 | 
			
		||||
p {
 | 
			
		||||
    font-size: .75em;           /* 12/16 */
 | 
			
		||||
    line-height: 1.33333333em;  /* 16/12 */
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
table {
 | 
			
		||||
    border-collapse: collapse;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
a.nav {
 | 
			
		||||
    text-decoration: none;
 | 
			
		||||
    color: inherit;
 | 
			
		||||
    }
 | 
			
		||||
a.nav:hover {
 | 
			
		||||
    text-decoration: underline;
 | 
			
		||||
    color: inherit;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
/* Page structure */
 | 
			
		||||
#header {
 | 
			
		||||
    background: #f8f8f8;
 | 
			
		||||
    width: 100%;
 | 
			
		||||
    border-bottom: 1px solid #eee;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
#source {
 | 
			
		||||
    padding: 1em;
 | 
			
		||||
    font-family: "courier new", monospace;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
#indexfile #footer {
 | 
			
		||||
    margin: 1em 3em;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
#pyfile #footer {
 | 
			
		||||
    margin: 1em 1em;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
#footer .content {
 | 
			
		||||
    padding: 0;
 | 
			
		||||
    font-size: 85%;
 | 
			
		||||
    font-family: verdana, sans-serif;
 | 
			
		||||
    color: #666666;
 | 
			
		||||
    font-style: italic;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
#index {
 | 
			
		||||
    margin: 1em 0 0 3em;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
/* Header styles */
 | 
			
		||||
#header .content {
 | 
			
		||||
    padding: 1em 3em;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
h1 {
 | 
			
		||||
    font-size: 1.25em;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
h2.stats {
 | 
			
		||||
    margin-top: .5em;
 | 
			
		||||
    font-size: 1em;
 | 
			
		||||
}
 | 
			
		||||
.stats span {
 | 
			
		||||
    border: 1px solid;
 | 
			
		||||
    padding: .1em .25em;
 | 
			
		||||
    margin: 0 .1em;
 | 
			
		||||
    cursor: pointer;
 | 
			
		||||
    border-color: #999 #ccc #ccc #999;
 | 
			
		||||
}
 | 
			
		||||
.stats span.hide_run, .stats span.hide_exc,
 | 
			
		||||
.stats span.hide_mis, .stats span.hide_par,
 | 
			
		||||
.stats span.par.hide_run.hide_par {
 | 
			
		||||
    border-color: #ccc #999 #999 #ccc;
 | 
			
		||||
}
 | 
			
		||||
.stats span.par.hide_run {
 | 
			
		||||
    border-color: #999 #ccc #ccc #999;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.stats span.run {
 | 
			
		||||
    background: #ddffdd;
 | 
			
		||||
}
 | 
			
		||||
.stats span.exc {
 | 
			
		||||
    background: #eeeeee;
 | 
			
		||||
}
 | 
			
		||||
.stats span.mis {
 | 
			
		||||
    background: #ffdddd;
 | 
			
		||||
}
 | 
			
		||||
.stats span.hide_run {
 | 
			
		||||
    background: #eeffee;
 | 
			
		||||
}
 | 
			
		||||
.stats span.hide_exc {
 | 
			
		||||
    background: #f5f5f5;
 | 
			
		||||
}
 | 
			
		||||
.stats span.hide_mis {
 | 
			
		||||
    background: #ffeeee;
 | 
			
		||||
}
 | 
			
		||||
.stats span.par {
 | 
			
		||||
    background: #ffffaa;
 | 
			
		||||
}
 | 
			
		||||
.stats span.hide_par {
 | 
			
		||||
    background: #ffffcc;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/* Help panel */
 | 
			
		||||
#keyboard_icon {
 | 
			
		||||
    float: right;
 | 
			
		||||
    cursor: pointer;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.help_panel {
 | 
			
		||||
    position: absolute;
 | 
			
		||||
    background: #ffc;
 | 
			
		||||
    padding: .5em;
 | 
			
		||||
    border: 1px solid #883;
 | 
			
		||||
    display: none;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#indexfile .help_panel {
 | 
			
		||||
    width: 20em; height: 4em;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#pyfile .help_panel {
 | 
			
		||||
    width: 16em; height: 8em;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.help_panel .legend {
 | 
			
		||||
    font-style: italic;
 | 
			
		||||
    margin-bottom: 1em;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#panel_icon {
 | 
			
		||||
    float: right;
 | 
			
		||||
    cursor: pointer;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.keyhelp {
 | 
			
		||||
    margin: .75em;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.keyhelp .key {
 | 
			
		||||
    border: 1px solid black;
 | 
			
		||||
    border-color: #888 #333 #333 #888;
 | 
			
		||||
    padding: .1em .35em;
 | 
			
		||||
    font-family: monospace;
 | 
			
		||||
    font-weight: bold;
 | 
			
		||||
    background: #eee;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/* Source file styles */
 | 
			
		||||
.linenos p {
 | 
			
		||||
    text-align: right;
 | 
			
		||||
    margin: 0;
 | 
			
		||||
    padding: 0 .5em;
 | 
			
		||||
    color: #999999;
 | 
			
		||||
    font-family: verdana, sans-serif;
 | 
			
		||||
    font-size: .625em;   /* 10/16 */
 | 
			
		||||
    line-height: 1.6em;  /* 16/10 */
 | 
			
		||||
    }
 | 
			
		||||
.linenos p.highlight {
 | 
			
		||||
    background: #ffdd00;
 | 
			
		||||
    }
 | 
			
		||||
.linenos p a {
 | 
			
		||||
    text-decoration: none;
 | 
			
		||||
    color: #999999;
 | 
			
		||||
    }
 | 
			
		||||
.linenos p a:hover {
 | 
			
		||||
    text-decoration: underline;
 | 
			
		||||
    color: #999999;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
td.text {
 | 
			
		||||
    width: 100%;
 | 
			
		||||
    }
 | 
			
		||||
.text p {
 | 
			
		||||
    margin: 0;
 | 
			
		||||
    padding: 0 0 0 .5em;
 | 
			
		||||
    border-left: 2px solid #ffffff;
 | 
			
		||||
    white-space: nowrap;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
.text p.mis {
 | 
			
		||||
    background: #ffdddd;
 | 
			
		||||
    border-left: 2px solid #ff0000;
 | 
			
		||||
    }
 | 
			
		||||
.text p.run, .text p.run.hide_par {
 | 
			
		||||
    background: #ddffdd;
 | 
			
		||||
    border-left: 2px solid #00ff00;
 | 
			
		||||
    }
 | 
			
		||||
.text p.exc {
 | 
			
		||||
    background: #eeeeee;
 | 
			
		||||
    border-left: 2px solid #808080;
 | 
			
		||||
    }
 | 
			
		||||
.text p.par, .text p.par.hide_run {
 | 
			
		||||
    background: #ffffaa;
 | 
			
		||||
    border-left: 2px solid #eeee99;
 | 
			
		||||
    }
 | 
			
		||||
.text p.hide_run, .text p.hide_exc, .text p.hide_mis, .text p.hide_par,
 | 
			
		||||
.text p.hide_run.hide_par {
 | 
			
		||||
    background: inherit;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
.text span.annotate {
 | 
			
		||||
    font-family: georgia;
 | 
			
		||||
    font-style: italic;
 | 
			
		||||
    color: #666;
 | 
			
		||||
    float: right;
 | 
			
		||||
    padding-right: .5em;
 | 
			
		||||
    }
 | 
			
		||||
.text p.hide_par span.annotate {
 | 
			
		||||
    display: none;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
/* Syntax coloring */
 | 
			
		||||
.text .com {
 | 
			
		||||
    color: green;
 | 
			
		||||
    font-style: italic;
 | 
			
		||||
    line-height: 1px;
 | 
			
		||||
    }
 | 
			
		||||
.text .key {
 | 
			
		||||
    font-weight: bold;
 | 
			
		||||
    line-height: 1px;
 | 
			
		||||
    }
 | 
			
		||||
.text .str {
 | 
			
		||||
    color: #000080;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
/* index styles */
 | 
			
		||||
#index td, #index th {
 | 
			
		||||
    text-align: right;
 | 
			
		||||
    width: 5em;
 | 
			
		||||
    padding: .25em .5em;
 | 
			
		||||
    border-bottom: 1px solid #eee;
 | 
			
		||||
    }
 | 
			
		||||
#index th {
 | 
			
		||||
    font-style: italic;
 | 
			
		||||
    color: #333;
 | 
			
		||||
    border-bottom: 1px solid #ccc;
 | 
			
		||||
    cursor: pointer;
 | 
			
		||||
    }
 | 
			
		||||
#index th:hover {
 | 
			
		||||
    background: #eee;
 | 
			
		||||
    border-bottom: 1px solid #999;
 | 
			
		||||
    }
 | 
			
		||||
#index td.left, #index th.left {
 | 
			
		||||
    padding-left: 0;
 | 
			
		||||
    }
 | 
			
		||||
#index td.right, #index th.right {
 | 
			
		||||
    padding-right: 0;
 | 
			
		||||
    }
 | 
			
		||||
#index th.headerSortDown, #index th.headerSortUp {
 | 
			
		||||
    border-bottom: 1px solid #000;
 | 
			
		||||
    }
 | 
			
		||||
#index td.name, #index th.name {
 | 
			
		||||
    text-align: left;
 | 
			
		||||
    width: auto;
 | 
			
		||||
    }
 | 
			
		||||
#index td.name a {
 | 
			
		||||
    text-decoration: none;
 | 
			
		||||
    color: #000;
 | 
			
		||||
    }
 | 
			
		||||
#index td.name a:hover {
 | 
			
		||||
    text-decoration: underline;
 | 
			
		||||
    color: #000;
 | 
			
		||||
    }
 | 
			
		||||
#index tr.total {
 | 
			
		||||
    }
 | 
			
		||||
#index tr.total td {
 | 
			
		||||
    font-weight: bold;
 | 
			
		||||
    border-top: 1px solid #ccc;
 | 
			
		||||
    border-bottom: none;
 | 
			
		||||
    }
 | 
			
		||||
#index tr.file:hover {
 | 
			
		||||
    background: #eeeeee;
 | 
			
		||||
    }
 | 
			
		||||
@@ -61,7 +61,7 @@ class ZooResource(object):
 | 
			
		||||
 | 
			
		||||
class TestHooks(testing.TestSuite):
 | 
			
		||||
 | 
			
		||||
    def prepare(self):
 | 
			
		||||
    def before(self):
 | 
			
		||||
        self.resource = WrappedRespondersResource()
 | 
			
		||||
        self.api.add_route(self.test_route, self.resource)
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -93,7 +93,7 @@ class ZooResource(object):
 | 
			
		||||
 | 
			
		||||
class TestHooks(testing.TestSuite):
 | 
			
		||||
 | 
			
		||||
    def prepare(self):
 | 
			
		||||
    def before(self):
 | 
			
		||||
        self.resource = WrappedRespondersResource()
 | 
			
		||||
        self.api.add_route(self.test_route, self.resource)
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -89,7 +89,7 @@ class VaryHeaderResource:
 | 
			
		||||
 | 
			
		||||
class TestHeaders(testing.TestSuite):
 | 
			
		||||
 | 
			
		||||
    def prepare(self):
 | 
			
		||||
    def before(self):
 | 
			
		||||
        self.resource = testing.TestResource()
 | 
			
		||||
        self.api.add_route(self.test_route, self.resource)
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -51,7 +51,7 @@ class NoStatusResource:
 | 
			
		||||
 | 
			
		||||
class TestHelloWorld(testing.TestSuite):
 | 
			
		||||
 | 
			
		||||
    def prepare(self):
 | 
			
		||||
    def before(self):
 | 
			
		||||
        self.resource = HelloResource('body')
 | 
			
		||||
        self.api.add_route(self.test_route, self.resource)
 | 
			
		||||
 | 
			
		||||
@@ -73,6 +73,9 @@ class TestHelloWorld(testing.TestSuite):
 | 
			
		||||
        self.root_resource = testing.TestResource()
 | 
			
		||||
        self.api.add_route('', self.root_resource)
 | 
			
		||||
 | 
			
		||||
    def after(self):
 | 
			
		||||
        pass
 | 
			
		||||
 | 
			
		||||
    def test_empty_route(self):
 | 
			
		||||
        self.simulate_request('')
 | 
			
		||||
        self.assertTrue(self.root_resource.called)
 | 
			
		||||
 
 | 
			
		||||
@@ -71,7 +71,7 @@ class ResourceGetWithParam(object):
 | 
			
		||||
 | 
			
		||||
class TestHttpMethodRouting(testing.TestSuite):
 | 
			
		||||
 | 
			
		||||
    def prepare(self):
 | 
			
		||||
    def before(self):
 | 
			
		||||
        self.resource_get = ResourceGet()
 | 
			
		||||
        self.api.add_route('/get', self.resource_get)
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -81,7 +81,7 @@ class ServiceUnavailableResource:
 | 
			
		||||
 | 
			
		||||
class TestHTTPError(testing.TestSuite):
 | 
			
		||||
 | 
			
		||||
    def prepare(self):
 | 
			
		||||
    def before(self):
 | 
			
		||||
        self.resource = FaultyResource()
 | 
			
		||||
        self.api.add_route('/fail', self.resource)
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -4,7 +4,7 @@ import falcon.testing as testing
 | 
			
		||||
 | 
			
		||||
class TestQueryParams(testing.TestSuite):
 | 
			
		||||
 | 
			
		||||
    def prepare(self):
 | 
			
		||||
    def before(self):
 | 
			
		||||
        self.resource = testing.TestResource()
 | 
			
		||||
        self.api.add_route('/', self.resource)
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -4,7 +4,7 @@ import falcon.testing as testing
 | 
			
		||||
 | 
			
		||||
class TestReqVars(testing.TestSuite):
 | 
			
		||||
 | 
			
		||||
    def prepare(self):
 | 
			
		||||
    def before(self):
 | 
			
		||||
        qs = '?marker=deadbeef&limit=10'
 | 
			
		||||
 | 
			
		||||
        headers = {
 | 
			
		||||
 
 | 
			
		||||
@@ -3,7 +3,7 @@ import falcon.testing as testing
 | 
			
		||||
 | 
			
		||||
class TestRequestBody(testing.TestSuite):
 | 
			
		||||
 | 
			
		||||
    def prepare(self):
 | 
			
		||||
    def before(self):
 | 
			
		||||
        self.resource = testing.TestResource()
 | 
			
		||||
        self.api.add_route('/', self.resource)
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -15,7 +15,7 @@ class IDResource(object):
 | 
			
		||||
 | 
			
		||||
class TestUriTemplates(testing.TestSuite):
 | 
			
		||||
 | 
			
		||||
    def prepare(self):
 | 
			
		||||
    def before(self):
 | 
			
		||||
        self.resource = testing.TestResource()
 | 
			
		||||
 | 
			
		||||
    def test_root_path(self):
 | 
			
		||||
 
 | 
			
		||||
@@ -22,7 +22,7 @@ class LoggerResource:
 | 
			
		||||
 | 
			
		||||
class TestWSGIError(testing.TestSuite):
 | 
			
		||||
 | 
			
		||||
    def prepare(self):
 | 
			
		||||
    def before(self):
 | 
			
		||||
        self.tehlogger = LoggerResource()
 | 
			
		||||
 | 
			
		||||
        self.api.add_route('/logger', self.tehlogger)
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user