SYMBOL INDEX (540 symbols across 93 files) FILE: benchmarks/aiohttp/micro.py function hello (line 10) | async def hello(request): FILE: benchmarks/gevent/micro.py function hello (line 4) | def hello(environ, start_response): FILE: benchmarks/golang-fasthttp/micro.go function hello (line 5) | func hello(ctx *fasthttp.RequestCtx) { function main (line 14) | func main() { FILE: benchmarks/golang/micro.go function hello (line 10) | func hello(w http.ResponseWriter, r *http.Request) { function main (line 19) | func main() { FILE: benchmarks/japronto/micro.py function hello (line 4) | def hello(request): FILE: benchmarks/meinheld/micro.py function hello (line 4) | def hello(environ, start_response): FILE: benchmarks/sanic/micro.py function hello (line 8) | async def hello(request): FILE: benchmarks/tornado/micro.py class MainHandler (line 13) | class MainHandler(web.RequestHandler): method get (line 14) | def get(self): method set_etag_header (line 18) | def set_etag_header(self): method check_etag_header (line 21) | def check_etag_header(self): method clear (line 25) | def clear(self): FILE: build.py class BuildSystem (line 23) | class BuildSystem: method __init__ (line 24) | def __init__(self, args, relative_source=False): method get_extension_by_path (line 29) | def get_extension_by_path(self, path): method discover_extensions (line 67) | def discover_extensions(self): method dest_folder (line 76) | def dest_folder(self, mod_name): method build_toml (line 79) | def build_toml(self, mod_name): method get_so (line 82) | def get_so(self, ext): method flags_changed (line 86) | def flags_changed(self, ext): method should_rebuild (line 102) | def should_rebuild(self, ext): function prune (line 121) | def prune(dest): function profile_clean (line 128) | def profile_clean(): function get_includes (line 134) | def get_includes(ext): function symlink_python_files (line 158) | def symlink_python_files(dest): function get_parser (line 193) | def get_parser(): function get_platform (line 239) | def get_platform(): class custom_build_ext (line 251) | class custom_build_ext(build_ext): method build_extensions (line 252) | def build_extensions(self): function compile_c (line 273) | def compile_c(compiler, cfile, ofile, *, options=None): function main (line 284) | def main(): FILE: cases/__init__.py function parse_casesel (line 14) | def parse_casesel(suite, casesel): function parametrize_cases (line 29) | def parametrize_cases(suite, *args): function load_casefile (line 36) | def load_casefile(path): function load_cases (line 54) | def load_cases(): function keep_alive (line 64) | def keep_alive(case): function close (line 73) | def close(case): function should_keep_alive (line 80) | def should_keep_alive(case): function set_error (line 86) | def set_error(case, error): function disconnect (line 90) | def disconnect(case): function update_case (line 94) | def update_case(case, headers=False, error=False, disconnect=None): FILE: conftest.py function add_build (line 11) | def add_build(mark): function execute_builds (line 20) | def execute_builds(): function add_coverage (line 33) | def add_coverage(mark): function setup_coverage (line 38) | def setup_coverage(): function make_coverage (line 48) | def make_coverage(): function pytest_itemcollected (line 76) | def pytest_itemcollected(item): function pytest_collection_modifyitems (line 84) | def pytest_collection_modifyitems(config, items): function pytest_unconfigure (line 89) | def pytest_unconfigure(): FILE: do_wrk.py function run_wrk (line 15) | def run_wrk(loop, endpoint=None): function cpu_usage (line 41) | def cpu_usage(p): function connections (line 45) | def connections(process): function memory (line 51) | def memory(p): FILE: examples/1_hello/hello.py function hello (line 6) | def hello(request): FILE: examples/2_async/async.py function synchronous (line 6) | def synchronous(request): function asynchronous (line 14) | async def asynchronous(request): FILE: examples/3_router/router.py function slash (line 10) | def slash(request): function get_love (line 19) | def get_love(request): function methods (line 28) | def methods(request): function params (line 40) | def params(request): FILE: examples/4_request/request.py function basic (line 13) | def basic(request): function body (line 39) | def body(request): function misc (line 68) | def misc(request): FILE: examples/5_response/response.py function text (line 9) | def text(request): function encoding (line 14) | def encoding(request): function mime (line 19) | def mime(request): function body (line 31) | def body(request): function json (line 38) | def json(request): function code (line 43) | def code(request): function headers (line 48) | def headers(request): function cookies (line 56) | def cookies(request): FILE: examples/6_exceptions/exceptions.py class KittyError (line 5) | class KittyError(Exception): method __init__ (line 6) | def __init__(self): class DoggieError (line 10) | class DoggieError(Exception): method __init__ (line 11) | def __init__(self): function cat (line 17) | def cat(request): function dog (line 21) | def dog(request): function unhandled (line 27) | def unhandled(request): function handle_cat (line 40) | def handle_cat(request, exception): function handle_dog (line 44) | def handle_dog(request, exception): function handle_not_found (line 49) | def handle_not_found(request, exception): FILE: examples/7_extend/extend.py function extended_hello (line 6) | def extended_hello(request): function with_callback (line 17) | def with_callback(request): function reversed_agent (line 27) | def reversed_agent(request): function host_startswith (line 34) | def host_startswith(request, prefix): FILE: examples/8_template/template.py function index (line 7) | def index(request): function example (line 13) | def example(request): function jinja (line 20) | def jinja(request): FILE: examples/todo_api/todo_api.py function add_todo (line 8) | def add_todo(request): function list_todos (line 18) | def list_todos(request): function show_todo (line 26) | def show_todo(request): function delete_todo (line 38) | def delete_todo(request): function maybe_create_schema (line 54) | def maybe_create_schema(): function cursor (line 66) | def cursor(request): FILE: integration_tests/common.py function start_server (line 10) | def start_server(script, *, stdout=None, path=None, sanitize=True, wait=... FILE: integration_tests/drain.py function slash (line 6) | def slash(request): function sleep (line 10) | async def sleep(request): FILE: integration_tests/dump.py class ForcedException (line 8) | class ForcedException(Exception): function dump (line 12) | def dump(request, exception=None): function adump (line 39) | async def adump(request): FILE: integration_tests/experiments.py function my_fix (line 5) | def my_fix(request): function size_k (line 11) | def size_k(request): function test1 (line 29) | def test1(size_k): FILE: integration_tests/generators.py function generate_body (line 6) | def generate_body(body, size_k): function makeval (line 17) | def makeval(v, default_st, default=None): function print_request (line 30) | def print_request(request): function generate_request (line 42) | def generate_request(*, method=None, path=None, query_string=None, function generate_combinations (line 54) | def generate_combinations(reverse=False): function send_requests (line 68) | def send_requests(conn, number, **kwargs): FILE: integration_tests/longrun.py function setup (line 16) | def setup(): function run (line 44) | def run(): function main (line 58) | def main(): FILE: integration_tests/noleak.py function noleak (line 10) | def noleak(request): function noleak (line 13) | def noleak(request): function noleak (line 16) | def noleak(request): function noleak (line 19) | def noleak(request): function noleak (line 22) | def noleak(request): function noleak (line 25) | def noleak(request): function noleak (line 28) | def noleak(request): function noleak (line 31) | def noleak(request): FILE: integration_tests/test_drain.py function server (line 13) | def server(): function server_terminate (line 19) | def server_terminate(server): function connect (line 34) | def connect(): function test_no_connections (line 51) | def test_no_connections(server_terminate): function test_unclosed_connections (line 58) | def test_unclosed_connections(num, connect, server_terminate): function test_closed_connections (line 68) | def test_closed_connections(num, connect, server_terminate): function test_unclosed_requests (line 79) | def test_unclosed_requests(num, connect, server_terminate): function test_closed_requests (line 91) | def test_closed_requests(num, connect, server_terminate): function test_pipelined (line 105) | def test_pipelined(num, connect, server_terminate): function test_pipelined_timeout (line 123) | def test_pipelined_timeout(num, connect, server_terminate): function test_refuse (line 140) | def test_refuse(connect, server): FILE: integration_tests/test_noleak.py function server (line 12) | def server(request): function connection (line 25) | def connection(server): function test_method (line 32) | def test_method(connection): function test_path (line 44) | def test_path(connection): function test_match_dict (line 56) | def test_match_dict(connection): function test_query_string (line 68) | def test_query_string(connection): function test_headers (line 80) | def test_headers(connection): function test_body (line 94) | def test_body(connection): function test_keep_alive (line 108) | def test_keep_alive(request): function test_route (line 128) | def test_route(connection): FILE: integration_tests/test_perror.py function server (line 16) | def server(): function line_getter (line 31) | def line_getter(server): function connect (line 50) | def connect(request): function make_truncated_request_line (line 57) | def make_truncated_request_line(cut): function test_truncated_request_line (line 67) | def test_truncated_request_line(line_getter, connect, request_line): function test_truncated_request_line_disconnect (line 82) | def test_truncated_request_line_disconnect(line_getter, connect, request... function make_truncated_header (line 94) | def make_truncated_header(cut): function test_truncated_header (line 104) | def test_truncated_header(line_getter, connect, header_line): function test_truncated_header_disconnect (line 120) | def test_truncated_header_disconnect(line_getter, connect, header_line): function test_invalid_content_length (line 136) | def test_invalid_content_length(line_getter, connect, value): FILE: integration_tests/test_reaper.py function get_connections_and_wait (line 14) | def get_connections_and_wait(request): function test_empty (line 30) | def test_empty(get_connections_and_wait): function test_request (line 46) | def test_request(get_connections_and_wait): FILE: integration_tests/test_request.py function server (line 17) | def server(): function connect (line 28) | def connect(request): function prefix (line 40) | def prefix(request): function test_method (line 46) | def test_method(prefix, connect, method): function test_route (line 63) | def test_route(prefix, connect, route_prefix): function test_match_dict (line 77) | def test_match_dict(prefix, connect, param1, param2): function test_query_string (line 91) | def test_query_string(prefix, connect, query_string): function test_headers (line 108) | def test_headers(prefix, connect, headers): function test_error (line 129) | def test_error(prefix, connect, error): function test_body (line 150) | def test_body(prefix, connect, size_k, body): function test_chunked (line 173) | def test_chunked(prefix, connect, size_k, body): function test_all (line 207) | def test_all(prefix, connect, size_k, method, error, route_prefix, function test_pipeline (line 271) | def test_pipeline(requests): function format_sleep_qs (line 322) | def format_sleep_qs(val): function test_async_pipeline (line 339) | def test_async_pipeline(requests): FILE: misc/buggers.py function silence (line 8) | def silence(): FILE: misc/cleanup_script.py function main (line 4) | def main(): FILE: misc/client.py function readline (line 6) | def readline(sock): function readexact (line 14) | def readexact(sock, size): class Response (line 24) | class Response: method __init__ (line 25) | def __init__(self, sock): method read_status_line (line 32) | def read_status_line(self): method read_headers (line 39) | def read_headers(self): method encoding (line 53) | def encoding(self): method read_body (line 64) | def read_body(self): method json (line 69) | def json(self): class Connection (line 73) | class Connection: method __init__ (line 74) | def __init__(self, addr): method maybe_connect (line 78) | def maybe_connect(self): method putline (line 91) | def putline(self, line=None): method putclose (line 98) | def putclose(self, data): method putrequest (line 105) | def putrequest(self, method, path, query_string=None): method request (line 114) | def request(self, method, path, query_string=None, headers=None, method putheader (line 128) | def putheader(self, name, value): method endheaders (line 132) | def endheaders(self, body=None): method getresponse (line 142) | def getresponse(self): method close (line 145) | def close(self): function chunked_encoder (line 149) | def chunked_encoder(data): FILE: misc/collector.py function get_connections (line 9) | def get_connections(process): function get_memory (line 15) | def get_memory(p): function sample_process (line 20) | def sample_process(pid): function main (line 39) | def main(): FILE: misc/cpu.py function save (line 14) | def save(): function change (line 48) | def change(governor, freq=None): function available_freq (line 78) | def available_freq(): function min_freq (line 91) | def min_freq(): function max_freq (line 98) | def max_freq(): function dump (line 105) | def dump(): FILE: misc/do_perf.py function get_http10long (line 12) | def get_http10long(): function get_websites (line 16) | def get_websites(size=2 ** 18): FILE: misc/parts.py function make_parts (line 6) | def make_parts(value, get_size, dir=1): function one_part (line 26) | def one_part(value): function geometric_series (line 30) | def geometric_series(): function fancy_series (line 37) | def fancy_series(minimum=2): FILE: misc/report.py function report (line 7) | def report(samples, pid): function load (line 36) | def load(filepath): function order (line 46) | def order(samples): function normalize_time (line 50) | def normalize_time(samples): function main (line 59) | def main(): FILE: misc/simple.py function slash (line 15) | def slash(request): function hello (line 19) | def hello(request): function sleep (line 23) | async def sleep(request): function loop (line 28) | async def loop(request): function dump (line 38) | def dump(request): FILE: src/japronto/__main__.py function main (line 7) | def main(): FILE: src/japronto/app/__init__.py class Application (line 22) | class Application: method __init__ (line 23) | def __init__(self, *, reaper_settings=None, log_request=None, method loop (line 36) | def loop(self): method router (line 43) | def router(self): method __finalize (line 49) | def __finalize(self): method protocol_error_handler (line 56) | def protocol_error_handler(self, error): method default_request_logger (line 68) | def default_request_logger(self, request): method add_error_handler (line 71) | def add_error_handler(self, typ, handler): method default_error_handler (line 74) | def default_error_handler(self, request, exception): method error_handler (line 88) | def error_handler(self, request, exception): method _get_idle_and_busy_connections (line 106) | def _get_idle_and_busy_connections(self): method drain (line 113) | async def drain(self): method extend_request (line 153) | def extend_request(self, handler, *, name=None, property=False): method serve (line 159) | def serve(self, *, sock, host, port, reloader_pid): method _run (line 193) | def _run(self, *, host, port, worker_num=None, reloader_pid=None, method run (line 249) | def run(self, host='0.0.0.0', port=8080, *, worker_num=None, reload=Fa... FILE: src/japronto/capsule.c function PyObject (line 35) | PyObject* put_ptr_in_mod(PyObject* m, void* ptr, const char* attr_name, FILE: src/japronto/common.h type KEEP_ALIVE (line 4) | typedef enum { FILE: src/japronto/cpu_features.c function supports_x86_sse42 (line 6) | int supports_x86_sse42(void) FILE: src/japronto/parser/cffiparser.py class HttpRequestParser (line 4) | class HttpRequestParser(object): method __init__ (line 5) | def __init__(self, on_headers, on_body, on_error): method _reset_state (line 21) | def _reset_state(self, disconnect=False): method _parse_headers (line 31) | def _parse_headers(self): method _parse_body (line 115) | def _parse_body(self): method feed (line 164) | def feed(self, data): method feed_disconnect (line 184) | def feed_disconnect(self): FILE: src/japronto/parser/cparser.c function _reset_state (line 42) | static void _reset_state(Parser* self, bool disconnect) { function Parser_new (line 60) | void function Parser_init (line 86) | int function Parser_dealloc (line 120) | void type phr_header (line 144) | struct phr_header function _parse_headers (line 146) | static int _parse_headers(Parser* self) { function _parse_body (line 381) | static int _parse_body(Parser* self) { function Parser (line 522) | Parser* function Parser (line 617) | Parser* function PyObject (line 667) | static PyObject * function cparser_init (line 744) | int FILE: src/japronto/parser/cparser.h type Parser_state (line 9) | enum Parser_state { type Parser_transfer (line 15) | enum Parser_transfer { type Parser_connection (line 22) | enum Parser_connection { type Parser (line 30) | typedef struct { FILE: src/japronto/parser/cparser_ext.py function get_extension (line 4) | def get_extension(): FILE: src/japronto/parser/test_parser.py function make_c (line 17) | def make_c(protocol_factory=CTracingProtocol): function make_cffi (line 25) | def make_cffi(protocol_factory=CffiTracingProtocol): function test_make_parts (line 41) | def test_make_parts(data, get_size, dir, parts): function parametrize_make_parser (line 45) | def parametrize_make_parser(): function parametrize_do_parts (line 58) | def parametrize_do_parts(): function test_http10 (line 90) | def test_http10(make_parser, do_parts, cases): function test_empty (line 149) | def test_empty(make_parser): function test_http11 (line 197) | def test_http11(make_parser, do_parts, cases): function test_http11_chunked (line 276) | def test_http11_chunked(make_parser, do_parts, cases): function test_http11_mixed (line 346) | def test_http11_mixed(make_parser, do_parts, cases): FILE: src/japronto/pipeline/__init__.py class Pipeline (line 1) | class Pipeline: method __init__ (line 2) | def __init__(self, ready): method empty (line 7) | def empty(self): method queue (line 10) | def queue(self, task): method _task_done (line 17) | def _task_done(self, task): method write (line 32) | def write(self, task): function coro (line 40) | async def coro(sleep): function queue (line 52) | def queue(x): FILE: src/japronto/pipeline/cpipeline.c function PyObject (line 12) | PyObject* function Pipeline_dealloc (line 39) | void function Pipeline_init (line 57) | int function PyObject (line 89) | static PyObject* function PyObject (line 252) | static PyObject* FILE: src/japronto/pipeline/cpipeline.h type PipelineEntry (line 9) | typedef struct { function PipelineEntry_is_task (line 15) | static inline bool function PipelineEntry_DECREF (line 21) | static inline void function PipelineEntry_INCREF (line 31) | static inline void function PyObject (line 38) | static inline PyObject* type PyObject (line 44) | typedef PyObject* PipelineEntry; function PipelineEntry_is_task (line 46) | static inline bool function PipelineEntry_DECREF (line 52) | static inline void function PipelineEntry_INCREF (line 58) | static inline void function PyObject (line 64) | static inline PyObject* type Pipeline (line 72) | typedef struct { FILE: src/japronto/pipeline/cpipeline_ext.py function get_extension (line 4) | def get_extension(): FILE: src/japronto/pipeline/test_pipeline.py class FakeLoop (line 17) | class FakeLoop: method call_soon (line 18) | def call_soon(self, callback, val): method get_debug (line 21) | def get_debug(self): method create_future (line 24) | def create_future(self): class FakeFuture (line 28) | class FakeFuture: method __new__ (line 31) | def __new__(cls): method __del__ (line 36) | def __del__(self): method __init__ (line 40) | def __init__(self): method add_done_callback (line 43) | def add_done_callback(self, cb): method done (line 46) | def done(self): method result (line 49) | def result(self): method set_result (line 52) | def set_result(self, result): function parametrize_make_pipeline (line 61) | def parametrize_make_pipeline(): function parametrize_case (line 76) | def parametrize_case(examples): function parse_example (line 82) | def parse_example(e, accum): function parse_case (line 88) | def parse_case(case): function create_futures (line 99) | def create_futures(resolves, case): function test_fake_future (line 117) | def test_fake_future(make_pipeline, case): function parametrize_loop (line 158) | def parametrize_loop(): function test_real_task (line 172) | def test_real_task(loop, make_pipeline, case): FILE: src/japronto/protocol/cprotocol.c function PyObject (line 22) | static PyObject * function Protocol_dealloc (line 54) | static void function Protocol_init (line 82) | static int function PyObject (line 166) | static PyObject* function PyObject (line 237) | static PyObject* function PyObject (line 284) | static PyObject* function Protocol (line 314) | Protocol* function PyObject (line 344) | static PyObject* function Protocol (line 350) | Protocol* function PyBytesObject (line 390) | static inline PyBytesObject* function PyObject (line 405) | static inline function Protocol (line 456) | static inline Protocol* function Protocol (line 602) | static inline Protocol* function Protocol (line 629) | Protocol* function PyObject (line 732) | static PyObject* function Protocol (line 738) | Protocol* function PyObject (line 773) | static PyObject* function PyObject (line 797) | static PyObject* function PyObject (line 807) | static PyObject* function PyMODINIT_FUNC (line 874) | PyMODINIT_FUNC FILE: src/japronto/protocol/cprotocol.h type Gather (line 13) | typedef struct { type Protocol (line 22) | typedef struct { type Protocol_CAPI (line 66) | typedef struct { FILE: src/japronto/protocol/cprotocol_ext.py function get_extension (line 4) | def get_extension(): FILE: src/japronto/protocol/creaper.c type Reaper (line 6) | typedef struct { function PyObject (line 30) | static PyObject* function Reaper_dealloc (line 50) | static void function PyObject (line 75) | static PyObject* function Reaper_init (line 105) | static int function PyObject (line 167) | static PyObject* function PyMODINIT_FUNC (line 275) | PyMODINIT_FUNC FILE: src/japronto/protocol/creaper_ext.py function get_extension (line 4) | def get_extension(): FILE: src/japronto/protocol/generator.c type Generator (line 6) | typedef struct _Generator { function Generator_dealloc (line 44) | void function Generator_init (line 58) | int function PyObject (line 84) | static PyObject* function PyObject (line 93) | static PyObject* FILE: src/japronto/protocol/generator.h type _Generator (line 4) | struct _Generator type _Generator (line 12) | struct _Generator type _Generator (line 15) | struct _Generator FILE: src/japronto/protocol/generator_ext.py function get_extension (line 4) | def get_extension(): FILE: src/japronto/protocol/handler.py function make_class (line 17) | def make_class(flavor): function handle_requests (line 88) | async def handle_requests(queue, transport): function handle_request (line 97) | async def handle_request(request, transport): function handle_request_block (line 103) | def handle_request_block(request, transport, response): function handle_dump (line 109) | def handle_dump(request, transport, response): FILE: src/japronto/protocol/null.py class NullProtocol (line 1) | class NullProtocol: method on_headers (line 2) | def on_headers(self, *args): method on_body (line 5) | def on_body(self, body): method on_error (line 8) | def on_error(self, error): FILE: src/japronto/protocol/tracing.py class TracingProtocol (line 7) | class TracingProtocol: method __init__ (line 8) | def __init__(self, on_headers_adapter: callable, method on_headers (line 20) | def on_headers(self, *args): method on_body (line 27) | def on_body(self, body): method on_error (line 32) | def on_error(self, error: str): function _request_from_cprotocol (line 38) | def _request_from_cprotocol(method: memoryview, path: memoryview, versio... function _body_from_cprotocol (line 53) | def _body_from_cprotocol(body: memoryview): function _request_from_cffiprotocol (line 57) | def _request_from_cffiprotocol(method: "char[]", path: "char[]", version... function _body_from_cffiprotocol (line 68) | def _body_from_cffiprotocol(body: "char[]"): function _extract_headers (line 72) | def _extract_headers(headers_cdata: "struct phr_header[]"): FILE: src/japronto/reloader.py function main (line 9) | def main(): function exec_reloader (line 39) | def exec_reloader(*, host, port, worker_num): function change_detector (line 49) | def change_detector(): class ChangeDetector (line 77) | class ChangeDetector(threading.Thread): method __init__ (line 78) | def __init__(self, loop): method run (line 82) | def run(self): FILE: src/japronto/request/__init__.py class HttpRequest (line 9) | class HttpRequest(object): method __init__ (line 12) | def __init__(self, method, path, version, headers): method dump_headers (line 19) | def dump_headers(self): method __repr__ (line 26) | def __repr__(self): function memoize (line 31) | def memoize(func): function text (line 48) | def text(request): function json (line 56) | def json(request): function query (line 64) | def query(request): function remote_addr (line 71) | def remote_addr(request): function parsed_content_type (line 76) | def parsed_content_type(request): function mime_type (line 84) | def mime_type(request): function encoding (line 88) | def encoding(request): function parsed_form_and_files (line 93) | def parsed_form_and_files(request): function form (line 103) | def form(request): function files (line 107) | def files(request): function hostname_and_port (line 112) | def hostname_and_port(request): function port (line 123) | def port(request): function hostname (line 127) | def hostname(request): function parse_cookie (line 131) | def parse_cookie(cookie): function cookies (line 154) | def cookies(request): function parse_multipart_form (line 169) | def parse_multipart_form(body, boundary): FILE: src/japronto/request/crequest.c function PyObject (line 30) | PyObject* function Request_dealloc (line 74) | void function Request_init (line 104) | int function PyObject (line 116) | static PyObject* function PyObject (line 176) | static PyObject* type RequestCopy (line 206) | typedef enum { type phr_header (line 226) | struct phr_header type phr_header (line 228) | struct phr_header type phr_header (line 285) | struct phr_header type phr_header (line 286) | struct phr_header type phr_header (line 299) | struct phr_header type phr_header (line 300) | struct phr_header function Request_from_raw (line 352) | static void function Request_set_match_dict_entries (line 374) | static void function Request_set_body (line 384) | static void function percent_decode (line 401) | static inline size_t percent_decode(char* data, ssize_t length, size_t* ... function title_case (line 467) | static inline void title_case(char* data, size_t len) function PyObject (line 485) | static inline PyObject* function PyObject (line 541) | static PyObject* function PyObject (line 554) | static PyObject* function PyObject (line 568) | static PyObject* function PyObject (line 586) | static PyObject* function PyObject (line 595) | static PyObject* function PyObject (line 605) | static PyObject* function PyObject (line 617) | static PyObject* function PyObject (line 631) | static PyObject* function KEEP_ALIVE (line 639) | static KEEP_ALIVE function PyObject (line 676) | static PyObject* function PyObject (line 686) | static PyObject* function PyObject (line 697) | static PyObject* function PyObject (line 708) | static PyObject* function PyObject (line 716) | static PyObject* function PyObject (line 771) | static PyObject* function PyObject (line 812) | static PyObject* FILE: src/japronto/request/crequest.h type Request (line 12) | typedef struct { type Request_CAPI (line 61) | typedef struct { FILE: src/japronto/request/crequest_ext.py function get_extension (line 4) | def get_extension(): FILE: src/japronto/response/cresponse.c function PyObject (line 24) | PyObject* function Response_dealloc (line 62) | void function Response_init (line 90) | int type CacheEntry (line 221) | typedef struct { type Cache (line 229) | typedef struct { function PyObject (line 243) | static inline PyObject* function Response_cache (line 263) | static inline void function PyObject (line 281) | PyObject* function PyMODINIT_FUNC (line 561) | PyMODINIT_FUNC FILE: src/japronto/response/cresponse.h type Response (line 10) | typedef struct { type Response_CAPI (line 30) | typedef struct { FILE: src/japronto/response/cresponse_ext.py function get_extension (line 4) | def get_extension(): FILE: src/japronto/response/py.py function factory (line 4) | def factory(status_code=200, text='', mime_type='text/plain', function dispose (line 22) | def dispose(response): class Response (line 26) | class Response: method __init__ (line 29) | def __init__(self, status_code=200, text='', mime_type='text/plain', method render (line 36) | def render(self): FILE: src/japronto/response/reasons.h type ReasonRange (line 59) | typedef struct { FILE: src/japronto/router/__init__.py class Router (line 5) | class Router: method __init__ (line 6) | def __init__(self, matcher_factory=Matcher): method add_route (line 10) | def add_route(self, pattern, handler, method=None, methods=None): method get_matcher (line 26) | def get_matcher(self): FILE: src/japronto/router/analyzer.py function is_simple (line 9) | def is_simple(fun): function is_pointless_coroutine (line 35) | def is_pointless_coroutine(fun): function coroutine_to_func (line 43) | def coroutine_to_func(f): FILE: src/japronto/router/cmatcher.c type _Matcher (line 9) | struct _Matcher { type SegmentType (line 17) | typedef enum { type ExactSegment (line 23) | typedef struct { type PlaceholderSegment (line 29) | typedef struct { type Segment (line 35) | typedef struct { function PyObject (line 50) | static PyObject * function Matcher_dealloc (line 86) | static void function Matcher_init (line 101) | static int function MatcherEntry (line 138) | MatcherEntry* function PyObject (line 267) | static PyObject* function PyMODINIT_FUNC (line 362) | PyMODINIT_FUNC FILE: src/japronto/router/cmatcher.h type MatcherEntry (line 8) | typedef struct { type Matcher (line 20) | typedef struct _Matcher Matcher; type Matcher_CAPI (line 23) | typedef struct { FILE: src/japronto/router/cmatcher_ext.py function get_extension (line 4) | def get_extension(): FILE: src/japronto/router/match_dict.c function PyObject (line 6) | PyObject* FILE: src/japronto/router/match_dict.h type MatchDictEntry (line 5) | typedef struct { FILE: src/japronto/router/matcher.py class Matcher (line 1) | class Matcher: method __init__ (line 2) | def __init__(self, routes): method match_request (line 5) | def match_request(self, request): FILE: src/japronto/router/route.py class RouteNotFoundException (line 8) | class RouteNotFoundException(Exception): class Route (line 12) | class Route: method __init__ (line 13) | def __init__(self, pattern, handler, methods): method __repr__ (line 21) | def __repr__(self): method describe (line 25) | def describe(self): method __eq__ (line 29) | def __eq__(self, other): function parse (line 33) | def parse(pattern): class SegmentType (line 69) | class SegmentType(IntEnum): function roundto8 (line 121) | def roundto8(v): function padto8 (line 125) | def padto8(data): function compile (line 137) | def compile(route): function compile_all (line 167) | def compile_all(routes): FILE: src/japronto/router/test_analyzer.py function test_is_simple (line 35) | def test_is_simple(code, simple): function test_is_pointless (line 53) | def test_is_pointless(code, pointless): FILE: src/japronto/router/test_matcher.py class FakeRequest (line 10) | class FakeRequest: method __init__ (line 11) | def __init__(self, method, path): method from_str (line 16) | def from_str(cls, value): class TracingRoute (line 20) | class TracingRoute(Route): method __new__ (line 23) | def __new__(cls, *args, **kw): method __init__ (line 28) | def __init__(self, pattern, methods): method __del__ (line 31) | def __del__(self): function route_from_str (line 36) | def route_from_str(value): function parametrize_make_matcher (line 44) | def parametrize_make_matcher(): function parametrize_request_route_and_dict (line 63) | def parametrize_request_route_and_dict(cases): function test_matcher (line 80) | def test_matcher(make_matcher, req, route, match_dict): function parametrize_request (line 90) | def parametrize_request(requests): function test_matcher_not_found (line 105) | def test_matcher_not_found(make_matcher, req): FILE: src/japronto/router/test_route.py function test_parse (line 19) | def test_parse(pattern, result): function test_parse_error (line 29) | def test_parse_error(pattern, error): function decompile (line 40) | def decompile(buffer): function handler (line 65) | def handler(): function coro (line 69) | async def coro(): function test_compile (line 81) | def test_compile(route): FILE: src/japronto/runner.py function get_parser (line 15) | def get_parser(): function verify (line 37) | def verify(args): function run (line 75) | def run(attribute, args): FILE: src/picohttpparser/picohttpparser.c type phr_header (line 264) | struct phr_header type phr_header (line 331) | struct phr_header function PHR_PARSE_REQUEST (line 370) | int PHR_PARSE_REQUEST(const char *buf_start, size_t len, const char **me... type phr_header (line 401) | struct phr_header function phr_parse_response (line 429) | int phr_parse_response(const char *buf_start, size_t len, int *minor_ver... function phr_parse_headers (line 455) | int phr_parse_headers(const char *buf_start, size_t len, struct phr_head... function decode_hex (line 487) | static int decode_hex(int ch) function phr_decode_chunked (line 500) | ssize_t phr_decode_chunked(struct phr_chunked_decoder *decoder, char *bu... function phr_decode_chunked_is_in_data (line 618) | int phr_decode_chunked_is_in_data(struct phr_chunked_decoder *decoder) FILE: src/picohttpparser/picohttpparser.h type phr_header (line 44) | struct phr_header { type phr_header (line 54) | struct phr_header type phr_header (line 57) | struct phr_header type phr_header (line 64) | struct phr_header type phr_header (line 67) | struct phr_header type phr_chunked_decoder (line 71) | struct phr_chunked_decoder { type phr_chunked_decoder (line 87) | struct phr_chunked_decoder type phr_chunked_decoder (line 90) | struct phr_chunked_decoder