\relax 
\providecommand\HyperFirstAtBeginDocument{\AtBeginDocument}
\HyperFirstAtBeginDocument{\ifx\hyper@anchor\@undefined
\global\let\oldcontentsline\contentsline
\gdef\contentsline#1#2#3#4{\oldcontentsline{#1}{#2}{#3}}
\global\let\oldnewlabel\newlabel
\gdef\newlabel#1#2{\newlabelxx{#1}#2}
\gdef\newlabelxx#1#2#3#4#5#6{\oldnewlabel{#1}{{#2}{#3}}}
\AtEndDocument{\ifx\hyper@anchor\@undefined
\let\contentsline\oldcontentsline
\let\newlabel\oldnewlabel
\fi}
\fi}
\global\let\hyper@last\relax 
\gdef\HyperFirstAtBeginDocument#1{#1}
\providecommand\HyField@AuxAddToFields[1]{}
\select@language{english}
\@writefile{toc}{\select@language{english}}
\@writefile{lof}{\select@language{english}}
\@writefile{lot}{\select@language{english}}
\newlabel{index::doc}{{}{1}{\relax }{section*.2}{}}
\@writefile{toc}{\contentsline {chapter}{\numberline {1}Introduction}{1}{chapter.1}}
\@writefile{lof}{\addvspace {10\p@ }}
\@writefile{lot}{\addvspace {10\p@ }}
\newlabel{intro:introduction}{{1}{1}{Introduction\relax }{chapter.1}{}}
\newlabel{intro::doc}{{1}{1}{Introduction\relax }{chapter.1}{}}
\newlabel{intro:fantastico-framework}{{1}{1}{Introduction\relax }{chapter.1}{}}
\@writefile{toc}{\contentsline {section}{\numberline {1.1}Why another python framework?}{1}{section.1.1}}
\newlabel{intro:why-another-python-framework}{{1.1}{1}{Why another python framework?\relax }{section.1.1}{}}
\@writefile{toc}{\contentsline {subsection}{\numberline {1.1.1}What do you want to teach who?}{1}{subsection.1.1.1}}
\newlabel{intro:what-do-you-want-to-teach-who}{{1.1.1}{1}{What do you want to teach who?\relax }{subsection.1.1.1}{}}
\@writefile{toc}{\contentsline {section}{\numberline {1.2}Fantastico's initial ideas}{1}{section.1.2}}
\newlabel{intro:fantastico-s-initial-ideas}{{1.2}{1}{Fantastico's initial ideas\relax }{section.1.2}{}}
\@writefile{toc}{\contentsline {chapter}{\numberline {2}Getting started}{3}{chapter.2}}
\@writefile{lof}{\addvspace {10\p@ }}
\@writefile{lot}{\addvspace {10\p@ }}
\newlabel{get_started/getting_started:getting-started}{{2}{3}{Getting started\relax }{chapter.2}{}}
\newlabel{get_started/getting_started::doc}{{2}{3}{Getting started\relax }{chapter.2}{}}
\@writefile{toc}{\contentsline {section}{\numberline {2.1}Installation manual}{3}{section.2.1}}
\newlabel{get_started/installation:installation-manual}{{2.1}{3}{Installation manual\relax }{section.2.1}{}}
\newlabel{get_started/installation::doc}{{2.1}{3}{Installation manual\relax }{section.2.1}{}}
\@writefile{toc}{\contentsline {subsection}{\numberline {2.1.1}Developing a new fantastico project}{3}{subsection.2.1.1}}
\newlabel{get_started/installation:developing-a-new-fantastico-project}{{2.1.1}{3}{Developing a new fantastico project\relax }{subsection.2.1.1}{}}
\@writefile{toc}{\contentsline {subsection}{\numberline {2.1.2}Contributing to fantastico framework}{3}{subsection.2.1.2}}
\newlabel{get_started/installation:contributing-to-fantastico-framework}{{2.1.2}{3}{Contributing to fantastico framework\relax }{subsection.2.1.2}{}}
\@writefile{toc}{\contentsline {section}{\numberline {2.2}Fantastico settings}{4}{section.2.2}}
\newlabel{get_started/settings:fantastico-settings}{{2.2}{4}{Fantastico settings\relax }{section.2.2}{}}
\newlabel{get_started/settings::doc}{{2.2}{4}{Fantastico settings\relax }{section.2.2}{}}
\@writefile{toc}{\contentsline {subsection}{\numberline {2.2.1}Settings API}{4}{subsection.2.2.1}}
\newlabel{get_started/settings:settings-api}{{2.2.1}{4}{Settings API\relax }{subsection.2.2.1}{}}
\newlabel{get_started/settings:fantastico.settings.BasicSettings}{{2.2.1}{4}{Settings API\relax }{section*.3}{}}
\newlabel{get_started/settings:fantastico.settings.BasicSettings.database_config}{{2.2.1}{4}{Settings API\relax }{section*.4}{}}
\newlabel{get_started/settings:fantastico.settings.BasicSettings.dev_server_host}{{2.2.1}{5}{Settings API\relax }{section*.5}{}}
\newlabel{get_started/settings:fantastico.settings.BasicSettings.dev_server_port}{{2.2.1}{5}{Settings API\relax }{section*.6}{}}
\newlabel{get_started/settings:fantastico.settings.BasicSettings.doc_base}{{2.2.1}{5}{Settings API\relax }{section*.7}{}}
\newlabel{get_started/settings:fantastico.settings.BasicSettings.installed_middleware}{{2.2.1}{5}{Settings API\relax }{section*.8}{}}
\newlabel{get_started/settings:fantastico.settings.BasicSettings.roa_api}{{2.2.1}{5}{Settings API\relax }{section*.9}{}}
\newlabel{get_started/settings:fantastico.settings.BasicSettings.routes_loaders}{{2.2.1}{5}{Settings API\relax }{section*.10}{}}
\newlabel{get_started/settings:fantastico.settings.BasicSettings.supported_languages}{{2.2.1}{5}{Settings API\relax }{section*.11}{}}
\newlabel{get_started/settings:fantastico.settings.BasicSettings.templates_config}{{2.2.1}{5}{Settings API\relax }{section*.12}{}}
\@writefile{toc}{\contentsline {subsection}{\numberline {2.2.2}Create Dev configuration}{5}{subsection.2.2.2}}
\newlabel{get_started/settings:create-dev-configuration}{{2.2.2}{5}{Create Dev configuration\relax }{subsection.2.2.2}{}}
\@writefile{toc}{\contentsline {subsection}{\numberline {2.2.3}Using a specifc configuration}{5}{subsection.2.2.3}}
\newlabel{get_started/settings:using-a-specifc-configuration}{{2.2.3}{5}{Using a specifc configuration\relax }{subsection.2.2.3}{}}
\newlabel{get_started/settings:fantastico.settings.SettingsFacade}{{2.2.3}{5}{Using a specifc configuration\relax }{section*.13}{}}
\newlabel{get_started/settings:fantastico.settings.SettingsFacade.get}{{2.2.3}{6}{Using a specifc configuration\relax }{section*.14}{}}
\newlabel{get_started/settings:fantastico.settings.SettingsFacade.get_config}{{2.2.3}{6}{Using a specifc configuration\relax }{section*.15}{}}
\newlabel{get_started/settings:fantastico.settings.SettingsFacade.get_root_folder}{{2.2.3}{6}{Using a specifc configuration\relax }{section*.16}{}}
\@writefile{toc}{\contentsline {section}{\numberline {2.3}Contribute}{6}{section.2.3}}
\newlabel{get_started/contribute:contribute}{{2.3}{6}{Contribute\relax }{section.2.3}{}}
\newlabel{get_started/contribute::doc}{{2.3}{6}{Contribute\relax }{section.2.3}{}}
\@writefile{toc}{\contentsline {subsection}{\numberline {2.3.1}Code contribution}{6}{subsection.2.3.1}}
\newlabel{get_started/contribute:code-contribution}{{2.3.1}{6}{Code contribution\relax }{subsection.2.3.1}{}}
\@writefile{toc}{\contentsline {subsubsection}{Writing unit tests}{7}{subsubsection*.17}}
\newlabel{get_started/contribute:writing-unit-tests}{{2.3.1}{7}{Writing unit tests\relax }{subsubsection*.17}{}}
\newlabel{get_started/contribute:fantastico.tests.base_case.FantasticoUnitTestsCase}{{2.3.1}{7}{Writing unit tests\relax }{section*.18}{}}
\newlabel{get_started/contribute:fantastico.tests.base_case.FantasticoUnitTestsCase._get_class_root_folder}{{2.3.1}{7}{Writing unit tests\relax }{section*.19}{}}
\newlabel{get_started/contribute:fantastico.tests.base_case.FantasticoUnitTestsCase._get_root_folder}{{2.3.1}{7}{Writing unit tests\relax }{section*.20}{}}
\newlabel{get_started/contribute:fantastico.tests.base_case.FantasticoUnitTestsCase.check_original_methods}{{2.3.1}{7}{Writing unit tests\relax }{section*.21}{}}
\newlabel{get_started/contribute:fantastico.tests.base_case.FantasticoUnitTestsCase.setup_once}{{2.3.1}{7}{Writing unit tests\relax }{section*.22}{}}
\@writefile{toc}{\contentsline {subsubsection}{Writing integration tests}{7}{subsubsection*.23}}
\newlabel{get_started/contribute:writing-integration-tests}{{2.3.1}{7}{Writing integration tests\relax }{subsubsection*.23}{}}
\newlabel{get_started/contribute:fantastico.tests.base_case.FantasticoIntegrationTestCase}{{2.3.1}{7}{Writing integration tests\relax }{section*.24}{}}
\newlabel{get_started/contribute:fantastico.tests.base_case.FantasticoIntegrationTestCase._envs}{{2.3.1}{8}{Writing integration tests\relax }{section*.25}{}}
\newlabel{get_started/contribute:fantastico.tests.base_case.FantasticoIntegrationTestCase._restore_call_methods}{{2.3.1}{8}{Writing integration tests\relax }{section*.26}{}}
\newlabel{get_started/contribute:fantastico.tests.base_case.FantasticoIntegrationTestCase._run_test_all_envs}{{2.3.1}{8}{Writing integration tests\relax }{section*.27}{}}
\newlabel{get_started/contribute:fantastico.tests.base_case.FantasticoIntegrationTestCase._save_call_methods}{{2.3.1}{8}{Writing integration tests\relax }{section*.28}{}}
\newlabel{get_started/contribute:fantastico.tests.base_case.FantasticoIntegrationTestCase.fantastico_cfg_os_key}{{2.3.1}{8}{Writing integration tests\relax }{section*.29}{}}
\newlabel{get_started/contribute:fantastico.server.tests.itest_dev_server.DevServerIntegration}{{2.3.1}{8}{Writing integration tests\relax }{section*.30}{}}
\newlabel{get_started/contribute:fantastico.server.tests.itest_dev_server.DevServerIntegration._check_server_started}{{2.3.1}{8}{Writing integration tests\relax }{section*.31}{}}
\newlabel{get_started/contribute:fantastico.server.tests.itest_dev_server.DevServerIntegration._get_server_base_url}{{2.3.1}{8}{Writing integration tests\relax }{section*.32}{}}
\newlabel{get_started/contribute:fantastico.server.tests.itest_dev_server.DevServerIntegration._run_test_against_dev_server}{{2.3.1}{8}{Writing integration tests\relax }{section*.33}{}}
\@writefile{toc}{\contentsline {section}{\numberline {2.4}Development mode}{9}{section.2.4}}
\newlabel{get_started/dev_mode::doc}{{2.4}{9}{Development mode\relax }{section.2.4}{}}
\newlabel{get_started/dev_mode:development-mode}{{2.4}{9}{Development mode\relax }{section.2.4}{}}
\@writefile{toc}{\contentsline {subsection}{\numberline {2.4.1}Hot deploy}{9}{subsection.2.4.1}}
\newlabel{get_started/dev_mode:hot-deploy}{{2.4.1}{9}{Hot deploy\relax }{subsection.2.4.1}{}}
\@writefile{toc}{\contentsline {subsection}{\numberline {2.4.2}API}{9}{subsection.2.4.2}}
\newlabel{get_started/dev_mode:api}{{2.4.2}{9}{API\relax }{subsection.2.4.2}{}}
\newlabel{get_started/dev_mode:fantastico.server.dev_server.DevServer}{{2.4.2}{9}{API\relax }{section*.34}{}}
\newlabel{get_started/dev_mode:fantastico.server.dev_server.DevServer.start}{{2.4.2}{9}{API\relax }{section*.35}{}}
\newlabel{get_started/dev_mode:fantastico.server.dev_server.DevServer.started}{{2.4.2}{9}{API\relax }{section*.36}{}}
\newlabel{get_started/dev_mode:fantastico.server.dev_server.DevServer.stop}{{2.4.2}{9}{API\relax }{section*.37}{}}
\@writefile{toc}{\contentsline {subsection}{\numberline {2.4.3}Database config}{9}{subsection.2.4.3}}
\newlabel{get_started/dev_mode:database-config}{{2.4.3}{9}{Database config\relax }{subsection.2.4.3}{}}
\@writefile{toc}{\contentsline {chapter}{\numberline {3}Fantastico features}{11}{chapter.3}}
\@writefile{lof}{\addvspace {10\p@ }}
\@writefile{lot}{\addvspace {10\p@ }}
\newlabel{features/features::doc}{{3}{11}{Fantastico features\relax }{chapter.3}{}}
\newlabel{features/features:fantastico-features}{{3}{11}{Fantastico features\relax }{chapter.3}{}}
\@writefile{toc}{\contentsline {section}{\numberline {3.1}Exceptions hierarchy}{11}{section.3.1}}
\newlabel{features/exceptions:exceptions-hierarchy}{{3.1}{11}{Exceptions hierarchy\relax }{section.3.1}{}}
\newlabel{features/exceptions::doc}{{3.1}{11}{Exceptions hierarchy\relax }{section.3.1}{}}
\newlabel{features/exceptions:fantastico.exceptions.FantasticoError}{{3.1}{11}{Exceptions hierarchy\relax }{section*.38}{}}
\newlabel{features/exceptions:fantastico.exceptions.FantasticoError.http_code}{{3.1}{11}{Exceptions hierarchy\relax }{section*.39}{}}
\newlabel{features/exceptions:fantastico.exceptions.FantasticoControllerInvalidError}{{3.1}{11}{Exceptions hierarchy\relax }{section*.40}{}}
\newlabel{features/exceptions:fantastico.exceptions.FantasticoClassNotFoundError}{{3.1}{11}{Exceptions hierarchy\relax }{section*.41}{}}
\newlabel{features/exceptions:fantastico.exceptions.FantasticoNotSupportedError}{{3.1}{11}{Exceptions hierarchy\relax }{section*.42}{}}
\newlabel{features/exceptions:fantastico.exceptions.FantasticoSettingNotFoundError}{{3.1}{11}{Exceptions hierarchy\relax }{section*.43}{}}
\newlabel{features/exceptions:fantastico.exceptions.FantasticoDuplicateRouteError}{{3.1}{12}{Exceptions hierarchy\relax }{section*.44}{}}
\newlabel{features/exceptions:fantastico.exceptions.FantasticoNoRoutesError}{{3.1}{12}{Exceptions hierarchy\relax }{section*.45}{}}
\newlabel{features/exceptions:fantastico.exceptions.FantasticoRouteNotFoundError}{{3.1}{12}{Exceptions hierarchy\relax }{section*.46}{}}
\newlabel{features/exceptions:fantastico.exceptions.FantasticoNoRequestError}{{3.1}{12}{Exceptions hierarchy\relax }{section*.47}{}}
\newlabel{features/exceptions:fantastico.exceptions.FantasticoContentTypeError}{{3.1}{12}{Exceptions hierarchy\relax }{section*.48}{}}
\newlabel{features/exceptions:fantastico.exceptions.FantasticoHttpVerbNotSupported}{{3.1}{12}{Exceptions hierarchy\relax }{section*.49}{}}
\newlabel{features/exceptions:fantastico.exceptions.FantasticoHttpVerbNotSupported.http_verb}{{3.1}{12}{Exceptions hierarchy\relax }{section*.50}{}}
\newlabel{features/exceptions:fantastico.exceptions.FantasticoTemplateNotFoundError}{{3.1}{12}{Exceptions hierarchy\relax }{section*.51}{}}
\newlabel{features/exceptions:fantastico.exceptions.FantasticoIncompatibleClassError}{{3.1}{12}{Exceptions hierarchy\relax }{section*.52}{}}
\newlabel{features/exceptions:fantastico.exceptions.FantasticoDbError}{{3.1}{12}{Exceptions hierarchy\relax }{section*.53}{}}
\newlabel{features/exceptions:fantastico.exceptions.FantasticoDbNotFoundError}{{3.1}{12}{Exceptions hierarchy\relax }{section*.54}{}}
\newlabel{features/exceptions:fantastico.exceptions.FantasticoInsufficientArgumentsError}{{3.1}{12}{Exceptions hierarchy\relax }{section*.55}{}}
\newlabel{features/exceptions:fantastico.exceptions.FantasticoUrlInvokerError}{{3.1}{12}{Exceptions hierarchy\relax }{section*.56}{}}
\@writefile{toc}{\contentsline {section}{\numberline {3.2}Request lifecycle}{12}{section.3.2}}
\newlabel{features/request_response:request-lifecycle}{{3.2}{12}{Request lifecycle\relax }{section.3.2}{}}
\newlabel{features/request_response::doc}{{3.2}{12}{Request lifecycle\relax }{section.3.2}{}}
\@writefile{toc}{\contentsline {subsection}{\numberline {3.2.1}Request middleware}{13}{subsection.3.2.1}}
\newlabel{features/request_response:request-middleware}{{3.2.1}{13}{Request middleware\relax }{subsection.3.2.1}{}}
\newlabel{features/request_response:fantastico.middleware.request_middleware.RequestMiddleware}{{3.2.1}{13}{Request middleware\relax }{section*.57}{}}
\@writefile{toc}{\contentsline {subsection}{\numberline {3.2.2}Request context}{13}{subsection.3.2.2}}
\newlabel{features/request_response:request-context}{{3.2.2}{13}{Request context\relax }{subsection.3.2.2}{}}
\newlabel{features/request_response:fantastico.middleware.request_context.RequestContext}{{3.2.2}{13}{Request context\relax }{section*.58}{}}
\newlabel{features/request_response:fantastico.middleware.request_context.RequestContext.language}{{3.2.2}{14}{Request context\relax }{section*.59}{}}
\newlabel{features/request_response:fantastico.middleware.request_context.RequestContext.settings}{{3.2.2}{14}{Request context\relax }{section*.60}{}}
\newlabel{features/request_response:fantastico.middleware.request_context.RequestContext.wsgi_app}{{3.2.2}{14}{Request context\relax }{section*.61}{}}
\@writefile{toc}{\contentsline {subsection}{\numberline {3.2.3}Obtain request language}{14}{subsection.3.2.3}}
\newlabel{features/request_response:obtain-request-language}{{3.2.3}{14}{Obtain request language\relax }{subsection.3.2.3}{}}
\newlabel{features/request_response:fantastico.locale.language.Language}{{3.2.3}{14}{Obtain request language\relax }{section*.62}{}}
\newlabel{features/request_response:fantastico.locale.language.Language.code}{{3.2.3}{14}{Obtain request language\relax }{section*.63}{}}
\@writefile{toc}{\contentsline {subsection}{\numberline {3.2.4}Obtain settings using request}{14}{subsection.3.2.4}}
\newlabel{features/request_response:obtain-settings-using-request}{{3.2.4}{14}{Obtain settings using request\relax }{subsection.3.2.4}{}}
\@writefile{toc}{\contentsline {subsection}{\numberline {3.2.5}Redirect using request}{14}{subsection.3.2.5}}
\newlabel{features/request_response:redirect-using-request}{{3.2.5}{14}{Redirect using request\relax }{subsection.3.2.5}{}}
\newlabel{features/request_response:fantastico.routing_engine.custom_responses.RedirectResponse}{{3.2.5}{14}{Redirect using request\relax }{section*.64}{}}
\@writefile{toc}{\contentsline {section}{\numberline {3.3}Routing engine}{15}{section.3.3}}
\newlabel{features/routing_engine:routing-engine}{{3.3}{15}{Routing engine\relax }{section.3.3}{}}
\newlabel{features/routing_engine::doc}{{3.3}{15}{Routing engine\relax }{section.3.3}{}}
\newlabel{features/routing_engine:fantastico.routing_engine.router.Router}{{3.3}{15}{Routing engine\relax }{section*.65}{}}
\newlabel{features/routing_engine:fantastico.routing_engine.router.Router.get_loaders}{{3.3}{15}{Routing engine\relax }{section*.66}{}}
\newlabel{features/routing_engine:fantastico.routing_engine.router.Router.handle_route}{{3.3}{16}{Routing engine\relax }{section*.67}{}}
\newlabel{features/routing_engine:fantastico.routing_engine.router.Router.register_routes}{{3.3}{16}{Routing engine\relax }{section*.68}{}}
\@writefile{toc}{\contentsline {subsection}{\numberline {3.3.1}Routes loaders}{16}{subsection.3.3.1}}
\newlabel{features/routing_engine:routes-loaders}{{3.3.1}{16}{Routes loaders\relax }{subsection.3.3.1}{}}
\@writefile{toc}{\contentsline {subsection}{\numberline {3.3.2}How to write a new route loader}{16}{subsection.3.3.2}}
\newlabel{features/routing_engine:how-to-write-a-new-route-loader}{{3.3.2}{16}{How to write a new route loader\relax }{subsection.3.3.2}{}}
\newlabel{features/routing_engine:fantastico.routing_engine.routing_loaders.RouteLoader}{{3.3.2}{16}{How to write a new route loader\relax }{section*.69}{}}
\newlabel{features/routing_engine:fantastico.routing_engine.routing_loaders.RouteLoader.load_routes}{{3.3.2}{16}{How to write a new route loader\relax }{section*.70}{}}
\@writefile{toc}{\contentsline {subsection}{\numberline {3.3.3}Configuring available loaders}{17}{subsection.3.3.3}}
\newlabel{features/routing_engine:configuring-available-loaders}{{3.3.3}{17}{Configuring available loaders\relax }{subsection.3.3.3}{}}
\@writefile{toc}{\contentsline {subsection}{\numberline {3.3.4}DummyRouteLoader}{17}{subsection.3.3.4}}
\newlabel{features/routing_engine:dummyrouteloader}{{3.3.4}{17}{DummyRouteLoader\relax }{subsection.3.3.4}{}}
\newlabel{features/routing_engine:fantastico.routing_engine.dummy_routeloader.DummyRouteLoader}{{3.3.4}{17}{DummyRouteLoader\relax }{section*.71}{}}
\newlabel{features/routing_engine:fantastico.routing_engine.dummy_routeloader.DummyRouteLoader.display_test}{{3.3.4}{17}{DummyRouteLoader\relax }{section*.72}{}}
\@writefile{toc}{\contentsline {subsection}{\numberline {3.3.5}Routing middleware}{17}{subsection.3.3.5}}
\newlabel{features/routing_engine:routing-middleware}{{3.3.5}{17}{Routing middleware\relax }{subsection.3.3.5}{}}
\newlabel{features/routing_engine:fantastico.middleware.routing_middleware.RoutingMiddleware}{{3.3.5}{17}{Routing middleware\relax }{section*.73}{}}
\@writefile{toc}{\contentsline {section}{\numberline {3.4}Model View Controller}{18}{section.3.4}}
\newlabel{features/mvc:model-view-controller}{{3.4}{18}{Model View Controller\relax }{section.3.4}{}}
\newlabel{features/mvc::doc}{{3.4}{18}{Model View Controller\relax }{section.3.4}{}}
\@writefile{toc}{\contentsline {subsection}{\numberline {3.4.1}Classic approach}{18}{subsection.3.4.1}}
\newlabel{features/mvc:classic-approach}{{3.4.1}{18}{Classic approach\relax }{subsection.3.4.1}{}}
\@writefile{toc}{\contentsline {subsection}{\numberline {3.4.2}Fantastico approach}{18}{subsection.3.4.2}}
\newlabel{features/mvc:fantastico-approach}{{3.4.2}{18}{Fantastico approach\relax }{subsection.3.4.2}{}}
\newlabel{features/mvc:fantastico.mvc.controller_decorators.Controller}{{3.4.2}{18}{Fantastico approach\relax }{section*.74}{}}
\newlabel{features/mvc:fantastico.mvc.controller_decorators.Controller.fn_handler}{{3.4.2}{19}{Fantastico approach\relax }{section*.75}{}}
\newlabel{features/mvc:fantastico.mvc.controller_decorators.Controller.get_registered_routes}{{3.4.2}{19}{Fantastico approach\relax }{section*.76}{}}
\newlabel{features/mvc:fantastico.mvc.controller_decorators.Controller.method}{{3.4.2}{19}{Fantastico approach\relax }{section*.77}{}}
\newlabel{features/mvc:fantastico.mvc.controller_decorators.Controller.models}{{3.4.2}{19}{Fantastico approach\relax }{section*.78}{}}
\newlabel{features/mvc:fantastico.mvc.controller_decorators.Controller.url}{{3.4.2}{19}{Fantastico approach\relax }{section*.79}{}}
\@writefile{toc}{\contentsline {subsection}{\numberline {3.4.3}Model}{19}{subsection.3.4.3}}
\newlabel{features/mvc:model}{{3.4.3}{19}{Model\relax }{subsection.3.4.3}{}}
\newlabel{features/mvc:fantastico.mvc.model_facade.ModelFacade}{{3.4.3}{20}{Model\relax }{section*.80}{}}
\newlabel{features/mvc:fantastico.mvc.model_facade.ModelFacade.count_records}{{3.4.3}{20}{Model\relax }{section*.81}{}}
\newlabel{features/mvc:fantastico.mvc.model_facade.ModelFacade.create}{{3.4.3}{20}{Model\relax }{section*.82}{}}
\newlabel{features/mvc:fantastico.mvc.model_facade.ModelFacade.delete}{{3.4.3}{20}{Model\relax }{section*.83}{}}
\newlabel{features/mvc:fantastico.mvc.model_facade.ModelFacade.find_by_pk}{{3.4.3}{21}{Model\relax }{section*.84}{}}
\newlabel{features/mvc:fantastico.mvc.model_facade.ModelFacade.get_records_paged}{{3.4.3}{21}{Model\relax }{section*.85}{}}
\newlabel{features/mvc:fantastico.mvc.model_facade.ModelFacade.model_cls}{{3.4.3}{22}{Model\relax }{section*.86}{}}
\newlabel{features/mvc:fantastico.mvc.model_facade.ModelFacade.model_pk_cols}{{3.4.3}{22}{Model\relax }{section*.87}{}}
\newlabel{features/mvc:fantastico.mvc.model_facade.ModelFacade.new_model}{{3.4.3}{22}{Model\relax }{section*.88}{}}
\newlabel{features/mvc:fantastico.mvc.model_facade.ModelFacade.update}{{3.4.3}{22}{Model\relax }{section*.89}{}}
\@writefile{toc}{\contentsline {subsection}{\numberline {3.4.4}View}{23}{subsection.3.4.4}}
\newlabel{features/mvc:view}{{3.4.4}{23}{View\relax }{subsection.3.4.4}{}}
\@writefile{toc}{\contentsline {subsection}{\numberline {3.4.5}Controller}{23}{subsection.3.4.5}}
\newlabel{features/mvc:controller}{{3.4.5}{23}{Controller\relax }{subsection.3.4.5}{}}
\newlabel{features/mvc:core-controller-section}{{3.4.5}{23}{Controller\relax }{subsection.3.4.5}{}}
\newlabel{features/mvc:fantastico.mvc.controller_registrator.ControllerRouteLoader}{{3.4.5}{23}{Controller\relax }{section*.90}{}}
\newlabel{features/mvc:fantastico.mvc.controller_registrator.ControllerRouteLoader.load_routes}{{3.4.5}{23}{Controller\relax }{section*.91}{}}
\newlabel{features/mvc:fantastico.mvc.controller_registrator.ControllerRouteLoader.scanned_folder}{{3.4.5}{24}{Controller\relax }{section*.92}{}}
\newlabel{features/mvc:fantastico.mvc.base_controller.BaseController}{{3.4.5}{24}{Controller\relax }{section*.93}{}}
\newlabel{features/mvc:fantastico.mvc.base_controller.BaseController.curr_request}{{3.4.5}{24}{Controller\relax }{section*.94}{}}
\newlabel{features/mvc:fantastico.mvc.base_controller.BaseController.get_component_folder}{{3.4.5}{24}{Controller\relax }{section*.95}{}}
\newlabel{features/mvc:fantastico.mvc.base_controller.BaseController.load_template}{{3.4.5}{24}{Controller\relax }{section*.96}{}}
\@writefile{toc}{\contentsline {subsubsection}{Available filters}{24}{subsubsection*.97}}
\newlabel{features/mvc:available-filters}{{3.4.5}{24}{Available filters\relax }{subsubsection*.97}{}}
\newlabel{features/mvc:fantastico.mvc.models.model_filter.ModelFilterAbstract}{{3.4.5}{24}{Available filters\relax }{section*.98}{}}
\newlabel{features/mvc:fantastico.mvc.models.model_filter.ModelFilterAbstract.build}{{3.4.5}{24}{Available filters\relax }{section*.99}{}}
\newlabel{features/mvc:fantastico.mvc.models.model_filter.ModelFilterAbstract.get_expression}{{3.4.5}{24}{Available filters\relax }{section*.100}{}}
\newlabel{features/mvc:fantastico.mvc.models.model_filter_compound.ModelFilterCompound}{{3.4.5}{25}{Available filters\relax }{section*.101}{}}
\newlabel{features/mvc:fantastico.mvc.models.model_filter_compound.ModelFilterCompound.build}{{3.4.5}{25}{Available filters\relax }{section*.102}{}}
\newlabel{features/mvc:fantastico.mvc.models.model_filter_compound.ModelFilterCompound.get_expression}{{3.4.5}{25}{Available filters\relax }{section*.103}{}}
\newlabel{features/mvc:fantastico.mvc.models.model_filter_compound.ModelFilterCompound.model_filters}{{3.4.5}{25}{Available filters\relax }{section*.104}{}}
\newlabel{features/mvc:fantastico.mvc.models.model_filter.ModelFilter}{{3.4.5}{25}{Available filters\relax }{section*.105}{}}
\newlabel{features/mvc:fantastico.mvc.models.model_filter.ModelFilter.build}{{3.4.5}{25}{Available filters\relax }{section*.106}{}}
\newlabel{features/mvc:fantastico.mvc.models.model_filter.ModelFilter.column}{{3.4.5}{25}{Available filters\relax }{section*.107}{}}
\newlabel{features/mvc:fantastico.mvc.models.model_filter.ModelFilter.get_expression}{{3.4.5}{25}{Available filters\relax }{section*.108}{}}
\newlabel{features/mvc:fantastico.mvc.models.model_filter.ModelFilter.get_supported_operations}{{3.4.5}{25}{Available filters\relax }{section*.109}{}}
\newlabel{features/mvc:fantastico.mvc.models.model_filter.ModelFilter.operation}{{3.4.5}{25}{Available filters\relax }{section*.110}{}}
\newlabel{features/mvc:fantastico.mvc.models.model_filter.ModelFilter.ref_value}{{3.4.5}{25}{Available filters\relax }{section*.111}{}}
\newlabel{features/mvc:fantastico.mvc.models.model_filter_compound.ModelFilterAnd}{{3.4.5}{25}{Available filters\relax }{section*.112}{}}
\newlabel{features/mvc:fantastico.mvc.models.model_filter_compound.ModelFilterOr}{{3.4.5}{25}{Available filters\relax }{section*.113}{}}
\newlabel{features/mvc:fantastico.mvc.models.model_sort.ModelSort}{{3.4.5}{26}{Available filters\relax }{section*.114}{}}
\newlabel{features/mvc:fantastico.mvc.models.model_sort.ModelSort.build}{{3.4.5}{26}{Available filters\relax }{section*.115}{}}
\newlabel{features/mvc:fantastico.mvc.models.model_sort.ModelSort.column}{{3.4.5}{26}{Available filters\relax }{section*.116}{}}
\newlabel{features/mvc:fantastico.mvc.models.model_sort.ModelSort.get_expression}{{3.4.5}{26}{Available filters\relax }{section*.117}{}}
\newlabel{features/mvc:fantastico.mvc.models.model_sort.ModelSort.get_supported_sort_dirs}{{3.4.5}{26}{Available filters\relax }{section*.118}{}}
\newlabel{features/mvc:fantastico.mvc.models.model_sort.ModelSort.sort_dir}{{3.4.5}{26}{Available filters\relax }{section*.119}{}}
\@writefile{toc}{\contentsline {subsection}{\numberline {3.4.6}Database session management}{26}{subsection.3.4.6}}
\newlabel{features/mvc:database-session-management}{{3.4.6}{26}{Database session management\relax }{subsection.3.4.6}{}}
\newlabel{features/mvc:fantastico.middleware.model_session_middleware.ModelSessionMiddleware}{{3.4.6}{26}{Database session management\relax }{section*.120}{}}
\@writefile{toc}{\contentsline {section}{\numberline {3.5}ROA (Resource Oriented Architecture)}{26}{section.3.5}}
\newlabel{features/roa:roa-resource-oriented-architecture}{{3.5}{26}{ROA (Resource Oriented Architecture)\relax }{section.3.5}{}}
\newlabel{features/roa::doc}{{3.5}{26}{ROA (Resource Oriented Architecture)\relax }{section.3.5}{}}
\@writefile{toc}{\contentsline {subsection}{\numberline {3.5.1}Examples}{27}{subsection.3.5.1}}
\newlabel{features/roa:examples}{{3.5.1}{27}{Examples\relax }{subsection.3.5.1}{}}
\@writefile{toc}{\contentsline {subsection}{\numberline {3.5.2}Application settings stored in database}{27}{subsection.3.5.2}}
\newlabel{features/roa:application-settings-stored-in-database}{{3.5.2}{27}{Application settings stored in database\relax }{subsection.3.5.2}{}}
\@writefile{toc}{\contentsline {subsection}{\numberline {3.5.3}Versioning}{28}{subsection.3.5.3}}
\newlabel{features/roa:versioning}{{3.5.3}{28}{Versioning\relax }{subsection.3.5.3}{}}
\@writefile{toc}{\contentsline {subsection}{\numberline {3.5.4}Validation}{28}{subsection.3.5.4}}
\newlabel{features/roa:validation}{{3.5.4}{28}{Validation\relax }{subsection.3.5.4}{}}
\@writefile{toc}{\contentsline {subsection}{\numberline {3.5.5}Partial object representation}{29}{subsection.3.5.5}}
\newlabel{features/roa:partial-object-representation}{{3.5.5}{29}{Partial object representation\relax }{subsection.3.5.5}{}}
\newlabel{features/roa:id1}{{3.5.5}{29}{Partial object representation\relax }{subsection.3.5.5}{}}
\@writefile{toc}{\contentsline {subsection}{\numberline {3.5.6}Resource composed attributes}{30}{subsection.3.5.6}}
\newlabel{features/roa:resource-composed-attributes}{{3.5.6}{30}{Resource composed attributes\relax }{subsection.3.5.6}{}}
\@writefile{toc}{\contentsline {subsection}{\numberline {3.5.7}Advantages}{31}{subsection.3.5.7}}
\newlabel{features/roa:advantages}{{3.5.7}{31}{Advantages\relax }{subsection.3.5.7}{}}
\@writefile{toc}{\contentsline {subsubsection}{REST API standard}{31}{subsubsection*.121}}
\newlabel{features/roa/rest_standard:rest-api-standard}{{3.5.7}{31}{REST API standard\relax }{subsubsection*.121}{}}
\newlabel{features/roa/rest_standard::doc}{{3.5.7}{31}{REST API standard\relax }{subsubsection*.121}{}}
\@writefile{toc}{\contentsline {paragraph}{Resource collection}{31}{paragraph*.122}}
\newlabel{features/roa/rest_standard:resource-collection}{{3.5.7}{31}{Resource collection\relax }{paragraph*.122}{}}
\@writefile{toc}{\contentsline {subparagraph}{Pagination}{32}{subparagraph*.123}}
\newlabel{features/roa/rest_standard:pagination}{{3.5.7}{32}{Pagination\relax }{subparagraph*.123}{}}
\@writefile{toc}{\contentsline {subparagraph}{Sorting}{32}{subparagraph*.124}}
\newlabel{features/roa/rest_standard:sorting}{{3.5.7}{32}{Sorting\relax }{subparagraph*.124}{}}
\@writefile{toc}{\contentsline {subparagraph}{Filtering}{32}{subparagraph*.125}}
\newlabel{features/roa/rest_standard:roa-filtering}{{3.5.7}{32}{Filtering\relax }{subparagraph*.125}{}}
\newlabel{features/roa/rest_standard:filtering}{{3.5.7}{32}{Filtering\relax }{subparagraph*.125}{}}
\@writefile{toc}{\contentsline {paragraph}{Resource item}{33}{paragraph*.126}}
\newlabel{features/roa/rest_standard:resource-item}{{3.5.7}{33}{Resource item\relax }{paragraph*.126}{}}
\@writefile{toc}{\contentsline {subparagraph}{Create a new item}{33}{subparagraph*.127}}
\newlabel{features/roa/rest_standard:create-a-new-item}{{3.5.7}{33}{Create a new item\relax }{subparagraph*.127}{}}
\@writefile{toc}{\contentsline {subparagraph}{Update an existing item}{33}{subparagraph*.128}}
\newlabel{features/roa/rest_standard:update-an-existing-item}{{3.5.7}{33}{Update an existing item\relax }{subparagraph*.128}{}}
\@writefile{toc}{\contentsline {subparagraph}{Delete an existing item}{34}{subparagraph*.129}}
\newlabel{features/roa/rest_standard:delete-an-existing-item}{{3.5.7}{34}{Delete an existing item\relax }{subparagraph*.129}{}}
\@writefile{toc}{\contentsline {subsubsection}{REST Responses}{34}{subsubsection*.130}}
\newlabel{features/roa/rest_responses::doc}{{3.5.7}{34}{REST Responses\relax }{subsubsection*.130}{}}
\newlabel{features/roa/rest_responses:rest-responses}{{3.5.7}{34}{REST Responses\relax }{subsubsection*.130}{}}
\@writefile{toc}{\contentsline {paragraph}{Common responses}{34}{paragraph*.131}}
\newlabel{features/roa/rest_responses:common-responses}{{3.5.7}{34}{Common responses\relax }{paragraph*.131}{}}
\@writefile{toc}{\contentsline {subparagraph}{Internal Server Error}{34}{subparagraph*.132}}
\newlabel{features/roa/rest_responses:internal-server-error}{{3.5.7}{34}{Internal Server Error\relax }{subparagraph*.132}{}}
\@writefile{toc}{\contentsline {subparagraph}{Concrete errors}{34}{subparagraph*.133}}
\newlabel{features/roa/rest_responses:concrete-errors}{{3.5.7}{34}{Concrete errors\relax }{subparagraph*.133}{}}
\@writefile{toc}{\contentsline {paragraph}{Resource Item}{34}{paragraph*.134}}
\newlabel{features/roa/rest_responses:resource-item}{{3.5.7}{34}{Resource Item\relax }{paragraph*.134}{}}
\@writefile{toc}{\contentsline {subparagraph}{Retrieve resource item}{34}{subparagraph*.135}}
\newlabel{features/roa/rest_responses:retrieve-resource-item}{{3.5.7}{34}{Retrieve resource item\relax }{subparagraph*.135}{}}
\@writefile{toc}{\contentsline {subparagraph}{Create a new resource item}{35}{subparagraph*.136}}
\newlabel{features/roa/rest_responses:create-a-new-resource-item}{{3.5.7}{35}{Create a new resource item\relax }{subparagraph*.136}{}}
\@writefile{toc}{\contentsline {paragraph}{Update an existing resource}{35}{paragraph*.137}}
\newlabel{features/roa/rest_responses:update-an-existing-resource}{{3.5.7}{35}{Update an existing resource\relax }{paragraph*.137}{}}
\@writefile{toc}{\contentsline {subparagraph}{Delete an existing resource}{35}{subparagraph*.138}}
\newlabel{features/roa/rest_responses:delete-an-existing-resource}{{3.5.7}{35}{Delete an existing resource\relax }{subparagraph*.138}{}}
\@writefile{toc}{\contentsline {subparagraph}{Bulk creation of items}{35}{subparagraph*.139}}
\newlabel{features/roa/rest_responses:bulk-creation-of-items}{{3.5.7}{35}{Bulk creation of items\relax }{subparagraph*.139}{}}
\@writefile{toc}{\contentsline {subsubsection}{ROA Technical Summary}{36}{subsubsection*.140}}
\newlabel{features/roa/technical_summary:roa-technical-summary}{{3.5.7}{36}{ROA Technical Summary\relax }{subsubsection*.140}{}}
\newlabel{features/roa/technical_summary::doc}{{3.5.7}{36}{ROA Technical Summary\relax }{subsubsection*.140}{}}
\newlabel{features/roa/technical_summary:fantastico.roa.resource_decorator.Resource}{{3.5.7}{36}{ROA Technical Summary\relax }{section*.141}{}}
\newlabel{features/roa/technical_summary:fantastico.roa.resource_decorator.Resource.model}{{3.5.7}{36}{ROA Technical Summary\relax }{section*.142}{}}
\newlabel{features/roa/technical_summary:fantastico.roa.resource_decorator.Resource.name}{{3.5.7}{36}{ROA Technical Summary\relax }{section*.143}{}}
\newlabel{features/roa/technical_summary:fantastico.roa.resource_decorator.Resource.subresources}{{3.5.7}{36}{ROA Technical Summary\relax }{section*.144}{}}
\newlabel{features/roa/technical_summary:fantastico.roa.resource_decorator.Resource.url}{{3.5.7}{36}{ROA Technical Summary\relax }{section*.145}{}}
\newlabel{features/roa/technical_summary:fantastico.roa.resource_decorator.Resource.validator}{{3.5.7}{37}{ROA Technical Summary\relax }{section*.146}{}}
\newlabel{features/roa/technical_summary:fantastico.roa.resource_decorator.Resource.version}{{3.5.7}{37}{ROA Technical Summary\relax }{section*.147}{}}
\newlabel{features/roa/technical_summary:fantastico.roa.resources_registry.ResourcesRegistry}{{3.5.7}{37}{ROA Technical Summary\relax }{section*.148}{}}
\newlabel{features/roa/technical_summary:fantastico.roa.resources_registry.ResourcesRegistry.all_resources}{{3.5.7}{37}{ROA Technical Summary\relax }{section*.149}{}}
\newlabel{features/roa/technical_summary:fantastico.roa.resources_registry.ResourcesRegistry.available_resources}{{3.5.7}{37}{ROA Technical Summary\relax }{section*.150}{}}
\newlabel{features/roa/technical_summary:fantastico.roa.resources_registry.ResourcesRegistry.available_url_resources}{{3.5.7}{37}{ROA Technical Summary\relax }{section*.151}{}}
\newlabel{features/roa/technical_summary:fantastico.roa.resources_registry.ResourcesRegistry.find_by_name}{{3.5.7}{37}{ROA Technical Summary\relax }{section*.152}{}}
\newlabel{features/roa/technical_summary:fantastico.roa.resources_registry.ResourcesRegistry.find_by_url}{{3.5.7}{37}{ROA Technical Summary\relax }{section*.153}{}}
\newlabel{features/roa/technical_summary:fantastico.roa.resources_registry.ResourcesRegistry.register_resource}{{3.5.7}{37}{ROA Technical Summary\relax }{section*.154}{}}
\newlabel{features/roa/technical_summary:fantastico.roa.resources_registry.ResourcesRegistry.unregister_resource}{{3.5.7}{37}{ROA Technical Summary\relax }{section*.155}{}}
\newlabel{features/roa/technical_summary:fantastico.roa.resources_registrator.ResourcesRegistrator}{{3.5.7}{38}{ROA Technical Summary\relax }{section*.156}{}}
\newlabel{features/roa/technical_summary:fantastico.roa.resources_registrator.ResourcesRegistrator.load_routes}{{3.5.7}{38}{ROA Technical Summary\relax }{section*.157}{}}
\newlabel{features/roa/technical_summary:fantastico.roa.resources_registrator.ResourcesRegistrator.register_resources}{{3.5.7}{38}{ROA Technical Summary\relax }{section*.158}{}}
\newlabel{features/roa/technical_summary:fantastico.contrib.roa_discovery.discovery_controller.RoaDiscoveryController}{{3.5.7}{38}{ROA Technical Summary\relax }{section*.159}{}}
\newlabel{features/roa/technical_summary:fantastico.contrib.roa_discovery.discovery_controller.RoaDiscoveryController.list_registered_resources}{{3.5.7}{38}{ROA Technical Summary\relax }{section*.160}{}}
\newlabel{features/roa/technical_summary:fantastico.roa.query_parser.QueryParser}{{3.5.7}{38}{ROA Technical Summary\relax }{section*.161}{}}
\newlabel{features/roa/technical_summary:fantastico.roa.query_parser.QueryParser.parse_filter}{{3.5.7}{39}{ROA Technical Summary\relax }{section*.162}{}}
\newlabel{features/roa/technical_summary:fantastico.roa.query_parser.QueryParser.parse_sort}{{3.5.7}{39}{ROA Technical Summary\relax }{section*.163}{}}
\newlabel{features/roa/technical_summary:fantastico.roa.query_parser_operations.QueryParserOperation}{{3.5.7}{39}{ROA Technical Summary\relax }{section*.164}{}}
\newlabel{features/roa/technical_summary:fantastico.roa.query_parser_operations.QueryParserOperation.add_argument}{{3.5.7}{39}{ROA Technical Summary\relax }{section*.165}{}}
\newlabel{features/roa/technical_summary:fantastico.roa.query_parser_operations.QueryParserOperation.build_filter}{{3.5.7}{39}{ROA Technical Summary\relax }{section*.166}{}}
\newlabel{features/roa/technical_summary:fantastico.roa.query_parser_operations.QueryParserOperation.get_filter}{{3.5.7}{39}{ROA Technical Summary\relax }{section*.167}{}}
\newlabel{features/roa/technical_summary:fantastico.roa.query_parser_operations.QueryParserOperation.get_grammar_rules}{{3.5.7}{39}{ROA Technical Summary\relax }{section*.168}{}}
\newlabel{features/roa/technical_summary:fantastico.roa.query_parser_operations.QueryParserOperation.get_grammar_table}{{3.5.7}{39}{ROA Technical Summary\relax }{section*.169}{}}
\newlabel{features/roa/technical_summary:fantastico.roa.query_parser_operations.QueryParserOperation.get_token}{{3.5.7}{40}{ROA Technical Summary\relax }{section*.170}{}}
\newlabel{features/roa/technical_summary:fantastico.roa.query_parser_operations.QueryParserOperation.validate}{{3.5.7}{40}{ROA Technical Summary\relax }{section*.171}{}}
\newlabel{features/roa/technical_summary:fantastico.roa.query_parser_operations.QueryParserOperationBinary}{{3.5.7}{40}{ROA Technical Summary\relax }{section*.172}{}}
\newlabel{features/roa/technical_summary:fantastico.roa.query_parser_operations.QueryParserOperationBinary.build_filter}{{3.5.7}{40}{ROA Technical Summary\relax }{section*.173}{}}
\newlabel{features/roa/technical_summary:fantastico.roa.query_parser_operations.QueryParserOperationBinary.get_grammar_rules}{{3.5.7}{40}{ROA Technical Summary\relax }{section*.174}{}}
\newlabel{features/roa/technical_summary:fantastico.roa.query_parser_operations.QueryParserOperationBinary.get_grammar_table}{{3.5.7}{40}{ROA Technical Summary\relax }{section*.175}{}}
\newlabel{features/roa/technical_summary:fantastico.roa.query_parser_operations.QueryParserOperationBinary.validate}{{3.5.7}{40}{ROA Technical Summary\relax }{section*.176}{}}
\newlabel{features/roa/technical_summary:fantastico.roa.query_parser_operations.QueryParserOperationBinaryEq}{{3.5.7}{40}{ROA Technical Summary\relax }{section*.177}{}}
\newlabel{features/roa/technical_summary:fantastico.roa.query_parser_operations.QueryParserOperationBinaryEq.get_token}{{3.5.7}{40}{ROA Technical Summary\relax }{section*.178}{}}
\newlabel{features/roa/technical_summary:fantastico.roa.query_parser_operations.QueryParserOperationBinaryGt}{{3.5.7}{40}{ROA Technical Summary\relax }{section*.179}{}}
\newlabel{features/roa/technical_summary:fantastico.roa.query_parser_operations.QueryParserOperationBinaryGt.get_token}{{3.5.7}{40}{ROA Technical Summary\relax }{section*.180}{}}
\newlabel{features/roa/technical_summary:fantastico.roa.query_parser_operations.QueryParserOperationBinaryGe}{{3.5.7}{40}{ROA Technical Summary\relax }{section*.181}{}}
\newlabel{features/roa/technical_summary:fantastico.roa.query_parser_operations.QueryParserOperationBinaryGe.get_token}{{3.5.7}{40}{ROA Technical Summary\relax }{section*.182}{}}
\newlabel{features/roa/technical_summary:fantastico.roa.query_parser_operations.QueryParserOperationBinaryLt}{{3.5.7}{40}{ROA Technical Summary\relax }{section*.183}{}}
\newlabel{features/roa/technical_summary:fantastico.roa.query_parser_operations.QueryParserOperationBinaryLt.get_token}{{3.5.7}{40}{ROA Technical Summary\relax }{section*.184}{}}
\newlabel{features/roa/technical_summary:fantastico.roa.query_parser_operations.QueryParserOperationBinaryLe}{{3.5.7}{40}{ROA Technical Summary\relax }{section*.185}{}}
\newlabel{features/roa/technical_summary:fantastico.roa.query_parser_operations.QueryParserOperationBinaryLe.get_token}{{3.5.7}{40}{ROA Technical Summary\relax }{section*.186}{}}
\newlabel{features/roa/technical_summary:fantastico.roa.query_parser_operations.QueryParserOperationBinaryIn}{{3.5.7}{40}{ROA Technical Summary\relax }{section*.187}{}}
\newlabel{features/roa/technical_summary:fantastico.roa.query_parser_operations.QueryParserOperationBinaryIn.get_token}{{3.5.7}{40}{ROA Technical Summary\relax }{section*.188}{}}
\newlabel{features/roa/technical_summary:fantastico.roa.query_parser_operations.QueryParserOperationBinaryLike}{{3.5.7}{40}{ROA Technical Summary\relax }{section*.189}{}}
\newlabel{features/roa/technical_summary:fantastico.roa.query_parser_operations.QueryParserOperationBinaryLike.get_token}{{3.5.7}{40}{ROA Technical Summary\relax }{section*.190}{}}
\newlabel{features/roa/technical_summary:fantastico.roa.query_parser_operations.QueryParserOperationCompound}{{3.5.7}{41}{ROA Technical Summary\relax }{section*.191}{}}
\newlabel{features/roa/technical_summary:fantastico.roa.query_parser_operations.QueryParserOperationCompound.build_filter}{{3.5.7}{41}{ROA Technical Summary\relax }{section*.192}{}}
\newlabel{features/roa/technical_summary:fantastico.roa.query_parser_operations.QueryParserOperationCompound.get_grammar_rules}{{3.5.7}{41}{ROA Technical Summary\relax }{section*.193}{}}
\newlabel{features/roa/technical_summary:fantastico.roa.query_parser_operations.QueryParserOperationCompound.get_grammar_table}{{3.5.7}{41}{ROA Technical Summary\relax }{section*.194}{}}
\newlabel{features/roa/technical_summary:fantastico.roa.query_parser_operations.QueryParserOperationCompound.validate}{{3.5.7}{41}{ROA Technical Summary\relax }{section*.195}{}}
\newlabel{features/roa/technical_summary:fantastico.roa.query_parser_operations.QueryParserOperationOr}{{3.5.7}{41}{ROA Technical Summary\relax }{section*.196}{}}
\newlabel{features/roa/technical_summary:fantastico.roa.query_parser_operations.QueryParserOperationOr.get_token}{{3.5.7}{41}{ROA Technical Summary\relax }{section*.197}{}}
\newlabel{features/roa/technical_summary:fantastico.roa.query_parser_operations.QueryParserOperationAnd}{{3.5.7}{41}{ROA Technical Summary\relax }{section*.198}{}}
\newlabel{features/roa/technical_summary:fantastico.roa.query_parser_operations.QueryParserOperationAnd.get_token}{{3.5.7}{41}{ROA Technical Summary\relax }{section*.199}{}}
\newlabel{features/roa/technical_summary:fantastico.roa.query_parser_operations.QueryParserOperationSort}{{3.5.7}{41}{ROA Technical Summary\relax }{section*.200}{}}
\newlabel{features/roa/technical_summary:fantastico.roa.query_parser_operations.QueryParserOperationSort.build_filter}{{3.5.7}{41}{ROA Technical Summary\relax }{section*.201}{}}
\newlabel{features/roa/technical_summary:fantastico.roa.query_parser_operations.QueryParserOperationSort.get_grammar_rules}{{3.5.7}{41}{ROA Technical Summary\relax }{section*.202}{}}
\newlabel{features/roa/technical_summary:fantastico.roa.query_parser_operations.QueryParserOperationSort.get_grammar_table}{{3.5.7}{41}{ROA Technical Summary\relax }{section*.203}{}}
\newlabel{features/roa/technical_summary:fantastico.roa.query_parser_operations.QueryParserOperationSort.validate}{{3.5.7}{41}{ROA Technical Summary\relax }{section*.204}{}}
\newlabel{features/roa/technical_summary:fantastico.roa.query_parser_operations.QueryParserOperationSortAsc}{{3.5.7}{41}{ROA Technical Summary\relax }{section*.205}{}}
\newlabel{features/roa/technical_summary:fantastico.roa.query_parser_operations.QueryParserOperationSortAsc.get_token}{{3.5.7}{41}{ROA Technical Summary\relax }{section*.206}{}}
\newlabel{features/roa/technical_summary:fantastico.roa.query_parser_operations.QueryParserOperationSortDesc}{{3.5.7}{41}{ROA Technical Summary\relax }{section*.207}{}}
\newlabel{features/roa/technical_summary:fantastico.roa.query_parser_operations.QueryParserOperationSortDesc.get_token}{{3.5.7}{41}{ROA Technical Summary\relax }{section*.208}{}}
\newlabel{features/roa/technical_summary:fantastico.roa.resource_json_serializer.ResourceJsonSerializer}{{3.5.7}{41}{ROA Technical Summary\relax }{section*.209}{}}
\newlabel{features/roa/technical_summary:fantastico.roa.resource_json_serializer.ResourceJsonSerializer.deserialize}{{3.5.7}{42}{ROA Technical Summary\relax }{section*.210}{}}
\newlabel{features/roa/technical_summary:fantastico.roa.resource_json_serializer.ResourceJsonSerializer.serialize}{{3.5.7}{42}{ROA Technical Summary\relax }{section*.211}{}}
\@writefile{toc}{\contentsline {paragraph}{Exceptions}{42}{paragraph*.212}}
\newlabel{features/roa/technical_summary:exceptions}{{3.5.7}{42}{Exceptions\relax }{paragraph*.212}{}}
\newlabel{features/roa/technical_summary:fantastico.roa.roa_exceptions.FantasticoRoaError}{{3.5.7}{42}{Exceptions\relax }{section*.213}{}}
\newlabel{features/roa/technical_summary:fantastico.roa.roa_exceptions.FantasticoRoaDuplicateError}{{3.5.7}{42}{Exceptions\relax }{section*.214}{}}
\newlabel{features/roa/technical_summary:fantastico.roa.query_parser_exceptions.QueryParserOperationInvalidError}{{3.5.7}{42}{Exceptions\relax }{section*.215}{}}
\newlabel{features/roa/technical_summary:fantastico.roa.resource_json_serializer_exceptions.ResourceJsonSerializerError}{{3.5.7}{42}{Exceptions\relax }{section*.216}{}}
\@writefile{toc}{\contentsline {paragraph}{API generic controller}{42}{paragraph*.217}}
\newlabel{features/roa/technical_summary:api-generic-controller}{{3.5.7}{42}{API generic controller\relax }{paragraph*.217}{}}
\newlabel{features/roa/technical_summary:fantastico.roa.resource_validator.ResourceValidator}{{3.5.7}{42}{API generic controller\relax }{section*.218}{}}
\newlabel{features/roa/technical_summary:fantastico.roa.resource_validator.ResourceValidator.validate}{{3.5.7}{43}{API generic controller\relax }{section*.219}{}}
\newlabel{features/roa/technical_summary:fantastico.contrib.roa_discovery.roa_controller.RoaController}{{3.5.7}{43}{API generic controller\relax }{section*.220}{}}
\newlabel{features/roa/technical_summary:fantastico.contrib.roa_discovery.roa_controller.RoaController.create_item}{{3.5.7}{43}{API generic controller\relax }{section*.221}{}}
\newlabel{features/roa/technical_summary:fantastico.contrib.roa_discovery.roa_controller.RoaController.create_item_latest}{{3.5.7}{44}{API generic controller\relax }{section*.222}{}}
\newlabel{features/roa/technical_summary:fantastico.contrib.roa_discovery.roa_controller.RoaController.delete_item}{{3.5.7}{44}{API generic controller\relax }{section*.223}{}}
\newlabel{features/roa/technical_summary:fantastico.contrib.roa_discovery.roa_controller.RoaController.delete_item_latest}{{3.5.7}{44}{API generic controller\relax }{section*.224}{}}
\newlabel{features/roa/technical_summary:fantastico.contrib.roa_discovery.roa_controller.RoaController.get_collection}{{3.5.7}{44}{API generic controller\relax }{section*.225}{}}
\newlabel{features/roa/technical_summary:fantastico.contrib.roa_discovery.roa_controller.RoaController.get_collection_latest}{{3.5.7}{44}{API generic controller\relax }{section*.226}{}}
\newlabel{features/roa/technical_summary:fantastico.contrib.roa_discovery.roa_controller.RoaController.get_item}{{3.5.7}{44}{API generic controller\relax }{section*.227}{}}
\newlabel{features/roa/technical_summary:fantastico.contrib.roa_discovery.roa_controller.RoaController.get_item_latest}{{3.5.7}{45}{API generic controller\relax }{section*.228}{}}
\newlabel{features/roa/technical_summary:fantastico.contrib.roa_discovery.roa_controller.RoaController.handle_resource_options}{{3.5.7}{45}{API generic controller\relax }{section*.229}{}}
\newlabel{features/roa/technical_summary:fantastico.contrib.roa_discovery.roa_controller.RoaController.handle_resource_options_latest}{{3.5.7}{45}{API generic controller\relax }{section*.230}{}}
\newlabel{features/roa/technical_summary:fantastico.contrib.roa_discovery.roa_controller.RoaController.update_item}{{3.5.7}{45}{API generic controller\relax }{section*.231}{}}
\newlabel{features/roa/technical_summary:fantastico.contrib.roa_discovery.roa_controller.RoaController.update_item_latest}{{3.5.7}{45}{API generic controller\relax }{section*.232}{}}
\@writefile{toc}{\contentsline {paragraph}{API error responses}{45}{paragraph*.233}}
\newlabel{features/roa/technical_summary:api-error-responses}{{3.5.7}{45}{API error responses\relax }{paragraph*.233}{}}
\@writefile{toc}{\contentsline {subparagraph}{10000 - Resource Collection Not Found}{45}{subparagraph*.234}}
\newlabel{features/roa/errors/error_10000:resource-collection-not-found}{{3.5.7}{45}{10000 - Resource Collection Not Found\relax }{subparagraph*.234}{}}
\newlabel{features/roa/errors/error_10000::doc}{{3.5.7}{45}{10000 - Resource Collection Not Found\relax }{subparagraph*.234}{}}
\@writefile{toc}{\contentsline {subparagraph}{10010 - Resource Invalid}{45}{subparagraph*.235}}
\newlabel{features/roa/errors/error_10010::doc}{{3.5.7}{45}{10010 - Resource Invalid\relax }{subparagraph*.235}{}}
\newlabel{features/roa/errors/error_10010:resource-invalid}{{3.5.7}{45}{10010 - Resource Invalid\relax }{subparagraph*.235}{}}
\@writefile{toc}{\contentsline {subparagraph}{10020 - No body given}{46}{subparagraph*.236}}
\newlabel{features/roa/errors/error_10020::doc}{{3.5.7}{46}{10020 - No body given\relax }{subparagraph*.236}{}}
\newlabel{features/roa/errors/error_10020:no-body-given}{{3.5.7}{46}{10020 - No body given\relax }{subparagraph*.236}{}}
\@writefile{toc}{\contentsline {subparagraph}{10030 - Unexpected database error}{46}{subparagraph*.237}}
\newlabel{features/roa/errors/error_10030:unexpected-database-error}{{3.5.7}{46}{10030 - Unexpected database error\relax }{subparagraph*.237}{}}
\newlabel{features/roa/errors/error_10030::doc}{{3.5.7}{46}{10030 - Unexpected database error\relax }{subparagraph*.237}{}}
\@writefile{toc}{\contentsline {subparagraph}{10040 - Resource item not found}{46}{subparagraph*.238}}
\newlabel{features/roa/errors/error_10040:resource-item-not-found}{{3.5.7}{46}{10040 - Resource item not found\relax }{subparagraph*.238}{}}
\newlabel{features/roa/errors/error_10040::doc}{{3.5.7}{46}{10040 - Resource item not found\relax }{subparagraph*.238}{}}
\@writefile{toc}{\contentsline {section}{\numberline {3.6}OAUTH2}{46}{section.3.6}}
\newlabel{features/oauth2:oauth2}{{3.6}{46}{OAUTH2\relax }{section.3.6}{}}
\newlabel{features/oauth2::doc}{{3.6}{46}{OAUTH2\relax }{section.3.6}{}}
\@writefile{toc}{\contentsline {subsection}{\numberline {3.6.1}Fantastico security}{46}{subsection.3.6.1}}
\newlabel{features/oauth2:fantastico-security}{{3.6.1}{46}{Fantastico security\relax }{subsection.3.6.1}{}}
\@writefile{toc}{\contentsline {subsubsection}{Example (Simple Menu API)}{47}{subsubsection*.239}}
\newlabel{features/oauth2/simple_api_example::doc}{{3.6.1}{47}{Example (Simple Menu API)\relax }{subsubsection*.239}{}}
\newlabel{features/oauth2/simple_api_example:example-simple-menu-api}{{3.6.1}{47}{Example (Simple Menu API)\relax }{subsubsection*.239}{}}
\@writefile{toc}{\contentsline {paragraph}{Terminology}{47}{paragraph*.240}}
\newlabel{features/oauth2/simple_api_example:terminology}{{3.6.1}{47}{Terminology\relax }{paragraph*.240}{}}
\@writefile{toc}{\contentsline {paragraph}{Display all menus}{47}{paragraph*.241}}
\newlabel{features/oauth2/simple_api_example:display-all-menus}{{3.6.1}{47}{Display all menus\relax }{paragraph*.241}{}}
\@writefile{toc}{\contentsline {paragraph}{Create a new menu}{48}{paragraph*.242}}
\newlabel{features/oauth2/simple_api_example:create-a-new-menu}{{3.6.1}{48}{Create a new menu\relax }{paragraph*.242}{}}
\newlabel{features/oauth2/simple_api_example:oauth-create-new-menu}{{3.6.1}{48}{Create a new menu\relax }{paragraph*.242}{}}
\@writefile{toc}{\contentsline {paragraph}{Update an existing menu}{48}{paragraph*.243}}
\newlabel{features/oauth2/simple_api_example:update-an-existing-menu}{{3.6.1}{48}{Update an existing menu\relax }{paragraph*.243}{}}
\@writefile{toc}{\contentsline {paragraph}{Delete an existing menu}{48}{paragraph*.244}}
\newlabel{features/oauth2/simple_api_example:delete-an-existing-menu}{{3.6.1}{48}{Delete an existing menu\relax }{paragraph*.244}{}}
\@writefile{toc}{\contentsline {paragraph}{Cautions}{48}{paragraph*.245}}
\newlabel{features/oauth2/simple_api_example:cautions}{{3.6.1}{48}{Cautions\relax }{paragraph*.245}{}}
\@writefile{toc}{\contentsline {subsubsection}{OAUTH2 Fantastico Tokens}{48}{subsubsection*.246}}
\newlabel{features/oauth2/tokens_format:oauth2-fantastico-tokens}{{3.6.1}{48}{OAUTH2 Fantastico Tokens\relax }{subsubsection*.246}{}}
\newlabel{features/oauth2/tokens_format::doc}{{3.6.1}{48}{OAUTH2 Fantastico Tokens\relax }{subsubsection*.246}{}}
\@writefile{toc}{\contentsline {paragraph}{Authorization code structure}{49}{paragraph*.247}}
\newlabel{features/oauth2/tokens_format:authorization-code-structure}{{3.6.1}{49}{Authorization code structure\relax }{paragraph*.247}{}}
\@writefile{toc}{\contentsline {paragraph}{Access token structure}{49}{paragraph*.248}}
\newlabel{features/oauth2/tokens_format:access-token-structure}{{3.6.1}{49}{Access token structure\relax }{paragraph*.248}{}}
\@writefile{toc}{\contentsline {paragraph}{Obtaining access tokens}{50}{paragraph*.249}}
\newlabel{features/oauth2/tokens_format:obtaining-access-tokens}{{3.6.1}{50}{Obtaining access tokens\relax }{paragraph*.249}{}}
\@writefile{toc}{\contentsline {subsubsection}{OAUTH2 Fantastico Tokens Storage}{51}{subsubsection*.250}}
\newlabel{features/oauth2/tokens_storage::doc}{{3.6.1}{51}{OAUTH2 Fantastico Tokens Storage\relax }{subsubsection*.250}{}}
\newlabel{features/oauth2/tokens_storage:oauth2-fantastico-tokens-storage}{{3.6.1}{51}{OAUTH2 Fantastico Tokens Storage\relax }{subsubsection*.250}{}}
\@writefile{toc}{\contentsline {paragraph}{Relational storage}{51}{paragraph*.251}}
\newlabel{features/oauth2/tokens_storage:relational-storage}{{3.6.1}{51}{Relational storage\relax }{paragraph*.251}{}}
\@writefile{toc}{\contentsline {subparagraph}{Clients registration}{51}{subparagraph*.252}}
\newlabel{features/oauth2/tokens_storage:clients-registration}{{3.6.1}{51}{Clients registration\relax }{subparagraph*.252}{}}
\@writefile{toc}{\contentsline {paragraph}{NoSQL}{51}{paragraph*.253}}
\newlabel{features/oauth2/tokens_storage:nosql}{{3.6.1}{51}{NoSQL\relax }{paragraph*.253}{}}
\@writefile{toc}{\contentsline {subsubsection}{OAUTH2 Fantastico Error Responses}{52}{subsubsection*.254}}
\newlabel{features/oauth2/error_responses::doc}{{3.6.1}{52}{OAUTH2 Fantastico Error Responses\relax }{subsubsection*.254}{}}
\newlabel{features/oauth2/error_responses:oauth2-fantastico-error-responses}{{3.6.1}{52}{OAUTH2 Fantastico Error Responses\relax }{subsubsection*.254}{}}
\@writefile{toc}{\contentsline {paragraph}{/authorize}{52}{paragraph*.255}}
\newlabel{features/oauth2/error_responses:authorize}{{3.6.1}{52}{/authorize\relax }{paragraph*.255}{}}
\@writefile{toc}{\contentsline {subsubsection}{OAUTH2 Fantastico IDP}{53}{subsubsection*.256}}
\newlabel{features/oauth2/compatible_idp:oauth2-fantastico-idp}{{3.6.1}{53}{OAUTH2 Fantastico IDP\relax }{subsubsection*.256}{}}
\newlabel{features/oauth2/compatible_idp::doc}{{3.6.1}{53}{OAUTH2 Fantastico IDP\relax }{subsubsection*.256}{}}
\@writefile{toc}{\contentsline {paragraph}{Endpoints}{53}{paragraph*.257}}
\newlabel{features/oauth2/compatible_idp:endpoints}{{3.6.1}{53}{Endpoints\relax }{paragraph*.257}{}}
\@writefile{toc}{\contentsline {subparagraph}{/authenticate}{53}{subparagraph*.258}}
\newlabel{features/oauth2/compatible_idp:authenticate}{{3.6.1}{53}{/authenticate\relax }{subparagraph*.258}{}}
\@writefile{toc}{\contentsline {subparagraph}{/consent}{53}{subparagraph*.259}}
\newlabel{features/oauth2/compatible_idp:consent}{{3.6.1}{53}{/consent\relax }{subparagraph*.259}{}}
\@writefile{toc}{\contentsline {subparagraph}{/profile}{53}{subparagraph*.260}}
\newlabel{features/oauth2/compatible_idp:profile}{{3.6.1}{53}{/profile\relax }{subparagraph*.260}{}}
\@writefile{toc}{\contentsline {subsubsection}{ROA OAUTH2 Security}{54}{subsubsection*.261}}
\newlabel{features/oauth2/roa_security::doc}{{3.6.1}{54}{ROA OAUTH2 Security\relax }{subsubsection*.261}{}}
\newlabel{features/oauth2/roa_security:roa-oauth2-security}{{3.6.1}{54}{ROA OAUTH2 Security\relax }{subsubsection*.261}{}}
\@writefile{toc}{\contentsline {section}{\numberline {3.7}SDK}{54}{section.3.7}}
\newlabel{features/sdk::doc}{{3.7}{54}{SDK\relax }{section.3.7}{}}
\newlabel{features/sdk:sdk}{{3.7}{54}{SDK\relax }{section.3.7}{}}
\@writefile{toc}{\contentsline {subsection}{\numberline {3.7.1}Intro}{54}{subsection.3.7.1}}
\newlabel{features/sdk:intro}{{3.7.1}{54}{Intro\relax }{subsection.3.7.1}{}}
\@writefile{toc}{\contentsline {subsection}{\numberline {3.7.2}Usage}{54}{subsection.3.7.2}}
\newlabel{features/sdk:usage}{{3.7.2}{54}{Usage\relax }{subsection.3.7.2}{}}
\@writefile{toc}{\contentsline {subsection}{\numberline {3.7.3}Supported commands}{55}{subsection.3.7.3}}
\newlabel{features/sdk:supported-commands}{{3.7.3}{55}{Supported commands\relax }{subsection.3.7.3}{}}
\@writefile{toc}{\contentsline {subsubsection}{Activate extension command}{55}{subsubsection*.262}}
\newlabel{features/sdk/command_activate_extension::doc}{{3.7.3}{55}{Activate extension command\relax }{subsubsection*.262}{}}
\newlabel{features/sdk/command_activate_extension:activate-extension-command}{{3.7.3}{55}{Activate extension command\relax }{subsubsection*.262}{}}
\newlabel{features/sdk/command_activate_extension:fantastico.sdk.commands.command_activate_extension.SdkCommandActivateExtension}{{3.7.3}{55}{Activate extension command\relax }{section*.263}{}}
\newlabel{features/sdk/command_activate_extension:fantastico.sdk.commands.command_activate_extension.SdkCommandActivateExtension.exec}{{3.7.3}{55}{Activate extension command\relax }{section*.264}{}}
\newlabel{features/sdk/command_activate_extension:fantastico.sdk.commands.command_activate_extension.SdkCommandActivateExtension.get_arguments}{{3.7.3}{55}{Activate extension command\relax }{section*.265}{}}
\newlabel{features/sdk/command_activate_extension:fantastico.sdk.commands.command_activate_extension.SdkCommandActivateExtension.get_help}{{3.7.3}{55}{Activate extension command\relax }{section*.266}{}}
\@writefile{toc}{\contentsline {subsubsection}{Fantastico command}{55}{subsubsection*.267}}
\newlabel{features/sdk/command_fantastico:fantastico-command}{{3.7.3}{55}{Fantastico command\relax }{subsubsection*.267}{}}
\newlabel{features/sdk/command_fantastico::doc}{{3.7.3}{55}{Fantastico command\relax }{subsubsection*.267}{}}
\@writefile{toc}{\contentsline {subsubsection}{Syncdb command}{55}{subsubsection*.268}}
\newlabel{features/sdk/command_syncdb::doc}{{3.7.3}{55}{Syncdb command\relax }{subsubsection*.268}{}}
\newlabel{features/sdk/command_syncdb:syncdb-command}{{3.7.3}{55}{Syncdb command\relax }{subsubsection*.268}{}}
\newlabel{features/sdk/command_syncdb:fantastico.sdk.commands.command_syncdb.SdkCommandSyncDb}{{3.7.3}{55}{Syncdb command\relax }{section*.269}{}}
\newlabel{features/sdk/command_syncdb:fantastico.sdk.commands.command_syncdb.SdkCommandSyncDb.exec}{{3.7.3}{56}{Syncdb command\relax }{section*.270}{}}
\newlabel{features/sdk/command_syncdb:fantastico.sdk.commands.command_syncdb.SdkCommandSyncDb.get_arguments}{{3.7.3}{56}{Syncdb command\relax }{section*.271}{}}
\newlabel{features/sdk/command_syncdb:fantastico.sdk.commands.command_syncdb.SdkCommandSyncDb.get_help}{{3.7.3}{56}{Syncdb command\relax }{section*.272}{}}
\@writefile{toc}{\contentsline {subsubsection}{Version command}{56}{subsubsection*.273}}
\newlabel{features/sdk/command_version::doc}{{3.7.3}{56}{Version command\relax }{subsubsection*.273}{}}
\newlabel{features/sdk/command_version:version-command}{{3.7.3}{56}{Version command\relax }{subsubsection*.273}{}}
\newlabel{features/sdk/command_version:fantastico.sdk.commands.command_version.SdkCommandVersion}{{3.7.3}{56}{Version command\relax }{section*.274}{}}
\newlabel{features/sdk/command_version:fantastico.sdk.commands.command_version.SdkCommandVersion.exec}{{3.7.3}{56}{Version command\relax }{section*.275}{}}
\newlabel{features/sdk/command_version:fantastico.sdk.commands.command_version.SdkCommandVersion.get_help}{{3.7.3}{56}{Version command\relax }{section*.276}{}}
\@writefile{toc}{\contentsline {subsection}{\numberline {3.7.4}Technical summary}{57}{subsection.3.7.4}}
\newlabel{features/sdk:technical-summary}{{3.7.4}{57}{Technical summary\relax }{subsection.3.7.4}{}}
\newlabel{features/sdk:fantastico.sdk.fantastico.SdkCore}{{3.7.4}{57}{Technical summary\relax }{section*.277}{}}
\newlabel{features/sdk:fantastico.sdk.fantastico.SdkCore.exec}{{3.7.4}{57}{Technical summary\relax }{section*.278}{}}
\newlabel{features/sdk:fantastico.sdk.fantastico.SdkCore.get_arguments}{{3.7.4}{57}{Technical summary\relax }{section*.279}{}}
\newlabel{features/sdk:fantastico.sdk.fantastico.SdkCore.get_help}{{3.7.4}{57}{Technical summary\relax }{section*.280}{}}
\newlabel{features/sdk:fantastico.sdk.sdk_core.SdkCommandsRegistry}{{3.7.4}{57}{Technical summary\relax }{section*.281}{}}
\newlabel{features/sdk:fantastico.sdk.sdk_core.SdkCommandsRegistry.add_command}{{3.7.4}{57}{Technical summary\relax }{section*.282}{}}
\newlabel{features/sdk:fantastico.sdk.sdk_core.SdkCommandsRegistry.get_command}{{3.7.4}{58}{Technical summary\relax }{section*.283}{}}
\newlabel{features/sdk:fantastico.sdk.sdk_core.SdkCommandArgument}{{3.7.4}{58}{Technical summary\relax }{section*.284}{}}
\newlabel{features/sdk:fantastico.sdk.sdk_core.SdkCommandArgument.help}{{3.7.4}{58}{Technical summary\relax }{section*.285}{}}
\newlabel{features/sdk:fantastico.sdk.sdk_core.SdkCommandArgument.name}{{3.7.4}{58}{Technical summary\relax }{section*.286}{}}
\newlabel{features/sdk:fantastico.sdk.sdk_core.SdkCommandArgument.short_name}{{3.7.4}{58}{Technical summary\relax }{section*.287}{}}
\newlabel{features/sdk:fantastico.sdk.sdk_core.SdkCommandArgument.type}{{3.7.4}{58}{Technical summary\relax }{section*.288}{}}
\newlabel{features/sdk:fantastico.sdk.sdk_core.SdkCommand}{{3.7.4}{58}{Technical summary\relax }{section*.289}{}}
\newlabel{features/sdk:fantastico.sdk.sdk_core.SdkCommand.exec}{{3.7.4}{58}{Technical summary\relax }{section*.290}{}}
\newlabel{features/sdk:fantastico.sdk.sdk_core.SdkCommand.exec_command}{{3.7.4}{58}{Technical summary\relax }{section*.291}{}}
\newlabel{features/sdk:fantastico.sdk.sdk_core.SdkCommand.get_arguments}{{3.7.4}{59}{Technical summary\relax }{section*.292}{}}
\newlabel{features/sdk:fantastico.sdk.sdk_decorators.SdkCommand}{{3.7.4}{59}{Technical summary\relax }{section*.293}{}}
\newlabel{features/sdk:fantastico.sdk.sdk_exceptions.FantasticoSdkError}{{3.7.4}{59}{Technical summary\relax }{section*.294}{}}
\newlabel{features/sdk:fantastico.sdk.sdk_exceptions.FantasticoSdkCommandError}{{3.7.4}{59}{Technical summary\relax }{section*.295}{}}
\newlabel{features/sdk:fantastico.sdk.sdk_exceptions.FantasticoSdkCommandNotFoundError}{{3.7.4}{59}{Technical summary\relax }{section*.296}{}}
\@writefile{toc}{\contentsline {section}{\numberline {3.8}Component model}{59}{section.3.8}}
\newlabel{features/component_model::doc}{{3.8}{59}{Component model\relax }{section.3.8}{}}
\newlabel{features/component_model:component-model}{{3.8}{59}{Component model\relax }{section.3.8}{}}
\@writefile{toc}{\contentsline {subsection}{\numberline {3.8.1}Static folder}{60}{subsection.3.8.1}}
\newlabel{features/component_model:static-folder}{{3.8.1}{60}{Static folder\relax }{subsection.3.8.1}{}}
\@writefile{toc}{\contentsline {subsection}{\numberline {3.8.2}Sql folder}{60}{subsection.3.8.2}}
\newlabel{features/component_model:sql-folder}{{3.8.2}{60}{Sql folder\relax }{subsection.3.8.2}{}}
\@writefile{toc}{\contentsline {subsubsection}{Sql folder example}{60}{subsubsection*.297}}
\newlabel{features/component_model:sql-folder-example}{{3.8.2}{60}{Sql folder example\relax }{subsubsection*.297}{}}
\@writefile{toc}{\contentsline {section}{\numberline {3.9}Component reusage}{61}{section.3.9}}
\newlabel{features/component_reusage::doc}{{3.9}{61}{Component reusage\relax }{section.3.9}{}}
\newlabel{features/component_reusage:component-reusage}{{3.9}{61}{Component reusage\relax }{section.3.9}{}}
\newlabel{features/component_reusage:fantastico.rendering.component.Component}{{3.9}{61}{Component reusage\relax }{section*.298}{}}
\newlabel{features/component_reusage:fantastico.rendering.component.Component.parse}{{3.9}{62}{Component reusage\relax }{section*.299}{}}
\newlabel{features/component_reusage:fantastico.rendering.component.Component.render}{{3.9}{62}{Component reusage\relax }{section*.300}{}}
\@writefile{toc}{\contentsline {section}{\numberline {3.10}Built in components}{63}{section.3.10}}
\newlabel{features/components_builtin::doc}{{3.10}{63}{Built in components\relax }{section.3.10}{}}
\newlabel{features/components_builtin:built-in-components}{{3.10}{63}{Built in components\relax }{section.3.10}{}}
\@writefile{toc}{\contentsline {subsection}{\numberline {3.10.1}Dynamic menu}{63}{subsection.3.10.1}}
\newlabel{features/components/dynamic_menu/dynamic_menu::doc}{{3.10.1}{63}{Dynamic menu\relax }{subsection.3.10.1}{}}
\newlabel{features/components/dynamic_menu/dynamic_menu:dynamic-menu}{{3.10.1}{63}{Dynamic menu\relax }{subsection.3.10.1}{}}
\@writefile{toc}{\contentsline {subsubsection}{Integration}{63}{subsubsection*.301}}
\newlabel{features/components/dynamic_menu/dynamic_menu:integration}{{3.10.1}{63}{Integration\relax }{subsubsection*.301}{}}
\@writefile{toc}{\contentsline {paragraph}{Component files activation deprecated}{63}{paragraph*.302}}
\newlabel{features/components/dynamic_menu/dynamic_menu:component-files-activation-deprecated}{{3.10.1}{63}{Component files activation deprecated\relax }{paragraph*.302}{}}
\@writefile{toc}{\contentsline {paragraph}{Component files activation (SDK)}{63}{paragraph*.303}}
\newlabel{features/components/dynamic_menu/dynamic_menu:component-files-activation-sdk}{{3.10.1}{63}{Component files activation (SDK)\relax }{paragraph*.303}{}}
\@writefile{toc}{\contentsline {paragraph}{Component sample + db data}{63}{paragraph*.304}}
\newlabel{features/components/dynamic_menu/dynamic_menu:component-sample-db-data}{{3.10.1}{63}{Component sample + db data\relax }{paragraph*.304}{}}
\@writefile{toc}{\contentsline {subsubsection}{Current limitations}{64}{subsubsection*.305}}
\newlabel{features/components/dynamic_menu/dynamic_menu:current-limitations}{{3.10.1}{64}{Current limitations\relax }{subsubsection*.305}{}}
\@writefile{toc}{\contentsline {subsubsection}{Technical summary}{64}{subsubsection*.306}}
\newlabel{features/components/dynamic_menu/dynamic_menu:technical-summary}{{3.10.1}{64}{Technical summary\relax }{subsubsection*.306}{}}
\newlabel{features/components/dynamic_menu/dynamic_menu:fantastico.contrib.dynamic_menu.menu_controller.DynamicMenuController}{{3.10.1}{64}{Technical summary\relax }{section*.307}{}}
\newlabel{features/components/dynamic_menu/dynamic_menu:fantastico.contrib.dynamic_menu.menu_controller.DynamicMenuController.max_items}{{3.10.1}{64}{Technical summary\relax }{section*.308}{}}
\newlabel{features/components/dynamic_menu/dynamic_menu:fantastico.contrib.dynamic_menu.menu_controller.DynamicMenuController.retrieve_menu_items}{{3.10.1}{64}{Technical summary\relax }{section*.309}{}}
\newlabel{features/components/dynamic_menu/dynamic_menu:fantastico.contrib.dynamic_menu.menu_exceptions.FantasticoMenuNotFoundException}{{3.10.1}{65}{Technical summary\relax }{section*.310}{}}
\@writefile{toc}{\contentsline {subsection}{\numberline {3.10.2}Dynamic pages}{65}{subsection.3.10.2}}
\newlabel{features/components/dynamic_pages/dynamic_pages:dynamic-pages}{{3.10.2}{65}{Dynamic pages\relax }{subsection.3.10.2}{}}
\newlabel{features/components/dynamic_pages/dynamic_pages::doc}{{3.10.2}{65}{Dynamic pages\relax }{subsection.3.10.2}{}}
\@writefile{toc}{\contentsline {subsubsection}{Integration}{65}{subsubsection*.311}}
\newlabel{features/components/dynamic_pages/dynamic_pages:integration}{{3.10.2}{65}{Integration\relax }{subsubsection*.311}{}}
\@writefile{toc}{\contentsline {subsubsection}{Current limitations}{66}{subsubsection*.312}}
\newlabel{features/components/dynamic_pages/dynamic_pages:current-limitations}{{3.10.2}{66}{Current limitations\relax }{subsubsection*.312}{}}
\@writefile{toc}{\contentsline {subsubsection}{Technical summary}{66}{subsubsection*.313}}
\newlabel{features/components/dynamic_pages/dynamic_pages:technical-summary}{{3.10.2}{66}{Technical summary\relax }{subsubsection*.313}{}}
\newlabel{features/components/dynamic_pages/dynamic_pages:fantastico.contrib.dynamic_pages.pages_router.PagesRouter}{{3.10.2}{66}{Technical summary\relax }{section*.314}{}}
\newlabel{features/components/dynamic_pages/dynamic_pages:fantastico.contrib.dynamic_pages.pages_router.PagesRouter.serve_dynamic_page}{{3.10.2}{67}{Technical summary\relax }{section*.315}{}}
\newlabel{features/components/dynamic_pages/dynamic_pages:fantastico.contrib.dynamic_pages.models.pages.DynamicPage}{{3.10.2}{67}{Technical summary\relax }{section*.316}{}}
\newlabel{features/components/dynamic_pages/dynamic_pages:fantastico.contrib.dynamic_pages.models.pages.DynamicPageModel}{{3.10.2}{67}{Technical summary\relax }{section*.317}{}}
\@writefile{toc}{\contentsline {subsection}{\numberline {3.10.3}Tracking codes}{68}{subsection.3.10.3}}
\newlabel{features/components/tracking_codes/tracking_codes:tracking-codes}{{3.10.3}{68}{Tracking codes\relax }{subsection.3.10.3}{}}
\newlabel{features/components/tracking_codes/tracking_codes::doc}{{3.10.3}{68}{Tracking codes\relax }{subsection.3.10.3}{}}
\@writefile{toc}{\contentsline {subsubsection}{Analytic solutions}{68}{subsubsection*.318}}
\newlabel{features/components/tracking_codes/tracking_codes:analytic-solutions}{{3.10.3}{68}{Analytic solutions\relax }{subsubsection*.318}{}}
\@writefile{toc}{\contentsline {subsubsection}{Integration}{68}{subsubsection*.319}}
\newlabel{features/components/tracking_codes/tracking_codes:integration}{{3.10.3}{68}{Integration\relax }{subsubsection*.319}{}}
\@writefile{toc}{\contentsline {subsubsection}{Current limitations}{69}{subsubsection*.320}}
\newlabel{features/components/tracking_codes/tracking_codes:current-limitations}{{3.10.3}{69}{Current limitations\relax }{subsubsection*.320}{}}
\@writefile{toc}{\contentsline {subsubsection}{Technical summary}{69}{subsubsection*.321}}
\newlabel{features/components/tracking_codes/tracking_codes:technical-summary}{{3.10.3}{69}{Technical summary\relax }{subsubsection*.321}{}}
\newlabel{features/components/tracking_codes/tracking_codes:fantastico.contrib.tracking_codes.tracking_controller.TrackingController}{{3.10.3}{69}{Technical summary\relax }{section*.322}{}}
\newlabel{features/components/tracking_codes/tracking_codes:fantastico.contrib.tracking_codes.tracking_controller.TrackingController.list_codes}{{3.10.3}{69}{Technical summary\relax }{section*.323}{}}
\newlabel{features/components/tracking_codes/tracking_codes:fantastico.contrib.tracking_codes.tracking_controller.TrackingController.list_codes_ui}{{3.10.3}{69}{Technical summary\relax }{section*.324}{}}
\newlabel{features/components/tracking_codes/tracking_codes:fantastico.contrib.tracking_codes.models.codes.TrackingCode}{{3.10.3}{69}{Technical summary\relax }{section*.325}{}}
\@writefile{toc}{\contentsline {subsection}{\numberline {3.10.4}ROA Auto discovery}{69}{subsection.3.10.4}}
\newlabel{features/components/roa_discovery/roa_discovery::doc}{{3.10.4}{69}{ROA Auto discovery\relax }{subsection.3.10.4}{}}
\newlabel{features/components/roa_discovery/roa_discovery:roa-auto-discovery}{{3.10.4}{69}{ROA Auto discovery\relax }{subsection.3.10.4}{}}
\@writefile{toc}{\contentsline {subsubsection}{Integration}{70}{subsubsection*.326}}
\newlabel{features/components/roa_discovery/roa_discovery:integration}{{3.10.4}{70}{Integration\relax }{subsubsection*.326}{}}
\@writefile{toc}{\contentsline {subsubsection}{Current limitations}{70}{subsubsection*.327}}
\newlabel{features/components/roa_discovery/roa_discovery:current-limitations}{{3.10.4}{70}{Current limitations\relax }{subsubsection*.327}{}}
\@writefile{toc}{\contentsline {subsubsection}{Technical summary}{70}{subsubsection*.328}}
\newlabel{features/components/roa_discovery/roa_discovery:technical-summary}{{3.10.4}{70}{Technical summary\relax }{subsubsection*.328}{}}
\newlabel{features/components/roa_discovery/roa_discovery:fantastico.contrib.roa_discovery.discovery_controller.RoaDiscoveryController}{{3.10.4}{70}{Technical summary\relax }{section*.329}{}}
\newlabel{features/components/roa_discovery/roa_discovery:fantastico.contrib.roa_discovery.discovery_controller.RoaDiscoveryController.list_registered_resources}{{3.10.4}{70}{Technical summary\relax }{section*.330}{}}
\@writefile{toc}{\contentsline {chapter}{\numberline {4}How to articles}{71}{chapter.4}}
\@writefile{lof}{\addvspace {10\p@ }}
\@writefile{lot}{\addvspace {10\p@ }}
\newlabel{how_to/how_to:how-to-articles}{{4}{71}{How to articles\relax }{chapter.4}{}}
\newlabel{how_to/how_to::doc}{{4}{71}{How to articles\relax }{chapter.4}{}}
\@writefile{toc}{\contentsline {section}{\numberline {4.1}MVC How to}{71}{section.4.1}}
\newlabel{how_to/mvc_how_to::doc}{{4.1}{71}{MVC How to\relax }{section.4.1}{}}
\newlabel{how_to/mvc_how_to:mvc-how-to}{{4.1}{71}{MVC How to\relax }{section.4.1}{}}
\@writefile{toc}{\contentsline {subsection}{\numberline {4.1.1}Code the model}{71}{subsection.4.1.1}}
\newlabel{how_to/mvc_how_to:code-the-model}{{4.1.1}{71}{Code the model\relax }{subsection.4.1.1}{}}
\@writefile{toc}{\contentsline {subsection}{\numberline {4.1.2}Code the controller}{71}{subsection.4.1.2}}
\newlabel{how_to/mvc_how_to:code-the-controller}{{4.1.2}{71}{Code the controller\relax }{subsection.4.1.2}{}}
\@writefile{toc}{\contentsline {subsection}{\numberline {4.1.3}Code the view}{72}{subsection.4.1.3}}
\newlabel{how_to/mvc_how_to:code-the-view}{{4.1.3}{72}{Code the view\relax }{subsection.4.1.3}{}}
\@writefile{toc}{\contentsline {subsection}{\numberline {4.1.4}Test your application}{72}{subsection.4.1.4}}
\newlabel{how_to/mvc_how_to:test-your-application}{{4.1.4}{72}{Test your application\relax }{subsection.4.1.4}{}}
\@writefile{toc}{\contentsline {section}{\numberline {4.2}Deployment how to}{72}{section.4.2}}
\newlabel{how_to/deployment_how_to::doc}{{4.2}{72}{Deployment how to\relax }{section.4.2}{}}
\newlabel{how_to/deployment_how_to:deployment-how-to}{{4.2}{72}{Deployment how to\relax }{section.4.2}{}}
\@writefile{toc}{\contentsline {subsection}{\numberline {4.2.1}Low usage (simplest scenario)}{73}{subsection.4.2.1}}
\newlabel{how_to/deployment/low_usage_scenario::doc}{{4.2.1}{73}{Low usage (simplest scenario)\relax }{subsection.4.2.1}{}}
\newlabel{how_to/deployment/low_usage_scenario:low-usage-simplest-scenario}{{4.2.1}{73}{Low usage (simplest scenario)\relax }{subsection.4.2.1}{}}
\@writefile{toc}{\contentsline {subsubsection}{Setup}{74}{subsubsection*.331}}
\newlabel{how_to/deployment/low_usage_scenario:setup}{{4.2.1}{74}{Setup\relax }{subsubsection*.331}{}}
\@writefile{toc}{\contentsline {subsection}{\numberline {4.2.2}Low usage AWS}{74}{subsection.4.2.2}}
\newlabel{how_to/deployment/aws_low_usage_scenario:low-usage-aws}{{4.2.2}{74}{Low usage AWS\relax }{subsection.4.2.2}{}}
\newlabel{how_to/deployment/aws_low_usage_scenario::doc}{{4.2.2}{74}{Low usage AWS\relax }{subsection.4.2.2}{}}
\@writefile{toc}{\contentsline {subsubsection}{Setup}{75}{subsubsection*.332}}
\newlabel{how_to/deployment/aws_low_usage_scenario:setup}{{4.2.2}{75}{Setup\relax }{subsubsection*.332}{}}
\@writefile{toc}{\contentsline {subsubsection}{Optimization}{75}{subsubsection*.333}}
\newlabel{how_to/deployment/aws_low_usage_scenario:optimization}{{4.2.2}{75}{Optimization\relax }{subsubsection*.333}{}}
\@writefile{toc}{\contentsline {subsubsection}{Setup with S3}{76}{subsubsection*.334}}
\newlabel{how_to/deployment/aws_low_usage_scenario:setup-with-s3}{{4.2.2}{76}{Setup with S3\relax }{subsubsection*.334}{}}
\@writefile{toc}{\contentsline {section}{\numberline {4.3}Static assets}{76}{section.4.3}}
\newlabel{how_to/static_assets:static-assets}{{4.3}{76}{Static assets\relax }{section.4.3}{}}
\newlabel{how_to/static_assets::doc}{{4.3}{76}{Static assets\relax }{section.4.3}{}}
\@writefile{toc}{\contentsline {subsection}{\numberline {4.3.1}Static assets on dev}{76}{subsection.4.3.1}}
\newlabel{how_to/static_assets:static-assets-on-dev}{{4.3.1}{76}{Static assets on dev\relax }{subsection.4.3.1}{}}
\@writefile{toc}{\contentsline {subsubsection}{Favicon}{77}{subsubsection*.335}}
\newlabel{how_to/static_assets:favicon}{{4.3.1}{77}{Favicon\relax }{subsubsection*.335}{}}
\@writefile{toc}{\contentsline {subsection}{\numberline {4.3.2}Static assets on prod}{77}{subsection.4.3.2}}
\newlabel{how_to/static_assets:static-assets-on-prod}{{4.3.2}{77}{Static assets on prod\relax }{subsection.4.3.2}{}}
\@writefile{toc}{\contentsline {section}{\numberline {4.4}Creating a new project}{77}{section.4.4}}
\newlabel{how_to/new_project_how_to:creating-a-new-project}{{4.4}{77}{Creating a new project\relax }{section.4.4}{}}
\newlabel{how_to/new_project_how_to::doc}{{4.4}{77}{Creating a new project\relax }{section.4.4}{}}
\@writefile{toc}{\contentsline {subsection}{\numberline {4.4.1}Create first component}{77}{subsection.4.4.1}}
\newlabel{how_to/new_project_how_to:create-first-component}{{4.4.1}{77}{Create first component\relax }{subsection.4.4.1}{}}
\@writefile{toc}{\contentsline {subsection}{\numberline {4.4.2}Customize dev server}{78}{subsection.4.4.2}}
\newlabel{how_to/new_project_how_to:customize-dev-server}{{4.4.2}{78}{Customize dev server\relax }{subsection.4.4.2}{}}
\@writefile{toc}{\contentsline {subsection}{\numberline {4.4.3}Customize uwsgi prod server}{78}{subsection.4.4.3}}
\newlabel{how_to/new_project_how_to:customize-uwsgi-prod-server}{{4.4.3}{78}{Customize uwsgi prod server\relax }{subsection.4.4.3}{}}
\@writefile{toc}{\contentsline {chapter}{\numberline {5}Changes}{79}{chapter.5}}
\@writefile{lof}{\addvspace {10\p@ }}
\@writefile{lot}{\addvspace {10\p@ }}
\newlabel{changes:changes}{{5}{79}{Changes\relax }{chapter.5}{}}
\newlabel{changes::doc}{{5}{79}{Changes\relax }{chapter.5}{}}
\@writefile{toc}{\contentsline {section}{\numberline {5.1}Feedback}{79}{section.5.1}}
\newlabel{changes:feedback}{{5.1}{79}{Feedback\relax }{section.5.1}{}}
\@writefile{toc}{\contentsline {section}{\numberline {5.2}Versions}{79}{section.5.2}}
\newlabel{changes:versions}{{5.2}{79}{Versions\relax }{section.5.2}{}}
\@writefile{toc}{\contentsline {chapter}{\numberline {6}Provide feedback}{83}{chapter.6}}
\@writefile{lof}{\addvspace {10\p@ }}
\@writefile{lot}{\addvspace {10\p@ }}
\newlabel{index:provide-feedback}{{6}{83}{Provide feedback\relax }{chapter.6}{}}
\@writefile{toc}{\contentsline {chapter}{\numberline {7}Build status}{85}{chapter.7}}
\@writefile{lof}{\addvspace {10\p@ }}
\@writefile{lot}{\addvspace {10\p@ }}
\newlabel{index:build-status}{{7}{85}{Build status\relax }{chapter.7}{}}
\@writefile{toc}{\contentsline {chapter}{\numberline {8}License}{87}{chapter.8}}
\@writefile{lof}{\addvspace {10\p@ }}
\@writefile{lot}{\addvspace {10\p@ }}
\newlabel{index:license}{{8}{87}{License\relax }{chapter.8}{}}
\@writefile{toc}{\contentsline {chapter}{Index}{89}{section*.336}}
