From f93346d4b8f22500fef63d97fcf612b4a7c5c324 Mon Sep 17 00:00:00 2001 From: Massimo Di Pierro Date: Fri, 5 Jul 2024 21:41:50 -0700 Subject: [PATCH] MySendGridSender example --- apps/_documentation/static/en/.buildinfo | 2 +- .../static/en/_images/first_run.png | Bin 50011 -> 71622 bytes .../en/_static/documentation_options.js | 2 +- apps/_documentation/static/en/chapter-01.html | 8 +- apps/_documentation/static/en/chapter-02.html | 8 +- apps/_documentation/static/en/chapter-03.html | 17 +-- apps/_documentation/static/en/chapter-04.html | 8 +- apps/_documentation/static/en/chapter-05.html | 8 +- apps/_documentation/static/en/chapter-06.html | 71 ++++++++--- apps/_documentation/static/en/chapter-07.html | 113 +++++++++++------ apps/_documentation/static/en/chapter-08.html | 8 +- apps/_documentation/static/en/chapter-09.html | 8 +- apps/_documentation/static/en/chapter-10.html | 8 +- apps/_documentation/static/en/chapter-11.html | 8 +- apps/_documentation/static/en/chapter-12.html | 50 ++++---- apps/_documentation/static/en/chapter-13.html | 36 ++++-- apps/_documentation/static/en/chapter-14.html | 41 ++++++- apps/_documentation/static/en/chapter-15.html | 8 +- apps/_documentation/static/en/chapter-16.html | 81 +++++++++++-- apps/_documentation/static/en/genindex.html | 8 +- apps/_documentation/static/en/index.html | 11 +- apps/_documentation/static/en/objects.inv | Bin 8295 -> 8376 bytes apps/_documentation/static/en/search.html | 8 +- apps/_documentation/static/en/searchindex.js | 2 +- apps/_documentation/static/pt/.buildinfo | 2 +- .../static/pt/_images/first_run.png | Bin 50011 -> 71622 bytes .../pt/_static/documentation_options.js | 2 +- apps/_documentation/static/pt/chapter-01.html | 8 +- apps/_documentation/static/pt/chapter-02.html | 8 +- apps/_documentation/static/pt/chapter-03.html | 18 +-- apps/_documentation/static/pt/chapter-04.html | 8 +- apps/_documentation/static/pt/chapter-05.html | 8 +- apps/_documentation/static/pt/chapter-06.html | 74 +++++++++--- apps/_documentation/static/pt/chapter-07.html | 114 +++++++++++++----- apps/_documentation/static/pt/chapter-08.html | 8 +- apps/_documentation/static/pt/chapter-09.html | 8 +- apps/_documentation/static/pt/chapter-10.html | 8 +- apps/_documentation/static/pt/chapter-11.html | 8 +- apps/_documentation/static/pt/chapter-12.html | 50 ++++---- apps/_documentation/static/pt/chapter-13.html | 36 ++++-- apps/_documentation/static/pt/chapter-14.html | 41 ++++++- apps/_documentation/static/pt/chapter-15.html | 8 +- apps/_documentation/static/pt/chapter-16.html | 81 +++++++++++-- apps/_documentation/static/pt/genindex.html | 8 +- apps/_documentation/static/pt/index.html | 11 +- apps/_documentation/static/pt/objects.inv | Bin 9367 -> 9447 bytes apps/_documentation/static/pt/search.html | 8 +- apps/_documentation/static/pt/searchindex.js | 2 +- docs/chapter-16.rst | 44 ++++--- docs/locales/pt/LC_MESSAGES/chapter-07.mo | Bin 231439 -> 231435 bytes 50 files changed, 745 insertions(+), 332 deletions(-) diff --git a/apps/_documentation/static/en/.buildinfo b/apps/_documentation/static/en/.buildinfo index 2dc9ba75f..3c38c71f5 100644 --- a/apps/_documentation/static/en/.buildinfo +++ b/apps/_documentation/static/en/.buildinfo @@ -1,4 +1,4 @@ # Sphinx build info version 1 # This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done. -config: 44b3435943ab4835c7a6a204b6a121fa +config: d62c19ebef7c157f7809c434c3c4b977 tags: 645f666f9bcd5a90fca523b33c5a78b7 diff --git a/apps/_documentation/static/en/_images/first_run.png b/apps/_documentation/static/en/_images/first_run.png index 59320040c3446c4d150c43530ba8538181412322..a670f0150cfc926381758be98c43a9645118de4a 100644 GIT binary patch literal 71622 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

MMXPa)i4{=@dWHlL>V6ak4YNn5u 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 lmV<7HgcM5m|M%r3;df2c5Yp - What is py4web? — py4web 1.20240530.2 documentation + What is py4web? — py4web 20240630 documentation @@ -18,7 +18,7 @@ - + @@ -42,7 +42,7 @@

- 1.20240530.2 + 20240630
@@ -258,7 +258,7 @@

Acknowledgments - v: 1.20240530.2 + v: 20240630
diff --git a/apps/_documentation/static/en/chapter-02.html b/apps/_documentation/static/en/chapter-02.html index 8bd56302d..8679751dd 100644 --- a/apps/_documentation/static/en/chapter-02.html +++ b/apps/_documentation/static/en/chapter-02.html @@ -4,7 +4,7 @@ - Help, resources and hints — py4web 1.20240530.2 documentation + Help, resources and hints — py4web 20240630 documentation @@ -18,7 +18,7 @@ - + @@ -42,7 +42,7 @@
- 1.20240530.2 + 20240630
@@ -273,7 +273,7 @@

How to contribute - v: 1.20240530.2 + v: 20240630
diff --git a/apps/_documentation/static/en/chapter-03.html b/apps/_documentation/static/en/chapter-03.html index 89c09c798..440c3f1e8 100644 --- a/apps/_documentation/static/en/chapter-03.html +++ b/apps/_documentation/static/en/chapter-03.html @@ -4,7 +4,7 @@ - Installation and Startup — py4web 1.20240530.2 documentation + Installation and Startup — py4web 20240630 documentation @@ -18,7 +18,7 @@ - + @@ -43,7 +43,7 @@
- 1.20240530.2 + 20240630
@@ -313,7 +313,7 @@

Upgrading
py4web setup apps
+
py4web setup <path to apps_folder>
 

in order to re-install them. This is a safety precaution, in case you @@ -344,7 +344,7 @@

First run
http://localhost:8000
 http://localhost:8000/_dashboard
 http://localhost:8000/{yourappname}/index
@@ -423,7 +423,7 @@ 

Command line optionsCommand line options

The app_names option lets you filter which specific apps you want to serve (comma separated). If absent or empty all the apps in the APPS_FOLDER will be run.

+

By default (for security reasons) the py4web framework will listen only on 127.0.0.1, i.e. localhost. +If you need to reach it from other machines you must specify the host option, +like py4web run --host 0.0.0.0 apps.

The url_prefix option is useful for routing at the py4web level. It allows mapping to multiple versions of py4web running on different ports as long as the url_prefix and port match the location. For example py4web run --url_prefix=/abracadabra --port 8000 apps.

@@ -730,7 +733,7 @@

Deployment on Ubuntu - v: 1.20240530.2 + v: 20240630
diff --git a/apps/_documentation/static/en/chapter-04.html b/apps/_documentation/static/en/chapter-04.html index f15f6be9b..55c73de16 100644 --- a/apps/_documentation/static/en/chapter-04.html +++ b/apps/_documentation/static/en/chapter-04.html @@ -4,7 +4,7 @@ - The Dashboard — py4web 1.20240530.2 documentation + The Dashboard — py4web 20240630 documentation @@ -18,7 +18,7 @@ - + @@ -42,7 +42,7 @@
- 1.20240530.2 + 20240630
@@ -200,7 +200,7 @@

Login into the Dashboard - v: 1.20240530.2 + v: 20240630
diff --git a/apps/_documentation/static/en/chapter-05.html b/apps/_documentation/static/en/chapter-05.html index f08a49d17..ebef44ebd 100644 --- a/apps/_documentation/static/en/chapter-05.html +++ b/apps/_documentation/static/en/chapter-05.html @@ -4,7 +4,7 @@ - Creating an app — py4web 1.20240530.2 documentation + Creating an app — py4web 20240630 documentation @@ -18,7 +18,7 @@ - + @@ -42,7 +42,7 @@
- 1.20240530.2 + 20240630
@@ -502,7 +502,7 @@

Watch for files change - v: 1.20240530.2 + v: 20240630
diff --git a/apps/_documentation/static/en/chapter-06.html b/apps/_documentation/static/en/chapter-06.html index be87ec930..f6b913271 100644 --- a/apps/_documentation/static/en/chapter-06.html +++ b/apps/_documentation/static/en/chapter-06.html @@ -4,7 +4,7 @@ - Fixtures — py4web 1.20240530.2 documentation + Fixtures — py4web 20240630 documentation @@ -18,7 +18,7 @@ - + @@ -42,7 +42,7 @@
- 1.20240530.2 + 20240630
@@ -140,7 +140,8 @@

Fixtures

PY4WEB fixtures provide a mechanism to specify what an action needs so that py4web can accomplish the required tasks (and skip non required ones) in the most efficient manner. Fixtures make the code efficient and -reduce the need for boilerplate code.

+reduce the need for boilerplate code. Think of fixtures as per action +(as opposed to per app) middleware.

PY4WEB fixtures are similar to WSGI middleware and BottlePy plugin except that they apply to individual actions, not to all of them, and can depend on each other.

@@ -238,7 +239,8 @@

The Template fixtureThe Inject fixture

The Inject fixture is used for passing variables (and even python functions) to templates. Here is a simple example:

-
my_var = "Example variable to be passed to a Template"
+
from py4web.utils.factories import Inject
+my_var = "Example variable to be passed to a Template"
 
 ...
 
@@ -288,6 +290,22 @@ 

The Translator fixturereturn str(T("You have been here {n} times").format(n=counter))

+

If the T fixture is to be used from inside a template you may want to pass it to the template:

+
@action('index')
+@action.uses("index.html", session, T)
+def index():
+    return dict(T=T)
+
+
+

Or perahps inject (same effect as above)

+
from py4web.utils.factories import Inject
+
+@action('index')
+@action.uses("index.html", session, Inject(T=T)
+def index():
+    return dict()
+
+

Now create the following translation file translations/en.json:

{"You have been here {n} times":
   {
@@ -326,6 +344,23 @@ 

The Translator fixture

Set your browser preference to Italian: now the messages will be automatically translated to Italian.

+

Notice there is UI for creating, updating, and updating translation files. +The UI is accessing via a button from the Dashboard.

+

If you want to force an action to use language defined somewhere else, for example from a session variable, you can do:

+
@action('index')
+@action.uses("index.html", session, T)
+def index():
+    T.select(session.get("lang", "it"))
+    return dict(T=T)
+
+
+

If you want all of your action to use the same pre-defined language and ignore browser preferences, +you have to redefine the select method for the T instance:

+
T.on_request = lambda *_: T.local.__dict__.update(tag="it", language=T.languages["it"])
+
+
+

This is to be done outside any action and will apply to all actions. Action will still need todeclare +action.uses(T) else the behavior is undefined.

The Flash fixture

@@ -455,11 +490,14 @@

The Session fixture

By default the session object is stored inside a cookie called appname_session. It’s a JWT, hence encoded in a URL-friendly string -format and signed using the provided secret for preventing tampering. -Notice that it’s not encrypted (in fact it’s quite trivial to read its -content from http communications or from disk), so do not place any -sensitive information inside, and use a complex secret. -If the secret changes existing sessions are invalidated. +format and signed using the provided secret for preventing tampering.

+
+

Warning

+

Data embedded in cookies is signed, not encrypted! In fact it’s quite +trivial to read its content from http communications or from disk, so +do not place any sensitive information inside, and use a complex secret.

+
+

If the secret changes existing sessions are invalidated. If the user switches from HTTP to HTTPS or vice versa, the user session is also invalidated. Session in cookies have a small size limit (4 kbytes after being serialized and encoded) so do @@ -568,7 +606,7 @@

Sharing sessions

The Condition fixture

-

Some times you want to restrict access to an action based on a +

Sometimes you want to restrict access to an action based on a given condition. For example to enforce a workflow:

@action("step1")
 @action.uses(session)
@@ -606,9 +644,10 @@ 

The Condition fixture
Condition(cond, on_false=lambda: redirect(URL('step1')))
 

-

You can use condition to check permissions. For example, assuming you are using -Tags as explained in chapter 13 and you are giving group memberships to users, -then you can require that users action have specific group membership:

+

You can use condition to check permissions. For example, if you +are giving group memberships to users using Tags (it will be explained +later on the Authorization using Tags chapter), then you can +require that users action have specific group membership:

groups = Tags(db.auth_user)
 
 def requires_membership(group_name):
@@ -708,7 +747,7 @@ 

The Auth fixtureauth_user table is defined before calling auth.enable() -the provided table withh be used.

+the provided table will be used.

It is also possible to add extra_fields to the auth_user table, for example:

extra_fields = [
@@ -1006,7 +1045,7 @@ 

Convenience Decorators - v: 1.20240530.2 + v: 20240630
diff --git a/apps/_documentation/static/en/chapter-07.html b/apps/_documentation/static/en/chapter-07.html index e1298d599..ba319af1c 100644 --- a/apps/_documentation/static/en/chapter-07.html +++ b/apps/_documentation/static/en/chapter-07.html @@ -4,7 +4,7 @@ - The Database Abstraction Layer (DAL) — py4web 1.20240530.2 documentation + The Database Abstraction Layer (DAL) — py4web 20240630 documentation @@ -18,7 +18,7 @@ - + @@ -42,7 +42,7 @@
- 1.20240530.2 + 20240630
@@ -69,6 +69,7 @@
  • Experiment with the py4web shell
  • +
  • Using the dashboard app with databases
  • DAL constructor
    • DAL signature
    • Connection strings (the uri parameter)
    • @@ -263,7 +264,7 @@

      The Database Abstraction Layer (DAL)

      DAL introduction

      -

      py4web rely on a database abstraction layer (DAL), an API that maps +

      py4web rely on a database abstraction layer (DAL), an API that maps Python objects into database objects such as queries, tables, and records. The DAL dynamically generates the SQL in real time using the specified dialect for the database back end, so that you do not have to @@ -273,6 +274,14 @@

      DAL introductionpyDAL. It was conceived in the web2py project but it’s a standard python module: you can use it in any Python context.

      +
      +

      Note

      +

      What makes pyDAL different from most of the other DALs is the syntax: it maps +records to python dictionaries, which is simpler and closer to SQL. +Other famous frameworks instead strictly rely on an Object Relational Mapping (ORM) +like the Django ORM or the SQL Alchemy ORM, that maps tables to Python classes +and rows to Objects.

      +

      A little taste of pyDAL features:

      • Transactions

      • @@ -304,7 +313,7 @@

        Supported databases

  • -
    Row

    contains field values.

    +
    Row

    contains field values:

    DAL constructor

    Basic use:

    @@ -611,7 +635,11 @@

    Connection strings (the uri parameter)
  • in SQLite the database consists of a single file. If it does -not exist, it is created. This file is locked every time it is accessed.

  • +not exist, it is created. This file is locked every time it is accessed. +In addition to the file ‘storage.sqlite’ that contains the data, there will +be also a sql.log file plus one additional file called longhash_tablename.table +for every table definition. The table definition files are used during migrations; +in case of problems they could be deleted (they’ll be automatically recreated).

  • in the case of MySQL, PostgreSQL, MSSQL, FireBird, Oracle, DB2, Ingres and Informix the database “test” must be created outside py4web. Once the connection is established, py4web will create, alter, and drop @@ -693,8 +721,8 @@

    Lazy Tables

    Model-less applications

    -

    In py4web the code defined outside of actions (where normally DAL tables -are defined) is only executed at startup.

    +

    Normally in py4web the code that define DAL tables lives in the file +models.py, hence it’s only executed at startup because it’s outside of actions.

    However, it is possible to define DAL tables on demand inside actions. This is referred to as “model-less” development by the py4web community.

    To use the “model-less” approach, you take responsibility for doing @@ -812,14 +840,20 @@

    Other DAL constructor parameters

    Database folder location

    folder sets the place where migration files will be created (see -Migrations for details). -It is also used for SQLite databases. Automatically set within py4web. -Set a path when using DAL outside py4web.

    +Migrations for details). By default it’s automatically set within py4web on the same +folder of the database itself, but you have to specify it when using DAL outside py4web.

    +

    Note that for SQLite databases it’s normally necessary, +otherwise you’ll implictly choose an in memory database (where folder and +migrations don’t have any sense). So these constructors have the same meaning:

    +
    db = DAL('sqlite://storage.sqlite') # folder parameter not specified
    +db = DAL('sqlite:memory')           # in memory database
    +
    +

  • Default migration settings

    The DAL constructor migration settings are booleans affecting defaults -and global behaviour.

    +and global behaviour (again, see Migrations for details)

    migrate = True sets default migrate behavior for all tables

    fake_migrate = False sets default fake_migrate behavior for all tables

    @@ -834,7 +868,7 @@

    commit

    If you pass db in an action.uses decorator, you don’t need to call -commit in the controller, it is done for you. (Also, if you use +commit in the controller, it is automatically done for you (also, if you use authenticated or unauthenticated decorator.)

    -

    It is internally implemented as a table, which in +

    Tags are hierarchical. Then find([“color”]) would return id1 and id2 +because both records have tags with “color”.

    +

    It is internally implemented with the creation of an additional table, which in this example would be db.thing_tags_default, because no tail was -specified on the Tags(table, tail=“default”) constructor.

    -

    The find method is doing a search by startswith of the -parameter. Then find([“color”]) would return id1 and id2 -because both records have tags starting with “color”. py4web uses tags as a -flexible mechanism to manage permissions.

    +specified on the Tags(table, tail=“default”) constructor.

    +

    py4web uses Tags as a flexible mechanism to manage permissions, we’ll see +all the details later on the Authorization using Tags chapter.

    @@ -2302,7 +2336,7 @@

    join, left

    cache, cacheable

    An example use which gives much faster selects is:

    -
    rows = db(query).select(cache=(cache.ram, 3600), cacheable=True)
    +
    rows = db(query).select(cache=(cache.get, 3600), cacheable=True)
     

    Look at Caching selects, to understand what the trade-offs are.

    @@ -2617,7 +2651,9 @@

    findCaching selects

    The select method also takes a cache argument, which defaults to None. For caching purposes, it should be set to a tuple where the first -element is the cache model (cache.ram, cache.disk, etc.), and +element is the cache function with signature (key, callback, expiration) +(ror example cache.get assuming cache +is an instance of the py4web cache object), and the second element is the expiration time in seconds.

    In the following example, you see a controller that caches a select on the previously defined db.log table. The actual select fetches data from @@ -2626,7 +2662,7 @@

    Caching selects
    def cache_db_select():
    -    logs = db().select(db.log.ALL, cache=(cache.ram, 60))
    +    logs = db().select(db.log.ALL, cache=(cache.get, 60))
         return dict(logs=logs)
     

    @@ -2644,7 +2680,7 @@

    Caching selectscache argument is used in conjunction with cacheable=True the entire Rows object is cached and this results in much faster caching:

    -
    rows = db(query).select(cache=(cache.ram, 3600), cacheable=True)
    +
    rows = db(query).select(cache=(cache.get, 3600), cacheable=True)
     

    @@ -3102,10 +3138,9 @@

    Many to many relationCurt

    -

    A lighter alternative to many-to-many relations is tagging, you can -found an example of this in the next section. Tagging works even on -database backends that do not support JOINs like the Google App Engine -NoSQL.

    +

    A lighter alternative to many-to-many relations is tagging, see the +Authorization using Tags chapter. Tagging works even on database backends +that do not support JOINs like the Google App Engine NoSQL.

    Self-Reference and aliases

    @@ -3648,7 +3683,7 @@

    HTML and XML (one Table at a time)TAG helper +tags, you can easily do that using the universal TAG XML helper that we’ll see later and the Python syntax *<iterable> allowed in function calls:

    >>> rows = db(db.person).select()
    @@ -3662,6 +3697,12 @@ 

    HTML and XML (one Table at a time)</result>

    +
    +

    Warning

    +

    Do not confuse the TAG XML helper used here (see the TAG +chapter) with the Tags method that will be extensively explained +on the Authorization using Tags chapter.

    +

    Data representation

    @@ -4534,7 +4575,7 @@

    Google NoSQL (Datastore) - v: 1.20240530.2 + v: 20240630
    diff --git a/apps/_documentation/static/en/chapter-08.html b/apps/_documentation/static/en/chapter-08.html index f77ccbbd7..cacfa16ca 100644 --- a/apps/_documentation/static/en/chapter-08.html +++ b/apps/_documentation/static/en/chapter-08.html @@ -4,7 +4,7 @@ - The RestAPI — py4web 1.20240530.2 documentation + The RestAPI — py4web 20240630 documentation @@ -18,7 +18,7 @@ - + @@ -42,7 +42,7 @@
    - 1.20240530.2 + 20240630
    @@ -1171,7 +1171,7 @@

    The RestAPI response - v: 1.20240530.2 + v: 20240630
    diff --git a/apps/_documentation/static/en/chapter-09.html b/apps/_documentation/static/en/chapter-09.html index d3cefbb98..20ac54aaf 100644 --- a/apps/_documentation/static/en/chapter-09.html +++ b/apps/_documentation/static/en/chapter-09.html @@ -4,7 +4,7 @@ - YATL Template Language — py4web 1.20240530.2 documentation + YATL Template Language — py4web 20240630 documentation @@ -18,7 +18,7 @@ - + @@ -42,7 +42,7 @@
    - 1.20240530.2 + 20240630
    @@ -762,7 +762,7 @@

    Mobile development - v: 1.20240530.2 + v: 20240630
    diff --git a/apps/_documentation/static/en/chapter-10.html b/apps/_documentation/static/en/chapter-10.html index d1721515b..9470a2993 100644 --- a/apps/_documentation/static/en/chapter-10.html +++ b/apps/_documentation/static/en/chapter-10.html @@ -4,7 +4,7 @@ - YATL helpers — py4web 1.20240530.2 documentation + YATL helpers — py4web 20240630 documentation @@ -18,7 +18,7 @@ - + @@ -42,7 +42,7 @@
    - 1.20240530.2 + 20240630
    @@ -872,7 +872,7 @@

    Using Inject - v: 1.20240530.2 + v: 20240630
    diff --git a/apps/_documentation/static/en/chapter-11.html b/apps/_documentation/static/en/chapter-11.html index 801b77379..620e182d8 100644 --- a/apps/_documentation/static/en/chapter-11.html +++ b/apps/_documentation/static/en/chapter-11.html @@ -4,7 +4,7 @@ - Internationalization — py4web 1.20240530.2 documentation + Internationalization — py4web 20240630 documentation @@ -18,7 +18,7 @@ - + @@ -42,7 +42,7 @@
    - 1.20240530.2 + 20240630
    @@ -220,7 +220,7 @@

    Update the translation files - v: 1.20240530.2 + v: 20240630
    diff --git a/apps/_documentation/static/en/chapter-12.html b/apps/_documentation/static/en/chapter-12.html index e0bf2ca31..0bff6522e 100644 --- a/apps/_documentation/static/en/chapter-12.html +++ b/apps/_documentation/static/en/chapter-12.html @@ -4,7 +4,7 @@ - Forms — py4web 1.20240530.2 documentation + Forms — py4web 20240630 documentation @@ -18,7 +18,7 @@ - + @@ -42,7 +42,7 @@
    - 1.20240530.2 + 20240630
    @@ -188,7 +188,7 @@

    FormsThe Form class provides a high-level API for quickly building CRUD (create, update and delete) forms, especially for working on an existing database table. It can generate and process a form from a list of desired fields and/or from an existing database table.

    -

    There are 3 typs of forms:

    +

    There are 3 types of forms:

    CRUD Create forms:

    @@ -1060,7 +1060,7 @@

    Sorted options

    IS_IN_SET and Tagging

    The IS_IN_SET validator has an optional attribute multiple=False. If set to True, multiple values can be stored in one -field. The field should be of type list:integer or list:string as discussed in [[Chapter 6 ../06#list-type-and-contains]]. +field. The field should be of type list:integer or list:string as discussed in list:<type> and contains. An explicit example of tagging is discussed there. We strongly suggest using the jQuery multiselect plugin to render multiple fields.

    Note that when multiple=True, IS_IN_SET will accept zero or more values, i.e. it will accept the field when nothing has been selected. multiple can also be a tuple of the form (a, b) where a and b are the minimum and (exclusive) maximum number of items @@ -1611,7 +1611,7 @@

    Validation functions - v: 1.20240530.2 + v: 20240630
    diff --git a/apps/_documentation/static/en/chapter-13.html b/apps/_documentation/static/en/chapter-13.html index 4741b79a5..24dc69f05 100644 --- a/apps/_documentation/static/en/chapter-13.html +++ b/apps/_documentation/static/en/chapter-13.html @@ -4,7 +4,7 @@ - Authentication and authorization — py4web 1.20240530.2 documentation + Authentication and authorization — py4web 20240630 documentation @@ -18,7 +18,7 @@ - + @@ -42,7 +42,7 @@
    - 1.20240530.2 + 20240630
    @@ -430,7 +430,8 @@

    OAuth2 with Discord

    As already mentioned, authorization is the process of verifying what specific applications, files, and data a user has access to. This is accomplished -in py4web using Tags.

    +in py4web using Tags, that we’ve already discovered on Tagging records +in the DAL chapter.

    Tags and Permissions

    Py4web provides a general purpose tagging @@ -449,12 +450,13 @@

    Tags and PermissionsTo use the tagging system you first need to import the Tags module from pydal.tools. Then create a Tags object to tag a table:

    from pydal.tools.tags import Tags
    -groups = Tags(db.auth_user)
    +groups = Tags(db.auth_user, 'groups')
     
    -

    If you look at the database level, a new table will be created with a -name equals to tagged_db + ‘_tag’ + tagged_name, in this case -auth_user_tag_groups:

    +

    The tail_name parameter is optional and if not specified the ‘default’ +value will be used. If you look at the database level, a new table will +be created with a name equals to tagged_db + '_tag_' + tail_name, +in this case auth_user_tag_groups:

    _images/tags_db.png

    Then you can add one or more tags to records of the table as well as remove existing tags:

    @@ -491,6 +493,22 @@

    Tags and Permissionsreturn {'users': users}

    +

    We’ve already seen a simple requires_membership fixture on :ref:The Condition fixture. It +enables the following syntax:

    +
    groups = Tags(db.auth_user)
    +
    +def requires_membership(group_name):
    +    return Condition(
    +       lambda: group_name in groups.get(auth.user_id),
    +       exception=HTTP(404)
    +    )
    +
    +@action('index')
    +@action.uses(requires_membership('teacher'))
    +def index():
    +    return 'hello teacher'
    +
    +

    We leave it to you as an exercise to create a fixture has_membership to enable the following syntax:

    @action('index')
    @@ -616,7 +634,7 @@ 

    User Impersonation - v: 1.20240530.2 + v: 20240630
    diff --git a/apps/_documentation/static/en/chapter-14.html b/apps/_documentation/static/en/chapter-14.html index 97d7217d1..3b834a34d 100644 --- a/apps/_documentation/static/en/chapter-14.html +++ b/apps/_documentation/static/en/chapter-14.html @@ -4,7 +4,7 @@ - Grid — py4web 1.20240530.2 documentation + Grid — py4web 20240630 documentation @@ -18,7 +18,7 @@ - + @@ -42,7 +42,7 @@
    - 1.20240530.2 + 20240630
    @@ -84,6 +84,7 @@
  • Reference Fields
  • +
  • Grids with checkboxes
  • From web2py to py4web
  • @@ -614,6 +615,38 @@

    Reference Fields +

    Grids with checkboxes

    +

    While the grid, per se, does not support checkboxes, you can use custom columns to add one or more columns of checboxes. +You can also add the helpers logic (the grid uses helpers to generate HTML) to wrap it in a <form> and add one +or more submit bottons. You can then add logic to process the selected rows when the button is selected. For example:

    +
    column = Column("select", lambda row: INPUT(_type="checkbox",_name="selected_id",_value=row.id))
    +
    +@action("manage")
    +@action("manage/<path:path>")
    +@action.uses("manage.html", db)
    +def manage(path=None):
    +
    +   grid = Grid(path, db.thing, columns=[column, db.thing.name])
    +
    +   # if we are displaying a "select" grid page (not a form)
    +   if not grid.form:
    +      grid = grid.render()
    +      # if checkboxes selection was submitted
    +      if request.method == "POST":
    +         # do something with the selected ids
    +         print("you selected", request.POST.get("selected_id"))
    +      # inject a ``<form>`` and a ``submit`` button
    +      grid.children[1:] = [FORM(
    +            *grid.children[1:],
    +            DIV(INPUT(_type="submit",_value="do it!")),
    +            _method="POST",
    +            _action=request.url)]
    +   return locals()
    +
    +
    +

    Notice in the above example request.POST.get("selected_id") can be a single ID (if one selected) or a list of IDs (if more than one elsected).

    + @@ -652,7 +685,7 @@

    Reference Fields - v: 1.20240530.2 + v: 20240630
    diff --git a/apps/_documentation/static/en/chapter-15.html b/apps/_documentation/static/en/chapter-15.html index bc0a01ff6..6577f6d7b 100644 --- a/apps/_documentation/static/en/chapter-15.html +++ b/apps/_documentation/static/en/chapter-15.html @@ -4,7 +4,7 @@ - From web2py to py4web — py4web 1.20240530.2 documentation + From web2py to py4web — py4web 20240630 documentation @@ -18,7 +18,7 @@ - + @@ -42,7 +42,7 @@
    - 1.20240530.2 + 20240630
    @@ -490,7 +490,7 @@

    “auth” example - v: 1.20240530.2 + v: 20240630
    diff --git a/apps/_documentation/static/en/chapter-16.html b/apps/_documentation/static/en/chapter-16.html index c396aa5ab..03884661d 100644 --- a/apps/_documentation/static/en/chapter-16.html +++ b/apps/_documentation/static/en/chapter-16.html @@ -4,7 +4,7 @@ - Advanced topics and examples — py4web 1.20240530.2 documentation + Advanced topics and examples — py4web 20240630 documentation @@ -18,7 +18,7 @@ - + @@ -41,7 +41,7 @@
    - 1.20240530.2 + 20240630
    @@ -70,6 +70,7 @@
  • From web2py to py4web
  • Advanced topics and examples
    • The scheduler
    • +
    • Sending messages using a background task
    • Celery
    • py4web and asyncio
    • htmx
        @@ -120,15 +121,15 @@

        The schedulertask_run and enqueueing runs of the predefined task as table records. -Each task_run references a task and contains the input to be passed to that task. The scheduler will caputure the +Each task_run references a task and contains the input to be passed to that task. The scheduler will capture the task stdout+stderr in a db.task_run.log and the task output in db.task_run.output.

        A py4web thread loops and finds the next task that needs to be executed. For each task it creates a worker process and assigns the task to the worker process. You can specify how many worker processes should run concurrently. The worker processes are daemons and they only live for the life of one task run. Each worker process is only responsible for executing that one task in isolation. The main loop is responsible for assigning tasks and timeouts.

        The system is very robust because the only source of truth is the database and its integrity is guaranteed by -transational safety. Even if py4web is killed, running tasks continue to run unless they complete, fail, or are -explicitely killed.

        +transactional safety. Even if py4web is killed, running tasks continue to run unless they complete, fail, or are +explicitly killed.

        Aside for allowing multiple concurrent task runs in execution on one node, it is also possible to run multiple instances of the scheduler on different computing nodes, as long as they use the same client/server database for task_run and as long as @@ -159,7 +160,7 @@

        The schedulerUSE_SCHEDULER=True in settings.py.

        You can manage your task runs busing the dashboard or using a Grid(path, db.task_run).

        -

        To prevent database locks (in particular with sqlite) we recommand:

        +

        To prevent database locks (in particular with sqlite) we recommend:

        • Use a different database for the scheduler and everything else

        • Always db.commit() as soon as possible after any insert/update/delete

        • @@ -174,11 +175,71 @@

          The scheduler +

          Sending messages using a background task

          +

          As en example of application of the above, +Consider the case of wanting to send emails asynchronously from a background task. +In this example we send them using SendGrid from Twilio (https://www.twilio.com/docs/sendgrid/for-developers/sending-email/quickstart-python) +Also we assume emails are represented by the following JSON structure

          +

          That means you need a new task:

          +
          import sendgrid
          +from sendgrid.helpers.mail import Mail, Email, To, Content
          +
          +def sendmail_task(from_addr, to_addrs, subject, body):
          +    ""
          +    # build the messages using sendgrid API
          +    from_email = Email(from_addr)  # Must be your verified sender
          +    content_type = "text/plain" if body[:6] != "<html>" else "text/html"
          +    content = Content(content_type, body)
          +    mail = Mail(from_email, To(to_addrs), subject, content)
          +    # ask sendgrid to deliver it
          +    sg = sendgrid.SendGridAPIClient(api_key=settings.SENDGRID_API_KEY)
          +    response = sg.client.mail.send.post(request_body=mail.get())
          +    # check if worked
          +    assert response.status_code == "200"
          +
          +# register the above task with the scheduler
          +scheduler.register_task("sendmail", sendmail_task)
          +
          +
          +

          To schedule sending a new email do:

          +
          email = {
          +    "from_addr": "me@example.com",
          +    "to_addrs": ["me@example.com"],
          +    "subject": "Hello World",
          +    "body": "I am alive!",
          +}
          +scheduler.enqueue_run(name="sendmail", inputs=email, scheduled_for=None)
          +
          +
          +

          The key:value in the email representation must match the arguments of the task. +The scheuled_for argument is optional and allows you to specify when the email should be sent. +You can use the Dashboard to see the status of your task_run``s for the task called ``sendmail.

          +

          You can also tell auth to tap into above mechanism for sending emails:

          +
          class MySendGridSender:
          +    def __init__(self, from_addr):
          +        self.from_addr = from_adds
          +    def send(self, to_addr, subject, body):
          +        email = {
          +            "from_addr": self.from_addr,
          +            "to_addrs": [to_addr],
          +            "subject": subject,
          +            "body": body,
          +        }
          +        scheduler.enqueue_run(name="sendmail", inputs=email)
          +
          +auth.sender = MySendGridSender(from_addr="me@example.com")
          +
          +
          +

          With the above, Auth will not send emails using smtplib. Instead it will send them with SendGrid using the scheduler. +Notice the only requirement here is that auth.sender must be an object with a send method with the same signature as in the example.

          +

          Notice, it it also possible to send SMS messages instead of emails but this requires 1) store the phone number in auth_user and 2) override the Auth.send method.

          +

          Celery

          Yes. You can use Celery instead of the build-in scheduler but it adds complexity and it is less robust. -Yet the build-in schduler is designed for long running tasks and the database can become a bottle neck -if you have hundrands running concurrently. Celery may work better if you have more than 100 concurrent +Yet the build-in scheduler is designed for long running tasks and the database can become a bottleneck +if you have hundreds of tasks running concurrently. Celery may work better if you have more than 100 concurrent tasks and/or they are short running tasks.

          @@ -827,7 +888,7 @@

          The T object - v: 1.20240530.2 + v: 20240630
          diff --git a/apps/_documentation/static/en/genindex.html b/apps/_documentation/static/en/genindex.html index 9fdaaef38..dd693313d 100644 --- a/apps/_documentation/static/en/genindex.html +++ b/apps/_documentation/static/en/genindex.html @@ -3,7 +3,7 @@ - Index — py4web 1.20240530.2 documentation + Index — py4web 20240630 documentation @@ -17,7 +17,7 @@ - + @@ -40,7 +40,7 @@
          - 1.20240530.2 + 20240630
          @@ -134,7 +134,7 @@

          Index

          - v: 1.20240530.2 + v: 20240630
          diff --git a/apps/_documentation/static/en/index.html b/apps/_documentation/static/en/index.html index ceb190f60..6908d7b17 100644 --- a/apps/_documentation/static/en/index.html +++ b/apps/_documentation/static/en/index.html @@ -4,7 +4,7 @@ - py4web: the reference Manual — py4web 1.20240530.2 documentation + py4web: the reference Manual — py4web 20240630 documentation @@ -18,7 +18,7 @@ - + @@ -41,7 +41,7 @@
          - 1.20240530.2 + 20240630
          @@ -154,6 +154,7 @@

          py4web: the reference ManualThe Database Abstraction Layer (DAL)
        • From web2py to py4web
            @@ -226,6 +228,7 @@

            py4web: the reference ManualAdvanced topics and examples
            • The scheduler
            • +
            • Sending messages using a background task
            • Celery
            • py4web and asyncio
            • htmx
            • @@ -279,7 +282,7 @@

              Indices and tables - v: 1.20240530.2 + v: 20240630
              diff --git a/apps/_documentation/static/en/objects.inv b/apps/_documentation/static/en/objects.inv index 97a9bb64e22aca774df72c2285c5268577f4744a..ddb1c35ea2002567c42e8d4d71ccfec8caa77e02 100644 GIT binary patch delta 8295 zcmV-tAei6hK)6AWItVf_GBhwYGcb`xKYz%ve#ftvs`$Z4Y4)tWUT5P<kp`zpn?tpr^a1XZZQ^T^!~` z{w4nWS>?szLmb|lSm`%v{t#{olj(2&{LMqLj{hKH%E||yKZpA;Z@y(rs75H3Y=7_4 zTd9U+=C@5tZL9qIm(ZFj*)%j-$NrH8adL!Zd(1{EZMLR74~+py1ww zWf3j6zKgJO>f_1ic6NUHD`Dd_S>?XQh?tU31jgz7(OpwsZcMh9j|zOo0Cg$fMk>H^r6@7A7`@;lInxA}stj7MZk=Xn)3QhAR5* zNXeH+ioZQl{53Ws+inW)?Li?mp8R@)&tqYh-+c2;W{NUPeEk??HA|{G3|XQl-vb2^ zb$tF43TNrYcNWvS5<_8!6y%z&VaMrlQd1jj>UOf%?;k+=7P z9Nax+#Tn`CS}3DVuP2uxkGAfE%FH~?zyg>}W^$7hVUPX&b43&untzeHh2$?ks7V(u zXnuIZPvYUNe10dN@8t7)`F!uYo`*O3;jMo7PCvZU58vyD_v+J|BlYPm{QD06y@P+> z!@u{a)P&yNgEH#V$>DEDgHoIeiz1@2N*clCX432K_r6vSrb?1)4S2d z%_kUdFHa`tVz#s9*<@xcjs4klYi0G*-6DYkjgStz#>{7 z+#tm4G-`H!+0`(VJ%F~(CM0GKT`xYUjSOiv@nn2{Il5@I(5%BK9>7R)NON*II=`@3 z@Hp<$Y!Dnhmo#IBn;Ap{6CwFh!nGCY5E2yCMM@+;-omxau7%`fGpH3HM&Ms=L_3U( zL+&SvA@KD4LVxbtGET$dkVis*#sfLMxE{?~j{~0CAU2Xi5_qHzo7^q#hhP)ExF_t@ z-SNjJ7KhLxT&<#HHH?SGV2iMvL^I=)jz2fWu*QL)FilTpE%<@$15if;fwrrK2R+Ux zX+F&JtDQ%=2^SEf;QL{~_X2#+z~AyT z8305v1pa+`eZ|1oB&*_K0F(t0d~tGhHv1%Sh~V$iCEKJSw+#V0U9xeadv|d@o!woZ zvXz=PXovIFh=d`1Hbd+S$r1Yc=M%9o;KI#^+!B&Q?B!@SmKy>-%AEv`UOdRMl|_!L z>lvHbihpOQbwD0xA&{qLC6Y3ZhuM3S6mx%ddvW2ceI71{yj>`U*y-q0-ljY*S3`gx zM!<{PGXWM^nhb)HAc1F->nni|9KG$xU5(o11`Pg!2ACuq#K8z{5lDA?17pN74Let( zig`1rHJGd>pBZbCP_NcrvQ~%*+Z# zY6&xoFe~!s2+az`pvj_kG*2NM0(aFWQ|QLvpS^Fa%YA}IO?ow})Ri`E6=|!3@29-u z2s%;`e=r!LS%-!YSKvp=;xQ!y1V@S(=-Tt*!(WT-#{A92zSRZ!nhuryU?aMI{i#?8IHnVr)}2+_L9?j_r|%F=RU58`MY z74~2O4=YOMk|KNvpCYtV__q+;K~oxt-+xlfXb_QE3T__GAN*IxgjyP-g;m=oXx6T+ z9NY~nf;u&-)1*m>$dM8*=+7*9q%7N!V!9)>dm%>(2>}F*@NOU_+_8=C7H<@$Y&UV4 zg>jW<2OVV`df#(~ajsn;iqCPrUCyC`G~TY$h4H2eouG1mAv`nQ3(1VSnVgU?C4Uqi z%@$J`IT!~@kinoCn^id9f}eXIo7~e5N1}y6V@it|v@ldcAJlZ89%#{*(qz)p$lE4c zoIZPv5#h+!MrrjU9v-Qwfd@Q+69HQEVQ-<8Q}z$U^6-iIHF#h&GWK(zh(=*e!gP#T zG(jU}nH*@L0MWKiaB9~w+@DBG8X1L+<+2QakmNc{25;V1Mf3-A`5Nb@H%bBoi|0fIb2)0 z=}=R4j5+y(Ie2=FFgyHsvV(sUdIuVmQPZ0d4l;SMjlI@}gw%BQE2S;+a(~S)b@(I$ z&DxG9>+q$@zwe)jbI-qAYaju4Ac4T;g%j}xuB}`jDfr?D90V}(@D(TJX{L_s%-uW= zbFW1qQB9(%2D2pG=0beE!kdt0x+2pB1pT9r7biz*Hi3V~M7Z+9R{+C+pcpbIOG0WU zv$BPG0k_b2C)KT-nw|VI8-GnsaEiSrmbRz|MbUFHBri`wAkUfkA}ahHh=kPad`2Cp z$fDKCWP?nE$g+i~1BqvgsqdG$*%XokhYzs#VH|ILsdNBqhEg_N3rzKrqEfGcEebV5 z!&-XX%Q9BC=w9+9D}=;%!xHQ)uW8bWQtfSmij(Jr1`^8DQv-@rnScLEAk^bH?}&Sd*NeCE&< zhb~gh9Fp25j?o}h(4wahJhg>dny@G{zj7AWPJGlRs8Ql`TbMjrC7w>5=>$^HD%C}hS6o0~+Z<8W?@f0l*pGbbJ!GilT zigDsVL3Fc$(bZG7DAL+We{8`6$_z<@2u+u-@({#yC9DZg{TI6V+N{&)_k9%aD+=nl z@Zwm&xJGix=NvHy(7C@|NNR=0O>odrYk7FVrY0IJI?NU3CD<3V-W1mZ(j|z~vY@GRx?tZ%}b}nlMs(<1ph+s$dRUvu*#Y`bv#SDyW8J z0xZ&b$3U%qeh3Q{NGXfQN}s(LJP2JU=>h zp5z7G+{*e+ak`+~RPcA5aDJ85?7^txFn_pDLoV>`-M8O&V!mh07~;u-JFp5jHBIk3 zQG7Smsk`;AZ*+?Px!y4A#ogyc7S8D!lb;MIf9#JJVX`X2m2u$CZXmtjuSu#Xy!~4x z{%xoHw>4ePKG`q3RlKp!9F7utoS=yxnZk(d0L&!glsAd0YFvFR#)AWNiBw7UD4ibFxejj6Hnm{m);OXc*T41g;r^qwH;4^)UyvDM^ zYQf^TX|dy8>HtQHdx)yQ0#Ih&SJ=+7oW&nEpn)BvVwxhOfhYG2RWeE;LR-YRgNC@V z-j%A9{jCI9ZDq#|XuuBHOH^!mX2;CSe+&<#AEbNzlDCds@H|^2cwNJfy(*{`5Q1@` z_frH$9-~^0#e5e>KvFJ1iS~###D-0q6tsoHC)_- z$p9lBCMh&2^Ih#`OGz7zcyJO876Bq&Tm0Cof?7c_AKZd}-sSUfxlH2)`Y3y}e_v^* zs1I(iMPcOt>9m9mzF;q;SJA6Jf5xU)(y_W$7J4~!lyr41XKU`K}TvuCguCXyW2V3uQ0DnnST?6?87 zOq@O%)*dT6Za{@8`khC{bZFWGP$FG#-T%&WYO5x0vzv>1kOy%Ll_+v zzBj>HA18j?Ca5TJsKFw`bUv`b#LOt|P{(`dDm`Dyw6OUtTD;poe-Q0x6g<};l4-U0 zW3P&;6+@kKr?v(--X#erHAQnCILI8p&bcjG+tXChNf#{4eaXuTIQ*r#D)<|ivvvPm zl!I!9(uA0{(Bn?xo9!6C-J|v?pQj7+HChGPt@NiUehE64VHp=v_9;~|LwXA1w8PbU z$X-gPZG&rE;&6-ke?Z?FWKx3wEr8=)5=RUVv4l5}t`KW(L-2CurdEW@C+>bXS?XPs zEV`LfOUW=3NO7(lAe(Dey$M!AN_K0?1FnL*V}EO?IV6mDTNOqF*(Of6I5mlR;zc@t zG}(V`(gj51{h@pX#H=s_wE&MBq{mEpL*KO&uI6zH&hG2*e=$_65E`UbX}Utk5By@2 zK;PTzNOrb^`83dJpwmo7b;L~8YTDVjQhzo&0rh9Begx`ISbeL-JRck;+h+(`%r_7@ zAJV=i8ngDT7Tu7*s7Bw?U*4BVQ68dG5KTR|bTYurGB6RDMUuTPN}3I&KIj%%d8}lO zgRLcTaJR3Pe{UW4sjAj?*@EHz{){O!l;nwR;L5@z4~IAz6-d`X$K7PXVw;5PXpVVJ zG8=h+XeZ(tEh&p13&GDoaD!(8^8#*QL=S?lomLXFedRhp&xQmR%{Q3VDYNNj^ofTa z^{1H|fTOiNBDct=n`OC%$08|=LcM!wQD?@f$lUi}e@`mWfHy}#7M@0Zg5J|tAJN!m z0b9nCvlZ-QA7QXGg-q;mg|m0J0g;Em6{OW^1)rqP0Y^iF9cd1R>f)zuf}kE?Q4-PP z#5B1H$2r6bce7PfBJ$C>pn{#O;Y(A-dl+%%_v<%o$jFvhQ+V1s`)jV+UIAE12l}7(WZZD;zqpLP~1Fr%iA$Ai{nnvsjb|%;y;`aqP9JlvK2mr!^RJv}c_5sIQYT z1dFBw(mi#xGKtAJGna+W3ip8N?H-l926>J0e`igK>5mu48YK(Us;aPO?HnQe8Hg*C zq{#Fd?I=X+nJ=>@J`bU^16jxBDup(v*T;^`YVltk^U_r@gsvuq2N8OW`WcG_RAbVc zqwXN%Ym&!tlH{8de`s=BtUYgHCo9P}Ddx z?T|fwtaY+1JewEl8q4`Wb=ah05XYc0e^QS6MHVeP1E{U6j;X%S1LQnf7D<>9R5CR%`*yG z1Ac*^8C&jn5pMbm$X}_8Q9_X{eLBcxe-}|u&8v`GoW{5~ckOi#s+k&rX$!mDM;HuEsl2K<@?f3b zW7cS4o=lu>dIl!(vRGc%GL6eNK}AVRc+&gd_AjTf_S?}SL|cfX zp4Etg_12r^fd06}yhcL7FxE)4iZx$X3HUJf+*#bihDch4o4U@Su7;@!y0^ahs$Fz+ zfLom^-cLs@WYd#ye?eeRM?@rcM5JEG7Ag*TRinkCi#lzPVgdSF&c!UEoR*~YK3fKG zO2-1OM-|C2pKA~=!@0Rn)5qb=4pFB*m6Hu_n<^X1Eb?_;PMrlQCDc2fdHR^jkslUxi`~F%X?5-X0FwB3m#C`415+&{7f9bk|CP=ez?pxILN?nsw zAiD_p{hPge6Mfb0NdF&O9qmdDYg)A-6J92j*|w{1mdcb?k2e;%<4`);gYu*pnjzLZfO6~>ck1z24;sCgwGcZI7FnqG@cneZ=cY?FDE z_NNhLa+-gogXOg);q9{ece7$ROIlz%Pq?N$;odBtaG=ZYFj_FZiAUPX6*oZOjpS*w z;X~Gr5Z>)LYvJ|2I`L`<2F*R$38#t7GRcZh+0?>2e?1|qI&0#SHUUzWaPVYQwa?T) zRqiEbkX!FMaWr3 z>7@qE91=hrUd84feHKy0`=Di)CO{S7cvGB@+g*8ySzJ5uNt+<3ri489V`2pnQiPjG zt@c#~f7#V=BB)VN)^Dn_lbIvfq;QG06o`v$@?ne?$tFdRRz(+WrIVJSVj`h`!-yS? z7FTT-;q>iL23cAbK2Hm7DM6}Iqo`K@h3paCt_BC2YLn?+Xh1BJ{`4HWp zm<&-ApQ>JVze_~K$+W#vzVb(4o;B!2NP5FBqs72P! zUvM$W{%yl;vn;4qfr6lEHyJ32m(@7K9Wjplrl5)A-YvK(el_W$1Z`Z;v^IH81!s0% z09WjzlS4{Zyc_LJ{ZzBX&#bM`u!nw(6x2rSL^_3i8fg}H;bNZSA(P`J#E2*{2^r9(_a^9 z?<-4dCp~S!gRVU!zhWy&xX_0*E9Pb4f6d%ZtzeKxWS(i+Det1@*^xY&wUF5b1$(-s{0is9AKEL|&(p0?ltFNFSv>m)owe-?>q z5ruAB-rHr=zI)*$1KA*XxWDcIHFtfwOHw1oZAiE-65q=qVf%M&RgQw3f+oduh@ybK zw88brve#-&eAXrq$|!-MGAeNMjv3ctu;c z+8==7*w?F%S4mmnSrZ)4gazGqf0M1FK8tQMKQv!K&$EV@S(=;bWKh_>Y?fux8z|Y` zP(@x>@@_kvQ+vv>dLtE!MaWAbKS4LxoFPVD(z-R9by5X~F8<$H!9UwsnvayY+xVB# z&~FIxWRRa$5Hh7i#Bxd~h?zFElliOu5ga*bdp|3UjH4Qy_;9Dqi1)r2e@f~g4d!v1 zDByYWcsTKbCKxJ8O#imXK7i*BMrQt~inR0@6`>3@Av7U`x5*P6Fs0v|$8YY4#Wdn@ zhqY~}V%~;o;hn)_c3ERuW6;EamosdyD{6_I^5VJG-joaJWqCUnOL`g<#JYqa_<$Zr z;*Fn-yf2DN+jo|``TQtNiQ(`oG;=ct_bI#Jpc~*lnAC{%|z0z-L z{e(6>ti8`?6`07PguWVlGg-cIH_sas#JUb4#<4DrzcZt_bCHOX2!0jY zIrxd%khT6ur%e(jh7fih)@H!`?}$KZ8vxC^h?ri|vbaJvDjv#v|Eprl{&5j3LuO5) zv#9t~-V=Q>xcfAQzgfNeR8Gmzdt13BwVOL@(J(hIz>Lu&IDp+@n*2Ld0q?OC<0@!# zfC2|;@ZU}@nnXY!f90JMQoB!$e&US;XB8+YqBVM!_zNnLFC1Z6ZDnT-Xi$`J-4HX% z>OSadsi#R6AiIqrV75yV6wfIZTHsx6?GW7W@;;}UVY&sI0pTeVHa9LrRd{e*qgPE?H#M?H;;7c44i* zMQpqF=VIP8em0=~F0my<_v!_9oNttxX*&?;H*L^la#E|Y&&2?;e5Y9zcp zyb(cdU+pNNfAnbYj97J7?7rHXVQxC?*6pj^A{13vc}_92uR_GSPprzq>ZKvK`v^r9 z`pCBUUw+AHND(wE#CX9jHK^}lVbx+t(n&7Lhm|I>E+@;>Zb>dPiEr5d!x_XQlFY*X zpm2CX?&iI&gm0T*OD5smzyI|=WC(N^r-}LZzy5c~e|@#FSPf~_NT9bv+fZxcEeyH2 zo^M$Ctgc-+s6LTP{2a&aAXPzGL~;JjZ=P-cNlO2QR=Bow*^^7Lo?C^eWmA6Ypb5Hv zKjf=^iUb;ZKviI?7O=Gs=rb*wUXuTV?+u`nyh35e<=WJZ@WDxE&WRN)`yGBSCMbf`FVPF9^jHsPf8GfjAa`Z@vtr4P||Ji*4PD_ zIGlGJ%l6a#89QQg{;|XC*~uDS&2T=)s03b;H0P&*FMj|2|MGAhRHwN-UyB3ckt4pI z?hun^7*mGp!lB7ZYJ^j6f#%CG?J$^#5)3r`e@^*}T7ysb5u!E>_y_A~{3HT37U#!O zT&fulXCaIxOud<(I;l_zPK{3!6wTsAjTg)gj delta 8194 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 - Search — py4web 1.20240530.2 documentation + Search — py4web 20240630 documentation @@ -18,7 +18,7 @@ - + @@ -43,7 +43,7 @@
              - 1.20240530.2 + 20240630
              @@ -141,7 +141,7 @@ - v: 1.20240530.2 + v: 20240630
              diff --git a/apps/_documentation/static/en/searchindex.js b/apps/_documentation/static/en/searchindex.js index 11bcaf04c..46d0a114d 100644 --- a/apps/_documentation/static/en/searchindex.js +++ b/apps/_documentation/static/en/searchindex.js @@ -1 +1 @@ -Search.setIndex({"alltitles": {"A": [[10, "a"]], "A minimal form example without a database": [[12, "a-minimal-form-example-without-a-database"]], "A modern python workplace": [[1, "a-modern-python-workplace"]], "ANY_OF": [[12, "any-of"]], "Acknowledgments": [[0, "acknowledgments"]], "Adding attributes to fields and tables": [[6, "adding-attributes-to-fields-and-tables"]], "Advanced features": [[6, "advanced-features"]], "Advanced form design": [[12, "advanced-form-design"]], "Advanced topics and examples": [[16, "advanced-topics-and-examples"]], "Auth Plugins": [[13, "auth-plugins"]], "Auth UI": [[13, "auth-ui"]], "Authentication and authorization": [[13, "authentication-and-authorization"]], "Authentication using Auth": [[13, "authentication-using-auth"]], "Authorization using Tags": [[13, "authorization-using-tags"]], "Autocomplete Widget using htmx": [[16, "autocomplete-widget-using-htmx"]], "BEAUTIFY": [[10, "beautify"]], "BODY": [[10, "body"]], "Basic form example": [[12, "basic-form-example"]], "Basic grid example": [[14, "basic-grid-example"]], "Basic syntax": [[8, "basic-syntax"]], "Built-in helpers": [[10, "built-in-helpers"]], "CAT": [[10, "cat"]], "CLEANUP": [[12, "cleanup"]], "CRUD settings": [[14, "crud-settings"]], "CRYPT": [[12, "crypt"]], "CSV (all tables at once)": [[6, "csv-all-tables-at-once"]], "CSV (one Table at a time)": [[6, "csv-one-table-at-a-time"]], "CSV and remote database synchronization": [[6, "csv-and-remote-database-synchronization"]], "Caching and Memoize": [[5, "caching-and-memoize"]], "Caching selects": [[6, "caching-selects"]], "Caveats about fixtures": [[5, "caveats-about-fixtures"]], "Celery": [[16, "celery"]], "Checkbox validation": [[12, "checkbox-validation"]], "Client-side session in cookies": [[5, "client-side-session-in-cookies"]], "Combining rows": [[6, "combining-rows"]], "Command line options": [[2, "command-line-options"]], "Common filters": [[6, "common-filters"]], "Complexity and security validators": [[12, "complexity-and-security-validators"]], "Computed and Virtual fields": [[6, "computed-and-virtual-fields"]], "Computed fields": [[6, "computed-fields"]], "Connection failures (attempts parameter)": [[6, "connection-failures-attempts-parameter"]], "Connection pooling": [[6, "connection-pooling"]], "Connection strings (the uri parameter)": [[6, "connection-strings-the-uri-parameter"]], "Contents:": [[17, null]], "Convenience Decorators": [[5, "convenience-decorators"]], "Copy data from one db into another": [[6, "copy-data-from-one-db-into-another"]], "Copying the _scaffold app": [[4, "copying-the-scaffold-app"]], "Creating an app": [[4, "creating-an-app"]], "Custom Action Buttons": [[14, "custom-action-buttons"]], "Custom Field types": [[6, "custom-field-types"]], "Custom columns": [[14, "custom-columns"]], "Custom fixtures": [[5, "custom-fixtures"]], "Custom forms": [[12, "custom-forms"]], "Custom helpers": [[10, "custom-helpers"]], "Custom widgets": [[12, "custom-widgets"]], "Customizing style": [[14, "customizing-style"]], "DAL constructor": [[6, "dal-constructor"]], "DAL introduction": [[6, "dal-introduction"]], "DAL signature": [[6, "dal-signature"]], "DIV": [[10, "div"]], "Data representation": [[6, "data-representation"]], "Database cascades": [[6, "database-cascades"]], "Database folder location": [[6, "database-folder-location"]], "Database quoting and case settings": [[6, "database-quoting-and-case-settings"]], "Database validators": [[12, "database-validators"]], "Date and time validators": [[12, "date-and-time-validators"]], "Debugging py4web with PyCharm": [[1, "debugging-py4web-with-pycharm"]], "Debugging py4web with VScode": [[1, "debugging-py4web-with-vscode"]], "Default migration settings": [[6, "default-migration-settings"]], "Default page layout": [[8, "default-page-layout"]], "Default values with coalesce and coalesce_zero": [[6, "default-values-with-coalesce-and-coalesce-zero"]], "Deployment on Docker/Podman": [[2, "deployment-on-docker-podman"]], "Deployment on GCloud (aka GAE - Google App Engine)": [[2, "deployment-on-gcloud-aka-gae-google-app-engine"]], "Deployment on PythonAnywhere.com": [[2, "deployment-on-pythonanywhere-com"]], "Deployment on Ubuntu": [[2, "deployment-on-ubuntu"]], "Dictionaries and tuples with IS_IN_SET": [[12, "dictionaries-and-tuples-with-is-in-set"]], "Distributed transaction": [[6, "distributed-transaction"]], "Dynamic Web Pages": [[4, "dynamic-web-pages"]], "EM": [[10, "em"]], "Experiment with the py4web shell": [[6, "experiment-with-the-py4web-shell"]], "Exporting and importing data": [[6, "exporting-and-importing-data"]], "Expressions": [[6, "expressions"]], "Extending using variables": [[8, "extending-using-variables"]], "FORM": [[10, "form"]], "Fetching a Row": [[6, "fetching-a-row"]], "Field constructor": [[6, "field-constructor"]], "Field types and validators": [[6, "field-types-and-validators"]], "File upload field": [[12, "file-upload-field"]], "First run": [[2, "first-run"]], "Fixing broken migrations": [[6, "fixing-broken-migrations"]], "Fixtures": [[5, "fixtures"]], "Form structure manipulation": [[12, "form-structure-manipulation"]], "Form validation": [[12, "form-validation"]], "Forms": [[12, "forms"]], "From scratch": [[4, "from-scratch"]], "From web2py to py4web": [[15, "from-web2py-to-py4web"]], "Generating raw SQL": [[6, "generating-raw-sql"]], "Google NoSQL (Datastore)": [[6, "google-nosql-datastore"]], "Google SQL": [[6, "google-sql"]], "Gotchas": [[6, "gotchas"]], "Grid": [[14, "grid"]], "Grouping and counting": [[6, "grouping-and-counting"]], "H1, H2, H3, H4, H5, H6": [[10, "h1-h2-h3-h4-h5-h6"]], "HEAD": [[10, "head"]], "HTML": [[10, "html"]], "HTML and XML (one Table at a time)": [[6, "html-and-xml-one-table-at-a-time"]], "HTTPS": [[2, "https"]], "Help, resources and hints": [[1, "help-resources-and-hints"]], "Helpers overview": [[10, "helpers-overview"]], "Hints and tips": [[1, "hints-and-tips"]], "How to contribute": [[1, "how-to-contribute"]], "I": [[10, "i"]], "IMG": [[10, "img"]], "INPUT": [[10, "input"]], "IS_ALPHANUMERIC": [[12, "is-alphanumeric"]], "IS_DATE": [[12, "is-date"]], "IS_DATETIME": [[12, "is-datetime"]], "IS_DATETIME_IN_RANGE": [[12, "is-datetime-in-range"]], "IS_DATE_IN_RANGE": [[12, "is-date-in-range"]], "IS_DECIMAL_IN_RANGE": [[12, "is-decimal-in-range"]], "IS_EMAIL": [[12, "is-email"]], "IS_EMPTY_OR": [[12, "is-empty-or"]], "IS_EQUAL_TO": [[12, "is-equal-to"]], "IS_EXPR": [[12, "is-expr"]], "IS_FILE": [[12, "is-file"]], "IS_FLOAT_IN_RANGE": [[12, "is-float-in-range"]], "IS_IMAGE": [[12, "is-image"]], "IS_INT_IN_RANGE": [[12, "is-int-in-range"]], "IS_IN_DB": [[12, "is-in-db"]], "IS_IN_DB and Tagging": [[12, "is-in-db-and-tagging"]], "IS_IN_SET": [[12, "is-in-set"]], "IS_IN_SET and Tagging": [[12, "is-in-set-and-tagging"]], "IS_IPADDRESS": [[12, "is-ipaddress"]], "IS_IPV4": [[12, "is-ipv4"]], "IS_IPV6": [[12, "is-ipv6"]], "IS_JSON": [[12, "is-json"]], "IS_LENGTH": [[12, "is-length"]], "IS_LIST_OF": [[12, "is-list-of"]], "IS_LIST_OF_EMAILS": [[12, "is-list-of-emails"]], "IS_LOWER": [[12, "is-lower"]], "IS_MATCH": [[12, "is-match"]], "IS_NOT_EMPTY": [[12, "is-not-empty"]], "IS_NOT_IN_DB": [[12, "is-not-in-db"]], "IS_NULL_OR": [[12, "is-null-or"]], "IS_SAFE": [[12, "is-safe"]], "IS_SLUG": [[12, "is-slug"]], "IS_STRONG": [[12, "is-strong"]], "IS_TIME": [[12, "is-time"]], "IS_UPLOAD_FILENAME": [[12, "is-upload-filename"]], "IS_UPPER": [[12, "is-upper"]], "IS_URL": [[12, "is-url"]], "Indexes": [[6, "indexes"]], "Indices and tables": [[17, "indices-and-tables"]], "Information workflow": [[8, "information-workflow"]], "Inner join": [[6, "inner-join"]], "Inserting and updating from a dictionary": [[6, "inserting-and-updating-from-a-dictionary"]], "Installation and Startup": [[2, "installation-and-startup"]], "Installing from binaries": [[2, "installing-from-binaries"]], "Installing from pip, using a virtual environment": [[2, "installing-from-pip-using-a-virtual-environment"]], "Installing from pip, without virtual environment": [[2, "installing-from-pip-without-virtual-environment"]], "Installing from source (globally)": [[2, "installing-from-source-globally"]], "Installing from source (locally)": [[2, "installing-from-source-locally"]], "Internationalization": [[11, "internationalization"]], "Joins and Relations": [[6, "joins-and-relations"]], "Key features": [[14, "key-features"]], "LABEL": [[10, "label"]], "LDAP": [[13, "ldap"]], "LI": [[10, "li"]], "Lazy Tables": [[6, "lazy-tables"]], "Left outer join": [[6, "left-outer-join"]], "Legacy databases and keyed tables": [[6, "legacy-databases-and-keyed-tables"]], "Logical operators": [[6, "logical-operators"]], "Login into the Dashboard": [[3, "login-into-the-dashboard"]], "MSSQL (Microsoft SQL Server)": [[6, "mssql-microsoft-sql-server"]], "Making a secure connection": [[6, "making-a-secure-connection"]], "Many to many relation": [[6, "many-to-many-relation"]], "Migration control summary": [[6, "migration-control-summary"]], "Migrations": [[6, "migrations"]], "Mobile development": [[8, "mobile-development"]], "Model-less applications": [[6, "model-less-applications"]], "More on uploads": [[6, "more-on-uploads"]], "Multiple Tags objects": [[13, "multiple-tags-objects"]], "Multiple fixtures": [[5, "multiple-fixtures"]], "MySQL": [[6, "mysql"]], "New style virtual fields (experimental)": [[6, "new-style-virtual-fields-experimental"]], "Note on new DAL and adapters": [[6, "note-on-new-dal-and-adapters"]], "OAuth2 with Discord": [[13, "oauth2-with-discord"]], "OAuth2 with Facebook": [[13, "oauth2-with-facebook"]], "OAuth2 with Google": [[13, "oauth2-with-google"]], "OL": [[10, "ol"]], "OPTION": [[10, "option"]], "Old style virtual fields": [[6, "old-style-virtual-fields"]], "On return values": [[4, "on-return-values"]], "One to many relation": [[6, "one-to-many-relation"]], "Oracle": [[6, "oracle"]], "Other DAL constructor parameters": [[6, "other-dal-constructor-parameters"]], "Other operators": [[6, "other-operators"]], "Other validators": [[12, "other-validators"]], "P": [[10, "p"]], "PAM": [[13, "pam"]], "PRE": [[10, "pre"]], "Page layout standard structure": [[8, "page-layout-standard-structure"]], "Pluralize": [[11, "pluralize"]], "Prerequisites": [[1, "prerequisites"]], "Query, Set, Rows": [[6, "query-set-rows"]], "Range, set and equality validators": [[12, "range-set-and-equality-validators"]], "Raw SQL": [[6, "raw-sql"]], "Record versioning": [[6, "record-versioning"]], "Recursive selects": [[6, "recursive-selects"]], "Reference Fields": [[14, "reference-fields"]], "Rendering rows using represent": [[6, "rendering-rows-using-represent"]], "Replicated databases": [[6, "replicated-databases"]], "Reserved keywords": [[6, "reserved-keywords"]], "Resources": [[1, "resources"]], "RestAPI GET": [[7, "restapi-get"]], "RestAPI policies and actions": [[7, "restapi-policies-and-actions"]], "RestAPI practical examples": [[7, "restapi-practical-examples"]], "Routes": [[4, "routes"]], "Run-time field and table modification": [[6, "run-time-field-and-table-modification"]], "SCRIPT": [[10, "script"]], "SELECT": [[10, "select"]], "SPAN": [[10, "span"]], "SQLite": [[6, "sqlite"]], "STYLE": [[10, "style"]], "Sample Action Button Class": [[14, "sample-action-button-class"]], "Searching and filtering": [[14, "searching-and-filtering"]], "Self-Reference and aliases": [[6, "self-reference-and-aliases"]], "Server-side DOM": [[10, "server-side-dom"]], "Server-side session anywhere": [[5, "server-side-session-anywhere"]], "Server-side session in Redis": [[5, "server-side-session-in-redis"]], "Server-side session in database": [[5, "server-side-session-in-database"]], "Server-side session in memcache": [[5, "server-side-session-in-memcache"]], "Setup procedures": [[2, "setup-procedures"]], "Sharing sessions": [[5, "sharing-sessions"]], "Shortcuts": [[6, "shortcuts"]], "Simple conversion examples": [[15, "simple-conversion-examples"]], "Sorted options": [[12, "sorted-options"]], "Special installations": [[2, "special-installations"]], "Special type validators": [[12, "special-type-validators"]], "Standard widgets": [[12, "standard-widgets"]], "Static web pages": [[4, "static-web-pages"]], "Substrings": [[6, "substrings"]], "Supported databases": [[6, "supported-databases"]], "Supported platforms and prerequisites": [[2, "supported-platforms-and-prerequisites"]], "TABLE, TR, TD": [[10, "table-tr-td"]], "TAG": [[10, "tag"]], "TBODY": [[10, "tbody"]], "TEXTAREA": [[10, "textarea"]], "TH": [[10, "th"]], "THEAD": [[10, "thead"]], "TITLE": [[10, "title"]], "TT": [[10, "tt"]], "Table constructor": [[6, "table-constructor"]], "Table inheritance": [[6, "table-inheritance"]], "Table methods": [[6, "table-methods"]], "Tagging records": [[6, "tagging-records"]], "Tags and Permissions": [[13, "tags-and-permissions"]], "Template Functions": [[8, "template-functions"]], "Templates": [[4, "templates"]], "Text format validators": [[12, "text-format-validators"]], "The Auth fixture": [[5, "the-auth-fixture"]], "The Condition fixture": [[5, "the-condition-fixture"]], "The DAL fixture": [[5, "the-dal-fixture"]], "The DAL: a quick tour": [[6, "the-dal-a-quick-tour"]], "The Dashboard": [[3, "the-dashboard"]], "The Database Abstraction Layer (DAL)": [[6, "the-database-abstraction-layer-dal"]], "The Discord server": [[1, "the-discord-server"]], "The Flash fixture": [[5, "the-flash-fixture"]], "The Form constructor": [[12, "the-form-constructor"]], "The Google group": [[1, "the-google-group"]], "The Grid object": [[14, "the-grid-object"]], "The Inject fixture": [[5, "the-inject-fixture"]], "The Q object": [[16, "the-q-object"]], "The RestAPI": [[7, "the-restapi"]], "The RestAPI response": [[7, "the-restapi-response"]], "The Session fixture": [[5, "the-session-fixture"]], "The T object": [[16, "the-t-object"]], "The Template fixture": [[5, "the-template-fixture"]], "The Translator fixture": [[5, "the-translator-fixture"]], "The URLsigner fixture": [[5, "the-urlsigner-fixture"]], "The _scaffold app": [[4, "the-scaffold-app"]], "The main Web page": [[3, "the-main-web-page"]], "The request object": [[4, "the-request-object"]], "The scheduler": [[16, "the-scheduler"]], "The sidecar parameter": [[12, "the-sidecar-parameter"]], "The sources on GitHub": [[1, "the-sources-on-github"]], "This manual": [[1, "this-manual"]], "Timing queries": [[6, "timing-queries"]], "Tutorials and video": [[1, "tutorials-and-video"]], "Two Factor Authentication": [[13, "two-factor-authentication"]], "UL": [[10, "ul"]], "URL": [[10, "url"]], "Understanding the design": [[2, "understanding-the-design"]], "Update the translation files": [[11, "update-the-translation-files"]], "Upgrading": [[2, "upgrading"]], "User Impersonation": [[13, "user-impersonation"]], "Using Auth inside actions": [[13, "using-auth-inside-actions"]], "Using DAL without define tables": [[6, "using-dal-without-define-tables"]], "Using Fixtures": [[5, "using-fixtures"]], "Using Inject": [[10, "using-inject"]], "Using an iterator-based select for lower memory use": [[6, "using-an-iterator-based-select-for-lower-memory-use"]], "Using callable parameters": [[14, "using-callable-parameters"]], "Using templates": [[14, "using-templates"]], "Using the DAL \u201cstand-alone\u201d": [[6, "using-the-dal-stand-alone"]], "Validation functions": [[12, "validation-functions"]], "Virtual fields": [[6, "virtual-fields"]], "WSGI": [[2, "wsgi"]], "Watch for files change": [[4, "watch-for-files-change"]], "What is py4web?": [[0, "what-is-py4web"]], "Widgets": [[12, "widgets"]], "XML": [[10, "xml"]], "YATL Template Language": [[8, "yatl-template-language"]], "YATL helpers": [[10, "yatl-helpers"]], "_lastsql": [[6, "lastsql"]], "as_dict and as_list": [[6, "as-dict-and-as-list"]], "belongs": [[6, "belongs"]], "block and super": [[8, "block-and-super"]], "cache, cacheable": [[6, "cache-cacheable"]], "call command option": [[2, "call-command-option"]], "callbacks on record insert, delete and update": [[6, "callbacks-on-record-insert-delete-and-update"]], "case": [[6, "case"]], "children": [[10, "children"]], "commit and rollback": [[6, "commit-and-rollback"]], "count, isempty, delete, update": [[6, "count-isempty-delete-update"]], "def...return": [[8, "def-return"]], "define_table signature": [[6, "define-table-signature"]], "distinct": [[6, "distinct"]], "drop": [[6, "drop"]], "executesql": [[6, "executesql"]], "extend and include": [[8, "extend-and-include"]], "filter_in and filter_out": [[6, "filter-in-and-filter-out"]], "find": [[10, "find"]], "find, exclude, sort": [[6, "find-exclude-sort"]], "first and last": [[6, "first-and-last"]], "for...in": [[8, "for-in"]], "format: Record representation": [[6, "format-record-representation"]], "groupby, having": [[6, "groupby-having"]], "htmx": [[16, "htmx"]], "htmx usage in Form": [[16, "htmx-usage-in-form"]], "htmx usage in Grid": [[16, "htmx-usage-in-grid"]], "id: Notes about the primary key": [[6, "id-notes-about-the-primary-key"]], "if...elif...else": [[8, "if-elif-else"]], "insert": [[6, "insert"]], "join, left": [[6, "join-left"]], "like, ilike, regexp, startswith, endswith, contains, upper, lower": [[6, "like-ilike-regexp-startswith-endswith-contains-upper-lower"]], "limitby": [[6, "limitby"]], "list: and contains": [[6, "list-type-and-contains"]], "migrate, fake_migrate": [[6, "migrate-fake-migrate"]], "new_app command option": [[2, "new-app-command-option"]], "on_define": [[6, "on-define"]], "orderby": [[6, "orderby"]], "orderby, groupby, limitby, distinct, having, orderby_on_limitby, join, left, cache": [[6, "orderby-groupby-limitby-distinct-having-orderby-on-limitby-join-left-cache"]], "orderby_on_limitby": [[6, "orderby-on-limitby"]], "plural and singular": [[6, "plural-and-singular"]], "polymodel": [[6, "polymodel"]], "primarykey: Support for legacy tables": [[6, "primarykey-support-for-legacy-tables"]], "py4web and asyncio": [[16, "py4web-and-asyncio"]], "py4web model": [[6, "py4web-model"]], "py4web: the reference Manual": [[17, "py4web-the-reference-manual"]], "redefine": [[6, "redefine"]], "rname: Real name": [[6, "rname-real-name"]], "run command option": [[2, "run-command-option"]], "select command": [[6, "select-command"]], "sequence_name": [[6, "sequence-name"]], "set_password command option": [[2, "set-password-command-option"]], "setup command option": [[2, "setup-command-option"]], "shell command option": [[2, "shell-command-option"]], "string.format": [[16, "string-format"]], "sum, avg, min, max and len": [[6, "sum-avg-min-max-and-len"]], "table_class": [[6, "table-class"]], "trigger_name": [[6, "trigger-name"]], "try...except...else...finally": [[8, "try-except-else-finally"]], "two_factor_required": [[13, "two-factor-required"]], "two_factor_send": [[13, "two-factor-send"]], "two_factor_tries": [[13, "two-factor-tries"]], "update_or_insert": [[6, "update-or-insert"]], "update_record": [[6, "update-record"]], "utils.js": [[16, "utils-js"]], "validate_and_insert, validate_and_update": [[6, "validate-and-insert-validate-and-update"]], "version command option": [[2, "version-command-option"]], "while": [[8, "while"]], "year, month, day, hour, minutes, seconds": [[6, "year-month-day-hour-minutes-seconds"]], "\u201cAccessing OS files\u201d example": [[15, "accessing-os-files-example"]], "\u201cForm and flash\u201d example": [[15, "form-and-flash-example"]], "\u201cHello world\u201d example": [[15, "hello-world-example"]], "\u201cRedirect with variables\u201d example": [[15, "redirect-with-variables-example"]], "\u201cReturn calling methods\u201d example": [[15, "return-calling-methods-example"]], "\u201cReturning args\u201d example": [[15, "returning-args-example"]], "\u201cReturning variables\u201d example": [[15, "returning-variables-example"]], "\u201cSetting up a counter\u201d example": [[15, "setting-up-a-counter-example"]], "\u201cView\u201d example": [[15, "view-example"]], "\u201cauth\u201d example": [[15, "auth-example"]], "\u201cgrid\u201d example": [[15, "grid-example"]]}, "docnames": ["chapter-01", "chapter-02", "chapter-03", "chapter-04", "chapter-05", "chapter-06", "chapter-07", "chapter-08", "chapter-09", "chapter-1", "chapter-10", "chapter-11", "chapter-12", "chapter-13", "chapter-14", "chapter-15", "chapter-16", "index"], "envversion": {"sphinx": 61, "sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2}, "filenames": ["chapter-01.rst", "chapter-02.rst", "chapter-03.rst", "chapter-04.rst", "chapter-05.rst", "chapter-06.rst", "chapter-07.rst", "chapter-08.rst", "chapter-09.rst", "chapter-1.rst", "chapter-10.rst", "chapter-11.rst", "chapter-12.rst", "chapter-13.rst", "chapter-14.rst", "chapter-15.rst", "chapter-16.rst", "index.rst"], "indexentries": {}, "objects": {}, "objnames": {}, "objtypes": {}, "terms": {"": [0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 11, 12, 13, 14, 16], "0": [2, 3, 5, 6, 7, 8, 10, 11, 12, 13, 14, 15, 16], "00": 7, "01": 7, "02": [6, 12], "03": [2, 6, 7], "04": 2, "04t07": 7, "05": 7, "06": 12, "08": 12, "0x4e86": 12, "0x7fa533ff7640": 10, "1": [2, 3, 5, 6, 7, 8, 10, 11, 12, 14, 15, 16], "10": [2, 6, 7, 8, 10, 11, 12, 13, 16], "100": [2, 6, 7, 8, 12, 16], "1000": [5, 6, 12, 16], "1000m": 16, "100px": 16, "1024": 12, "1048576": 12, "10px": 14, "11": [6, 12], "111111": 16, "11211": 5, "12": 12, "120": 6, "123": [10, 12], "123218": 7, "123456": 12, "125": 6, "127": [2, 3, 5, 12, 14], "13": [5, 6, 12], "132635": 7, "14": [8, 12, 14], "15": [6, 12, 13, 14], "16": 12, "168": 12, "169": 12, "16px": 8, "172": [6, 12], "174": 6, "178974": 7, "19": [6, 7, 12], "192": [6, 12], "1963": 12, "198": 6, "199": 12, "19t05": 7, "1e100": 6, "1kb": 12, "1l": 6, "1mb": 12, "1pkogiy59xj8co8": 8, "2": [5, 6, 7, 8, 10, 11, 12, 13, 15, 16], "20": [2, 7, 11, 12], "200": [7, 12, 15, 16], "2001": 12, "2002": 12, "2005": 6, "2007": 0, "2008": 12, "2009": 12, "200m": 16, "200x200": 12, "2010": 6, "2012": 6, "2013": 6, "2015": 0, "2018": 6, "2019": 7, "201988": 7, "2020": 1, "20201112": 3, "2021": 7, "2022": 5, "207": 6, "217": 6, "22": 13, "227": 6, "239": 6, "2396": 12, "24": 12, "254": 12, "255": 12, "256": 6, "2616": 12, "28": 12, "2em": 16, "2px": 16, "3": [0, 2, 4, 5, 6, 7, 8, 10, 12, 13, 14, 15, 16], "30": [2, 6, 8, 12], "301": 15, "309903": 7, "31": [6, 7, 12], "32": [6, 12], "322494": 7, "32768": 6, "33": [6, 12], "34": 7, "3490": 12, "3492": 12, "35": 6, "355181": 7, "3600": [5, 6], "366288": 7, "38": 7, "3em": 16, "4": [2, 5, 6, 7, 8, 12, 14], "40": [2, 10, 16], "400": [5, 15], "404": [5, 13], "405515": 7, "43": 6, "45": [8, 12], "451907": 7, "453020": 7, "456": 12, "466030": 7, "4e": 12, "5": [5, 6, 7, 8, 11, 12, 13, 14, 16], "50": [2, 7], "500": 16, "500m": 16, "512": 6, "53": 12, "54": 8, "559918": 7, "58": 8, "59": 12, "6": [5, 6, 7, 12, 13, 15], "60": [5, 6], "63": [6, 12], "6379": 5, "64": [6, 8, 16], "65": 6, "6to4": 12, "7": [2, 7, 8, 12, 15], "70": 7, "74": 6, "75": 7, "8": [2, 6, 7, 12], "80": [7, 12], "8000": [2, 3, 4, 12, 14], "86": 12, "8601": 7, "8em": [8, 16], "9": [6, 7, 12, 14, 15], "90": [6, 7], "91": 6, "95": 6, "97": 6, "974953": 7, "99": 6, "A": [2, 4, 5, 6, 7, 8, 13, 14, 15, 16, 17], "AND": 6, "AS": 6, "And": [1, 4, 5, 6, 13, 14, 16], "As": [4, 5, 6, 7, 8, 10, 12, 13, 14, 16], "At": [6, 8], "Be": [5, 6, 8], "But": [1, 2, 4, 5, 6, 8, 10, 12, 14, 16], "By": [2, 4, 5, 6, 12, 13, 15], "For": [1, 2, 3, 4, 5, 6, 7, 8, 10, 12, 13, 15, 16], "IF": 6, "IN": 6, "INTO": 6, "IT": 11, "If": [1, 2, 3, 4, 5, 6, 8, 10, 12, 13, 14, 15, 16], "In": [0, 1, 2, 4, 5, 6, 7, 8, 10, 12, 13, 14, 15, 16], "It": [0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 12, 13, 16], "Its": [0, 2, 6, 12, 14], "NO": 6, "NOT": [6, 12, 13], "No": [2, 6], "Not": 6, "ON": [6, 12], "OR": [6, 10, 12, 14], "Of": 8, "On": [2, 6, 13, 16], "One": [2, 4, 12, 13], "Or": 12, "That": [4, 6, 15], "The": [0, 2, 8, 10, 11, 13, 15, 17], "Their": [5, 6, 15], "Then": [4, 5, 6, 10, 12, 13, 14, 16], "There": [1, 2, 5, 6, 8, 12, 13, 14, 16], "These": [0, 5, 6, 10, 12, 14], "To": [2, 4, 6, 8, 10, 11, 12, 13, 14, 16], "With": [2, 6, 12, 13, 16], "_": [2, 12, 16], "__": 4, "__file__": [5, 7, 14], "__init__": [2, 4, 5, 6, 7, 14, 15, 16], "__prerequisite__": 5, "__prerequisites__": 5, "__str__": [5, 8, 10], "_action": 10, "_adapt": 6, "_after_delet": 6, "_after_insert": 6, "_after_upd": 6, "_alt": 10, "_and": 12, "_autocomplet": 16, "_autocomplete_search_field": 16, "_before_": 6, "_before_delet": 6, "_before_insert": 6, "_before_upd": 6, "_bgcolor": 10, "_c": 10, "_check": 10, "_class": [5, 10, 12, 16], "_col": 10, "_common_filt": 6, "_count": 6, "_dashboard": [2, 3], "_data": 10, "_db": 6, "_dbname": 6, "_default": [2, 4], "_delet": 6, "_disabl": 10, "_document": [1, 3], "_enable_record_vers": 6, "_extra": 6, "_format": 6, "_href": [5, 8, 10, 12, 14], "_hx": 16, "_id": [6, 10, 12, 16], "_insert": 6, "_listifi": 6, "_method": 10, "_name": [6, 10, 12, 16], "_next_url": 13, "_nonreserv": 6, "_onclick": 12, "_placehold": [12, 16], "_row": 10, "_scaffold": [5, 8, 10, 12, 13, 14, 15, 17], "_search": 16, "_select": [6, 10], "_sesson": 5, "_src": 10, "_style": [12, 16], "_tabl": [6, 12, 16], "_tablenam": 6, "_tag": 13, "_time": 6, "_titl": [12, 16], "_type": [6, 10, 12, 16], "_u": 10, "_updat": 6, "_uri": 6, "_valu": [10, 12, 16], "_xmln": 10, "aaabaaeaaqeaaaeaiaawaaaafgaaacgaaaabaaaaagaaaaeaiaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaapaaaaaa": 8, "ab": [10, 12], "abbrevi": 12, "abc": [10, 12], "abil": 15, "abl": [1, 2, 5, 6, 12], "abort": [4, 6], "about": [0, 7, 13, 14, 15, 16, 17], "abov": [4, 5, 6, 7, 8, 12, 13, 14], "abracadabra": 2, "absent": 2, "absolut": [2, 6, 15], "abspath": 4, "abstract": [5, 15, 17], "accdesc": 6, "accept": [1, 2, 4, 5, 6, 10, 11, 12, 15, 16], "access": [0, 2, 4, 5, 6, 10, 12, 13, 16], "accnum": 6, "accomplish": [5, 6, 13, 15], "accord": [6, 8], "accordingli": 8, "account": [2, 6], "acctyp": 6, "achiev": [5, 6, 15], "acknowledg": 17, "acquir": 6, "across": [6, 8], "act": [6, 10, 12], "action": [4, 5, 6, 10, 12, 15, 16, 17], "action_button": 14, "action_token": [5, 13], "activ": [2, 6, 13], "actual": [2, 5, 6, 8, 14], "ad": [0, 2, 5, 11, 12, 13, 14, 16], "adapt": [13, 16], "adapter_arg": 6, "add": [1, 2, 4, 5, 6, 7, 8, 10, 11, 12, 13, 14, 15, 16], "addit": [2, 4, 5, 6, 7, 8, 12, 14], "addition": 14, "additional_class": 14, "additional_styl": 14, "address": [2, 6, 12, 13], "admin": [0, 6, 15], "administr": 2, "advanc": [2, 13, 14, 17], "advantag": [2, 6, 8, 16], "advis": [6, 14], "affect": 6, "after": [2, 3, 5, 6, 8, 12, 13, 14, 16], "after_connect": 6, "after_delet": 6, "after_insert": 6, "after_upd": 6, "aftermath": 6, "ag": 6, "again": [2, 3, 4, 5, 6, 12, 14, 16], "against": [6, 7, 10, 12, 14], "aggreg": 6, "agnost": 4, "aid": 6, "aim": 0, "ajax": [8, 14, 16], "aka": 1, "alert": [5, 8, 10, 12, 15], "alex": 6, "alfaro": [0, 1], "alg": 12, "algorithm": [5, 12], "alia": [6, 12], "all": [0, 1, 2, 3, 4, 5, 7, 8, 10, 11, 12, 13, 14, 15, 16], "alloc": 12, "allow": [0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 12, 13, 14, 16], "allowed_act": 13, "allowed_attribut": 10, "allowed_overrid": 12, "allowed_pattern": 7, "allowed_schem": 12, "almost": 5, "along": [2, 4, 10, 12, 16], "alphabet": 12, "alphanumer": 12, "alreadi": [2, 3, 4, 5, 6, 10, 12, 13, 14], "also": [0, 1, 2, 3, 4, 5, 6, 8, 10, 12, 13, 14, 15, 16], "alt": 10, "alter": 6, "altern": [2, 5, 6, 8, 12, 16], "although": [2, 6, 8, 12], "alwai": [0, 2, 4, 5, 6, 8, 12, 16], "am": [12, 16], "amazon": 6, "ambigu": [4, 6], "among": [6, 12], "amount": 6, "an": [0, 1, 2, 3, 5, 8, 10, 12, 13, 14, 15, 16, 17], "analogi": 15, "ancestor": 10, "anchor": 16, "andrew": 1, "angl": 8, "angular": [0, 16], "ani": [1, 2, 3, 4, 5, 6, 7, 8, 10, 12, 13, 14, 15, 16], "annoi": 2, "anonym": [6, 8, 12], "anoth": [4, 5, 8, 11, 12, 13], "anotherpath": 5, "ansi": 6, "answer": 1, "anyhow": 2, "anyobj": 6, "anyth": 4, "anywai": 6, "anywher": [8, 15], "api": [0, 6, 7, 10, 12, 13, 15, 16], "api_vers": 7, "app": [0, 1, 3, 5, 6, 7, 8, 10, 11, 12, 13, 14, 15, 16, 17], "app1": 5, "app1_sess": 5, "app2": 5, "app_fold": 15, "app_nam": [2, 4, 5, 6], "app_watch_handl": 4, "appadmin": [0, 6], "appar": 6, "appear": [6, 12, 14], "append": [5, 6, 10, 12, 14, 16], "append_id": 14, "appl": 12, "appli": [0, 5, 6, 12, 13, 14, 16], "applic": [0, 2, 3, 4, 5, 8, 12, 13, 14, 15, 16], "appnam": [2, 5, 13, 15], "appname_sess": 5, "approach": [6, 15], "appropri": [6, 12], "approv": 13, "apps_fold": 2, "apt": 13, "ar": [0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 11, 12, 13, 14, 15, 16], "arbitrari": [4, 6, 13], "archiv": 6, "archive_db": 6, "archive_nam": 6, "aren": 6, "arg": [1, 2, 6], "argument": [2, 4, 5, 6, 8, 10, 12, 13, 15], "arithmet": 12, "around": [1, 6, 15], "arrai": [10, 16], "arrang": [6, 12], "arriv": [0, 6], "as_ordered_dict": 6, "ascii": 12, "asid": [6, 16], "ask": [2, 5, 6], "assert": 6, "asset": 2, "assign": [6, 8, 12, 13, 15, 16], "assist": 1, "associ": [6, 11, 12, 13], "assum": [2, 5, 6, 7, 11, 12, 15], "async": 16, "asyncio": 17, "attach": [5, 6, 13, 15], "attack": [5, 10], "attempt": [12, 13], "attent": 6, "attr": [12, 14, 16], "attribut": [4, 5, 10, 12, 14, 15, 16], "attributes_plugin": 16, "attributespluginhtmx": 16, "aug": 12, "august": 12, "auth": [0, 2, 4, 6, 8, 10, 16, 17], "auth_group": 13, "auth_plugin": 13, "auth_us": [5, 6, 13], "auth_user_tag_group": [6, 13], "auth_user_tagged_group": 13, "authent": [5, 6, 14, 17], "author": [5, 6, 7, 17], "auto": [6, 14], "auto_import": 6, "auto_process": [14, 16], "autocomplete_queri": 16, "autodelet": 6, "autogener": 6, "automat": [2, 3, 4, 5, 6, 8, 10, 12, 13, 14, 15, 16], "avail": [1, 2, 6, 8, 10, 13, 15, 16], "averag": 6, "avoid": [0, 1, 2, 5, 6, 8, 12], "awai": 6, "awar": 6, "awesom": [8, 14], "axel": 0, "axolotl": 0, "b": [5, 6, 8, 10, 12, 15, 16], "back": [5, 6, 12], "backend": 6, "background": [2, 4, 12, 16], "backport": 6, "backslash": 4, "backup": [2, 6, 12], "backward": [0, 6, 12], "bad_dai": 6, "bail": 6, "banana": 12, "bar": [8, 14], "barrier": 0, "base": [0, 2, 3, 4, 5, 7, 8, 12, 13, 14, 15, 16], "base64": [6, 8, 16], "base_dn": 13, "baseadapt": 6, "bash": 2, "basic": [0, 1, 2, 5, 6, 16, 17], "bat": 2, "batman": [7, 12, 14], "battl": 0, "beaslei": 0, "becaus": [0, 2, 4, 5, 6, 8, 10, 11, 12, 14, 16], "becom": [12, 16], "bed": 11, "been": [0, 2, 5, 6, 8, 12], "befor": [1, 2, 5, 6, 8, 10, 12, 13, 14], "before_delet": 6, "before_insert": 6, "before_upd": 6, "begin": [8, 12, 13, 14], "beginn": 2, "behav": [6, 14], "behavior": [4, 6, 10, 12, 15, 16], "behaviour": [2, 6, 14], "being": [1, 5, 6, 7, 8, 12, 16], "believ": [0, 5], "belong": [13, 15], "below": [5, 6, 7, 12, 14], "benefit": [6, 16], "best": [1, 2, 5, 6, 11, 14], "better": [0, 1, 2, 4, 6, 14, 15, 16], "between": [5, 6, 10, 12, 15], "beyond": 12, "bgcolor": 10, "big": [6, 15], "bigint": 6, "bigint_id": 6, "bin": [1, 2], "binari": 6, "bind": 16, "birthplac": 6, "bit": 12, "bitbucket": 1, "black": [8, 12], "blank": [12, 14], "blink": 16, "blob": 6, "block": [10, 13, 16], "blockquot": 10, "blog": [1, 6, 10], "blog_post": 6, "blue": [4, 6, 12, 15], "bmp": 12, "boat": 6, "bob": 6, "bodi": [4, 8, 13, 14, 16], "boilerpl": 5, "bold": 10, "book": [1, 6], "boolean": [6, 14], "boost": [6, 8], "bootstrap": 14, "border": 16, "born": 6, "botaro": 0, "both": [1, 2, 4, 5, 6, 8, 12, 15], "bottl": [0, 4, 5, 8, 15, 16], "bottle_app": 2, "bottlepi": [4, 5], "bottom": 12, "boundari": 12, "box": [0, 6, 12], "br": [8, 10], "bracket": [0, 8, 12], "branch": [1, 2], "break": [2, 6, 12], "breez": 1, "briefli": 2, "broke": 0, "broken": [0, 12], "brows": [2, 3, 14, 16], "browser": [1, 2, 3, 5, 7, 8, 14, 16], "bruce": [7, 14], "bsd": 1, "buffer": 6, "bug": [1, 3, 6], "build": [1, 2, 4, 5, 6, 10, 12, 14, 16], "builder": 16, "built": [0, 1, 4, 6, 8, 12, 14, 16, 17], "bulk_insert": 6, "bulma": [12, 14, 16], "bunch": 2, "buse": 16, "button": [3, 4, 5, 10, 12, 16, 17], "bypass": [12, 13, 14], "byte": [6, 12], "bytecod": 8, "c": [1, 2, 3, 5, 6, 8, 10, 12, 15], "ca": 12, "cach": [0, 2, 4, 12, 17], "cache_db_select": 6, "calcul": 6, "calendar": 14, "call": [0, 1, 4, 5, 6, 7, 8, 10, 11, 12, 13, 14, 16], "callabl": [10, 12], "callback": [12, 13, 16], "callback_url": 13, "can": [0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 11, 12, 13, 14, 15, 16], "cancel": [12, 16], "cancel_attr": 16, "cane": [11, 16], "cani": [11, 16], "cannot": [2, 5, 6, 8, 10, 12, 16], "capabl": [0, 14, 16], "capit": 16, "caputur": 16, "car": 6, "card": 6, "care": [5, 6, 8, 15, 16], "carl": 6, "carri": 15, "carrol": 0, "cart": 5, "case": [0, 1, 2, 3, 4, 5, 8, 10, 12, 13, 14, 15, 16], "case_sensit": 6, "cassio": 0, "catch": 6, "caus": [6, 12], "caveat": [6, 8, 15, 17], "cd": 2, "cdnj": [8, 14], "celeri": 17, "center": [5, 8], "centuri": 12, "ceo": [7, 14], "certain": [6, 8, 12, 14], "certif": 2, "cf": 4, "cgi": 12, "chair": 6, "challeng": 13, "chang": [0, 1, 2, 3, 5, 6, 7, 8, 11, 12, 13, 14, 15, 16, 17], "change_email": 13, "change_password": [8, 13], "changed_fil": 4, "channel": 1, "chapter": [1, 2, 3, 4, 5, 6, 8, 10, 12, 14, 15], "char": [6, 13], "charact": [4, 6, 10, 12], "charg": [2, 15], "chat": 1, "check": [1, 2, 3, 4, 5, 6, 8, 10, 12, 13, 14, 15], "check_": 16, "check_reserv": 6, "checkbox": [8, 10], "checkboxwidget": 12, "cherri": 12, "chicago": 6, "choic": [1, 4, 12, 14], "choos": [1, 12, 13], "choosen": 6, "chose": 4, "chosen": 6, "chrome": [3, 16], "circular": 6, "circumst": 5, "cit0801": 7, "cit0802": 7, "cit1601": 16, "cite": [10, 12], "clark": [7, 14], "clash": 12, "class": [5, 6, 8, 10, 12, 13, 15, 16], "class_inner_except": 16, "class_styl": 14, "claudia": 6, "claus": [6, 8], "clean": [1, 10], "cleaner": 5, "cleanup": 0, "clear": [6, 12], "clearli": [6, 16], "clever": 12, "cli": [1, 2], "click": [3, 6, 10, 12, 14, 16], "clickabl": 14, "client": [0, 7, 12, 13, 16], "client_id": 13, "client_ip": 5, "client_secret": 13, "clientsid": 16, "clock": 12, "clone": [2, 4, 6, 16], "close": [5, 6, 8, 10], "cloudflar": [8, 14], "cmd": 2, "cn": 13, "co": [6, 12], "coa": 6, "code": [1, 2, 4, 5, 6, 7, 8, 10, 12, 13, 14, 15, 16], "col": 10, "collaps": [7, 10], "collat": 6, "collect": [0, 2, 15], "colnam": 6, "colon": 8, "color": [4, 6, 8, 10, 12, 16], "colspan": 10, "column": [6, 17], "com": [0, 1, 3, 4, 8, 10, 13, 14, 16], "combin": [5, 10, 12, 14], "come": [0, 4, 5, 6, 8, 12, 13, 14, 15, 16], "comma": [2, 6, 16], "command": [3, 4, 8, 10, 17], "comment": [6, 10], "commit": [4, 5, 7, 14, 15, 16], "common": [2, 3, 4, 5, 8, 12, 13, 15, 16], "common_filt": 6, "commun": [0, 5, 6], "compact": 6, "compani": 14, "compar": [0, 6, 15], "comparison": [6, 12], "compat": [0, 1, 6, 10, 12], "competitor": 0, "compil": [4, 8, 10, 12], "compiled_css": 4, "complain": 6, "complet": [0, 6, 8, 10, 12, 13, 16], "complex": [1, 2, 4, 5, 6, 8, 10, 13, 15, 16], "compliant": [6, 16], "complic": 5, "compon": [0, 3, 4, 5, 8, 10, 12, 13, 16], "component_1": 16, "compos": [2, 5], "compound": 10, "compress": [3, 4], "compris": 3, "compromis": 0, "comput": [1, 16, 17], "concaten": [6, 10], "conceiv": 6, "concept": [0, 13], "concern": 6, "concurr": [0, 2, 6, 12, 16], "cond": 5, "condit": [6, 8, 12, 17], "condition": 6, "config": [2, 4], "configur": [1, 2, 5, 6, 12, 13, 15, 16], "confirm": [2, 12, 13, 14, 16], "conflict": [0, 2, 4, 6], "confus": 6, "conjunct": 6, "conn": 5, "connect": [3, 4, 5, 12, 15], "connectionpool": 6, "consequ": [6, 12, 16], "consid": [5, 6, 8, 10, 12, 14, 15], "consider": 6, "consist": [5, 6, 8, 14, 15], "consol": [2, 10, 13, 16], "constant": 12, "constrain": 15, "constraint": [0, 6], "construct": [4, 6], "constructor": [5, 10, 13, 17], "consult": 6, "contain": [0, 2, 3, 4, 5, 7, 8, 10, 11, 12, 13, 14, 15, 16], "contect": 8, "content": [2, 4, 5, 6, 8, 10, 12, 14, 15, 16], "context": [3, 5, 6, 8], "contextlib": 6, "continu": [6, 8, 16], "contribut": [0, 17], "control": [2, 4, 5, 8, 10, 12, 13, 14, 15, 16], "conveni": [6, 17], "convent": [4, 6, 8, 12, 15], "convers": [12, 17], "convert": [1, 4, 6, 10, 12], "cooki": [0, 4, 6, 12, 16], "copi": [1, 2, 3, 8, 10, 14, 17], "copyfileobj": 6, "core": [1, 2, 4, 5], "corei": 1, "corner": 14, "cornerston": 0, "correct": [1, 6, 13], "correctli": 12, "correspond": [2, 3, 4, 6, 10, 11, 13, 14, 15], "corrupt": 6, "couchdb": 6, "couchdbadapt": 6, "could": [1, 2, 4, 6, 8, 10, 12, 13, 15], "count": [5, 7, 13, 14, 16], "counter": [5, 6, 16], "counterpart": 4, "coupl": [14, 16], "cours": [1, 8], "cp": 2, "creat": [0, 1, 2, 3, 5, 6, 8, 10, 12, 13, 14, 15, 16, 17], "create_form": 12, "create_th": 12, "created_bi": 6, "created_on": 6, "creation": [2, 6], "creativ": [12, 13], "credential_decod": 6, "criteria": [6, 12], "critic": 2, "cross": [5, 6, 10], "crossorigin": 8, "crt": [2, 6], "crud": [3, 12, 16], "cruz": 1, "crypt": 2, "csrf": [5, 12], "csrf_protect": 12, "csrf_session": 12, "css": [1, 4, 5, 8, 10, 12, 13, 14, 16], "csv": 15, "ct": 5, "ctrl": [2, 3], "cubrid": 6, "cubridadapt": 6, "cubriddb": 6, "current": [2, 5, 6, 8, 10, 13, 14, 15, 16], "current_record": 6, "cursor": [6, 16], "curt": 6, "custom": [0, 2, 4, 8, 15, 16, 17], "custom_check": 12, "custom_qualifi": 6, "customiz": [0, 12, 14], "cx_oracl": 6, "cyclic": 6, "czech": 11, "d": [2, 7, 10, 12], "daemon": [2, 16], "dai": 12, "dal": [2, 4, 7, 12, 14, 16, 17], "dan": 0, "dancer": 13, "danger": 15, "dash": 12, "dashboard": [0, 2, 4, 6, 8, 12, 16, 17], "dashboard_mod": 2, "data": [0, 4, 5, 7, 8, 10, 12, 13, 14, 15, 16, 17], "data_label": 16, "databas": [0, 1, 3, 4, 7, 13, 14, 15, 16, 17], "datalist": 16, "date": [2, 6, 14], "datetim": [4, 5, 6, 7, 12, 16], "datetimewidget": 12, "daunt": 1, "db": [2, 3, 4, 5, 7, 10, 12, 13, 14, 15, 16], "db1": 6, "db2": 6, "db2adapt": 6, "db2ibm": 6, "db2pyodbc": 6, "db_a": 6, "db_b": 6, "db_codec": 6, "db_folder": [5, 7, 14], "db_name": 6, "db_uid": 6, "dbadmin": 4, "dbio": 12, "dbo": 6, "dbset": 12, "dbstore": 5, "dc": 13, "dd": 12, "de": [0, 1, 6, 11], "deal": [1, 6, 16], "dealfaro": 0, "debounc": 16, "debug": [2, 4, 5, 6, 8], "debugg": [1, 15], "decid": [6, 12, 14], "decim": [4, 6, 12], "declar": [0, 4, 5, 6], "decod": 6, "decode_credenti": 6, "decor": [1, 4, 6, 15, 17], "dedic": [1, 4, 5, 10, 15], "def": [4, 5, 6, 7, 10, 12, 13, 14, 15, 16], "default": [0, 2, 3, 4, 5, 7, 10, 12, 13, 14, 15, 16], "defer": [6, 16], "defin": [2, 4, 5, 8, 12, 13, 14, 15, 16], "define_t": [5, 7, 12, 13, 14, 15], "definit": [6, 7, 12, 14, 15], "degre": 6, "del": [6, 10], "delai": [6, 16], "deleg": 6, "delet": [2, 4, 7, 12, 14, 16], "delete_record": 6, "delimit": [0, 5, 6, 8, 15], "delta": 16, "demand": 6, "demo": [1, 2, 16], "deni": 7, "denorm": [6, 7], "depend": [0, 2, 3, 4, 5, 6, 8, 12, 14, 15], "deploi": 2, "deploy": 1, "deployment_tool": 2, "deprec": [6, 12, 16], "deriv": [6, 12], "desc": 14, "descend": 10, "describ": [2, 3, 4, 5, 6, 12], "descript": [6, 7, 12, 13, 14], "design": [0, 4, 6, 8, 13, 16, 17], "desir": [5, 8, 12, 13], "dest": [4, 6], "detail": [0, 1, 2, 5, 6, 7, 8, 10, 12, 14, 16], "detail_field": 12, "determin": [4, 5, 6, 8, 11, 12, 13, 14], "determinist": 5, "dev": 13, "develop": [0, 1, 4, 5, 6, 13, 14, 15, 16], "development_tool": 2, "devic": 8, "di": [0, 5], "diagram": 7, "dialect": 6, "dict": [4, 5, 6, 11, 12, 14, 15, 16], "dictionari": [4, 5, 10, 11, 15], "did": [0, 4, 6, 16], "differ": [0, 2, 5, 6, 8, 11, 12, 13, 14, 15, 16], "difficult": [2, 16], "digit": [4, 6, 12, 13], "dimens": 12, "dir": [2, 12, 16], "direct": [2, 5, 6, 8, 12], "directli": [1, 2, 4, 6, 7, 8, 10, 12, 13, 14, 16], "directori": 13, "dirnam": [5, 7, 14], "disabl": [6, 7, 10, 12, 14], "disallow": [6, 12], "discard": 6, "discord_client_id": 13, "discord_client_secret": 13, "discount": 6, "discounted_tot": 6, "discounted_total_pric": 6, "discounted_unit_pric": 6, "discov": 11, "discoveri": 2, "discrimin": 13, "discuss": [1, 3, 6, 8, 10, 12], "disk": [5, 6], "dismiss": [5, 15], "displai": [3, 4, 5, 6, 8, 10, 12, 13, 14, 16], "distinct": [8, 12], "distributed_transaction_commit": 6, "ditch": 0, "div": [4, 5, 8, 12, 15, 16], "divis": [8, 10, 12], "divmod": 6, "django": [0, 1, 15], "do": [1, 2, 4, 5, 6, 8, 10, 12, 13, 14, 15, 16], "do_connect": 6, "doc": 1, "dockerfil": 2, "doctor": 6, "doctyp": [8, 14], "document": [3, 5, 6, 8, 10, 12, 16], "doe": [0, 2, 5, 6, 8, 12, 13, 14, 15, 16], "doesn": [5, 6, 14], "dog": [11, 12, 16], "doh": 12, "dom": [8, 17], "domain": [12, 13], "don": [1, 2, 3, 4, 6, 8, 12, 13, 14], "done": [2, 6, 8, 12, 14, 15], "dot": 12, "doubl": [2, 6, 8], "doubt": 14, "down": [6, 12, 16], "downfal": 14, "download": [2, 12], "download_url": 12, "downsid": [6, 15], "dramat": 6, "driven": 0, "driver": 6, "driver_arg": 6, "drop": 12, "dropdown": [12, 14, 16], "dsn": 6, "due": [6, 7, 12], "dummi": [6, 8], "dummyrespons": 8, "dump": [5, 6, 16], "dumpfil": 6, "duplic": 6, "durabl": 7, "dure": 14, "dynam": [6, 7, 8, 10, 12, 13, 17], "e": [2, 4, 5, 6, 7, 8, 10, 12, 13, 16], "each": [2, 4, 5, 6, 7, 8, 10, 11, 12, 13, 14, 15, 16], "earli": [5, 6], "earlier": 16, "easi": [0, 5, 6, 8, 10, 12], "easier": [0, 6, 7, 8], "easiest": [6, 13], "easili": [4, 5, 6, 8, 10, 12, 14], "ebook": 1, "echo": 4, "ecosystem": 16, "edg": 16, "edit": [0, 2, 3, 4, 8, 10, 12, 13, 14, 15, 16], "edit_sidecar": 16, "editor": [1, 8], "educ": 2, "effect": [3, 6, 12], "effici": [0, 1, 5, 6, 15], "effort": 1, "efg": 10, "either": [6, 10, 12], "el": 10, "element": [6, 8, 10, 12, 14, 16], "els": [2, 6, 12, 13, 14, 15, 16], "elt": 16, "emac": 8, "email": [2, 5, 8, 12, 13, 15], "emails_onvalid": 12, "emb": 10, "embed": [8, 12], "ember": 12, "emerg": 16, "emphas": 10, "employe": [5, 14], "empti": [2, 4, 6, 12, 16], "empty_regex": 12, "en": [5, 7], "enabl": [1, 5, 6, 7, 10, 13, 15, 16], "enable_record_vers": 6, "encapsul": [8, 10], "enclos": [6, 8], "encod": [5, 6, 12, 16], "encrypt": [0, 2, 5], "end": [4, 6, 8, 10, 12, 13, 14, 15, 16], "endpoint": [13, 16], "enforc": [5, 6, 12, 15], "engin": [6, 12], "english": 5, "enhanc": 6, "enough": [12, 13, 14], "enqueu": 16, "enqueue_run": 16, "ensur": [6, 12], "enter": [4, 5, 10, 12, 13], "enterpris": [1, 13], "entir": [6, 8, 15, 16], "entiti": 6, "entity_quot": 6, "entri": [0, 6, 7, 11, 12, 14, 15], "entropi": 12, "env": [1, 15], "envelop": 16, "environ": [0, 1, 4, 5, 6, 15], "epub": 1, "eq": 7, "equal": [6, 7, 10, 13, 16], "equip": 5, "equival": [4, 5, 6, 10, 12, 15], "errlog": 5, "error": [1, 2, 3, 5, 6, 7, 8, 10, 12, 15, 16], "error_messag": 12, "errorlog": 2, "escap": [6, 8, 10], "especi": [0, 2, 5, 6, 12, 13], "esprima": 4, "establish": [6, 15], "etc": [4, 5, 6, 7, 11, 15], "eval": 16, "evalu": [5, 6, 7, 8, 12, 16], "even": [1, 4, 5, 6, 8, 10, 12, 14, 15, 16], "event": [2, 6, 16], "event_tim": 6, "eventu": 5, "ever": 6, "everi": [0, 2, 4, 5, 6, 13, 14, 15, 16], "everyon": [0, 1], "everyth": [2, 15, 16], "evolut": 0, "ex": 2, "exact": 15, "exactli": [5, 6, 8], "exampl": [1, 2, 3, 4, 5, 6, 8, 10, 11, 13, 17], "excel": [1, 14], "except": [2, 4, 5, 6, 10, 12, 13, 16], "excerpt": 8, "exclud": 12, "exclus": [0, 5, 6, 12, 13], "execut": [1, 2, 5, 6, 8, 10, 12, 15, 16], "exercis": [5, 13], "exist": [2, 5, 6, 12, 13, 14, 16], "exit": [2, 5], "exp": [4, 6], "expand": [1, 3], "expect": [2, 4, 5, 6, 10, 12, 15], "experi": [1, 12, 13], "experienc": 0, "experiment": [2, 5], "expir": [5, 6], "explain": [4, 5, 6, 12, 14], "explanatori": 6, "explicit": [0, 2, 4, 5, 6, 12, 13, 16], "explicitli": [0, 2, 5, 6, 8, 10, 12], "explict": 6, "explor": 3, "export": 17, "export_to_csv_fil": 6, "expos": [0, 3, 4, 5, 6, 7, 13], "express": [4, 7, 8, 10, 11, 12, 14, 16], "extend": [0, 5, 6, 12, 13, 15, 16], "extens": [3, 6, 12, 15], "extern": [2, 6], "extra": [5, 6, 12, 13], "extra_field": 5, "extract": [6, 12, 16], "f": [6, 13, 14, 15, 16], "fa": 14, "face": [1, 6], "facebook": [0, 5], "facilit": 4, "fact": [4, 5, 6, 15], "factori": [6, 10], "fail": [3, 6, 8, 12, 16], "failur": [4, 12, 16], "fake": 6, "fake_migrate_al": 6, "fall": 12, "fals": [2, 5, 6, 7, 8, 10, 12, 13, 14, 15, 16], "famou": 1, "fanci": 16, "far": [6, 16], "fast": [0, 4, 16], "faster": [0, 6, 8, 15], "father": 6, "father_id": 6, "favorite_color": 5, "fb00": 12, "fdb": 6, "fe80": 12, "feasibl": [2, 12], "featur": [0, 2, 4, 7, 8, 15, 17], "februari": 5, "feed": 6, "fetch": [15, 16], "fetchon": 6, "few": [6, 8, 13, 16], "ff00": 12, "fid": 6, "field": [2, 4, 5, 7, 10, 13, 15, 16, 17], "field1": 6, "field2": 6, "field3": 6, "field_id": 14, "fieldnam": [6, 16], "fieldstorag": 12, "fifth": 14, "file": [0, 1, 2, 3, 5, 6, 8, 10, 13, 14, 16, 17], "file_cont": [6, 16], "file_nam": [6, 16], "file_path": 15, "filenam": [2, 4, 5, 6, 12], "filep": 4, "filepath": 4, "filesystem": [0, 4, 5, 6], "fileuploadwidget": 12, "fill": [12, 16], "filter": [2, 4, 7, 12, 13], "filter_in": 12, "filter_out": 14, "final": [1, 2, 4, 6, 11, 14], "find": [1, 2, 4, 8, 11, 12, 13, 14, 16], "find_by_tag": 13, "find_match": 11, "findal": 12, "fine": [2, 13, 14], "fire": 6, "firebird": 6, "firebird_embed": 6, "firebirdadapt": 6, "firebirdembed": 6, "firebirdembeddedadapt": 6, "firefox": [3, 16], "firfox": 16, "first": [0, 3, 5, 7, 8, 10, 12, 13, 14, 15, 16, 17], "first_nam": [4, 5, 13, 14], "first_onli": 10, "first_row": 6, "first_row_dict": 6, "fist": 12, "fit": 12, "five": 6, "fix": [5, 15], "fixtur": [0, 2, 4, 6, 10, 13, 15, 17], "fk_field": 16, "fk_tabl": 16, "fkdaog": 8, "flag": 12, "flash": [8, 12, 16, 17], "flask": [0, 15], "flexibl": [0, 6, 13, 14, 16], "flight": 7, "float": [4, 12], "flow": 13, "fn": 2, "focu": 16, "fold": 6, "folder": [1, 2, 3, 4, 5, 7, 11, 12, 14, 15], "follow": [1, 2, 4, 5, 6, 7, 8, 10, 11, 12, 13, 14, 15, 16], "font": [8, 12, 14], "foo": 14, "foot": 13, "footer": [8, 10], "forbid": 12, "forbidden": 12, "forc": [2, 6, 12, 13], "foreground": 12, "foreign": [1, 14], "foreign_key_check": 6, "forgeri": 5, "forget": [6, 14], "form": [0, 5, 6, 7, 11, 13, 14, 17], "form_bas": 12, "form_custom_widget": 12, "form_exampl": 12, "form_minim": 12, "form_nam": 12, "form_widget": 12, "format": [4, 5, 7, 10, 11, 13, 14], "formatt": 16, "formdata": 7, "former": 6, "formstyl": [12, 14, 16], "formstylebootstrap4": 12, "formstylebulma": [12, 14, 16], "formstyledefault": [12, 14], "formstylefactori": 16, "forum": 3, "forward": [1, 3], "found": [2, 6, 12], "four": [2, 6], "fourth": 12, "fp": 5, "fr": 11, "framework": [0, 1, 2, 4, 5, 12, 13, 14, 15, 16], "free": [1, 5, 6, 13], "freetext": 16, "frequent": [1, 6, 12], "friendli": [0, 5, 8], "from": [0, 1, 3, 5, 7, 8, 10, 11, 12, 13, 14, 16, 17], "from_address": 13, "front": [0, 8, 12, 16], "frontend": 16, "fsstorag": 5, "ftp": 12, "full": [2, 4, 6, 8, 12, 14, 16], "fulli": [1, 4, 5, 6, 12], "fullnam": 6, "func": [2, 5], "function": [0, 2, 4, 5, 6, 7, 10, 14, 15, 16], "functool": 16, "furnitur": 5, "further": 13, "futur": [5, 15, 16], "g": [1, 2, 6, 10, 12], "gain": 2, "gather": 14, "gavgavian": 1, "gender": 6, "gener": [0, 1, 2, 4, 5, 7, 8, 10, 12, 13, 14, 15, 16], "german": 11, "get": [1, 2, 4, 5, 6, 8, 12, 13, 14, 15, 16, 17], "get_cooki": 16, "get_us": [4, 5, 13, 15], "get_var": [7, 15], "getvalu": 6, "gevent": [1, 2], "geventw": 2, "geventwebsocketserv": 2, "gia": 5, "gib": 6, "gif": 12, "git": [1, 2], "github": [2, 3, 4, 6, 14], "gitlat": 1, "give": [0, 2, 4, 5, 6, 8, 13, 14], "given": [2, 5, 6, 8, 12, 16], "global": [0, 5, 6, 8, 13, 15, 16], "go": [1, 2, 4, 6, 8, 14, 16], "goal": 0, "goe": [6, 12], "good": [2, 3, 12], "googl": [0, 3, 5, 8, 12, 14], "googledatastor": 6, "googledatastoreadapt": 6, "googlemysql": 6, "googlepostgr": 6, "googlesql": 6, "googlesqladapt": 6, "gotcha": 17, "gotta": 8, "granular": 6, "granulari": 12, "graphql": 7, "great": 16, "greater": 7, "greedi": 4, "green": [4, 6, 12, 15], "grid": [0, 17], "grid_class_styl": 14, "grid_tutori": 14, "gridactionbutton": 14, "gridclassstyl": 14, "gridclassstylebulma": 14, "group": [0, 2, 3, 5, 13, 15], "group_nam": [5, 13], "groupbi": 12, "grow": [0, 6, 16], "gt": [7, 10], "guarante": [5, 6, 8, 15, 16], "guid": 2, "guidelin": 13, "gunicorn": 2, "gunicorngev": 2, "gz": 12, "h": [2, 12], "h1": [4, 8], "h2": [8, 12], "ha": [0, 2, 4, 5, 6, 7, 8, 10, 11, 12, 13, 14, 15, 16], "habit": 2, "had": 6, "hamburg": 8, "hand": [2, 6, 16], "handi": 6, "handl": [2, 4, 5, 6, 12, 14, 15, 16], "handler": 4, "hang": 1, "happen": [5, 6], "hard": 15, "hardcod": 5, "has_membership": 13, "hash": [2, 6, 12], "have": [0, 1, 2, 3, 4, 5, 7, 8, 10, 12, 13, 14, 15, 16], "he": 6, "head": [4, 8, 12, 14], "header": [4, 5, 6, 8, 10, 14, 16], "height": [12, 14, 16], "hello": [4, 5, 6, 8, 10, 12, 13, 16], "help": [2, 6, 7, 8, 10, 12, 15, 17], "helper": [0, 4, 5, 6, 8, 12, 14, 15, 17], "henc": [0, 2, 4, 5, 6, 12], "her": 12, "here": [0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 11, 12, 13, 14, 16], "hesit": 6, "hex": 12, "hh": 12, "hi": [6, 12, 16], "hidden": [6, 12, 16], "hidden_div": 16, "hidden_input": 16, "hide": [6, 14], "hierarch": 13, "high": [12, 13], "higher": 6, "highest": 12, "highli": [1, 14], "highlight": [1, 8], "hint": [14, 17], "histor": [0, 6], "histori": 12, "hit": [2, 6], "hmac": 12, "ho": 5, "hold": [6, 16], "home": 8, "host": [1, 2, 5, 12, 13], "hour": 12, "hous": 15, "housekeep": 6, "how": [0, 2, 4, 5, 6, 7, 8, 12, 13, 14, 15, 16, 17], "howev": [6, 8, 10, 12, 14, 16], "href": [8, 10, 13, 14], "hs256": 5, "html": [1, 4, 5, 7, 8, 11, 12, 13, 14, 15, 16], "html5": 8, "htmx": [14, 17], "htmx_form": 16, "htmx_form_demo": 16, "htmx_grid": 16, "htmx_list": 16, "htmxautocompletewidget": 16, "http": [0, 1, 3, 4, 5, 6, 7, 8, 10, 11, 12, 13, 14, 15, 16], "httrespons": 5, "hulk": 12, "hundrand": 16, "hx": 16, "hypertext": 16, "hyphen": 10, "i": [1, 2, 3, 4, 5, 6, 7, 8, 11, 12, 13, 14, 15, 16, 17], "i18n": 11, "ibm_db_dbi": 6, "icon": [8, 14], "id": [0, 1, 2, 3, 5, 7, 8, 10, 12, 13, 14, 15, 16], "id1": 6, "id2": 6, "id_field_nam": 14, "id_valu": 14, "idea": 6, "ident": [6, 7, 15], "identifi": [4, 5, 6, 10, 12], "idn": 12, "ie": 12, "ietf": 12, "ifram": 12, "ignor": [4, 6, 8, 10, 12, 14, 16], "ignore_attribute_plugin": 14, "ignore_common_filt": [6, 12], "ignore_field_cas": 6, "iip": 6, "illustr": [6, 8], "imag": [6, 8, 10, 12], "image_fil": 6, "imagin": [5, 6, 8, 16], "imap": 6, "imapadapt": 6, "imaplib": 6, "img": [4, 12], "immedi": [2, 6, 14], "immens": 0, "implement": [4, 5, 6, 8, 12, 13, 15, 16], "impli": 7, "implic": 5, "implicit": 6, "implicitli": [6, 12], "import": [0, 1, 2, 4, 5, 7, 8, 10, 11, 12, 13, 14, 15, 16, 17], "import_and_sync": 6, "import_from_csv_fil": 6, "impos": 8, "impot": 12, "improv": [12, 13, 14], "includ": [0, 4, 5, 6, 7, 10, 12, 14, 15, 16], "include_action_button_text": 14, "include_path": 4, "inclus": [0, 12], "incom": 2, "incorrect": 8, "increas": 5, "increment": 6, "inde": [0, 5], "indent": 8, "independ": [0, 5, 6, 13], "index": [1, 2, 4, 5, 7, 8, 10, 12, 13, 14, 15, 16, 17], "indic": [4, 6, 12, 15, 16], "individu": [0, 2, 5, 6, 7, 8, 12], "ineffici": [5, 6], "infinit": 6, "info": [2, 4, 5, 6, 13], "inform": [1, 5, 6, 7, 12, 13, 15, 17], "informix": 6, "informixadapt": 6, "informixdb": 6, "informixs": 6, "ingr": 6, "ingredi": 4, "ingresadapt": 6, "ingresdbi": 6, "ingresu": 6, "ingresunicod": 6, "ingresunicodeadapt": 6, "init": 14, "initi": [0, 2, 4, 5, 8, 12], "inject": [6, 8, 12, 17], "inlin": [10, 16], "inner": [5, 8, 16], "input": [2, 4, 5, 6, 8, 12, 16], "insensit": [6, 12], "insert": [3, 5, 7, 8, 12, 13, 14, 16], "insid": [1, 2, 4, 5, 6, 8, 10, 12, 14, 15, 16], "inspector": 8, "inspir": 7, "instal": [0, 1, 3, 4, 5, 6, 13, 16, 17], "instanc": [6, 10, 12, 14, 16], "instanti": [6, 13, 14, 15], "instead": [1, 4, 5, 6, 8, 10, 12, 13, 14, 15, 16], "instruct": [2, 12], "int": [4, 6, 12, 13, 15], "int2ip": 6, "integ": [2, 4, 6, 7, 10, 12, 16], "integr": [0, 1, 8, 16], "intend": [6, 16], "intention": 12, "interact": [0, 5], "interchang": 13, "interfac": [0, 3, 5, 6, 14, 15, 16], "intermedi": 6, "intern": [0, 1, 4, 5, 6, 8, 13, 14], "internation": [0, 4, 5, 12, 15, 17], "interpret": [0, 6, 7, 10], "intersect": 6, "introduc": [0, 8], "introduct": [1, 2, 17], "intuit": 12, "invalid": [2, 5, 6, 12], "invert": [6, 12], "invis": 6, "involv": [6, 8, 14, 15], "io": [2, 6], "ip": [6, 12], "ip2int": 6, "ip_list": 13, "ipaddr": 6, "ipaddress": 13, "iptabl": 2, "ipv4": [6, 12], "ipv4address": 13, "ipv4network": 13, "ipv6": 12, "is_6to4": 12, "is_act": 6, "is_automat": 12, "is_dat": 6, "is_datetim": 6, "is_decimal_in_rang": 6, "is_empty_or": 6, "is_float_in_rang": 6, "is_imperson": 13, "is_in_db": [6, 14], "is_in_set": 6, "is_int_in_rang": 6, "is_json": 6, "is_length": 6, "is_link_loc": 12, "is_localhost": 12, "is_multicast": 12, "is_not_empti": 6, "is_null_or": 14, "is_priv": 12, "is_publ": 6, "is_reserv": 12, "is_rout": 12, "is_teredo": 12, "is_tim": 6, "isdir": [7, 14], "isn": [12, 14], "iso": 7, "isol": 16, "issu": [0, 3, 6], "ital": 10, "italian": [5, 11], "item": [6, 7, 8, 10, 12], "itemize1": 8, "itemize2": 8, "iter": [8, 12], "iterselect": 6, "its": [0, 1, 2, 3, 4, 5, 6, 8, 10, 12, 13, 14, 15, 16], "itself": [2, 6, 12, 16], "iv": 6, "j": [0, 4, 5, 8, 11, 15, 17], "javascript": [1, 4, 7, 10, 16], "jdbc": 6, "jdbcpostgr": 6, "jdbcpostgresqladapt": 6, "jdbcsqlite": 6, "jdbcsqliteadapt": 6, "jetbrain": 1, "jim": [0, 1, 14], "jinja2": 5, "job": [7, 12, 14], "john": [0, 6], "join": [4, 5, 7, 12, 13, 14, 15, 17], "jonathan": 6, "journalist": [7, 14], "journei": 1, "jpeg": 12, "jpg": 12, "jpsteil": 14, "jqueri": [10, 12, 16], "jsl": 16, "json": [0, 1, 2, 4, 5, 6, 7, 11, 12, 15, 16], "jump": 1, "junk": 6, "just": [1, 2, 4, 5, 6, 7, 8, 12, 14, 16], "jwt": 5, "jython": 6, "k": [5, 8, 15], "karg": 10, "kbyte": 5, "keep": [1, 2, 4, 5, 6, 7, 8, 10, 12, 14, 15], "keep_valu": 12, "kei": [2, 4, 5, 7, 10, 11, 12, 13, 17], "keller": 0, "ken": 6, "kent": [7, 14], "kevin": 0, "keycod": 16, "keyup": 16, "keyword": [8, 10], "kfield": 16, "kill": 16, "kind": [0, 4], "kinterbasdb": 6, "know": [1, 2, 5, 6, 8, 14], "knowledg": 1, "known": [6, 8], "known_express": 11, "ktabl": 16, "kwarg": [6, 16], "ky8iq0g4b3cyey6wyhn3yt9pw0xpsrivlkmxe40ptknxrlnz9": 8, "l": [2, 12], "label": [6, 7, 8, 12, 14, 15, 16], "lack": [6, 12, 15], "lambda": [5, 6, 10, 12, 14, 16], "languag": [0, 1, 4, 5, 11, 15, 16, 17], "larg": [6, 12], "larger": 0, "last": [1, 5, 8, 12, 13, 14, 16], "last_insert_id": 6, "last_nam": [5, 13, 14], "last_row": 6, "lastdot": 12, "lastrowid": 6, "later": [1, 2, 4, 5, 6, 8, 10, 12, 13, 14], "latest": [2, 6, 15], "latin1": 6, "latter": [6, 12, 15], "launch": [1, 2], "launcher": 1, "lax": 5, "layer": [5, 15, 17], "layout": [12, 13, 14, 15, 16, 17], "lazi": [2, 4, 15], "lazili": 16, "lazy_t": 6, "lazy_total_pric": 6, "ldap": [0, 5], "ldap_plugin": 13, "ldap_set": 13, "ldapplugin": 13, "lead": 14, "leader": 16, "learn": [1, 6], "least": [1, 2, 6, 12, 15, 16], "leav": [5, 6, 13], "left": [8, 12, 14, 16], "len": [12, 16], "length": [6, 12], "less": [7, 12, 15, 16], "let": [2, 6, 7, 12, 16], "letter": 12, "level": [2, 6, 7, 11, 12, 13], "leverag": 0, "li": [8, 12, 13, 16], "lib": [2, 8, 10, 14], "libldap2": 13, "librari": [0, 2, 4, 6, 11, 12, 13, 15, 16], "libsasl2": 13, "libsass": 4, "licens": 1, "life": 16, "lifespan": 12, "lifetim": 5, "lighter": [6, 15], "like": [0, 1, 2, 3, 4, 5, 7, 8, 10, 11, 12, 13, 14, 15, 16], "limit": [0, 2, 5, 6, 7, 8, 12, 13, 15, 16], "line": [4, 5, 6, 7, 8, 10, 12, 13, 14, 16, 17], "link": [2, 6, 7, 8, 10, 12, 13, 14, 16], "lint": 1, "linux": 2, "list": [0, 1, 2, 4, 5, 7, 8, 10, 12, 13, 14, 16], "list_of_field": 6, "listabl": 6, "listen": 3, "listproperti": 6, "liststringproperti": 6, "listwidget": 12, "littl": [1, 5, 6], "live": 16, "ll": [1, 2, 3, 5, 6, 8, 12, 14, 16], "load": [3, 4, 5, 6, 8, 14, 16], "loazkji": 8, "local": [3, 5, 6, 12, 13, 14, 15], "localhost": [2, 4, 5, 6, 12], "locat": [2, 4, 8, 15], "lock": [5, 6, 16], "log": [2, 3, 4, 5, 6, 8, 10, 13, 15, 16], "logerror": 5, "logfil": 6, "logging_level": 2, "logic": [2, 5, 12, 13, 15, 16], "login": [0, 2, 4, 5, 6, 8, 12, 13, 15, 17], "logo": [0, 8, 10], "logout": [0, 8, 13], "long": [0, 2, 12, 16], "longer": [0, 6], "longtext": 6, "look": [2, 3, 5, 6, 7, 10, 12, 13], "lookup": [5, 7, 12], "loop": [6, 8, 16], "lose": [6, 12], "lost": [1, 5, 6, 15], "lot": [1, 4, 6], "love": 0, "low": 0, "lower": 12, "lowercas": 12, "lowest": 12, "lru": 5, "lt": [2, 10], "luca": [0, 1], "m": [0, 2, 6, 10, 12], "mac": 6, "machin": 6, "macneiln": 2, "maco": 2, "made": [1, 2, 6, 8, 12, 14], "magic": 0, "mai": [2, 4, 5, 6, 8, 10, 12, 14, 15, 16], "mail": [1, 3, 6, 12], "mailto": 12, "main": [0, 1, 2, 4, 6, 8, 14, 15, 16, 17], "maintain": [6, 8, 14, 16], "mainten": 16, "major": 6, "make": [0, 1, 2, 5, 8, 10, 11, 12, 13, 14, 15, 16], "makefil": 2, "man": 16, "manag": [0, 1, 2, 3, 4, 5, 6, 12, 13, 16], "mandatori": [5, 6, 8], "mani": [0, 1, 2, 4, 5, 7, 8, 12, 14, 15, 16], "manipul": 6, "manner": [5, 15], "manual": [2, 3, 4, 6, 10, 13, 14], "map": [2, 4, 6, 10, 11, 12, 15], "map_non": 6, "marco": 6, "margin": [8, 16], "mark": [6, 13], "massimo": [0, 6], "master": [1, 2, 6, 14], "match": [2, 4, 5, 6, 7, 8, 10, 11, 12], "materi": 6, "math": 16, "mathemat": 6, "matter": 15, "max": [11, 12, 16], "max_concurrent_run": 16, "maximum": [5, 6, 12], "maxip": 12, "maxlen": 12, "maxsiz": 12, "mayb": [2, 5], "md5": 12, "me": [10, 12, 14, 16], "mean": [1, 2, 3, 5, 6, 8, 12, 13, 15], "mechan": [0, 5, 6, 8, 10, 13, 15], "meet": 6, "member": [12, 13], "membership": [0, 5, 12, 13, 15], "memcach": [0, 6], "memoiz": 17, "memori": 5, "mention": [5, 13, 16], "menu": [8, 12, 13], "merg": 6, "mess": 1, "messag": [2, 4, 5, 7, 8, 12, 14, 15, 16], "met": 6, "meta": [8, 10], "metadata": 6, "metatag": 10, "method": [4, 5, 7, 8, 10, 12, 13, 14, 16, 17], "mfa": 13, "micah": 0, "microsoft": [1, 13], "mid": 6, "middlewar": 5, "might": [7, 12], "migrat": [15, 17], "migrate_en": 6, "mileston": 1, "min": [8, 12, 14], "min_length": 12, "mind": [1, 4, 6, 7, 8, 12], "minim": [5, 14, 17], "minimalist": [8, 15], "minimalist_pag": 8, "minimum": [6, 12], "minip": 12, "minor": [8, 12, 15], "minsiz": 12, "minut": 12, "miss": [2, 13, 14], "mistak": 2, "mix": 8, "mkdir": [2, 4, 7, 14], "mm": 12, "mode": [2, 4, 5, 12, 13], "model": [0, 3, 4, 7, 10, 12, 14, 15, 16], "modern": [6, 13, 16], "modif": 2, "modifi": [2, 4, 6, 7, 8, 12, 14, 15, 16], "modificaiton": 12, "modified_bi": 6, "modified_on": 6, "modul": [0, 1, 2, 4, 5, 6, 8, 10, 12, 13, 14, 15, 17], "modular": [0, 6, 8, 15], "moment": 6, "mongo": 6, "mongodb": 6, "mongodbadapt": 6, "monkei": 5, "monolith": 0, "monospac": 10, "month": 12, "more": [0, 1, 2, 4, 5, 7, 8, 10, 12, 13, 14, 15, 16], "moreov": [6, 16], "most": [0, 3, 4, 5, 6, 12, 13, 14, 15, 16], "mostli": 5, "mother": 6, "mother_id": 6, "mount": 13, "move": 6, "mssql1": 6, "mssql1n": 6, "mssql2": 6, "mssql2adapt": 6, "mssql3": 6, "mssql3adapt": 6, "mssql3n": 6, "mssql4": 6, "mssql4adapt": 6, "mssql4n": 6, "mssqladapt": 6, "mssqln": 6, "mtabl": 0, "much": [0, 1, 4, 5, 6, 8, 12, 14, 15, 16], "multi": [1, 2, 6, 15], "multicast": 12, "multipl": [0, 1, 2, 4, 6, 8, 10, 11, 12, 15, 16, 17], "multiprocess": 5, "multiselect": 12, "multius": 13, "must": [1, 2, 3, 4, 5, 6, 8, 10, 12, 13, 14, 15], "my": [5, 8, 10, 12, 13, 16], "my_app": 4, "my_id": 16, "my_password_fil": 2, "my_task": 16, "my_url_path": 15, "my_var": [5, 10], "myapp": [2, 4], "myclass": 10, "mycompon": 16, "mycustomwidget": 12, "mydb": 6, "myerror": 5, "myfield": 6, "myfil": 6, "myfixtur": 5, "myfunct": 2, "myidx": 6, "myobj": 6, "myobjnam": 6, "myorder": 6, "myqueri": 6, "myrecord": 6, "mysaltvalu": 12, "myset": 6, "mysidebar": 8, "mysqladapt": 6, "mysqldb": 6, "mysqldv": 6, "mystyl": 12, "mytabl": 6, "myvalu": 6, "myvirtualfield": 6, "myvirtualfields1": 6, "myvirtualfields2": 6, "n": [5, 6, 11, 16], "name": [2, 4, 5, 7, 8, 10, 12, 13, 14, 15, 16], "nameonli": 6, "narrow": 6, "nativ": 6, "native_json": 12, "nav": 8, "navbar": [8, 13], "navig": [8, 14, 16], "ndb": 6, "ne6fz": 8, "necessari": [6, 8, 10], "neck": 16, "need": [0, 1, 2, 4, 5, 6, 8, 10, 12, 13, 14, 15, 16], "neg": [6, 12], "negat": 6, "neither": [6, 12], "nest": [6, 8, 10], "nested_select": 6, "network": [12, 13], "never": [5, 6, 8, 12, 15, 16], "nevertheless": 6, "new": [0, 1, 2, 3, 4, 5, 7, 8, 10, 11, 12, 13, 14, 15, 16], "new_app": [8, 10], "new_password": 16, "new_sidecar": 16, "newer": 8, "newli": [4, 6, 11], "newlin": [6, 12], "next": [1, 2, 5, 6, 8, 12, 16], "nginx": 2, "nice": 10, "nicer": 16, "nico": 0, "nid": 6, "no_backslash_escap": 6, "no_tabl": [12, 16], "node": [4, 16], "non": [4, 5, 6, 12, 14, 15], "none": [2, 5, 6, 7, 10, 12, 14, 15, 16], "nor": [2, 6, 12], "normal": [2, 4, 5, 6, 8, 10, 12, 14, 16], "northwind": 1, "nosqladapt": 6, "not_author": 13, "notat": [6, 10], "note": [1, 2, 5, 8, 10, 12, 15, 16], "noth": [2, 5, 6, 12, 16], "notic": [2, 4, 5, 6, 8, 10, 12, 13, 14, 15, 16], "notnul": 6, "notset": 2, "now": [0, 2, 4, 5, 6, 8, 12, 14, 16], "nowadai": 1, "null": [6, 7, 12, 16], "num": 6, "number": [2, 4, 5, 6, 8, 11, 12, 14], "number_work": 2, "numer": [6, 12], "o": [4, 5, 7, 12, 14], "oauth": 13, "oauth2": [0, 5], "oauth2discord": 13, "oauth2facebook": 13, "oauth2googl": 13, "obj": [6, 8], "object": [0, 5, 6, 7, 8, 10, 11, 12, 15, 17], "observ": 6, "obtain": [2, 4, 6, 13, 16], "obviou": [6, 7, 8, 13], "obvious": [6, 12], "occasion": [6, 12], "occur": [2, 6, 8, 12, 16], "odd": [6, 8], "off": [0, 2, 4, 6, 14, 16], "offici": [0, 6, 12, 16], "offset": [6, 7], "often": [4, 6, 13, 16], "ok": [10, 15], "old": [2, 5, 12, 15], "older": 12, "ombott": [0, 4, 15], "omit": 2, "on_delete_act": 6, "on_error": 5, "on_fals": 5, "on_request": 5, "on_success": 5, "onc": [1, 2, 5, 10, 12, 13, 14, 16], "onclick": 16, "ondelet": 6, "one": [0, 2, 3, 4, 5, 7, 8, 11, 12, 13, 14, 16], "ones": [2, 5, 6, 7, 12, 15], "onion": 5, "onkeydown": 16, "onli": [1, 2, 3, 4, 5, 6, 7, 8, 10, 12, 13, 14, 15, 16], "onlin": [1, 6], "onload": 16, "onvalid": 12, "onward": 6, "opac": 16, "open": [1, 2, 3, 4, 5, 6, 10], "oper": [0, 3, 5, 11, 12, 13, 17], "operationalerror": 12, "oppos": [6, 10], "opposit": [5, 6], "oprow": 6, "optim": [4, 6], "optimis": 6, "option": [0, 3, 4, 5, 6, 7, 8, 13, 14, 15, 16, 17], "oracleadapt": 6, "order": [1, 2, 4, 5, 6, 7, 10, 12, 14, 15], "order_item": 6, "orderbi": [12, 13, 14, 16], "ordereddict": 6, "org": [7, 10, 16], "organ": 4, "origin": [6, 8, 10, 11, 12], "other": [0, 1, 2, 4, 5, 7, 8, 10, 11, 13, 14, 15, 16, 17], "other_pag": [12, 16], "otherfield": 6, "othert": 6, "otherwis": [5, 6, 8, 12, 13, 14], "oufil": 6, "our": [0, 1, 2, 4, 5, 6, 10, 12, 16], "out": [0, 1, 2, 6, 8, 16], "outer": [5, 12, 16], "outlin": [4, 5], "output": [1, 2, 4, 5, 6, 7, 8, 10, 12, 16], "output_styl": 4, "outsid": [0, 5, 6, 12, 14, 15, 16], "ov": 6, "over": [6, 8, 14, 16], "overcom": 6, "overhead": 6, "overkil": 13, "overload": 6, "overrid": [4, 6, 8, 10, 13, 14, 15, 16], "override_class": 14, "override_styl": 14, "overview": 17, "overwritten": [5, 15], "own": [4, 5, 6, 8, 12, 13, 14, 15, 16], "owner": [6, 12], "owner_id": 6, "owner_id1": 6, "owner_id2": 6, "ownership": 6, "p": [2, 8, 12], "p10n": 11, "packag": [0, 6, 10], "pad": [8, 15, 16], "page": [1, 5, 6, 10, 12, 13, 14, 15, 16, 17], "page_head": 8, "page_left_menu": 8, "page_script": 8, "pagin": [6, 14], "paint": [4, 12], "pair": [6, 10], "pam": [0, 5], "pam_plugin": 13, "pamplugin": 13, "paragraph": [1, 5, 10, 12, 14], "param": [12, 13, 14, 15, 16], "paramet": [1, 2, 4, 5, 13, 16], "parent": [2, 6, 8, 16], "parenthes": 6, "park": [7, 14], "pars": [4, 5, 6, 11, 12, 13], "parsemodul": 4, "parser": 6, "part": [6, 10, 12, 15], "parti": [0, 5], "partial": [4, 6, 15], "particip": 1, "particular": [0, 1, 6, 12, 14, 15, 16], "particularli": 6, "pass": [2, 4, 5, 6, 8, 10, 12, 13, 14, 15, 16], "passphras": 5, "password": [0, 2, 3, 5, 6, 8, 12, 13, 15, 16], "password_fil": 2, "passwordwidget": 12, "patch": 5, "path": [2, 4, 5, 6, 7, 11, 12, 14, 15, 16], "path_to": 2, "pattern": [4, 7], "paus": 2, "payment": 6, "payrol": 5, "pbkdf2": 12, "pc": 3, "pdf": [1, 12], "pdkdf2": 2, "per": [0, 4, 5, 7, 14], "percent": 6, "percentag": 6, "perfect": 0, "perfectli": 14, "perform": [0, 3, 5, 6, 12, 13, 15], "period": 16, "permiss": [0, 5, 6, 15], "permit": 6, "permitted_tag": 10, "persist": [5, 6, 13], "person": [2, 6, 7, 12, 14], "persons_and_th": 6, "perspect": 0, "pet": 6, "peter": [7, 14], "phase": 6, "philip": 6, "phone": 12, "photograph": [7, 14], "phrase": 6, "physic": 13, "pick": [4, 5, 13], "piec": [0, 5, 6, 8, 12], "pierro": 0, "pip": [0, 1, 6], "pirsch": 0, "piu": 5, "pixel": 12, "place": [1, 5, 6, 8, 12, 14, 16], "placehold": [6, 11, 12, 16], "plai": [0, 16], "plain": 6, "plan": [1, 16], "platform": [0, 1, 17], "pleas": [5, 6], "plu": [6, 8, 13, 14], "plugin": [4, 5, 12, 14, 16], "plural": [0, 4, 5, 14, 15, 16, 17], "pm": 12, "png": [10, 12], "point": [2, 3, 4, 5, 6, 7, 8, 12, 14, 15], "pointer": 16, "pointless": 6, "polici": [0, 17], "pollut": 5, "pool": [4, 5], "pool_connect": 6, "pool_siz": [5, 6], "poor": 16, "pop": 16, "popul": 6, "popular": [0, 6], "port": [0, 2, 3, 5, 6, 15], "portabl": 6, "portion": 14, "posit": [5, 10], "possibl": [4, 5, 6, 8, 12, 14, 15, 16], "possibli": 6, "post": [4, 6, 7, 10, 12, 13, 14, 15, 16], "post_action_button": 14, "post_text": 6, "post_var": [7, 15], "post_writ": 7, "postel": 11, "postel\u00ed": 11, "postfix": 15, "postgr": 6, "postgreboolean": 6, "postgrenew": 6, "postgrepsyco": 6, "postgrepsycoboolean": 6, "postgrepsyconew": 6, "postgres2": 6, "postgres3": 6, "postgres_nonreserv": 6, "postgresql": [2, 6], "postgresqladapt": 6, "postprocess": 15, "potenti": 2, "power": [2, 6, 7, 13, 15, 16], "pprint": 6, "pr": 1, "practic": [0, 6, 8, 12, 15, 17], "pre": [2, 4, 5, 6, 14], "pre_action_button": 14, "precaut": 2, "preced": [5, 6, 7, 8, 12], "preciou": 14, "predefin": [8, 12, 16], "predetermin": 15, "prefer": [2, 5, 6, 10, 16], "prefix": [2, 4, 6, 7, 8, 12, 15], "preliminari": 1, "prepend": [4, 7, 12, 15, 16], "prepend_schem": 12, "preprocess": 15, "prerequisit": [5, 17], "presenc": [5, 6], "present": [2, 6, 8, 12, 13], "preserv": [0, 5], "press": [3, 4, 14], "pretti": [4, 6, 15], "prevent": [2, 5, 6, 8, 10, 12, 16], "previou": [2, 5, 6, 8, 10, 12, 16], "previous": [5, 6, 12], "price": 6, "prima": 5, "primari": [8, 13], "primarili": 14, "prime": 12, "print": [4, 6, 10, 11, 13, 15, 16], "privat": [5, 12], "probabl": [4, 12], "problem": [0, 1, 6, 8, 13, 14, 16], "procedur": 17, "process": [2, 4, 5, 6, 8, 12, 13, 14, 15, 16], "produc": [0, 2, 5, 6, 8, 10, 12, 13], "product": [2, 4, 6, 16], "product_record": 16, "profil": [0, 8, 13, 15], "program": [1, 2, 3, 6, 8, 10, 12, 16], "programmat": [6, 10], "project": [0, 2, 4, 5, 6], "project_nam": 2, "prompt": [2, 4, 6], "proper": [5, 6, 14], "properli": 4, "properti": [6, 12], "protocol": 3, "prototyp": 16, "provid": [0, 2, 3, 4, 5, 6, 8, 10, 12, 13, 14, 15, 16], "prudent": 6, "pseudo": 6, "psycopg2": 6, "public": 6, "publish": 4, "pull": [1, 6], "punycod": 12, "pure": 6, "purpos": [0, 5, 6, 10, 12, 13, 15], "put": [4, 5, 7, 12, 16], "put_writ": 7, "pwd": 6, "py": [1, 2, 4, 5, 6, 7, 10, 11, 12, 13, 14, 15, 16], "py4web": [2, 3, 4, 5, 7, 8, 10, 12, 13, 14], "py4web_filesystem": 6, "py4web_wsgi": 2, "pyc": 8, "pydal": [0, 2, 3, 5, 6, 7, 12, 13, 14, 15, 16], "pyfilesystem": 6, "pymongo": 6, "pymysql": 6, "pyodbc": 6, "pypi": 2, "pypyodbc": 6, "pysqlite2": 6, "pytd": 6, "python": [0, 2, 4, 5, 6, 8, 10, 11, 12, 13, 14, 15, 16], "python2": [2, 15], "python3": [1, 2], "pyweb": 15, "q": [2, 6, 14], "qualifi": 6, "quantiti": 6, "queri": [4, 5, 7, 10, 12, 13, 14, 15, 16], "query1": 6, "query2": 6, "queryselector": 16, "queryselectoral": 16, "querystr": 14, "question": [1, 2, 6], "quick": [1, 12], "quickli": [2, 12, 14], "quiet": 2, "quirk": 5, "quit": [1, 2, 5, 7, 8, 12, 14], "quot": [2, 10], "quote_minim": 6, "quote_nonnumer": 6, "quotechar": 6, "r": [2, 6, 12], "race": 12, "radio": [10, 12], "radiowidget": 12, "radiu": 16, "rais": [5, 6, 12, 13, 15], "ram": [5, 6], "randint": [8, 13], "random": [6, 8, 12, 13, 16], "rang": [4, 6, 8, 13, 15], "rapid": [0, 16], "rare": 6, "rather": [6, 8, 10, 12, 16], "raw": 17, "rb": 6, "re": [0, 1, 2, 4, 5, 6, 8, 10, 12, 13, 14, 15, 16], "reach": 2, "react": 16, "reactiv": 16, "read": [1, 4, 5, 6, 7, 14, 16], "readabl": [5, 6, 7, 14, 15], "readi": [2, 6], "readm": [1, 12], "readonli": [2, 12, 16], "real": [2, 4, 7, 8, 12], "real_ident": [6, 7], "realiz": 6, "realli": [1, 4, 6], "reap": 16, "reason": [2, 5, 6, 7, 14, 15], "reassembl": 0, "rebuild": 6, "rebuilt": 6, "rec_id": 7, "recal": 8, "receiv": 6, "recent": [3, 5, 6, 12, 14], "recereiv": 16, "recip": 2, "recogn": [4, 6], "recommand": 16, "recommend": [1, 5, 6, 12], "record": [7, 12, 13, 14, 15, 16], "record_id": [7, 16], "recov": [6, 12], "recurr": 6, "recurs": 8, "recycl": 6, "red": [3, 4, 6, 8, 10, 12], "redefinit": 6, "redesign": 0, "redi": 0, "redirect": [4, 5, 12, 13, 14, 16], "reduc": [0, 5, 16], "redund": 6, "ref": [10, 12], "refer": [1, 5, 7, 8, 12, 16], "referenc": [6, 7, 10], "referenced_bi": 7, "reflect": [1, 6], "refresh": 14, "regex": [7, 10, 12], "regexlib": 12, "regist": [0, 5, 6, 8, 13, 15, 16], "register_plugin": 13, "register_task": 16, "register_vue_compon": 16, "registr": [4, 12], "registration_stamp": 12, "regular": [0, 2, 4, 6, 7, 8, 11, 12, 14, 15, 16], "reimplement": 16, "reinstal": 2, "reinstat": 6, "reject": 12, "rel": [4, 6, 8, 14, 15], "relat": [5, 17], "relationship": 6, "releas": [0, 2], "relev": 6, "reli": [0, 4, 6], "reliabl": 1, "reload": [2, 3, 4, 5, 12, 16], "remain": [0, 6, 12], "rememb": [3, 5, 6, 12], "remote_addr": [5, 13], "remov": [0, 2, 4, 6, 10, 12, 13], "renam": [1, 7], "render": [5, 7, 8, 10, 12, 14, 15, 16], "renoir": 8, "reopen": 5, "repackag": 0, "repeat": [6, 12], "replac": [0, 2, 6, 8, 10, 12, 14, 16], "replic": [1, 5], "report": [4, 8], "repositori": [1, 2, 3], "repr_row": 6, "repres": [0, 8, 12], "represent": 10, "representational_state_transf": 7, "representing_field": 12, "request": [0, 1, 2, 5, 6, 7, 12, 13, 14, 15, 16], "request_reset_password": 13, "requir": [0, 1, 2, 4, 5, 6, 7, 12, 13, 14, 15, 16], "requires_": 15, "requires_login": 15, "requires_membership": 5, "rescu": 6, "reserv": 12, "reset": 6, "reset_password": 13, "resourc": [6, 13, 17], "respect": [6, 10, 12, 14], "respons": [4, 5, 6, 8, 14, 15, 16, 17], "rest": [7, 13], "restapi": [0, 3, 17], "restart": [2, 4, 5, 6, 14], "restor": 6, "restrict": [5, 6, 7, 12, 16], "restructuredtext": 1, "result": [1, 6, 7, 8, 12, 14, 16], "resultset": 6, "ret": 6, "retain": 6, "retri": 6, "retriev": [4, 5, 6, 15, 16], "return": [5, 6, 7, 10, 12, 13, 14, 16], "reus": 6, "revers": [5, 6], "revert": 6, "rewrit": 6, "rewritten": 6, "rfc": 12, "rid": 6, "ride": 8, "right": [1, 2, 3, 5, 6, 8], "road": 16, "robust": 16, "rocket": 15, "rocket3": [2, 15], "rocketserv": 2, "role": [2, 5, 10], "roll": [5, 6], "rollback": [4, 16], "root": [6, 8, 13, 14], "roughli": 6, "rout": [0, 2, 3, 5, 14, 15, 16], "rover": 6, "row": [8, 10, 12, 14, 15, 16], "rows1": 6, "rows2": 6, "rows3": 6, "rows_list": 6, "rows_per_pag": 14, "rpc": 6, "rst": 1, "rule": [4, 5, 8, 12, 14], "run": [1, 3, 4, 5, 8, 13, 15, 16, 17], "run_in_transact": 6, "runtim": [2, 6], "s3": 6, "s_": [12, 16], "s_autocomplet": 16, "s_autocomplete_result": 16, "s_down_kei": 16, "s_search": 16, "safari": 16, "safe": [1, 5, 6, 10, 14, 15], "safer": [6, 12, 14], "safeti": [2, 16], "sai": [6, 13], "said": 7, "sake": 6, "salt": 12, "sam": 0, "same": [0, 2, 4, 5, 6, 7, 8, 10, 11, 12, 13, 14, 15, 16], "same_sit": 5, "saml": 13, "saml2": 0, "sampl": 13, "sandbox": 16, "sane": 4, "sanit": [5, 10, 12, 15], "santa": 1, "sap": 6, "sapdb": 6, "sapdbadapt": 6, "sass": 4, "sass_compil": 4, "save": [1, 2, 4, 5, 6, 11, 12], "scaffold": [2, 4, 5, 6, 8, 12, 15, 16], "scaffold_zip": 2, "scale": [5, 8], "scan": 6, "scare": 1, "schafer": 1, "schduler": 16, "schedul": 17, "scheduled_for": 16, "schema": 6, "scheme": 12, "school": 13, "scope": 4, "score": 16, "score_input": 16, "scratch": 17, "script": [2, 5, 8, 12, 16], "sdk": 2, "se": 6, "seamlessli": 8, "search": [0, 1, 2, 3, 6, 10, 12, 13, 17], "search_button_text": 14, "search_form": 14, "search_queri": 14, "search_text": 14, "search_valu": 16, "searchabl": 6, "sec": 16, "second": [5, 10, 12, 13, 15], "secret": [5, 13], "section": [2, 4, 6, 8, 12, 13], "secur": [0, 2, 7, 13], "see": [0, 1, 2, 3, 4, 5, 6, 8, 10, 12, 13, 14, 16], "seem": 6, "seen": [0, 5, 6, 7, 10, 12, 14, 16], "segment": 4, "select": [3, 4, 7, 11, 12, 13, 14, 15, 16, 17], "selected_el": 16, "selectedindex": 16, "selector": [10, 16], "selector1": 10, "selector2": 10, "selectorn": 10, "selectwidget": 12, "self": [2, 5, 10, 12, 14, 16], "semant": [12, 13], "send": [2, 6, 12, 13], "send_two_factor_email": 13, "sender": 13, "sens": [0, 6, 12, 13], "sensit": [5, 6, 12], "sent": [5, 6, 13, 16], "separ": [2, 5, 6, 8, 12, 13, 14, 16], "sequenc": [5, 6], "sequenti": 6, "seri": 1, "serial": [4, 5, 6, 8, 10, 12], "serializ": [0, 5, 6, 10], "serv": [0, 2, 4, 6, 13, 15, 16], "server": [0, 2, 3, 4, 7, 8, 13, 15, 16, 17], "server_addr": 6, "serversid": 16, "session": [0, 2, 4, 6, 10, 12, 13, 14, 15, 16, 17], "session_app1": 5, "session_secret_kei": 5, "set": [0, 1, 2, 4, 5, 7, 8, 10, 11, 13, 16], "set_attribut": 6, "set_encod": 6, "set_head": 6, "set_password": 3, "setinterv": 16, "setup": [1, 3, 4, 13, 14, 16, 17], "setvirtualfield": 6, "sever": 6, "sf": 16, "sftp": 6, "sh": 16, "sha512": [8, 12], "share": [6, 15], "shell": 10, "ship": 8, "shoe": 6, "shop": 5, "short": [12, 16], "shortcut": [8, 12], "shorter": [6, 12], "shortli": 4, "should": [1, 2, 4, 5, 6, 7, 8, 10, 12, 13, 14, 15, 16], "show": [1, 2, 4, 5, 6, 8, 12, 13, 14], "show_id": 14, "shown": [2, 6, 12, 13], "shutil": 6, "side": [1, 6, 16, 17], "sidebar": 8, "sidebar_en": 8, "sidebar_menu": 10, "sidecar": 16, "sign": [2, 4, 5, 6, 8, 12, 13], "signatur": [5, 7, 10, 12], "signed_url": 5, "signer": 5, "signifi": 8, "signific": 8, "signing_info": 12, "similar": [0, 4, 5, 6, 10, 12, 15], "similarli": [6, 10], "simpl": [1, 2, 4, 5, 6, 7, 8, 10, 12, 14, 16, 17], "simple_queri": 16, "simpler": [6, 8, 14], "simplest": [2, 4], "simpli": [2, 4, 5, 6, 8, 11, 12, 16], "simplic": [6, 16], "simplifi": [0, 4, 6, 8], "simultan": 6, "sinc": [0, 4, 5, 6, 7, 8, 13, 14, 15], "singl": [0, 2, 5, 6, 7, 8, 10, 12, 13, 14], "singleton": [5, 15], "site": [1, 2, 4, 5, 6, 10, 14, 16], "situat": 6, "six": 6, "size": [5, 6, 8, 12], "skip": [5, 16], "slash": [1, 4, 5, 13], "slave": 6, "sleep": 16, "sleep_tim": 16, "slice": 6, "slicker": 0, "slow": [6, 16], "slug": 12, "small": [5, 12], "smaller": 6, "snippet": 6, "so": [2, 5, 6, 8, 10, 12, 13, 14, 15, 16], "soap": 10, "socket": 16, "solut": [0, 1, 2, 6, 16], "some": [0, 1, 2, 4, 5, 6, 7, 8, 10, 12, 13, 15, 16], "some_condit": 8, "some_form": 12, "some_valu": 6, "somefield": 6, "somefil": 6, "somepath": 5, "somet": 6, "someth": [5, 6, 7, 8, 10, 12, 16], "sometim": [6, 8, 10, 12, 14], "somevalu": 6, "somewhat": 12, "somewher": 6, "soon": [8, 16], "sophist": 15, "sort": 14, "sourc": [3, 4, 6, 12, 16], "source1": 12, "south": 1, "sp": 6, "space": [6, 8, 12, 14], "span": [4, 15], "spatialit": 6, "speak": 5, "special": [0, 4, 5, 6, 8, 10, 11, 13, 15, 17], "specif": [1, 2, 5, 6, 7, 8, 10, 12, 13, 15, 16], "specifi": [2, 4, 5, 6, 7, 8, 10, 12, 13, 14, 15, 16], "speed": [6, 7, 8], "sphinx": 1, "spiderman": [7, 14], "spin": [0, 4], "spirit": 7, "split": [6, 7, 8, 12], "split_email": 12, "sql": 17, "sql_mode": 6, "sqladapt": 6, "sqlcustomtyp": 6, "sqlform": [0, 12, 15], "sqlite": [1, 5, 7, 13, 14, 16], "sqlite3": 6, "sqliteadapt": 6, "squar": [0, 8], "src": [5, 6, 8, 10, 12, 16], "ss": 12, "ssl": 2, "ssl_cert": 2, "ssl_kei": 2, "sslcert": 6, "sslkei": 6, "sslmode": 6, "sslrootcert": 6, "sso_id": [5, 13], "stabl": 2, "stai": 6, "stand": [7, 10, 12], "standard": [1, 2, 3, 6, 7, 13, 14, 15, 16, 17], "start": [0, 1, 2, 3, 4, 5, 6, 8, 10, 12, 13, 14, 15, 16], "start_imperson": 13, "startup": [6, 15, 17], "state": [5, 6, 7, 15, 16], "stateless": [5, 16], "statement": [6, 8, 12], "static": [1, 8, 10, 15, 17], "static_dev": 4, "statu": 7, "stderr": [2, 16], "stdout": [2, 16], "steil": [0, 1, 14], "step": [2, 6, 13, 15, 16], "step1": 5, "step2": 5, "step3": 5, "step_complet": 5, "still": [2, 5, 6, 10, 12, 14, 15], "stone": 14, "stop": [2, 3, 13], "stop_imperson": 13, "storag": [5, 6, 7, 14], "store": [0, 2, 5, 6, 10, 12, 13, 15, 16], "stored_item": 6, "stored_item_arch": 6, "stori": [0, 5], "str": [2, 5, 6, 10, 12, 15, 16], "stream": [4, 5, 6, 15], "strength": 7, "strict": 12, "strictli": [4, 16], "string": [4, 5, 7, 8, 10, 11, 12, 14], "stringio": 6, "stringlistproperti": 6, "strip": [2, 12, 15], "strong": [0, 10, 13], "strongli": [1, 5, 12, 14], "structur": [1, 4, 5, 6, 11, 13, 14, 15, 17], "stuck": 2, "student": 2, "studi": 1, "studio": 1, "stuff": [12, 14], "style": [4, 8, 12, 16, 17], "stylesheet": [8, 14], "sub": 6, "subclass": [6, 12], "subfold": [4, 5, 6], "subhead": 10, "subject": [6, 7, 13], "submiss": [12, 16], "submit": [1, 5, 6, 10, 12, 13, 14, 16], "submodul": 0, "subnet": 12, "subqueri": 16, "subsect": 6, "subset": [0, 6, 12], "substitut": [6, 8], "substr": 12, "subtl": 6, "succe": 6, "succeed": 0, "success": [0, 4, 5, 6, 7, 13, 16], "successfulli": 13, "sudo": [2, 13], "suffer": [0, 13], "suffic": 6, "suffici": 6, "sugar": 5, "suggest": [1, 6, 12], "sugizo": 0, "suit": 2, "summar": 6, "superhero": [6, 7, 12, 14, 16], "superman": [6, 7, 12, 14], "superpow": [6, 7], "superseed": 6, "suppli": 10, "support": [1, 4, 5, 8, 10, 11, 12, 13, 15, 16, 17], "suppos": 6, "suppress": [2, 10], "sure": [2, 3, 4, 5, 6, 11, 12, 13, 16], "surround": 12, "susan": 6, "sv": 6, "switch": [2, 5, 6], "sybas": 6, "sybaseadapt": 6, "symbol": 12, "symlink": [2, 4], "sync": [2, 6], "synopsi": 12, "syntact": [5, 12], "syntax": [0, 1, 4, 5, 6, 7, 10, 12, 13, 15, 16, 17], "system": [0, 2, 5, 6, 10, 13, 16], "sysus": 6, "t": [0, 1, 2, 3, 4, 5, 6, 8, 10, 11, 12, 13, 14, 15], "t_folder": 5, "tab": [3, 5, 12], "tabl": [5, 7, 12, 13, 14, 15, 16], "table1": 6, "table_hash": 6, "table_nam": 6, "tablenam": [6, 7, 12, 16], "tag": [0, 5, 7, 8, 15, 16, 17], "tag_input": 16, "tagged_db": 13, "tagged_nam": 13, "tagger": 10, "tags_input": 16, "tail": 6, "take": [2, 3, 4, 5, 6, 8, 10, 12, 13, 14, 16], "taken": 12, "tamper": [5, 6], "tanti": 16, "tantissimi": 11, "tar": 12, "target": [6, 10, 16], "task": [1, 5, 6, 13, 16], "task_run": 16, "tast": 6, "tbodi": 6, "tcp": 3, "td": 6, "teacher": 13, "technic": 16, "tell": [2, 4, 5, 6, 13, 14, 16], "temp": 6, "templat": [0, 10, 12, 13, 15, 16, 17], "temporari": 6, "temporarili": 5, "ten": 12, "tenanc": 6, "teradata": 6, "teradataadapt": 6, "teredo": 12, "term": [6, 12], "termin": [4, 8, 16], "test": [0, 2, 4, 6, 8, 10, 12, 13, 14], "text": [2, 5, 6, 8, 10, 14, 16], "textarea": 12, "textareawidget": 12, "textual": 10, "th": 6, "than": [0, 2, 4, 5, 6, 7, 8, 10, 12, 13, 14, 16], "thank": [0, 6, 10], "that_templ": 8, "thead": 6, "thei": [0, 2, 4, 5, 6, 7, 8, 12, 13, 15, 16], "them": [0, 1, 2, 4, 5, 6, 7, 8, 12, 13, 14, 15], "themselv": [6, 8], "therefor": [2, 4, 5, 6, 8, 10, 12, 15], "therein": 6, "thi": [0, 2, 3, 4, 5, 6, 7, 8, 10, 12, 13, 14, 15, 16], "thing": [2, 5, 6, 12, 15], "thing_id": 12, "thing_tags_default": 6, "think": [5, 6, 8, 14, 16], "third": [0, 5, 6, 12], "this_templ": 8, "thisisatest": 10, "thisisthekei": 12, "those": [0, 2, 5, 6, 8, 10, 13, 15, 16], "though": 8, "thought": [0, 6, 13], "thread": [2, 5, 6, 15, 16], "threadsafevari": 5, "three": [0, 5, 6], "through": [2, 12], "throughout": 5, "thu": [6, 8], "thumbnail": 12, "ti": 5, "ticket": [0, 3, 6], "tickets_onli": 2, "tild": 6, "tim": 6, "time": [0, 2, 4, 5, 8, 14, 15, 16], "timedelta": 12, "timeoffset": 10, "timeout": [5, 16], "timestamp": [5, 7, 16], "tip": [2, 14, 17], "titl": [3, 8, 12, 16], "tmp": [5, 6], "todai": [0, 12, 16], "todo": 16, "togeth": [0, 6, 8, 11, 14], "toi": 6, "token": [5, 12], "too": [2, 5, 6, 12, 16], "took": 6, "tool": [0, 6, 13, 16], "top": [8, 11, 12, 13], "topic": [14, 17], "tornado": 2, "total": [6, 7], "total_pric": 6, "touch": 8, "tr": 6, "traceback": [5, 6], "track": [1, 6, 15], "trade": 6, "tradit": [2, 6], "trail": [2, 12], "train": 1, "transact": 5, "transat": 16, "transform": [5, 6, 12, 16], "transit": 16, "translat": [1, 2, 4, 6, 8, 12, 15, 16, 17], "transpar": [6, 8, 12], "trap": 16, "treat": [6, 15], "tree": [4, 8, 12], "tri": [0, 6, 15], "trick": 2, "trickeri": 8, "trigger": [3, 5, 6, 16], "trivial": [5, 6], "true": [1, 5, 6, 7, 8, 10, 12, 13, 14, 15, 16], "truncat": 6, "truth": 16, "try": [1, 2, 5, 6, 12, 13, 16], "ttl": 5, "tupl": [6, 8, 10], "turn": [0, 4, 6, 12, 13, 14, 16], "tutori": [2, 14, 16], "twice": [5, 6], "twitter": [0, 5, 13], "two": [0, 1, 2, 4, 5, 6, 8, 12, 14, 15, 16], "two_factor": 13, "two_factor_filt": 13, "txt": [0, 2, 4, 6], "typ": 12, "type": [2, 4, 5, 7, 8, 10, 13, 14, 16], "typewrit": 10, "typic": [4, 5, 6, 8, 12], "u": [2, 6, 10, 12], "ubuntu": 13, "uc": 1, "uid": 6, "ul": [8, 12, 13, 16], "un": [8, 10, 11, 16], "unari": 6, "unauthent": [5, 6, 10], "unauthor": 6, "unchang": [6, 12], "under": [2, 3, 4, 5, 6, 12], "underli": 15, "underscor": [6, 10, 12], "understand": [0, 1, 4, 6, 7, 8, 14, 17], "undocu": 16, "unfortun": [6, 14], "unicod": [6, 12], "unicodedecodeerror": 6, "uniform": 6, "union": 6, "uniqu": [6, 7, 12], "unit_pric": 6, "univers": [6, 10], "unknown": 4, "unless": [2, 3, 5, 6, 8, 12, 16], "unlik": [0, 2, 4, 6, 7, 8, 15, 16], "unnam": [6, 10], "unned": 2, "unord": 10, "unpkg": 16, "unquot": [6, 10], "unsaf": [5, 10, 12], "untest": [2, 13], "until": [0, 5, 6, 8, 12], "unus": 6, "unusu": 6, "unwant": [2, 6], "unzip": 2, "up": [1, 2, 5, 6, 8, 13, 16], "updat": [2, 5, 12, 14, 15, 16, 17], "update_form": 12, "update_languag": 11, "update_na": 6, "update_th": 12, "upgrad": [6, 17], "upload": [0, 4, 15], "upload_fold": [6, 12], "upload_help": 16, "uploadf": 6, "uploadfield": 6, "uploadfold": 6, "uploadsepar": 6, "upon": [2, 8, 13, 15], "upper": [4, 5, 12], "upper_cas": 5, "uppercas": [5, 12], "uri": 13, "url": [2, 4, 5, 7, 8, 12, 13, 14, 15, 16], "url_prefix": 2, "url_sign": 5, "url_to_post_to": 16, "urlsign": 17, "us": [0, 1, 3, 4, 7, 11, 12, 15, 17], "usabl": 14, "usag": [2, 3, 4, 5, 6, 10, 12, 13, 14], "use_schedul": 16, "useful": 12, "useless": [12, 15], "user": [0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 12, 14, 15, 16], "user_email": 15, "user_id": [5, 6, 13, 15], "user_nam": 6, "user_outside_network": 13, "user_password": 6, "usernam": [5, 6, 13], "usr": 1, "usual": [1, 2, 5, 6, 7, 8, 10, 12], "utcnow": [5, 6], "utf": 6, "utf8": 6, "utf8mb4": 6, "util": [2, 4, 5, 8, 10, 12, 13, 14, 15, 17], "uuid": [5, 6], "uuid4": [5, 6], "v": [5, 10, 12, 16], "v3": 1, "val": [14, 16], "val1_row1": 6, "val1_row2": 6, "val2_row1": 6, "val2_row2": 6, "valid": [2, 4, 7, 8, 10, 14, 15, 17], "validate_j": 4, "valq7711": [0, 4], "valu": [2, 5, 7, 8, 10, 11, 12, 14, 16], "valuabl": 1, "value1": 6, "value2": 6, "value_field": 12, "var": [6, 10, 12, 15, 16], "varchar": 6, "variabl": [4, 5, 6, 10, 11, 12, 14, 16], "variou": [5, 6], "ve": [1, 2, 3, 5, 8, 10, 12, 14, 16], "vehicl": 5, "vendor": 16, "vendor_typ": 16, "venv": 2, "verbos": 6, "veri": [0, 4, 5, 6, 8, 10, 12, 13, 15, 16], "verif": 13, "verifi": [5, 12, 13], "verify_email": 13, "versa": 5, "version": [1, 3, 5, 7, 8, 12, 16], "vertica": 6, "verticaadapt": 6, "via": [5, 6, 8, 10, 13, 16], "vice": 5, "video": [2, 16], "view": [1, 5, 6], "viewport": 8, "virtual": [1, 17], "virtualenv": [1, 2], "virtualfield": 6, "visibl": 4, "visit": [3, 5, 6, 8, 12, 13], "visit_log": 5, "visitor": [6, 10, 12], "visto": 5, "visual": 1, "vital": 13, "volt": 5, "vscode": 2, "vue": [0, 4, 16], "vulner": 8, "w": [2, 4, 5, 6], "w2p_even": 6, "w2p_odd": 6, "wa": [0, 5, 6, 12, 13], "wai": [0, 2, 3, 4, 5, 6, 8, 10, 12, 13, 14, 15, 16], "wait": 6, "waitress": 2, "want": [2, 4, 5, 6, 8, 10, 12, 14, 16], "warn": [2, 5], "warp": 11, "watch": [2, 3, 17], "wayn": [7, 14], "wb": 6, "we": [0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 12, 13, 14, 15, 16], "web": [0, 1, 2, 5, 6, 8, 13, 14, 15, 16, 17], "web2pi": [0, 1, 2, 3, 4, 6, 12, 13, 14, 17], "webserv": 4, "websit": [6, 16], "websocket": 16, "welcom": [2, 4, 5, 8, 15, 16], "well": [0, 5, 6, 8, 12, 13, 16], "were": [0, 4, 6], "what": [1, 4, 5, 6, 8, 12, 13, 15, 16, 17], "whatev": [10, 16], "when": [0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 12, 13, 14, 15, 16], "whenev": [4, 6], "where": [1, 2, 4, 6, 7, 8, 12, 13, 15, 16], "whether": [5, 6, 8, 12, 13, 14, 15], "which": [0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 12, 13, 14, 15, 16], "whichev": 16, "while": [0, 5, 6, 7, 12, 13, 15], "white": [10, 16], "whitelist": 13, "who": [0, 13], "whole": [4, 12], "whose": [6, 8, 12], "why": [5, 6, 8, 15], "widget": [6, 17], "width": [8, 12], "wiki": [6, 7], "wikipedia": [6, 7], "wild": 6, "wildcard": 4, "william": 6, "window": [1, 2, 4, 5, 6, 8, 12], "wish": [1, 6, 12, 16], "wit": 2, "with_alia": 6, "withh": 5, "within": [0, 1, 4, 5, 6, 8, 10, 12, 14, 16], "without": [1, 8, 10, 14, 16, 17], "wolf": 0, "won": 6, "wood": 6, "word": [5, 6, 11, 14], "work": [0, 2, 4, 5, 6, 8, 10, 12, 13, 14, 15, 16], "worker": [2, 5, 16], "workflow": [5, 17], "workload": 6, "workspacefold": 2, "world": [4, 5, 6, 8, 10, 12], "worri": [4, 6], "worth": 8, "would": [0, 5, 6, 8, 10, 12, 14, 16], "wouldn": 6, "wrap": [5, 11, 12, 16], "wrapper": [15, 16], "writabl": [5, 6, 12, 15], "write": [2, 4, 5, 6, 8, 12, 15], "written": [1, 8, 12, 14], "wrong": [0, 5, 6], "wsgi": 5, "wsgiref": 2, "wsgirefthreadingserv": 2, "wsgith": 2, "www": [2, 8, 10, 14], "x": [2, 6, 8, 10, 12, 14, 16], "xml": [5, 8, 12, 15, 16], "xmlescap": 10, "xmln": 10, "xss": [6, 8, 10], "xyz": [10, 12], "y": [2, 10, 12], "yaml": 2, "yatl": [0, 4, 5, 6, 12, 14, 16, 17], "yb": 10, "ye": [2, 6, 16], "year": [12, 16], "yes_or_no": 6, "yet": [0, 2, 4, 5, 6, 8, 12, 16], "yield": 6, "yml": 2, "you": [0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 12, 13, 14, 15, 16], "your": [1, 2, 3, 4, 5, 6, 8, 10, 12, 13, 14, 15, 16], "your_app": 12, "your_full_path_to_py4web": 1, "your_nam": [1, 16], "yourapp": 6, "yourappnam": 2, "youremail": 13, "yourself": [1, 2, 12, 14], "youtub": [2, 6], "yyyi": 12, "z": [10, 12], "zanferrari": 0, "zap": 13, "zap_id": 13, "zapper": 13, "zero": [6, 8, 12, 14], "zip": [0, 2, 6, 12], "zip_cod": 16, "zxjdbc": 6}, "titles": ["What is py4web?", "Help, resources and hints", "Installation and Startup", "The Dashboard", "Creating an app", "Fixtures", "The Database Abstraction Layer (DAL)", "The RestAPI", "YATL Template Language", "<no title>", "YATL helpers", "Internationalization", "Forms", "Authentication and authorization", "Grid", "From web2py to py4web", "Advanced topics and examples", "py4web: the reference Manual"], "titleterms": {"A": [1, 10, 12], "On": 4, "One": 6, "The": [1, 3, 4, 5, 6, 7, 12, 14, 16], "_lastsql": 6, "_scaffold": 4, "about": [5, 6], "abstract": 6, "access": 15, "acknowledg": 0, "action": [7, 13, 14], "ad": 6, "adapt": 6, "advanc": [6, 12, 16], "aka": 2, "alias": 6, "all": 6, "alon": 6, "an": [4, 6], "anoth": 6, "any_of": 12, "anywher": 5, "app": [2, 4], "applic": 6, "arg": 15, "as_dict": 6, "as_list": 6, "asyncio": 16, "attempt": 6, "attribut": 6, "auth": [5, 13, 15], "authent": 13, "author": 13, "autocomplet": 16, "avg": 6, "base": 6, "basic": [8, 12, 14], "beautifi": 10, "belong": 6, "binari": 2, "block": 8, "bodi": 10, "broken": 6, "built": 10, "button": 14, "cach": [5, 6], "cacheabl": 6, "call": [2, 15], "callabl": 14, "callback": 6, "cascad": 6, "case": 6, "cat": 10, "caveat": 5, "celeri": 16, "chang": 4, "checkbox": 12, "children": 10, "class": 14, "cleanup": 12, "client": 5, "coalesc": 6, "coalesce_zero": 6, "column": 14, "com": 2, "combin": 6, "command": [2, 6], "commit": 6, "common": 6, "complex": 12, "comput": 6, "condit": 5, "connect": 6, "constructor": [6, 12], "contain": 6, "content": 17, "contribut": 1, "control": 6, "conveni": 5, "convers": 15, "cooki": 5, "copi": [4, 6], "count": 6, "counter": 15, "creat": 4, "crud": 14, "crypt": 12, "csv": 6, "custom": [5, 6, 10, 12, 14], "dai": 6, "dal": [5, 6], "dashboard": 3, "data": 6, "databas": [5, 6, 12], "datastor": 6, "date": 12, "db": 6, "debug": 1, "decor": 5, "def": 8, "default": [6, 8], "defin": 6, "define_t": 6, "delet": 6, "deploy": 2, "design": [2, 12], "develop": 8, "dictionari": [6, 12], "discord": [1, 13], "distinct": 6, "distribut": 6, "div": 10, "docker": 2, "dom": 10, "drop": 6, "dynam": 4, "elif": 8, "els": 8, "em": 10, "endswith": 6, "engin": 2, "environ": 2, "equal": 12, "exampl": [7, 12, 14, 15, 16], "except": 8, "exclud": 6, "executesql": 6, "experi": 6, "experiment": 6, "export": 6, "express": 6, "extend": 8, "facebook": 13, "factor": 13, "failur": 6, "fake_migr": 6, "featur": [6, 14], "fetch": 6, "field": [6, 12, 14], "file": [4, 11, 12, 15], "filter": [6, 14], "filter_in": 6, "filter_out": 6, "final": 8, "find": [6, 10], "first": [2, 6], "fix": 6, "fixtur": 5, "flash": [5, 15], "folder": 6, "form": [10, 12, 15, 16], "format": [6, 12, 16], "from": [2, 4, 6, 15], "function": [8, 12], "gae": 2, "gcloud": 2, "gener": 6, "get": 7, "github": 1, "global": 2, "googl": [1, 2, 6, 13], "gotcha": 6, "grid": [14, 15, 16], "group": [1, 6], "groupbi": 6, "h1": 10, "h2": 10, "h3": 10, "h4": 10, "h5": 10, "h6": 10, "have": 6, "head": 10, "hello": 15, "help": 1, "helper": 10, "hint": 1, "hour": 6, "how": 1, "html": [6, 10], "htmx": 16, "http": 2, "i": [0, 10], "id": 6, "ilik": 6, "img": 10, "imperson": 13, "import": 6, "includ": 8, "index": 6, "indic": 17, "inform": 8, "inherit": 6, "inject": [5, 10], "inner": 6, "input": 10, "insert": 6, "insid": 13, "instal": 2, "internation": 11, "introduct": 6, "is_alphanumer": 12, "is_dat": 12, "is_date_in_rang": 12, "is_datetim": 12, "is_datetime_in_rang": 12, "is_decimal_in_rang": 12, "is_email": 12, "is_empty_or": 12, "is_equal_to": 12, "is_expr": 12, "is_fil": 12, "is_float_in_rang": 12, "is_imag": 12, "is_in_db": 12, "is_in_set": 12, "is_int_in_rang": 12, "is_ipaddress": 12, "is_ipv4": 12, "is_ipv6": 12, "is_json": 12, "is_length": 12, "is_list_of": 12, "is_list_of_email": 12, "is_low": 12, "is_match": 12, "is_not_empti": 12, "is_not_in_db": 12, "is_null_or": 12, "is_saf": 12, "is_slug": 12, "is_strong": 12, "is_tim": 12, "is_upload_filenam": 12, "is_upp": 12, "is_url": 12, "isempti": 6, "iter": 6, "j": 16, "join": 6, "kei": [6, 14], "keyword": 6, "label": 10, "languag": 8, "last": 6, "layer": 6, "layout": 8, "lazi": 6, "ldap": 13, "left": 6, "legaci": 6, "len": 6, "less": 6, "li": 10, "like": 6, "limitbi": 6, "line": 2, "list": 6, "local": 2, "locat": 6, "logic": 6, "login": 3, "lower": 6, "main": 3, "make": 6, "mani": 6, "manipul": 12, "manual": [1, 17], "max": 6, "memcach": 5, "memoiz": 5, "memori": 6, "method": [6, 15], "microsoft": 6, "migrat": 6, "min": 6, "minim": 12, "minut": 6, "mobil": 8, "model": 6, "modern": 1, "modif": 6, "month": 6, "more": 6, "mssql": 6, "multipl": [5, 13], "mysql": 6, "name": 6, "new": 6, "new_app": 2, "nosql": 6, "note": 6, "o": 15, "oauth2": 13, "object": [4, 13, 14, 16], "ol": 10, "old": 6, "on_defin": 6, "onc": 6, "one": 6, "oper": 6, "option": [2, 10, 12], "oracl": 6, "orderbi": 6, "orderby_on_limitbi": 6, "other": [6, 12], "outer": 6, "overview": 10, "p": 10, "page": [3, 4, 8], "pam": 13, "paramet": [6, 12, 14], "permiss": 13, "pip": 2, "platform": 2, "plugin": 13, "plural": [6, 11], "podman": 2, "polici": 7, "polymodel": 6, "pool": 6, "practic": 7, "pre": 10, "prerequisit": [1, 2], "primari": 6, "primarykei": 6, "procedur": 2, "py4web": [0, 1, 6, 15, 16, 17], "pycharm": 1, "python": 1, "pythonanywher": 2, "q": 16, "queri": 6, "quick": 6, "quot": 6, "rang": 12, "raw": 6, "real": 6, "record": 6, "recurs": 6, "redefin": 6, "redi": 5, "redirect": 15, "refer": [6, 14, 17], "regexp": 6, "relat": 6, "remot": 6, "render": 6, "replic": 6, "repres": 6, "represent": 6, "request": 4, "reserv": 6, "resourc": 1, "respons": 7, "restapi": 7, "return": [4, 8, 15], "rname": 6, "rollback": 6, "rout": 4, "row": 6, "run": [2, 6], "sampl": 14, "schedul": 16, "scratch": 4, "script": 10, "search": 14, "second": 6, "secur": [6, 12], "select": [6, 10], "self": 6, "sequence_nam": 6, "server": [1, 5, 6, 10], "session": 5, "set": [6, 12, 14, 15], "set_password": 2, "setup": 2, "share": 5, "shell": [2, 6], "shortcut": 6, "side": [5, 10], "sidecar": 12, "signatur": 6, "simpl": 15, "singular": 6, "sort": [6, 12], "sourc": [1, 2], "span": 10, "special": [2, 12], "sql": 6, "sqlite": 6, "stand": 6, "standard": [8, 12], "startswith": 6, "startup": 2, "static": 4, "string": [6, 16], "structur": [8, 12], "style": [6, 10, 14], "substr": 6, "sum": 6, "summari": 6, "super": 8, "support": [2, 6], "synchron": 6, "syntax": 8, "t": 16, "tabl": [6, 10, 17], "table_class": 6, "tag": [6, 10, 12, 13], "tbodi": 10, "td": 10, "templat": [4, 5, 8, 14], "text": 12, "textarea": 10, "th": 10, "thead": 10, "thi": 1, "time": [6, 12], "tip": 1, "titl": 10, "topic": 16, "tour": 6, "tr": 10, "transact": 6, "translat": [5, 11], "trigger_nam": 6, "try": 8, "tt": 10, "tupl": 12, "tutori": 1, "two": 13, "two_factor_requir": 13, "two_factor_send": 13, "two_factor_tri": 13, "type": [6, 12], "ubuntu": 2, "ui": 13, "ul": 10, "understand": 2, "up": 15, "updat": [6, 11], "update_or_insert": 6, "update_record": 6, "upgrad": 2, "upload": [6, 12], "upper": 6, "uri": 6, "url": 10, "urlsign": 5, "us": [2, 5, 6, 8, 10, 13, 14, 16], "usag": 16, "user": 13, "util": 16, "valid": [6, 12], "validate_and_insert": 6, "validate_and_upd": 6, "valu": [4, 6], "variabl": [8, 15], "version": [2, 6], "video": 1, "view": 15, "virtual": [2, 6], "vscode": 1, "watch": 4, "web": [3, 4], "web2pi": 15, "what": 0, "while": 8, "widget": [12, 16], "without": [2, 6, 12], "workflow": 8, "workplac": 1, "world": 15, "wsgi": 2, "xml": [6, 10], "yatl": [8, 10], "year": 6}}) \ No newline at end of file +Search.setIndex({"alltitles": {"A": [[10, "a"]], "A minimal form example without a database": [[12, "a-minimal-form-example-without-a-database"]], "A modern python workplace": [[1, "a-modern-python-workplace"]], "ANY_OF": [[12, "any-of"]], "Acknowledgments": [[0, "acknowledgments"]], "Adding attributes to fields and tables": [[6, "adding-attributes-to-fields-and-tables"]], "Advanced features": [[6, "advanced-features"]], "Advanced form design": [[12, "advanced-form-design"]], "Advanced topics and examples": [[16, "advanced-topics-and-examples"]], "Auth Plugins": [[13, "auth-plugins"]], "Auth UI": [[13, "auth-ui"]], "Authentication and authorization": [[13, "authentication-and-authorization"]], "Authentication using Auth": [[13, "authentication-using-auth"]], "Authorization using Tags": [[13, "authorization-using-tags"]], "Autocomplete Widget using htmx": [[16, "autocomplete-widget-using-htmx"]], "BEAUTIFY": [[10, "beautify"]], "BODY": [[10, "body"]], "Basic form example": [[12, "basic-form-example"]], "Basic grid example": [[14, "basic-grid-example"]], "Basic syntax": [[8, "basic-syntax"]], "Built-in helpers": [[10, "built-in-helpers"]], "CAT": [[10, "cat"]], "CLEANUP": [[12, "cleanup"]], "CRUD settings": [[14, "crud-settings"]], "CRYPT": [[12, "crypt"]], "CSV (all tables at once)": [[6, "csv-all-tables-at-once"]], "CSV (one Table at a time)": [[6, "csv-one-table-at-a-time"]], "CSV and remote database synchronization": [[6, "csv-and-remote-database-synchronization"]], "Caching and Memoize": [[5, "caching-and-memoize"]], "Caching selects": [[6, "caching-selects"]], "Caveats about fixtures": [[5, "caveats-about-fixtures"]], "Celery": [[16, "celery"]], "Checkbox validation": [[12, "checkbox-validation"]], "Client-side session in cookies": [[5, "client-side-session-in-cookies"]], "Combining rows": [[6, "combining-rows"]], "Command line options": [[2, "command-line-options"]], "Common filters": [[6, "common-filters"]], "Complexity and security validators": [[12, "complexity-and-security-validators"]], "Computed and Virtual fields": [[6, "computed-and-virtual-fields"]], "Computed fields": [[6, "computed-fields"]], "Connection failures (attempts parameter)": [[6, "connection-failures-attempts-parameter"]], "Connection pooling": [[6, "connection-pooling"]], "Connection strings (the uri parameter)": [[6, "connection-strings-the-uri-parameter"]], "Contents:": [[17, null]], "Convenience Decorators": [[5, "convenience-decorators"]], "Copy data from one db into another": [[6, "copy-data-from-one-db-into-another"]], "Copying the _scaffold app": [[4, "copying-the-scaffold-app"]], "Creating an app": [[4, "creating-an-app"]], "Custom Action Buttons": [[14, "custom-action-buttons"]], "Custom Field types": [[6, "custom-field-types"]], "Custom columns": [[14, "custom-columns"]], "Custom fixtures": [[5, "custom-fixtures"]], "Custom forms": [[12, "custom-forms"]], "Custom helpers": [[10, "custom-helpers"]], "Custom widgets": [[12, "custom-widgets"]], "Customizing style": [[14, "customizing-style"]], "DAL constructor": [[6, "dal-constructor"]], "DAL introduction": [[6, "dal-introduction"]], "DAL signature": [[6, "dal-signature"]], "DIV": [[10, "div"]], "Data representation": [[6, "data-representation"]], "Database cascades": [[6, "database-cascades"]], "Database folder location": [[6, "database-folder-location"]], "Database quoting and case settings": [[6, "database-quoting-and-case-settings"]], "Database validators": [[12, "database-validators"]], "Date and time validators": [[12, "date-and-time-validators"]], "Debugging py4web with PyCharm": [[1, "debugging-py4web-with-pycharm"]], "Debugging py4web with VScode": [[1, "debugging-py4web-with-vscode"]], "Default migration settings": [[6, "default-migration-settings"]], "Default page layout": [[8, "default-page-layout"]], "Default values with coalesce and coalesce_zero": [[6, "default-values-with-coalesce-and-coalesce-zero"]], "Deployment on Docker/Podman": [[2, "deployment-on-docker-podman"]], "Deployment on GCloud (aka GAE - Google App Engine)": [[2, "deployment-on-gcloud-aka-gae-google-app-engine"]], "Deployment on PythonAnywhere.com": [[2, "deployment-on-pythonanywhere-com"]], "Deployment on Ubuntu": [[2, "deployment-on-ubuntu"]], "Dictionaries and tuples with IS_IN_SET": [[12, "dictionaries-and-tuples-with-is-in-set"]], "Distributed transaction": [[6, "distributed-transaction"]], "Dynamic Web Pages": [[4, "dynamic-web-pages"]], "EM": [[10, "em"]], "Experiment with the py4web shell": [[6, "experiment-with-the-py4web-shell"]], "Exporting and importing data": [[6, "exporting-and-importing-data"]], "Expressions": [[6, "expressions"]], "Extending using variables": [[8, "extending-using-variables"]], "FORM": [[10, "form"]], "Fetching a Row": [[6, "fetching-a-row"]], "Field constructor": [[6, "field-constructor"]], "Field types and validators": [[6, "field-types-and-validators"]], "File upload field": [[12, "file-upload-field"]], "First run": [[2, "first-run"]], "Fixing broken migrations": [[6, "fixing-broken-migrations"]], "Fixtures": [[5, "fixtures"]], "Form structure manipulation": [[12, "form-structure-manipulation"]], "Form validation": [[12, "form-validation"]], "Forms": [[12, "forms"]], "From scratch": [[4, "from-scratch"]], "From web2py to py4web": [[15, "from-web2py-to-py4web"]], "Generating raw SQL": [[6, "generating-raw-sql"]], "Google NoSQL (Datastore)": [[6, "google-nosql-datastore"]], "Google SQL": [[6, "google-sql"]], "Gotchas": [[6, "gotchas"]], "Grid": [[14, "grid"]], "Grids with checkboxes": [[14, "grids-with-checkboxes"]], "Grouping and counting": [[6, "grouping-and-counting"]], "H1, H2, H3, H4, H5, H6": [[10, "h1-h2-h3-h4-h5-h6"]], "HEAD": [[10, "head"]], "HTML": [[10, "html"]], "HTML and XML (one Table at a time)": [[6, "html-and-xml-one-table-at-a-time"]], "HTTPS": [[2, "https"]], "Help, resources and hints": [[1, "help-resources-and-hints"]], "Helpers overview": [[10, "helpers-overview"]], "Hints and tips": [[1, "hints-and-tips"]], "How to contribute": [[1, "how-to-contribute"]], "I": [[10, "i"]], "IMG": [[10, "img"]], "INPUT": [[10, "input"]], "IS_ALPHANUMERIC": [[12, "is-alphanumeric"]], "IS_DATE": [[12, "is-date"]], "IS_DATETIME": [[12, "is-datetime"]], "IS_DATETIME_IN_RANGE": [[12, "is-datetime-in-range"]], "IS_DATE_IN_RANGE": [[12, "is-date-in-range"]], "IS_DECIMAL_IN_RANGE": [[12, "is-decimal-in-range"]], "IS_EMAIL": [[12, "is-email"]], "IS_EMPTY_OR": [[12, "is-empty-or"]], "IS_EQUAL_TO": [[12, "is-equal-to"]], "IS_EXPR": [[12, "is-expr"]], "IS_FILE": [[12, "is-file"]], "IS_FLOAT_IN_RANGE": [[12, "is-float-in-range"]], "IS_IMAGE": [[12, "is-image"]], "IS_INT_IN_RANGE": [[12, "is-int-in-range"]], "IS_IN_DB": [[12, "is-in-db"]], "IS_IN_DB and Tagging": [[12, "is-in-db-and-tagging"]], "IS_IN_SET": [[12, "is-in-set"]], "IS_IN_SET and Tagging": [[12, "is-in-set-and-tagging"]], "IS_IPADDRESS": [[12, "is-ipaddress"]], "IS_IPV4": [[12, "is-ipv4"]], "IS_IPV6": [[12, "is-ipv6"]], "IS_JSON": [[12, "is-json"]], "IS_LENGTH": [[12, "is-length"]], "IS_LIST_OF": [[12, "is-list-of"]], "IS_LIST_OF_EMAILS": [[12, "is-list-of-emails"]], "IS_LOWER": [[12, "is-lower"]], "IS_MATCH": [[12, "is-match"]], "IS_NOT_EMPTY": [[12, "is-not-empty"]], "IS_NOT_IN_DB": [[12, "is-not-in-db"]], "IS_NULL_OR": [[12, "is-null-or"]], "IS_SAFE": [[12, "is-safe"]], "IS_SLUG": [[12, "is-slug"]], "IS_STRONG": [[12, "is-strong"]], "IS_TIME": [[12, "is-time"]], "IS_UPLOAD_FILENAME": [[12, "is-upload-filename"]], "IS_UPPER": [[12, "is-upper"]], "IS_URL": [[12, "is-url"]], "Indexes": [[6, "indexes"]], "Indices and tables": [[17, "indices-and-tables"]], "Information workflow": [[8, "information-workflow"]], "Inner join": [[6, "inner-join"]], "Inserting and updating from a dictionary": [[6, "inserting-and-updating-from-a-dictionary"]], "Installation and Startup": [[2, "installation-and-startup"]], "Installing from binaries": [[2, "installing-from-binaries"]], "Installing from pip, using a virtual environment": [[2, "installing-from-pip-using-a-virtual-environment"]], "Installing from pip, without virtual environment": [[2, "installing-from-pip-without-virtual-environment"]], "Installing from source (globally)": [[2, "installing-from-source-globally"]], "Installing from source (locally)": [[2, "installing-from-source-locally"]], "Internationalization": [[11, "internationalization"]], "Joins and Relations": [[6, "joins-and-relations"]], "Key features": [[14, "key-features"]], "LABEL": [[10, "label"]], "LDAP": [[13, "ldap"]], "LI": [[10, "li"]], "Lazy Tables": [[6, "lazy-tables"]], "Left outer join": [[6, "left-outer-join"]], "Legacy databases and keyed tables": [[6, "legacy-databases-and-keyed-tables"]], "Logical operators": [[6, "logical-operators"]], "Login into the Dashboard": [[3, "login-into-the-dashboard"]], "MSSQL (Microsoft SQL Server)": [[6, "mssql-microsoft-sql-server"]], "Making a secure connection": [[6, "making-a-secure-connection"]], "Many to many relation": [[6, "many-to-many-relation"]], "Migration control summary": [[6, "migration-control-summary"]], "Migrations": [[6, "migrations"]], "Mobile development": [[8, "mobile-development"]], "Model-less applications": [[6, "model-less-applications"]], "More on uploads": [[6, "more-on-uploads"]], "Multiple Tags objects": [[13, "multiple-tags-objects"]], "Multiple fixtures": [[5, "multiple-fixtures"]], "MySQL": [[6, "mysql"]], "New style virtual fields (experimental)": [[6, "new-style-virtual-fields-experimental"]], "Note on new DAL and adapters": [[6, "note-on-new-dal-and-adapters"]], "OAuth2 with Discord": [[13, "oauth2-with-discord"]], "OAuth2 with Facebook": [[13, "oauth2-with-facebook"]], "OAuth2 with Google": [[13, "oauth2-with-google"]], "OL": [[10, "ol"]], "OPTION": [[10, "option"]], "Old style virtual fields": [[6, "old-style-virtual-fields"]], "On return values": [[4, "on-return-values"]], "One to many relation": [[6, "one-to-many-relation"]], "Oracle": [[6, "oracle"]], "Other DAL constructor parameters": [[6, "other-dal-constructor-parameters"]], "Other operators": [[6, "other-operators"]], "Other validators": [[12, "other-validators"]], "P": [[10, "p"]], "PAM": [[13, "pam"]], "PRE": [[10, "pre"]], "Page layout standard structure": [[8, "page-layout-standard-structure"]], "Pluralize": [[11, "pluralize"]], "Prerequisites": [[1, "prerequisites"]], "Query, Set, Rows": [[6, "query-set-rows"]], "Range, set and equality validators": [[12, "range-set-and-equality-validators"]], "Raw SQL": [[6, "raw-sql"]], "Record versioning": [[6, "record-versioning"]], "Recursive selects": [[6, "recursive-selects"]], "Reference Fields": [[14, "reference-fields"]], "Rendering rows using represent": [[6, "rendering-rows-using-represent"]], "Replicated databases": [[6, "replicated-databases"]], "Reserved keywords": [[6, "reserved-keywords"]], "Resources": [[1, "resources"]], "RestAPI GET": [[7, "restapi-get"]], "RestAPI policies and actions": [[7, "restapi-policies-and-actions"]], "RestAPI practical examples": [[7, "restapi-practical-examples"]], "Routes": [[4, "routes"]], "Run-time field and table modification": [[6, "run-time-field-and-table-modification"]], "SCRIPT": [[10, "script"]], "SELECT": [[10, "select"]], "SPAN": [[10, "span"]], "SQLite": [[6, "sqlite"]], "STYLE": [[10, "style"]], "Sample Action Button Class": [[14, "sample-action-button-class"]], "Searching and filtering": [[14, "searching-and-filtering"]], "Self-Reference and aliases": [[6, "self-reference-and-aliases"]], "Sending messages using a background task": [[16, "sending-messages-using-a-background-task"]], "Server-side DOM": [[10, "server-side-dom"]], "Server-side session anywhere": [[5, "server-side-session-anywhere"]], "Server-side session in Redis": [[5, "server-side-session-in-redis"]], "Server-side session in database": [[5, "server-side-session-in-database"]], "Server-side session in memcache": [[5, "server-side-session-in-memcache"]], "Setup procedures": [[2, "setup-procedures"]], "Sharing sessions": [[5, "sharing-sessions"]], "Shortcuts": [[6, "shortcuts"]], "Simple conversion examples": [[15, "simple-conversion-examples"]], "Sorted options": [[12, "sorted-options"]], "Special installations": [[2, "special-installations"]], "Special type validators": [[12, "special-type-validators"]], "Standard widgets": [[12, "standard-widgets"]], "Static web pages": [[4, "static-web-pages"]], "Substrings": [[6, "substrings"]], "Supported databases": [[6, "supported-databases"]], "Supported platforms and prerequisites": [[2, "supported-platforms-and-prerequisites"]], "TABLE, TR, TD": [[10, "table-tr-td"]], "TAG": [[10, "tag"]], "TBODY": [[10, "tbody"]], "TEXTAREA": [[10, "textarea"]], "TH": [[10, "th"]], "THEAD": [[10, "thead"]], "TITLE": [[10, "title"]], "TT": [[10, "tt"]], "Table constructor": [[6, "table-constructor"]], "Table inheritance": [[6, "table-inheritance"]], "Table methods": [[6, "table-methods"]], "Tagging records": [[6, "tagging-records"]], "Tags and Permissions": [[13, "tags-and-permissions"]], "Template Functions": [[8, "template-functions"]], "Templates": [[4, "templates"]], "Text format validators": [[12, "text-format-validators"]], "The Auth fixture": [[5, "the-auth-fixture"]], "The Condition fixture": [[5, "the-condition-fixture"]], "The DAL fixture": [[5, "the-dal-fixture"]], "The DAL: a quick tour": [[6, "the-dal-a-quick-tour"]], "The Dashboard": [[3, "the-dashboard"]], "The Database Abstraction Layer (DAL)": [[6, "the-database-abstraction-layer-dal"]], "The Discord server": [[1, "the-discord-server"]], "The Flash fixture": [[5, "the-flash-fixture"]], "The Form constructor": [[12, "the-form-constructor"]], "The Google group": [[1, "the-google-group"]], "The Grid object": [[14, "the-grid-object"]], "The Inject fixture": [[5, "the-inject-fixture"]], "The Q object": [[16, "the-q-object"]], "The RestAPI": [[7, "the-restapi"]], "The RestAPI response": [[7, "the-restapi-response"]], "The Session fixture": [[5, "the-session-fixture"]], "The T object": [[16, "the-t-object"]], "The Template fixture": [[5, "the-template-fixture"]], "The Translator fixture": [[5, "the-translator-fixture"]], "The URLsigner fixture": [[5, "the-urlsigner-fixture"]], "The _scaffold app": [[4, "the-scaffold-app"]], "The main Web page": [[3, "the-main-web-page"]], "The request object": [[4, "the-request-object"]], "The scheduler": [[16, "the-scheduler"]], "The sidecar parameter": [[12, "the-sidecar-parameter"]], "The sources on GitHub": [[1, "the-sources-on-github"]], "This manual": [[1, "this-manual"]], "Timing queries": [[6, "timing-queries"]], "Tutorials and video": [[1, "tutorials-and-video"]], "Two Factor Authentication": [[13, "two-factor-authentication"]], "UL": [[10, "ul"]], "URL": [[10, "url"]], "Understanding the design": [[2, "understanding-the-design"]], "Update the translation files": [[11, "update-the-translation-files"]], "Upgrading": [[2, "upgrading"]], "User Impersonation": [[13, "user-impersonation"]], "Using Auth inside actions": [[13, "using-auth-inside-actions"]], "Using DAL without define tables": [[6, "using-dal-without-define-tables"]], "Using Fixtures": [[5, "using-fixtures"]], "Using Inject": [[10, "using-inject"]], "Using an iterator-based select for lower memory use": [[6, "using-an-iterator-based-select-for-lower-memory-use"]], "Using callable parameters": [[14, "using-callable-parameters"]], "Using templates": [[14, "using-templates"]], "Using the DAL \u201cstand-alone\u201d": [[6, "using-the-dal-stand-alone"]], "Using the dashboard app with databases": [[6, "using-the-dashboard-app-with-databases"]], "Validation functions": [[12, "validation-functions"]], "Virtual fields": [[6, "virtual-fields"]], "WSGI": [[2, "wsgi"]], "Watch for files change": [[4, "watch-for-files-change"]], "What is py4web?": [[0, "what-is-py4web"]], "Widgets": [[12, "widgets"]], "XML": [[10, "xml"]], "YATL Template Language": [[8, "yatl-template-language"]], "YATL helpers": [[10, "yatl-helpers"]], "_lastsql": [[6, "lastsql"]], "as_dict and as_list": [[6, "as-dict-and-as-list"]], "belongs": [[6, "belongs"]], "block and super": [[8, "block-and-super"]], "cache, cacheable": [[6, "cache-cacheable"]], "call command option": [[2, "call-command-option"]], "callbacks on record insert, delete and update": [[6, "callbacks-on-record-insert-delete-and-update"]], "case": [[6, "case"]], "children": [[10, "children"]], "commit and rollback": [[6, "commit-and-rollback"]], "count, isempty, delete, update": [[6, "count-isempty-delete-update"]], "def...return": [[8, "def-return"]], "define_table signature": [[6, "define-table-signature"]], "distinct": [[6, "distinct"]], "drop": [[6, "drop"]], "executesql": [[6, "executesql"]], "extend and include": [[8, "extend-and-include"]], "filter_in and filter_out": [[6, "filter-in-and-filter-out"]], "find": [[10, "find"]], "find, exclude, sort": [[6, "find-exclude-sort"]], "first and last": [[6, "first-and-last"]], "for...in": [[8, "for-in"]], "format: Record representation": [[6, "format-record-representation"]], "groupby, having": [[6, "groupby-having"]], "htmx": [[16, "htmx"]], "htmx usage in Form": [[16, "htmx-usage-in-form"]], "htmx usage in Grid": [[16, "htmx-usage-in-grid"]], "id: Notes about the primary key": [[6, "id-notes-about-the-primary-key"]], "if...elif...else": [[8, "if-elif-else"]], "insert": [[6, "insert"]], "join, left": [[6, "join-left"]], "like, ilike, regexp, startswith, endswith, contains, upper, lower": [[6, "like-ilike-regexp-startswith-endswith-contains-upper-lower"]], "limitby": [[6, "limitby"]], "list: and contains": [[6, "list-type-and-contains"]], "migrate, fake_migrate": [[6, "migrate-fake-migrate"]], "new_app command option": [[2, "new-app-command-option"]], "on_define": [[6, "on-define"]], "orderby": [[6, "orderby"]], "orderby, groupby, limitby, distinct, having, orderby_on_limitby, join, left, cache": [[6, "orderby-groupby-limitby-distinct-having-orderby-on-limitby-join-left-cache"]], "orderby_on_limitby": [[6, "orderby-on-limitby"]], "plural and singular": [[6, "plural-and-singular"]], "polymodel": [[6, "polymodel"]], "primarykey: Support for legacy tables": [[6, "primarykey-support-for-legacy-tables"]], "py4web and asyncio": [[16, "py4web-and-asyncio"]], "py4web model": [[6, "py4web-model"]], "py4web: the reference Manual": [[17, "py4web-the-reference-manual"]], "redefine": [[6, "redefine"]], "rname: Real name": [[6, "rname-real-name"]], "run command option": [[2, "run-command-option"]], "select command": [[6, "select-command"]], "sequence_name": [[6, "sequence-name"]], "set_password command option": [[2, "set-password-command-option"]], "setup command option": [[2, "setup-command-option"]], "shell command option": [[2, "shell-command-option"]], "string.format": [[16, "string-format"]], "sum, avg, min, max and len": [[6, "sum-avg-min-max-and-len"]], "table_class": [[6, "table-class"]], "trigger_name": [[6, "trigger-name"]], "try...except...else...finally": [[8, "try-except-else-finally"]], "two_factor_required": [[13, "two-factor-required"]], "two_factor_send": [[13, "two-factor-send"]], "two_factor_tries": [[13, "two-factor-tries"]], "update_or_insert": [[6, "update-or-insert"]], "update_record": [[6, "update-record"]], "utils.js": [[16, "utils-js"]], "validate_and_insert, validate_and_update": [[6, "validate-and-insert-validate-and-update"]], "version command option": [[2, "version-command-option"]], "while": [[8, "while"]], "year, month, day, hour, minutes, seconds": [[6, "year-month-day-hour-minutes-seconds"]], "\u201cAccessing OS files\u201d example": [[15, "accessing-os-files-example"]], "\u201cForm and flash\u201d example": [[15, "form-and-flash-example"]], "\u201cHello world\u201d example": [[15, "hello-world-example"]], "\u201cRedirect with variables\u201d example": [[15, "redirect-with-variables-example"]], "\u201cReturn calling methods\u201d example": [[15, "return-calling-methods-example"]], "\u201cReturning args\u201d example": [[15, "returning-args-example"]], "\u201cReturning variables\u201d example": [[15, "returning-variables-example"]], "\u201cSetting up a counter\u201d example": [[15, "setting-up-a-counter-example"]], "\u201cView\u201d example": [[15, "view-example"]], "\u201cauth\u201d example": [[15, "auth-example"]], "\u201cgrid\u201d example": [[15, "grid-example"]]}, "docnames": ["chapter-01", "chapter-02", "chapter-03", "chapter-04", "chapter-05", "chapter-06", "chapter-07", "chapter-08", "chapter-09", "chapter-1", "chapter-10", "chapter-11", "chapter-12", "chapter-13", "chapter-14", "chapter-15", "chapter-16", "index"], "envversion": {"sphinx": 61, "sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2}, "filenames": ["chapter-01.rst", "chapter-02.rst", "chapter-03.rst", "chapter-04.rst", "chapter-05.rst", "chapter-06.rst", "chapter-07.rst", "chapter-08.rst", "chapter-09.rst", "chapter-1.rst", "chapter-10.rst", "chapter-11.rst", "chapter-12.rst", "chapter-13.rst", "chapter-14.rst", "chapter-15.rst", "chapter-16.rst", "index.rst"], "indexentries": {}, "objects": {}, "objnames": {}, "objtypes": {}, "terms": {"": [0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 11, 12, 13, 14, 16], "0": [2, 3, 5, 6, 7, 8, 10, 11, 12, 13, 14, 15, 16], "00": 7, "01": 7, "02": [6, 12], "03": [2, 6, 7], "04": 2, "04t07": 7, "05": 7, "08": 12, "0x4e86": 12, "0x7fa533ff7640": 10, "1": [2, 3, 5, 6, 7, 8, 10, 11, 12, 14, 15, 16], "10": [2, 6, 7, 8, 10, 11, 12, 13, 16], "100": [2, 6, 7, 8, 12, 16], "1000": [5, 6, 12, 16], "1000m": 16, "100px": 16, "1024": 12, "1048576": 12, "10px": 14, "11": [6, 12], "111111": 16, "11211": 5, "12": 12, "120": 6, "123": [10, 12], "123218": 7, "123456": 12, "125": 6, "127": [2, 3, 5, 12, 14], "13": [6, 12], "132635": 7, "14": [8, 12, 14], "15": [6, 12, 13, 14], "16": 12, "168": 12, "169": 12, "16px": 8, "172": [6, 12], "174": 6, "178974": 7, "19": [6, 7, 12], "192": [6, 12], "1963": 12, "198": 6, "199": 12, "19t05": 7, "1e100": 6, "1kb": 12, "1l": 6, "1mb": 12, "1pkogiy59xj8co8": 8, "2": [5, 6, 7, 8, 10, 11, 12, 13, 15, 16], "20": [2, 7, 11, 12], "200": [7, 12, 15, 16], "2001": 12, "2002": 12, "2005": 6, "2007": 0, "2008": 12, "2009": 12, "200m": 16, "200x200": 12, "2010": 6, "2012": 6, "2013": 6, "2015": 0, "2018": 6, "2019": 7, "201988": 7, "2020": 1, "20201112": 3, "2021": 7, "2022": 5, "207": 6, "217": 6, "22": 13, "227": 6, "239": 6, "2396": 12, "24": 12, "254": 12, "255": 12, "256": 6, "2616": 12, "28": 12, "2em": 16, "2px": 16, "3": [0, 2, 4, 5, 6, 7, 8, 10, 12, 13, 14, 15, 16], "30": [2, 6, 8, 12], "301": 15, "309903": 7, "31": [6, 7, 12], "32": [6, 12], "322494": 7, "32768": 6, "33": [6, 12], "34": 7, "3490": 12, "3492": 12, "35": 6, "355181": 7, "3600": [5, 6], "366288": 7, "38": 7, "3em": 16, "4": [2, 5, 6, 7, 8, 12, 14], "40": [2, 10, 16], "400": [5, 15], "404": [5, 13], "405515": 7, "43": 6, "45": [8, 12], "451907": 7, "453020": 7, "456": 12, "466030": 7, "4e": 12, "5": [5, 6, 7, 8, 11, 12, 13, 14, 16], "50": [2, 7], "500": 16, "500m": 16, "512": 6, "53": 12, "54": 8, "559918": 7, "58": 8, "59": 12, "6": [5, 6, 7, 12, 13, 15, 16], "60": [5, 6], "63": [6, 12], "6379": 5, "64": [6, 8, 16], "65": 6, "6to4": 12, "7": [2, 7, 8, 12, 15], "70": 7, "74": 6, "75": 7, "8": [2, 6, 7, 12], "80": [7, 12], "8000": [2, 3, 4, 12, 14], "86": 12, "8601": 7, "8em": [8, 16], "9": [6, 7, 12, 14, 15], "90": [6, 7], "91": 6, "95": 6, "97": 6, "974953": 7, "99": 6, "A": [2, 4, 5, 6, 7, 8, 13, 14, 15, 16, 17], "AND": 6, "AS": 6, "And": [1, 4, 5, 6, 13, 14, 16], "As": [4, 5, 6, 7, 8, 10, 12, 13, 14, 16], "At": [6, 8], "Be": [5, 6, 8], "But": [1, 2, 4, 5, 6, 8, 10, 12, 14, 16], "By": [2, 4, 5, 6, 12, 13, 15], "For": [1, 2, 3, 4, 5, 6, 7, 8, 10, 12, 13, 14, 15, 16], "IF": 6, "IN": 6, "INTO": 6, "IT": 11, "If": [1, 2, 3, 4, 5, 6, 8, 10, 12, 13, 14, 15, 16], "In": [0, 1, 2, 4, 5, 6, 7, 8, 10, 12, 13, 14, 15, 16], "It": [0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 12, 13, 16], "Its": [0, 2, 6, 12, 14], "NO": 6, "NOT": [6, 12, 13], "No": [2, 6], "Not": 6, "ON": [6, 12], "OR": [6, 10, 12, 14], "Of": 8, "On": [2, 6, 13, 16], "One": [2, 4, 12, 13], "Or": [5, 12], "That": [4, 6, 15, 16], "The": [0, 2, 8, 10, 11, 13, 15, 17], "Their": [5, 6, 15], "Then": [4, 5, 6, 10, 12, 13, 14, 16], "There": [1, 2, 5, 6, 8, 12, 13, 14, 16], "These": [0, 5, 6, 10, 12, 14], "To": [2, 4, 6, 8, 10, 11, 12, 13, 14, 16], "With": [2, 6, 12, 13, 16], "_": [2, 5, 12, 16], "__": 4, "__dict__": 5, "__file__": [5, 7, 14], "__init__": [2, 4, 5, 6, 7, 14, 15, 16], "__prerequisite__": 5, "__prerequisites__": 5, "__str__": [5, 8, 10], "_action": [10, 14], "_adapt": 6, "_after_delet": 6, "_after_insert": 6, "_after_upd": 6, "_alt": 10, "_and": 12, "_autocomplet": 16, "_autocomplete_search_field": 16, "_before_": 6, "_before_delet": 6, "_before_insert": 6, "_before_upd": 6, "_bgcolor": 10, "_c": 10, "_check": 10, "_class": [5, 10, 12, 16], "_col": 10, "_common_filt": 6, "_count": 6, "_dashboard": [2, 3], "_data": 10, "_db": 6, "_dbname": 6, "_default": [2, 4], "_delet": 6, "_disabl": 10, "_document": [1, 3], "_enable_record_vers": 6, "_extra": 6, "_format": 6, "_href": [5, 8, 10, 12, 14], "_hx": 16, "_id": [6, 10, 12, 16], "_insert": 6, "_listifi": 6, "_method": [10, 14], "_name": [6, 10, 12, 14, 16], "_next_url": 13, "_nonreserv": 6, "_onclick": 12, "_placehold": [12, 16], "_row": 10, "_scaffold": [5, 8, 10, 12, 13, 14, 15, 17], "_search": 16, "_select": [6, 10], "_sesson": 5, "_src": 10, "_style": [12, 16], "_tabl": [6, 12, 16], "_tablenam": 6, "_tag_": 13, "_time": 6, "_titl": [12, 16], "_type": [6, 10, 12, 14, 16], "_u": 10, "_updat": 6, "_uri": 6, "_valu": [10, 12, 14, 16], "_xmln": 10, "aaabaaeaaqeaaaeaiaawaaaafgaaacgaaaabaaaaagaaaaeaiaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaapaaaaaa": 8, "ab": [10, 12], "abbrevi": 12, "abc": [10, 12], "abil": 15, "abl": [1, 2, 5, 6, 12], "abort": [4, 6], "about": [0, 7, 13, 14, 15, 16, 17], "abov": [4, 5, 6, 7, 8, 12, 13, 14, 16], "abracadabra": 2, "absent": 2, "absolut": [2, 6, 15], "abspath": 4, "abstract": [5, 15, 17], "accdesc": 6, "accept": [1, 2, 4, 5, 6, 10, 11, 12, 15, 16], "access": [0, 2, 4, 5, 6, 10, 12, 13, 16], "accnum": 6, "accomplish": [5, 6, 13, 15], "accord": [6, 8], "accordingli": 8, "account": [2, 6], "acctyp": 6, "achiev": [5, 6, 15], "acknowledg": 17, "acquir": 6, "across": [6, 8], "act": [6, 10, 12], "action": [4, 5, 6, 10, 12, 15, 16, 17], "action_button": 14, "action_token": [5, 13], "activ": [2, 6, 13], "actual": [2, 5, 6, 8, 14], "ad": [0, 2, 5, 11, 12, 13, 14, 16], "adapt": [13, 16], "adapter_arg": 6, "add": [1, 2, 4, 5, 6, 7, 8, 10, 11, 12, 13, 14, 15, 16], "addit": [2, 4, 5, 6, 7, 8, 12, 14], "addition": 14, "additional_class": 14, "additional_styl": 14, "address": [2, 6, 12, 13], "admin": [0, 6, 15], "administr": 2, "advanc": [2, 13, 14, 17], "advantag": [2, 6, 8, 16], "advis": [6, 14], "affect": 6, "after": [2, 3, 5, 6, 8, 12, 13, 14, 16], "after_connect": 6, "after_delet": 6, "after_insert": 6, "after_upd": 6, "aftermath": 6, "ag": 6, "again": [2, 3, 4, 5, 6, 12, 14, 16], "against": [6, 7, 10, 12, 14], "aggreg": 6, "agnost": 4, "aid": 6, "aim": 0, "ajax": [8, 14, 16], "aka": 1, "alchemi": 6, "alert": [5, 8, 10, 12, 15], "alex": 6, "alfaro": [0, 1], "alg": 12, "algorithm": [5, 12], "alia": [6, 12], "aliv": 16, "all": [0, 1, 2, 3, 4, 5, 7, 8, 10, 11, 12, 13, 14, 15, 16], "alloc": 12, "allow": [0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 12, 13, 14, 16], "allowed_act": 13, "allowed_attribut": 10, "allowed_overrid": 12, "allowed_pattern": 7, "allowed_schem": 12, "almost": 5, "along": [2, 4, 10, 12, 16], "alphabet": 12, "alphanumer": 12, "alreadi": [2, 3, 4, 5, 6, 10, 12, 13, 14], "also": [0, 1, 2, 3, 4, 5, 6, 8, 10, 12, 13, 14, 15, 16], "alt": 10, "alter": 6, "altern": [2, 5, 6, 8, 12, 16], "although": [2, 6, 8, 12], "alwai": [0, 2, 4, 5, 6, 8, 12, 16], "am": [12, 16], "amazon": 6, "ambigu": [4, 6], "among": [6, 12], "amount": 6, "an": [0, 1, 2, 3, 5, 8, 10, 12, 13, 14, 15, 16, 17], "analogi": 15, "ancestor": 10, "anchor": 16, "andrew": 1, "angl": 8, "angular": [0, 16], "ani": [1, 2, 3, 4, 5, 6, 7, 8, 10, 12, 13, 14, 15, 16], "annoi": 2, "anonym": [6, 8, 12], "anoth": [4, 5, 8, 11, 12, 13], "anotherpath": 5, "ansi": 6, "answer": 1, "anyhow": 2, "anyobj": 6, "anyth": 4, "anywai": 6, "anywher": [8, 15], "api": [0, 6, 7, 10, 12, 13, 15, 16], "api_kei": 16, "api_vers": 7, "app": [0, 1, 3, 5, 7, 8, 10, 11, 12, 13, 14, 15, 16, 17], "app1": 5, "app1_sess": 5, "app2": 5, "app_fold": 15, "app_nam": [2, 4, 5, 6], "app_watch_handl": 4, "appadmin": [0, 6], "appar": 6, "appear": [6, 12, 14], "append": [5, 6, 10, 12, 14, 16], "append_id": 14, "appl": 12, "appli": [0, 5, 6, 12, 13, 14, 16], "applic": [0, 2, 3, 4, 5, 8, 12, 13, 14, 15, 16], "appnam": [2, 5, 13, 15], "appname_sess": 5, "approach": [6, 15], "appropri": [6, 12], "approv": 13, "apps_fold": 2, "apt": 13, "ar": [0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 11, 12, 13, 14, 15, 16], "arbitrari": [4, 6, 13], "archiv": 6, "archive_db": 6, "archive_nam": 6, "aren": 6, "arg": [1, 2, 6], "argument": [2, 4, 5, 6, 8, 10, 12, 13, 15, 16], "arithmet": 12, "around": [1, 6, 15], "arrai": [10, 16], "arrang": [6, 12], "arriv": [0, 6], "as_ordered_dict": 6, "ascii": 12, "asid": [6, 16], "ask": [2, 5, 6, 16], "assert": [6, 16], "asset": 2, "assign": [6, 8, 12, 13, 15, 16], "assist": 1, "associ": [6, 11, 12, 13], "assum": [2, 5, 6, 7, 11, 12, 15, 16], "async": 16, "asynchron": 16, "asyncio": 17, "attach": [5, 6, 13, 15], "attack": [5, 10], "attempt": [12, 13], "attent": 6, "attr": [12, 14, 16], "attribut": [4, 5, 10, 12, 14, 15, 16], "attributes_plugin": 16, "attributespluginhtmx": 16, "aug": 12, "august": 12, "auth": [0, 2, 4, 6, 8, 10, 16, 17], "auth_group": 13, "auth_plugin": 13, "auth_us": [5, 6, 13, 16], "auth_user_tag_group": [6, 13], "auth_user_tagged_group": 13, "authent": [5, 6, 14, 17], "author": [5, 6, 7, 17], "auto": [6, 14], "auto_import": 6, "auto_process": [14, 16], "autocomplete_queri": 16, "autodelet": 6, "autogener": 6, "automat": [2, 3, 4, 5, 6, 8, 10, 12, 13, 14, 15, 16], "avail": [1, 2, 6, 8, 10, 13, 15, 16], "averag": 6, "avoid": [0, 1, 2, 5, 6, 8, 12], "awai": 6, "awar": 6, "awesom": [8, 14], "axel": 0, "axolotl": 0, "b": [5, 6, 8, 10, 12, 15, 16], "back": [5, 6, 12], "backend": 6, "background": [2, 4, 12, 17], "backport": 6, "backslash": 4, "backup": [2, 6, 12], "backward": [0, 6, 12], "bad_dai": 6, "bail": 6, "banana": 12, "bar": [8, 14], "barrier": 0, "base": [0, 2, 3, 4, 5, 7, 8, 12, 13, 14, 15, 16], "base64": [6, 8, 16], "base_dn": 13, "baseadapt": 6, "bash": 2, "basic": [0, 1, 2, 5, 6, 16, 17], "bat": 2, "batman": [7, 12, 14], "battl": 0, "beaslei": 0, "becaus": [0, 2, 4, 5, 6, 8, 10, 11, 12, 14, 16], "becom": [12, 16], "bed": 11, "been": [0, 2, 5, 6, 8, 12], "befor": [1, 2, 5, 6, 8, 10, 12, 13, 14], "before_delet": 6, "before_insert": 6, "before_upd": 6, "begin": [8, 12, 13, 14], "beginn": 2, "behav": [6, 14], "behavior": [4, 5, 6, 10, 12, 15, 16], "behaviour": [2, 6, 14], "being": [1, 5, 6, 7, 8, 12, 16], "believ": [0, 5], "belong": [13, 15], "below": [5, 6, 7, 12, 14], "benefit": [6, 16], "best": [1, 2, 5, 6, 11, 14], "better": [0, 1, 2, 4, 6, 14, 15, 16], "between": [5, 6, 10, 12, 15], "beyond": 12, "bgcolor": 10, "big": [6, 15], "bigint": 6, "bigint_id": 6, "bin": [1, 2], "binari": 6, "bind": 16, "birthplac": 6, "bit": 12, "bitbucket": 1, "black": [8, 12], "blank": [12, 14], "blink": 16, "blob": 6, "block": [10, 13, 16], "blockquot": 10, "blog": [1, 6, 10], "blog_post": 6, "blue": [4, 6, 12, 15], "bmp": 12, "boat": 6, "bob": 6, "bodi": [4, 8, 13, 14, 16], "boilerpl": 5, "bold": 10, "book": [1, 6], "boolean": [6, 14], "boost": [6, 8], "bootstrap": 14, "border": 16, "born": 6, "botaro": 0, "both": [1, 2, 4, 5, 6, 8, 12, 15], "bottl": [0, 4, 5, 8, 15], "bottle_app": 2, "bottleneck": 16, "bottlepi": [4, 5], "bottom": 12, "botton": 14, "boundari": 12, "box": [0, 6, 12], "br": [8, 10], "bracket": [0, 8, 12], "branch": [1, 2], "break": [2, 6, 12], "breez": 1, "briefli": 2, "broke": 0, "broken": [0, 12], "brows": [2, 3, 14, 16], "browser": [1, 2, 3, 5, 7, 8, 14, 16], "bruce": [7, 14], "bsd": 1, "buffer": 6, "bug": [1, 3, 6], "build": [1, 2, 4, 5, 6, 10, 12, 14, 16], "builder": 16, "built": [0, 1, 4, 6, 8, 12, 14, 16, 17], "bulk_insert": 6, "bulletproof": 6, "bulma": [12, 14, 16], "bunch": 2, "buse": 16, "button": [3, 4, 5, 10, 12, 16, 17], "bypass": [12, 13, 14], "byte": [6, 12], "bytecod": 8, "c": [1, 2, 3, 5, 6, 8, 10, 12, 15], "ca": 12, "cach": [0, 2, 4, 12, 17], "cache_db_select": 6, "calcul": 6, "calendar": 14, "call": [0, 1, 4, 5, 6, 7, 8, 10, 11, 12, 13, 14, 16], "callabl": [10, 12], "callback": [12, 13, 16], "callback_url": 13, "can": [0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 11, 12, 13, 14, 15, 16], "cancel": [12, 16], "cancel_attr": 16, "cane": [11, 16], "cani": [11, 16], "cannot": [2, 5, 6, 8, 10, 12, 16], "capabl": [0, 14, 16], "capit": 16, "captur": 16, "car": 6, "card": 6, "care": [5, 6, 8, 15, 16], "carl": 6, "carri": 15, "carrol": 0, "cart": 5, "case": [0, 1, 2, 3, 4, 5, 8, 10, 12, 13, 14, 15, 16], "case_sensit": 6, "cassio": 0, "catch": 6, "caus": [6, 12], "caveat": [6, 8, 15, 17], "cd": 2, "cdnj": [8, 14], "celeri": 17, "center": [5, 8], "centuri": 12, "ceo": [7, 14], "certain": [6, 8, 12, 14], "certif": 2, "cf": 4, "cgi": 12, "chair": 6, "challeng": 13, "chang": [0, 1, 2, 3, 5, 6, 7, 8, 11, 12, 13, 14, 15, 16, 17], "change_email": 13, "change_password": [8, 13], "changed_fil": 4, "channel": 1, "chapter": [1, 2, 3, 4, 5, 6, 8, 10, 12, 13, 14, 15], "char": [6, 13], "charact": [4, 6, 10, 12], "charg": [2, 15], "chat": 1, "checbox": 14, "check": [1, 2, 3, 4, 5, 6, 8, 10, 12, 13, 14, 15, 16], "check_": 16, "check_reserv": 6, "checkbox": [8, 10, 17], "checkboxwidget": 12, "cherri": 12, "chicago": 6, "children": 14, "choic": [1, 4, 12, 14], "choos": [1, 6, 12, 13], "choosen": 6, "chose": 4, "chosen": 6, "chrome": [3, 16], "circular": 6, "circumst": 5, "cit0801": 7, "cit0802": 7, "cit1601": 16, "cite": [10, 12], "clark": [7, 14], "clash": 12, "class": [5, 6, 8, 10, 12, 13, 15, 16], "class_inner_except": 16, "class_styl": 14, "claudia": 6, "claus": [6, 8], "clean": [1, 10], "cleaner": 5, "cleanup": 0, "clear": [6, 12], "clearli": [6, 16], "clever": 12, "cli": [1, 2], "click": [3, 6, 10, 12, 14, 16], "clickabl": 14, "client": [0, 7, 12, 13, 16], "client_id": 13, "client_ip": 5, "client_secret": 13, "clientsid": 16, "clock": 12, "clone": [2, 4, 6, 16], "close": [5, 6, 8, 10], "closer": 6, "cloudflar": [8, 14], "cmd": 2, "cn": 13, "co": [6, 12], "coa": 6, "code": [1, 2, 4, 5, 6, 7, 8, 10, 12, 13, 14, 15, 16], "col": 10, "collaps": [7, 10], "collat": 6, "collect": [0, 2, 15], "colnam": 6, "colon": 8, "color": [4, 6, 8, 10, 12, 16], "colspan": 10, "column": [6, 17], "com": [0, 1, 3, 4, 8, 10, 13, 14, 16], "combin": [5, 10, 12, 14], "come": [0, 4, 5, 6, 8, 12, 13, 14, 15, 16], "comma": [2, 6, 16], "command": [3, 4, 8, 10, 17], "comment": [6, 10], "commit": [4, 5, 7, 14, 15, 16], "common": [2, 3, 4, 5, 8, 12, 13, 15, 16], "common_filt": 6, "commun": [0, 5, 6], "compact": 6, "compani": 14, "compar": [0, 6, 15], "comparison": [6, 12], "compat": [0, 1, 6, 10, 12], "competitor": 0, "compil": [4, 8, 10, 12], "compiled_css": 4, "complain": 6, "complet": [0, 6, 8, 10, 12, 13, 16], "complex": [1, 2, 4, 5, 6, 8, 10, 13, 15, 16], "compliant": [6, 16], "complic": 5, "compon": [0, 3, 4, 5, 8, 10, 12, 13, 16], "component_1": 16, "compos": [2, 5], "compound": 10, "compress": [3, 4], "compris": 3, "compromis": 0, "comput": [1, 16, 17], "concaten": [6, 10], "conceiv": 6, "concept": [0, 13], "concern": 6, "concurr": [0, 2, 6, 12, 16], "cond": 5, "condit": [6, 8, 12, 13, 17], "condition": 6, "config": [2, 4], "configur": [1, 2, 5, 6, 12, 13, 15, 16], "confirm": [2, 12, 13, 14, 16], "conflict": [0, 2, 4, 6], "confus": 6, "conjunct": 6, "conn": 5, "connect": [3, 4, 5, 12, 15], "connectionpool": 6, "consequ": [6, 12, 16], "consid": [5, 6, 8, 10, 12, 14, 15, 16], "consider": 6, "consist": [5, 6, 8, 14, 15], "consol": [2, 10, 13, 16], "constant": 12, "constrain": 15, "constraint": [0, 6], "construct": [4, 6], "constructor": [5, 10, 13, 17], "consult": 6, "contain": [0, 2, 3, 4, 5, 7, 8, 10, 11, 12, 13, 14, 15, 16], "contect": 8, "content": [2, 4, 5, 6, 8, 10, 12, 14, 15, 16], "content_typ": 16, "context": [3, 5, 6, 8], "contextlib": 6, "continu": [6, 8, 16], "contribut": [0, 17], "control": [2, 4, 5, 8, 10, 12, 13, 14, 15, 16], "conveni": [6, 17], "convent": [4, 6, 8, 12, 15], "convers": [12, 17], "convert": [1, 4, 6, 10, 12], "cooki": [0, 4, 6, 12, 16], "copi": [1, 2, 3, 8, 10, 14, 17], "copyfileobj": 6, "core": [1, 2, 4, 5], "corei": 1, "corner": 14, "cornerston": 0, "correct": [1, 6, 13], "correctli": 12, "correspond": [2, 3, 4, 6, 10, 11, 13, 14, 15], "corrupt": 6, "couchdb": 6, "couchdbadapt": 6, "could": [1, 2, 4, 6, 8, 10, 12, 13, 15], "count": [5, 7, 13, 14, 16], "counter": [5, 6, 16], "counterpart": 4, "coupl": [14, 16], "cours": [1, 8], "cp": 2, "creat": [0, 1, 2, 3, 5, 6, 8, 10, 12, 13, 14, 15, 16, 17], "create_form": 12, "create_th": 12, "created_bi": 6, "created_on": 6, "creation": [2, 6], "creativ": [12, 13], "credential_decod": 6, "criteria": [6, 12], "critic": 2, "cross": [5, 6, 10], "crossorigin": 8, "crt": [2, 6], "crud": [3, 12, 16], "cruz": 1, "crypt": 2, "csrf": [5, 12], "csrf_protect": 12, "csrf_session": 12, "css": [1, 4, 5, 8, 10, 12, 13, 14, 16], "csv": 15, "ct": 5, "ctrl": [2, 3], "cubrid": 6, "cubridadapt": 6, "cubriddb": 6, "current": [2, 5, 6, 8, 10, 13, 14, 15, 16], "current_record": 6, "cursor": [6, 16], "curt": 6, "custom": [0, 2, 4, 8, 15, 16, 17], "custom_check": 12, "custom_qualifi": 6, "customiz": [0, 12, 14], "cx_oracl": 6, "cyclic": 6, "czech": 11, "d": [2, 7, 10, 12], "daemon": [2, 16], "dai": 12, "dal": [2, 4, 7, 12, 13, 14, 16, 17], "dan": 0, "dancer": 13, "danger": 15, "dash": 12, "dashboard": [0, 2, 4, 5, 8, 12, 16, 17], "dashboard_mod": 2, "data": [0, 4, 5, 7, 8, 10, 12, 13, 14, 15, 16, 17], "data_label": 16, "databas": [0, 1, 3, 4, 7, 13, 14, 15, 16, 17], "datalist": 16, "date": [2, 6, 14], "datetim": [4, 5, 6, 7, 12, 16], "datetimewidget": 12, "daunt": 1, "db": [2, 3, 4, 5, 7, 10, 12, 13, 14, 15, 16], "db1": 6, "db2": 6, "db2adapt": 6, "db2ibm": 6, "db2pyodbc": 6, "db_a": 6, "db_b": 6, "db_codec": 6, "db_folder": [5, 7, 14], "db_name": 6, "db_uid": 6, "dbadmin": 4, "dbio": 12, "dbo": 6, "dbset": 12, "dbstore": 5, "dc": 13, "dd": 12, "de": [0, 1, 6, 11], "deal": [1, 6, 16], "dealfaro": 0, "debounc": 16, "debug": [2, 4, 5, 6, 8], "debugg": [1, 15], "decid": [6, 12, 14], "decim": [4, 6, 12], "declar": [0, 4, 5, 6], "decod": 6, "decode_credenti": 6, "decor": [1, 4, 6, 15, 17], "dedic": [1, 4, 5, 10, 15], "def": [4, 5, 6, 7, 10, 12, 13, 14, 15, 16], "default": [0, 2, 3, 4, 5, 7, 10, 12, 13, 14, 15, 16], "defer": [6, 16], "defin": [2, 4, 5, 8, 12, 13, 14, 15, 16], "define_t": [5, 7, 12, 13, 14, 15], "definit": [6, 7, 12, 14, 15], "degre": 6, "del": [6, 10], "delai": [6, 16], "deleg": 6, "delet": [2, 4, 7, 12, 14, 16], "delete_record": 6, "delimit": [0, 5, 6, 8, 15], "deliv": 16, "delta": 16, "demand": 6, "demo": [1, 2, 16], "deni": 7, "denorm": [6, 7], "depend": [0, 2, 3, 4, 5, 6, 8, 12, 14, 15], "deploi": 2, "deploy": 1, "deployment_tool": 2, "deprec": [6, 12, 16], "deriv": [6, 12], "desc": 14, "descend": 10, "describ": [2, 3, 4, 5, 6, 12], "descript": [6, 7, 12, 13, 14], "design": [0, 4, 6, 8, 13, 16, 17], "desir": [5, 8, 12, 13], "dest": [4, 6], "detail": [0, 1, 2, 5, 6, 7, 8, 10, 12, 14, 16], "detail_field": 12, "determin": [4, 5, 6, 8, 11, 12, 13, 14], "determinist": 5, "dev": 13, "develop": [0, 1, 4, 5, 6, 13, 14, 15, 16], "development_tool": 2, "devic": 8, "di": [0, 5], "diagram": 7, "dialect": 6, "dict": [4, 5, 6, 11, 12, 14, 15, 16], "dictionari": [4, 5, 10, 11, 15], "did": [0, 4, 6, 16], "differ": [0, 2, 5, 6, 8, 11, 12, 13, 14, 15, 16], "difficult": [2, 16], "digit": [4, 6, 12, 13], "dimens": 12, "dir": [2, 12, 16], "direct": [2, 5, 6, 8, 12], "directli": [1, 2, 4, 6, 7, 8, 10, 12, 13, 14, 16], "directori": 13, "dirnam": [5, 7, 14], "disabl": [6, 7, 10, 12, 14], "disallow": [6, 12], "discard": 6, "discord_client_id": 13, "discord_client_secret": 13, "discount": 6, "discounted_tot": 6, "discounted_total_pric": 6, "discounted_unit_pric": 6, "discov": [11, 13], "discoveri": 2, "discrimin": 13, "discuss": [1, 3, 6, 8, 10, 12], "disk": 5, "dismiss": [5, 15], "displai": [3, 4, 5, 6, 8, 10, 12, 13, 14, 16], "distinct": [8, 12], "distributed_transaction_commit": 6, "ditch": 0, "div": [4, 5, 8, 12, 14, 15, 16], "divis": [8, 10, 12], "divmod": 6, "django": [0, 1, 6, 15], "do": [1, 2, 4, 5, 6, 8, 10, 12, 13, 14, 15, 16], "do_connect": 6, "doc": [1, 16], "dockerfil": 2, "doctor": 6, "doctyp": [8, 14], "document": [3, 5, 6, 8, 10, 12, 16], "doe": [0, 2, 5, 6, 8, 12, 13, 14, 15, 16], "doesn": [5, 6, 14], "dog": [11, 12, 16], "doh": 12, "dom": [8, 17], "domain": [12, 13], "don": [1, 2, 3, 4, 6, 8, 12, 13, 14], "done": [2, 5, 6, 8, 12, 14, 15], "dot": 12, "doubl": [2, 6, 8], "doubt": 14, "down": [6, 12, 16], "downfal": 14, "download": [2, 12], "download_url": 12, "downsid": [6, 15], "dramat": 6, "driven": 0, "driver": 6, "driver_arg": 6, "drop": 12, "dropdown": [12, 14, 16], "dsn": 6, "due": [6, 7, 12], "dummi": [6, 8], "dummyrespons": 8, "dump": [5, 6, 16], "dumpfil": 6, "duplic": 6, "durabl": 7, "dure": [6, 14], "dynam": [6, 7, 8, 10, 12, 13, 17], "e": [2, 4, 5, 6, 7, 8, 10, 12, 13, 16], "each": [2, 4, 5, 6, 7, 8, 10, 11, 12, 13, 14, 15, 16], "earli": [5, 6], "earlier": 16, "easi": [0, 5, 6, 8, 10, 12], "easier": [0, 6, 7, 8], "easiest": [6, 13], "easili": [4, 5, 6, 8, 10, 12, 14], "ebook": 1, "echo": 4, "ecosystem": 16, "edg": 16, "edit": [0, 2, 3, 4, 8, 10, 12, 13, 14, 15, 16], "edit_sidecar": 16, "editor": [1, 8], "educ": 2, "effect": [3, 5, 6, 12], "effici": [0, 1, 5, 6, 15], "effort": 1, "efg": 10, "either": [6, 10, 12], "el": 10, "element": [6, 8, 10, 12, 14, 16], "els": [2, 5, 6, 12, 13, 14, 15, 16], "elsect": 14, "elt": 16, "emac": 8, "email": [2, 5, 8, 12, 13, 15, 16], "emails_onvalid": 12, "emb": 10, "embed": [5, 8, 12], "ember": 12, "emerg": 16, "emphas": 10, "employe": [5, 14], "empti": [2, 4, 6, 12, 16], "empty_regex": 12, "en": [5, 7, 16], "enabl": [1, 5, 6, 7, 10, 13, 15, 16], "enable_record_vers": 6, "encapsul": [8, 10], "enclos": [6, 8], "encod": [5, 6, 12, 16], "encrypt": [0, 2, 5], "end": [4, 6, 8, 10, 12, 13, 14, 15, 16], "endpoint": [13, 16], "enforc": [5, 6, 12, 15], "engin": [6, 12], "english": 5, "enhanc": 6, "enough": [12, 13, 14], "enqueu": 16, "enqueue_run": 16, "ensur": [6, 12], "enter": [4, 5, 10, 12, 13], "enterpris": [1, 13], "entir": [6, 8, 15, 16], "entiti": 6, "entity_quot": 6, "entri": [0, 6, 7, 11, 12, 14, 15], "entropi": 12, "env": [1, 15], "envelop": 16, "environ": [0, 1, 4, 5, 6, 15], "epub": 1, "eq": 7, "equal": [6, 7, 10, 13, 16], "equip": 5, "equival": [4, 5, 6, 10, 12, 15], "errlog": 5, "error": [1, 2, 3, 5, 6, 7, 8, 10, 12, 15, 16], "error_messag": 12, "errorlog": 2, "escap": [6, 8, 10], "especi": [0, 2, 5, 6, 12, 13], "esprima": 4, "establish": [6, 15], "etc": [4, 5, 6, 7, 11, 15], "eval": 16, "evalu": [5, 6, 7, 8, 12, 16], "even": [1, 4, 5, 6, 8, 10, 12, 14, 15, 16], "event": [2, 6, 16], "event_tim": 6, "eventu": 5, "ever": 6, "everi": [0, 2, 4, 5, 6, 13, 14, 15, 16], "everyon": [0, 1], "everyth": [2, 15, 16], "evolut": 0, "ex": 2, "exact": 15, "exactli": [5, 6, 8], "exampl": [1, 2, 3, 4, 5, 6, 8, 10, 11, 13, 17], "excel": [1, 14], "except": [2, 4, 5, 6, 10, 12, 13, 16], "excerpt": 8, "exclud": 12, "exclus": [0, 5, 6, 12, 13], "execut": [1, 2, 5, 6, 8, 10, 12, 15, 16], "exercis": [5, 13], "exist": [2, 5, 6, 12, 13, 14, 16], "exit": [2, 5], "exp": [4, 6], "expand": [1, 3], "expect": [2, 4, 5, 6, 10, 12, 15], "experi": [1, 12, 13], "experienc": 0, "experiment": [2, 5], "expir": [5, 6], "explain": [4, 5, 6, 12, 14], "explanatori": 6, "explicit": [0, 2, 4, 5, 6, 12, 13], "explicitli": [0, 2, 5, 6, 8, 10, 12, 16], "explict": 6, "explor": 3, "export": 17, "export_to_csv_fil": 6, "expos": [0, 3, 4, 5, 6, 7, 13], "express": [4, 7, 8, 10, 11, 12, 14, 16], "extend": [0, 5, 6, 12, 13, 15, 16], "extens": [3, 6, 12, 15], "extern": [2, 6], "extra": [5, 6, 12, 13], "extra_field": 5, "extract": [6, 12, 16], "f": [6, 13, 14, 15, 16], "fa": 14, "face": [1, 6], "facebook": [0, 5], "facilit": 4, "fact": [4, 5, 6, 15], "factori": [5, 6, 10], "fail": [3, 6, 8, 12, 16], "failur": [4, 12, 16], "fake": 6, "fake_migrate_al": 6, "fall": 12, "fals": [2, 5, 6, 7, 8, 10, 12, 13, 14, 15, 16], "famou": [1, 6], "fanci": 16, "far": [6, 16], "fast": [0, 4, 16], "faster": [0, 6, 8, 15], "father": 6, "father_id": 6, "favorite_color": 5, "fb00": 12, "fdb": 6, "fe80": 12, "feasibl": [2, 12], "featur": [0, 2, 4, 7, 8, 15, 17], "februari": 5, "feed": 6, "fetch": [15, 16], "fetchon": 6, "few": [6, 8, 13, 16], "ff00": 12, "fid": 6, "field": [2, 4, 5, 7, 10, 13, 15, 16, 17], "field1": 6, "field2": 6, "field3": 6, "field_id": 14, "fieldnam": [6, 16], "fieldstorag": 12, "fifth": 14, "file": [0, 1, 2, 3, 5, 6, 8, 10, 13, 14, 16, 17], "file_cont": [6, 16], "file_nam": [6, 16], "file_path": 15, "filenam": [2, 4, 5, 6, 12], "filep": 4, "filepath": 4, "filesystem": [0, 4, 5, 6], "fileuploadwidget": 12, "fill": [12, 16], "filter": [2, 4, 7, 12, 13], "filter_in": 12, "filter_out": 14, "final": [1, 2, 4, 6, 11, 14], "find": [1, 2, 4, 8, 11, 12, 13, 14, 16], "find_by_tag": 13, "find_match": 11, "findal": 12, "fine": [2, 13, 14], "fire": 6, "firebird": 6, "firebird_embed": 6, "firebirdadapt": 6, "firebirdembed": 6, "firebirdembeddedadapt": 6, "firefox": [3, 16], "firfox": 16, "first": [0, 3, 5, 7, 8, 10, 12, 13, 14, 15, 16, 17], "first_nam": [4, 5, 13, 14], "first_onli": 10, "first_row": 6, "first_row_dict": 6, "fist": 12, "fit": 12, "five": 6, "fix": [5, 15], "fixtur": [0, 2, 4, 6, 10, 13, 15, 17], "fk_field": 16, "fk_tabl": 16, "fkdaog": 8, "flag": 12, "flash": [8, 12, 16, 17], "flask": [0, 15], "flexibl": [0, 6, 13, 14, 16], "flight": 7, "float": [4, 12], "flow": 13, "fn": 2, "focu": 16, "fold": 6, "folder": [1, 2, 3, 4, 5, 7, 11, 12, 14, 15], "follow": [1, 2, 4, 5, 6, 7, 8, 10, 11, 12, 13, 14, 15, 16], "font": [8, 12, 14], "foo": 14, "foot": 13, "footer": [8, 10], "forbid": 12, "forbidden": 12, "forc": [2, 5, 6, 12, 13], "foreground": 12, "foreign": [1, 14], "foreign_key_check": 6, "forgeri": 5, "forget": [6, 14], "form": [0, 5, 6, 7, 11, 13, 14, 17], "form_bas": 12, "form_custom_widget": 12, "form_exampl": 12, "form_minim": 12, "form_nam": 12, "form_widget": 12, "format": [4, 5, 7, 10, 11, 13, 14], "formatt": 16, "formdata": 7, "former": 6, "formstyl": [12, 14, 16], "formstylebootstrap4": 12, "formstylebulma": [12, 14, 16], "formstyledefault": [12, 14], "formstylefactori": 16, "forum": 3, "forward": [1, 3], "found": [2, 6, 12], "four": [2, 6], "fourth": 12, "fp": 5, "fr": 11, "framework": [0, 1, 2, 4, 5, 6, 12, 13, 14, 15, 16], "free": [1, 5, 6, 13], "freetext": 16, "frequent": [1, 6, 12], "friendli": [0, 5, 8], "from": [0, 1, 3, 5, 7, 8, 10, 11, 12, 13, 14, 16, 17], "from_add": 16, "from_addr": 16, "from_address": 13, "from_email": 16, "front": [0, 8, 12, 16], "frontend": 16, "fsstorag": 5, "ftp": 12, "full": [2, 4, 6, 8, 12, 14, 16], "fulli": [1, 4, 5, 6, 12], "fullnam": 6, "func": [2, 5], "function": [0, 2, 4, 5, 6, 7, 10, 14, 15, 16], "functool": 16, "furnitur": 5, "further": 13, "futur": [5, 15, 16], "g": [1, 2, 6, 10, 12], "gain": 2, "gather": 14, "gavgavian": 1, "gender": 6, "gener": [0, 1, 2, 4, 5, 7, 8, 10, 12, 13, 14, 15, 16], "german": 11, "get": [1, 2, 4, 5, 6, 8, 12, 13, 14, 15, 16, 17], "get_cooki": 16, "get_us": [4, 5, 13, 15], "get_var": [7, 15], "getvalu": 6, "gevent": [1, 2], "geventw": 2, "geventwebsocketserv": 2, "gia": 5, "gib": 6, "gif": 12, "git": [1, 2], "github": [2, 3, 4, 6, 14], "gitlat": 1, "give": [0, 2, 4, 5, 6, 8, 13, 14], "given": [2, 5, 6, 8, 12, 16], "global": [0, 5, 6, 8, 13, 15, 16], "go": [1, 2, 4, 6, 8, 14, 16], "goal": 0, "goe": [6, 12], "good": [2, 3, 12], "googl": [0, 3, 5, 8, 12, 14], "googledatastor": 6, "googledatastoreadapt": 6, "googlemysql": 6, "googlepostgr": 6, "googlesql": 6, "googlesqladapt": 6, "gotcha": 17, "gotta": 8, "granular": 6, "granulari": 12, "graphic": 6, "graphql": 7, "great": 16, "greater": 7, "greedi": 4, "green": [4, 6, 12, 15], "grid": [0, 17], "grid_class_styl": 14, "grid_tutori": 14, "gridactionbutton": 14, "gridclassstyl": 14, "gridclassstylebulma": 14, "group": [0, 2, 3, 5, 13, 15], "group_nam": [5, 13], "groupbi": 12, "grow": [0, 6, 16], "gt": [7, 10], "guarante": [5, 6, 8, 15, 16], "guid": 2, "guidelin": 13, "gunicorn": 2, "gunicorngev": 2, "gz": 12, "h": [2, 12], "h1": [4, 8], "h2": [8, 12], "ha": [0, 2, 4, 5, 6, 7, 8, 10, 11, 12, 13, 14, 15, 16], "habit": 2, "had": 6, "hamburg": 8, "hand": [2, 6, 16], "handi": 6, "handl": [2, 4, 5, 6, 12, 14, 15, 16], "handler": 4, "hang": 1, "happen": [5, 6], "hard": 15, "hardcod": 5, "has_membership": 13, "hash": [2, 6, 12], "have": [0, 1, 2, 3, 4, 5, 7, 8, 10, 12, 13, 14, 15, 16], "he": 6, "head": [4, 8, 12, 14], "header": [4, 5, 6, 8, 10, 14, 16], "height": [12, 14, 16], "hello": [4, 5, 6, 8, 10, 12, 13, 16], "help": [2, 6, 7, 8, 10, 12, 15, 17], "helper": [0, 4, 5, 6, 8, 12, 14, 15, 16, 17], "henc": [0, 2, 4, 5, 6, 12], "her": 12, "here": [0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 11, 12, 13, 14, 16], "hesit": 6, "hex": 12, "hh": 12, "hi": [6, 12, 16], "hidden": [6, 12, 16], "hidden_div": 16, "hidden_input": 16, "hide": [6, 14], "hierarch": [6, 13], "high": [12, 13], "higher": 6, "highest": 12, "highli": [1, 14], "highlight": [1, 8], "hint": [14, 17], "histor": [0, 6], "histori": 12, "hit": [2, 6], "hmac": 12, "ho": 5, "hold": [6, 16], "home": 8, "host": [1, 2, 5, 12, 13], "hour": 12, "hous": 15, "housekeep": 6, "how": [0, 2, 4, 5, 6, 7, 8, 12, 13, 14, 15, 16, 17], "howev": [6, 8, 10, 12, 14, 16], "href": [8, 10, 13, 14], "hs256": 5, "html": [1, 4, 5, 7, 8, 11, 12, 13, 14, 15, 16], "html5": 8, "htmx": [14, 17], "htmx_form": 16, "htmx_form_demo": 16, "htmx_grid": 16, "htmx_list": 16, "htmxautocompletewidget": 16, "http": [0, 1, 3, 4, 5, 6, 7, 8, 10, 11, 12, 13, 14, 15, 16], "httrespons": 5, "hulk": 12, "hundr": 16, "hx": 16, "hypertext": 16, "hyphen": 10, "i": [1, 2, 3, 4, 5, 6, 7, 8, 11, 12, 13, 14, 15, 16, 17], "i18n": 11, "ibm_db_dbi": 6, "icon": [8, 14], "id": [0, 1, 2, 3, 5, 7, 8, 10, 12, 13, 14, 15, 16], "id1": 6, "id2": 6, "id_field_nam": 14, "id_valu": 14, "idea": 6, "ident": [6, 7, 15], "identifi": [4, 5, 6, 10, 12], "idn": 12, "ie": 12, "ietf": 12, "ifram": 12, "ignor": [4, 5, 6, 8, 10, 12, 14, 16], "ignore_attribute_plugin": 14, "ignore_common_filt": [6, 12], "ignore_field_cas": 6, "iip": 6, "illustr": [6, 8], "imag": [6, 8, 10, 12], "image_fil": 6, "imagin": [5, 6, 8, 16], "imap": 6, "imapadapt": 6, "imaplib": 6, "img": [4, 12], "immedi": [2, 6, 14], "immens": 0, "implement": [4, 5, 6, 8, 12, 13, 15, 16], "impli": 7, "implic": 5, "implicit": 6, "implicitli": [6, 12], "implictli": 6, "import": [0, 1, 2, 4, 5, 7, 8, 10, 11, 12, 13, 14, 15, 16, 17], "import_and_sync": 6, "import_from_csv_fil": 6, "impos": 8, "impot": 12, "improv": [12, 13, 14], "includ": [0, 4, 5, 6, 7, 10, 12, 14, 15, 16], "include_action_button_text": 14, "include_path": 4, "inclus": [0, 12], "incom": 2, "incorrect": 8, "increas": 5, "increment": 6, "inde": [0, 5], "indent": 8, "independ": [0, 5, 6, 13], "index": [1, 2, 4, 5, 7, 8, 10, 12, 13, 14, 15, 16, 17], "indic": [4, 6, 12, 15, 16], "individu": [0, 2, 5, 6, 7, 8, 12], "ineffici": [5, 6], "infinit": 6, "info": [2, 4, 5, 6, 13], "inform": [1, 5, 6, 7, 12, 13, 15, 17], "informix": 6, "informixadapt": 6, "informixdb": 6, "informixs": 6, "ingr": 6, "ingredi": 4, "ingresadapt": 6, "ingresdbi": 6, "ingresu": 6, "ingresunicod": 6, "ingresunicodeadapt": 6, "init": 14, "initi": [0, 2, 4, 5, 8, 12], "inject": [6, 8, 12, 14, 17], "inlin": [10, 16], "inner": [5, 8, 16], "input": [2, 4, 5, 6, 8, 12, 14, 16], "insensit": [6, 12], "insert": [3, 5, 7, 8, 12, 13, 14, 16], "insid": [1, 2, 4, 5, 6, 8, 10, 12, 14, 15, 16], "inspector": 8, "inspir": 7, "instal": [0, 1, 3, 4, 5, 6, 13, 16, 17], "instanc": [5, 6, 10, 12, 14, 16], "instanti": [6, 13, 14, 15], "instead": [1, 4, 5, 6, 8, 10, 12, 13, 14, 15, 16], "instruct": [2, 12], "int": [4, 6, 12, 13, 15], "int2ip": 6, "integ": [2, 4, 6, 7, 10, 12, 16], "integr": [0, 1, 8, 16], "intend": [6, 16], "intention": 12, "interact": [0, 5], "interchang": 13, "interfac": [0, 3, 5, 6, 14, 15, 16], "intermedi": 6, "intern": [0, 1, 4, 5, 6, 8, 13, 14], "internation": [0, 4, 5, 12, 15, 17], "interpret": [0, 6, 7, 10], "intersect": 6, "introduc": [0, 8], "introduct": [1, 2, 17], "intuit": 12, "invalid": [2, 5, 6, 12], "invert": [6, 12], "invis": 6, "involv": [6, 8, 14, 15], "io": [2, 6], "ip": [2, 6, 12], "ip2int": 6, "ip_list": 13, "ipaddr": 6, "ipaddress": 13, "iptabl": 2, "ipv4": [6, 12], "ipv4address": 13, "ipv4network": 13, "ipv6": 12, "is_6to4": 12, "is_act": 6, "is_automat": 12, "is_dat": 6, "is_datetim": 6, "is_decimal_in_rang": 6, "is_empty_or": 6, "is_float_in_rang": 6, "is_imperson": 13, "is_in_db": [6, 14], "is_in_set": 6, "is_int_in_rang": 6, "is_json": 6, "is_length": 6, "is_link_loc": 12, "is_localhost": 12, "is_multicast": 12, "is_not_empti": 6, "is_null_or": 14, "is_priv": 12, "is_publ": 6, "is_reserv": 12, "is_rout": 12, "is_teredo": 12, "is_tim": 6, "isdir": [7, 14], "isn": [12, 14], "iso": 7, "isol": 16, "issu": [0, 3, 6], "ital": 10, "italian": [5, 11], "item": [6, 7, 8, 10, 12], "itemize1": 8, "itemize2": 8, "iter": [8, 12], "iterselect": 6, "its": [0, 1, 2, 3, 4, 5, 6, 8, 10, 12, 13, 14, 15, 16], "itself": [2, 6, 12, 16], "iv": 6, "j": [0, 4, 5, 8, 11, 15, 17], "javascript": [1, 4, 7, 10, 16], "jdbc": 6, "jdbcpostgr": 6, "jdbcpostgresqladapt": 6, "jdbcsqlite": 6, "jdbcsqliteadapt": 6, "jetbrain": 1, "jim": [0, 1, 14], "jinja2": 5, "job": [7, 12, 14], "john": [0, 6], "join": [4, 5, 7, 12, 13, 14, 15, 17], "jonathan": 6, "journalist": [7, 14], "journei": 1, "jpeg": 12, "jpg": 12, "jpsteil": 14, "jqueri": [10, 12, 16], "jsl": 16, "json": [0, 1, 2, 4, 5, 6, 7, 11, 12, 15, 16], "jump": 1, "junk": 6, "just": [1, 2, 4, 5, 6, 7, 8, 12, 14, 16], "jwt": 5, "jython": 6, "k": [5, 8, 15], "karg": 10, "kbyte": 5, "keep": [1, 2, 4, 5, 6, 7, 8, 10, 12, 14, 15], "keep_valu": 12, "kei": [2, 4, 5, 7, 10, 11, 12, 13, 16, 17], "keller": 0, "ken": 6, "kent": [7, 14], "kevin": 0, "keycod": 16, "keyup": 16, "keyword": [8, 10], "kfield": 16, "kill": 16, "kind": [0, 4], "kinterbasdb": 6, "know": [1, 2, 5, 6, 8, 14], "knowledg": 1, "known": [6, 8], "known_express": 11, "ktabl": 16, "kwarg": [6, 16], "ky8iq0g4b3cyey6wyhn3yt9pw0xpsrivlkmxe40ptknxrlnz9": 8, "l": [2, 12], "label": [6, 7, 8, 12, 14, 15, 16], "lack": [6, 12, 15], "lambda": [5, 6, 10, 12, 13, 14, 16], "lang": 5, "languag": [0, 1, 4, 5, 11, 15, 16, 17], "larg": [6, 12], "larger": 0, "last": [1, 5, 8, 12, 13, 14, 16], "last_insert_id": 6, "last_nam": [5, 13, 14], "last_row": 6, "lastdot": 12, "lastrowid": 6, "later": [1, 2, 4, 5, 6, 8, 10, 12, 13, 14], "latest": [2, 6, 15], "latin1": 6, "latter": [6, 12, 15], "launch": [1, 2], "launcher": 1, "lax": 5, "layer": [5, 15, 17], "layout": [12, 13, 14, 15, 16, 17], "lazi": [2, 4, 15], "lazili": 16, "lazy_t": 6, "lazy_total_pric": 6, "ldap": [0, 5], "ldap_plugin": 13, "ldap_set": 13, "ldapplugin": 13, "lead": 14, "leader": 16, "learn": [1, 6], "least": [1, 2, 6, 12, 15, 16], "leav": [5, 6, 13], "left": [8, 12, 14, 16], "len": [12, 16], "length": [6, 12], "less": [7, 12, 15, 16], "let": [2, 6, 7, 12, 16], "letter": 12, "level": [2, 6, 7, 11, 12, 13], "leverag": 0, "li": [8, 12, 13, 16], "lib": [2, 8, 10, 14], "libldap2": 13, "librari": [0, 2, 4, 6, 11, 12, 13, 15, 16], "libsasl2": 13, "libsass": 4, "licens": 1, "life": 16, "lifespan": 12, "lifetim": 5, "lighter": [6, 15], "like": [0, 1, 2, 3, 4, 5, 7, 8, 10, 11, 12, 13, 14, 15, 16], "limit": [0, 2, 5, 6, 7, 8, 12, 13, 15, 16], "line": [4, 5, 6, 7, 8, 10, 12, 13, 14, 16, 17], "link": [2, 6, 7, 8, 10, 12, 13, 14, 16], "lint": 1, "linux": 2, "list": [0, 1, 2, 4, 5, 7, 8, 10, 12, 13, 14, 16], "list_of_field": 6, "listabl": 6, "listen": [2, 3], "listproperti": 6, "liststringproperti": 6, "listwidget": 12, "littl": [1, 5, 6], "live": [6, 16], "ll": [1, 2, 3, 5, 6, 8, 12, 14, 16], "load": [3, 4, 5, 6, 8, 14, 16], "loazkji": 8, "local": [3, 5, 6, 12, 13, 14, 15], "localhost": [2, 4, 5, 6, 12], "locat": [2, 4, 8, 15], "lock": [5, 6, 16], "log": [2, 3, 4, 5, 6, 8, 10, 13, 15, 16], "logerror": 5, "logfil": 6, "logging_level": 2, "logic": [2, 5, 12, 13, 14, 15, 16], "login": [0, 2, 4, 5, 6, 8, 12, 13, 15, 17], "logo": [0, 8, 10], "logout": [0, 8, 13], "long": [0, 2, 12, 16], "longer": [0, 6], "longhash_tablenam": 6, "longtext": 6, "look": [2, 3, 5, 6, 7, 10, 12, 13], "lookup": [5, 7, 12], "loop": [6, 8, 16], "lose": [6, 12], "lost": [1, 5, 6, 15], "lot": [1, 4, 6], "love": 0, "low": 0, "lower": 12, "lowercas": 12, "lowest": 12, "lru": 5, "lt": [2, 10], "luca": [0, 1], "m": [0, 2, 6, 10, 12], "mac": 6, "machin": [2, 6], "macneiln": 2, "maco": 2, "made": [1, 2, 6, 8, 12, 14], "magic": 0, "mai": [2, 4, 5, 6, 8, 10, 12, 14, 15, 16], "mail": [1, 3, 6, 12, 16], "mailto": 12, "main": [0, 1, 2, 4, 6, 8, 14, 15, 16, 17], "maintain": [6, 8, 14, 16], "mainten": 16, "major": 6, "make": [0, 1, 2, 5, 8, 10, 11, 12, 13, 14, 15, 16], "makefil": 2, "man": 16, "manag": [0, 1, 2, 3, 4, 5, 6, 12, 13, 14, 16], "mandatori": [5, 6, 8], "mani": [0, 1, 2, 4, 5, 7, 8, 12, 14, 15, 16], "manipul": 6, "manner": [5, 15], "manual": [2, 3, 4, 6, 10, 13, 14], "map": [2, 4, 6, 10, 11, 12, 15], "map_non": 6, "marco": 6, "margin": [8, 16], "mark": [6, 13], "massimo": [0, 6], "master": [1, 2, 6, 14], "match": [2, 4, 5, 6, 7, 8, 10, 11, 12, 16], "materi": 6, "math": 16, "mathemat": 6, "matter": 15, "max": [11, 12, 16], "max_concurrent_run": 16, "maximum": [5, 6, 12], "maxip": 12, "maxlen": 12, "maxsiz": 12, "mayb": [2, 5], "md5": 12, "me": [10, 12, 14, 16], "mean": [1, 2, 3, 5, 6, 8, 12, 13, 15, 16], "mechan": [0, 5, 6, 8, 10, 13, 15, 16], "meet": 6, "member": [12, 13], "membership": [0, 5, 12, 13, 15], "memcach": [0, 6], "memoiz": 17, "memori": 5, "mention": [5, 13, 16], "menu": [8, 12, 13], "merg": 6, "mess": 1, "messag": [2, 4, 5, 7, 8, 12, 14, 15, 17], "met": 6, "meta": [8, 10], "metadata": 6, "metatag": 10, "method": [4, 5, 7, 8, 10, 12, 13, 14, 16, 17], "mfa": 13, "micah": 0, "microsoft": [1, 13], "mid": 6, "middlewar": 5, "might": [7, 12], "migrat": [15, 17], "migrate_en": 6, "mileston": 1, "min": [8, 12, 14], "min_length": 12, "mind": [1, 4, 6, 7, 8, 12], "minim": [5, 14, 17], "minimalist": [8, 15], "minimalist_pag": 8, "minimum": [6, 12], "minip": 12, "minor": [8, 12, 15], "minsiz": 12, "minut": 12, "miss": [2, 13, 14], "mistak": 2, "mix": 8, "mkdir": [2, 4, 7, 14], "mm": 12, "mode": [2, 4, 5, 12, 13], "model": [0, 3, 4, 7, 10, 12, 14, 15, 16], "modern": [6, 13, 16], "modif": [2, 12], "modifi": [2, 4, 6, 7, 8, 12, 14, 15, 16], "modified_bi": 6, "modified_on": 6, "modul": [0, 1, 2, 4, 5, 6, 8, 10, 12, 13, 14, 15, 17], "modular": [0, 6, 8, 15], "moment": 6, "mongo": 6, "mongodb": 6, "mongodbadapt": 6, "monkei": 5, "monolith": 0, "monospac": 10, "month": 12, "more": [0, 1, 2, 4, 5, 7, 8, 10, 12, 13, 14, 15, 16], "moreov": [6, 16], "most": [0, 3, 4, 5, 6, 12, 13, 14, 15, 16], "mostli": 5, "mother": 6, "mother_id": 6, "mount": 13, "move": 6, "mssql1": 6, "mssql1n": 6, "mssql2": 6, "mssql2adapt": 6, "mssql3": 6, "mssql3adapt": 6, "mssql3n": 6, "mssql4": 6, "mssql4adapt": 6, "mssql4n": 6, "mssqladapt": 6, "mssqln": 6, "mtabl": 0, "much": [0, 1, 4, 5, 6, 8, 12, 14, 15, 16], "multi": [1, 2, 6, 15], "multicast": 12, "multipl": [0, 1, 2, 4, 6, 8, 10, 11, 12, 15, 16, 17], "multiprocess": 5, "multiselect": 12, "multius": 13, "must": [1, 2, 3, 4, 5, 6, 8, 10, 12, 13, 14, 15, 16], "my": [5, 8, 10, 12, 13, 16], "my_app": 4, "my_id": 16, "my_password_fil": 2, "my_task": 16, "my_url_path": 15, "my_var": [5, 10], "myapp": [2, 4], "myclass": 10, "mycompon": 16, "mycustomwidget": 12, "mydb": 6, "myerror": 5, "myfield": 6, "myfil": 6, "myfixtur": 5, "myfunct": 2, "myidx": 6, "myobj": 6, "myobjnam": 6, "myorder": 6, "myqueri": 6, "myrecord": 6, "mysaltvalu": 12, "mysendgridsend": 16, "myset": 6, "mysidebar": 8, "mysqladapt": 6, "mysqldb": 6, "mysqldv": 6, "mystyl": 12, "mytabl": 6, "myvalu": 6, "myvirtualfield": 6, "myvirtualfields1": 6, "myvirtualfields2": 6, "n": [5, 6, 11, 16], "name": [2, 4, 5, 7, 8, 10, 12, 13, 14, 15, 16], "nameonli": 6, "narrow": 6, "nativ": 6, "native_json": 12, "nav": 8, "navbar": [8, 13], "navig": [8, 14, 16], "ndb": 6, "ne6fz": 8, "necessari": [6, 8, 10], "need": [0, 1, 2, 4, 5, 6, 8, 10, 12, 13, 14, 15, 16], "neg": [6, 12], "negat": 6, "neither": [6, 12], "nest": [6, 8, 10], "nested_select": 6, "network": [6, 12, 13], "never": [5, 6, 8, 12, 15, 16], "nevertheless": 6, "new": [0, 1, 2, 3, 4, 5, 7, 8, 10, 11, 12, 13, 14, 15, 16], "new_app": [8, 10], "new_password": 16, "new_sidecar": 16, "newer": 8, "newli": [4, 6, 11], "newlin": [6, 12], "next": [1, 2, 5, 6, 8, 12, 16], "nginx": 2, "nice": 10, "nicer": 16, "nico": 0, "nid": 6, "no_backslash_escap": 6, "no_tabl": [12, 16], "node": [4, 16], "non": [4, 5, 6, 12, 14, 15], "none": [2, 5, 6, 7, 10, 12, 14, 15, 16], "nor": [2, 6, 12], "normal": [2, 4, 5, 6, 8, 10, 12, 14, 16], "northwind": 1, "nosqladapt": 6, "not_author": 13, "notat": [6, 10], "note": [1, 2, 5, 8, 10, 12, 15, 16], "noth": [2, 5, 6, 12, 16], "notic": [2, 4, 5, 6, 8, 10, 12, 13, 14, 15, 16], "notnul": 6, "notset": 2, "now": [0, 2, 4, 5, 6, 8, 12, 14, 16], "nowadai": 1, "null": [6, 7, 12, 16], "num": 6, "number": [2, 4, 5, 6, 8, 11, 12, 14, 16], "number_work": 2, "numer": [6, 12], "o": [4, 5, 7, 12, 14], "oauth": 13, "oauth2": [0, 5], "oauth2discord": 13, "oauth2facebook": 13, "oauth2googl": 13, "obj": [6, 8], "object": [0, 5, 6, 7, 8, 10, 11, 12, 15, 17], "observ": 6, "obtain": [2, 4, 6, 13, 16], "obviou": [6, 7, 8, 13], "obvious": [6, 12], "occasion": [6, 12], "occur": [2, 6, 8, 12, 16], "odd": [6, 8], "off": [0, 2, 4, 6, 14, 16], "offici": [0, 6, 12, 16], "offset": [6, 7], "often": [4, 6, 13, 16], "ok": [10, 15], "old": [2, 5, 12, 15], "older": 12, "ombott": [0, 4, 15], "omit": 2, "on_delete_act": 6, "on_error": 5, "on_fals": 5, "on_request": 5, "on_success": 5, "onc": [1, 2, 5, 10, 12, 13, 14, 16], "onclick": 16, "ondelet": 6, "one": [0, 2, 3, 4, 5, 7, 8, 11, 12, 13, 14, 16], "ones": [2, 5, 6, 7, 12, 15], "onion": 5, "onkeydown": 16, "onli": [1, 2, 3, 4, 5, 6, 7, 8, 10, 12, 13, 14, 15, 16], "onlin": [1, 6], "onload": 16, "onvalid": 12, "onward": 6, "opac": 16, "open": [1, 2, 3, 4, 5, 6, 10], "oper": [0, 3, 5, 11, 12, 13, 17], "operationalerror": 12, "oppos": [5, 6, 10], "opposit": [5, 6], "oprow": 6, "optim": [4, 6], "optimis": 6, "option": [0, 3, 4, 5, 6, 7, 8, 13, 14, 15, 16, 17], "oracleadapt": 6, "order": [1, 2, 4, 5, 6, 7, 10, 12, 14, 15], "order_item": 6, "orderbi": [12, 13, 14, 16], "ordereddict": 6, "org": [7, 10, 16], "organ": 4, "origin": [6, 8, 10, 11, 12], "orm": 6, "other": [0, 1, 2, 4, 5, 7, 8, 10, 11, 13, 14, 15, 16, 17], "other_pag": [12, 16], "otherfield": 6, "othert": 6, "otherwis": [5, 6, 8, 12, 13, 14], "oufil": 6, "our": [0, 1, 2, 4, 5, 6, 10, 12, 16], "out": [0, 1, 2, 6, 8, 16], "outer": [5, 12, 16], "outlin": [4, 5], "output": [1, 2, 4, 5, 6, 7, 8, 10, 12, 16], "output_styl": 4, "outsid": [0, 5, 6, 12, 14, 15, 16], "ov": 6, "over": [6, 8, 14, 16], "overcom": 6, "overhead": 6, "overkil": 13, "overload": 6, "overrid": [4, 6, 8, 10, 13, 14, 15, 16], "override_class": 14, "override_styl": 14, "overview": 17, "overwritten": [5, 15], "own": [4, 5, 6, 8, 12, 13, 14, 15, 16], "owner": [6, 12], "owner_id": 6, "owner_id1": 6, "owner_id2": 6, "ownership": 6, "p": [2, 8, 12], "p10n": 11, "packag": [0, 6, 10], "pad": [8, 15, 16], "page": [1, 5, 6, 10, 12, 13, 14, 15, 16, 17], "page_head": 8, "page_left_menu": 8, "page_script": 8, "pagin": [6, 14], "paint": [4, 12], "pair": [6, 10], "pam": [0, 5], "pam_plugin": 13, "pamplugin": 13, "paragraph": [1, 5, 10, 12, 14], "param": [12, 13, 14, 15, 16], "paramet": [1, 2, 4, 5, 13, 16], "parent": [2, 6, 8, 16], "parenthes": 6, "park": [7, 14], "pars": [4, 5, 6, 11, 12, 13], "parsemodul": 4, "parser": 6, "part": [6, 10, 12, 15], "parti": [0, 5], "partial": [4, 6, 15], "particip": 1, "particular": [0, 1, 6, 12, 14, 15, 16], "particularli": 6, "pass": [2, 4, 5, 6, 8, 10, 12, 13, 14, 15, 16], "passphras": 5, "password": [0, 2, 3, 5, 6, 8, 12, 13, 15, 16], "password_fil": 2, "passwordwidget": 12, "patch": 5, "path": [2, 4, 5, 6, 7, 11, 12, 14, 15, 16], "path_to": 2, "pattern": [4, 7], "paus": 2, "payment": 6, "payrol": 5, "pbkdf2": 12, "pc": 3, "pdf": [1, 12], "pdkdf2": 2, "per": [0, 4, 5, 7, 14], "perahp": 5, "percent": 6, "percentag": 6, "perfect": 0, "perfectli": 14, "perform": [0, 3, 5, 6, 12, 13, 15], "period": 16, "permiss": [0, 5, 6, 15], "permit": 6, "permitted_tag": 10, "persist": [5, 6, 13], "person": [2, 6, 7, 12, 14], "persons_and_th": 6, "perspect": 0, "pet": 6, "peter": [7, 14], "phase": 6, "philip": 6, "phone": [12, 16], "photograph": [7, 14], "phrase": 6, "physic": 13, "pick": [4, 5, 13], "piec": [0, 5, 6, 8, 12], "pierro": 0, "pip": [0, 1, 6], "pirsch": 0, "piu": 5, "pixel": 12, "place": [1, 5, 6, 8, 12, 14, 16], "placehold": [6, 11, 12, 16], "plai": [0, 16], "plain": [6, 16], "plan": [1, 16], "platform": [0, 1, 17], "pleas": [5, 6], "plu": [6, 8, 13, 14], "plugin": [4, 5, 12, 14, 16], "plural": [0, 4, 5, 14, 15, 16, 17], "pm": 12, "png": [10, 12], "point": [2, 3, 4, 5, 6, 7, 8, 12, 14, 15], "pointer": 16, "pointless": 6, "polici": [0, 17], "pollut": 5, "pool": [4, 5], "pool_connect": 6, "pool_siz": [5, 6], "poor": 16, "pop": 16, "popul": 6, "popular": [0, 6], "port": [0, 2, 3, 5, 6, 15], "portabl": 6, "portion": 14, "posit": [5, 10], "possibl": [4, 5, 6, 8, 12, 14, 15, 16], "possibli": 6, "post": [4, 6, 7, 10, 12, 13, 14, 15, 16], "post_action_button": 14, "post_text": 6, "post_var": [7, 15], "post_writ": 7, "postel": 11, "postel\u00ed": 11, "postfix": 15, "postgr": 6, "postgreboolean": 6, "postgrenew": 6, "postgrepsyco": 6, "postgrepsycoboolean": 6, "postgrepsyconew": 6, "postgres2": 6, "postgres3": 6, "postgres_nonreserv": 6, "postgresql": [2, 6], "postgresqladapt": 6, "postprocess": 15, "potenti": 2, "power": [2, 6, 7, 13, 15, 16], "pprint": 6, "pr": 1, "practic": [0, 6, 8, 12, 15, 17], "pre": [2, 4, 5, 6, 14], "pre_action_button": 14, "precaut": 2, "preced": [5, 6, 7, 8, 12], "preciou": 14, "predefin": [8, 12, 16], "predetermin": 15, "prefer": [2, 5, 6, 10, 16], "prefix": [2, 4, 6, 7, 8, 12, 15], "preliminari": 1, "prepend": [4, 7, 12, 15, 16], "prepend_schem": 12, "preprocess": 15, "prerequisit": [5, 17], "presenc": [5, 6], "present": [2, 6, 8, 12, 13], "preserv": [0, 5], "press": [3, 4, 14], "pretti": [4, 6, 15], "prevent": [2, 5, 6, 8, 10, 12, 16], "previou": [2, 5, 6, 8, 10, 12, 16], "previous": [5, 6, 12], "price": 6, "prima": 5, "primari": [8, 13], "primarili": 14, "prime": 12, "print": [4, 6, 10, 11, 13, 14, 15, 16], "privat": [5, 12], "probabl": [4, 12], "problem": [0, 1, 6, 8, 13, 14, 16], "procedur": 17, "process": [2, 4, 5, 6, 8, 12, 13, 14, 15, 16], "produc": [0, 2, 5, 6, 8, 10, 12, 13], "product": [2, 4, 6, 16], "product_record": 16, "profil": [0, 8, 13, 15], "program": [1, 2, 3, 6, 8, 10, 12, 16], "programmat": [6, 10], "project": [0, 2, 4, 5, 6], "project_nam": 2, "prompt": [2, 4, 6], "proper": [5, 6, 14], "properli": 4, "properti": [6, 12], "protocol": 3, "prototyp": 16, "provid": [0, 2, 3, 4, 5, 6, 8, 10, 12, 13, 14, 15, 16], "prudent": 6, "pseudo": 6, "psycopg2": 6, "public": 6, "publish": 4, "pull": [1, 6], "punycod": 12, "pure": 6, "purpos": [0, 5, 6, 10, 12, 13, 15], "put": [4, 5, 7, 12, 16], "put_writ": 7, "pwd": 6, "py": [1, 2, 4, 5, 6, 7, 10, 11, 12, 13, 14, 15, 16], "py4web": [2, 3, 4, 5, 7, 8, 10, 12, 13, 14], "py4web_filesystem": 6, "py4web_wsgi": 2, "pyc": 8, "pydal": [0, 2, 3, 5, 6, 7, 12, 13, 14, 15, 16], "pyfilesystem": 6, "pymongo": 6, "pymysql": 6, "pyodbc": 6, "pypi": 2, "pypyodbc": 6, "pysqlite2": 6, "pytd": 6, "python": [0, 2, 4, 5, 6, 8, 10, 11, 12, 13, 14, 15, 16], "python2": [2, 15], "python3": [1, 2], "pyweb": 15, "q": [2, 6, 14], "qualifi": 6, "quantiti": 6, "queri": [4, 5, 7, 10, 12, 13, 14, 15, 16], "query1": 6, "query2": 6, "queryselector": 16, "queryselectoral": 16, "querystr": 14, "question": [1, 2, 6], "quick": [1, 12], "quickli": [2, 12, 14], "quickstart": 16, "quiet": 2, "quirk": 5, "quit": [1, 2, 5, 7, 8, 12, 14], "quot": [2, 10], "quote_minim": 6, "quote_nonnumer": 6, "quotechar": 6, "r": [2, 6, 12], "race": 12, "radio": [10, 12], "radiowidget": 12, "radiu": 16, "rais": [5, 6, 12, 13, 15], "ram": [5, 6], "randint": [8, 13], "random": [6, 8, 12, 13, 16], "rang": [4, 6, 8, 13, 15], "rapid": [0, 16], "rare": 6, "rather": [6, 8, 10, 12, 16], "raw": 17, "rb": 6, "re": [0, 1, 2, 4, 5, 6, 8, 10, 12, 13, 14, 15, 16], "reach": 2, "react": 16, "reactiv": 16, "read": [1, 4, 5, 6, 7, 14, 16], "readabl": [5, 6, 7, 14, 15], "readi": [2, 6], "readm": [1, 12], "readonli": [2, 12, 16], "real": [2, 4, 7, 8, 12], "real_ident": [6, 7], "realiz": 6, "realli": [1, 4, 6], "reap": 16, "reason": [2, 5, 6, 7, 14, 15], "reassembl": 0, "rebuild": 6, "rebuilt": 6, "rec_id": 7, "recal": 8, "receiv": 6, "recent": [3, 5, 6, 12, 14], "recereiv": 16, "recip": 2, "recogn": [4, 6], "recommend": [1, 5, 6, 12, 16], "record": [7, 12, 13, 14, 15, 16], "record_id": [7, 16], "recov": [6, 12], "recreat": 6, "recurr": 6, "recurs": 8, "recycl": 6, "red": [3, 4, 6, 8, 10, 12], "redefin": 5, "redefinit": 6, "redesign": 0, "redi": 0, "redirect": [4, 5, 12, 13, 14, 16], "reduc": [0, 5, 16], "redund": 6, "ref": [10, 12, 13], "refer": [1, 5, 7, 8, 12, 16], "referenc": [6, 7, 10], "referenced_bi": 7, "reflect": [1, 6], "refresh": 14, "regex": [7, 10, 12], "regexlib": 12, "regist": [0, 5, 6, 8, 13, 15, 16], "register_plugin": 13, "register_task": 16, "register_vue_compon": 16, "registr": [4, 12], "registration_stamp": 12, "regular": [0, 2, 4, 6, 7, 8, 11, 12, 14, 15, 16], "reimplement": 16, "reinstal": 2, "reinstat": 6, "reject": 12, "rel": [4, 6, 8, 14, 15], "relat": [5, 17], "relationship": 6, "releas": [0, 2], "relev": 6, "reli": [0, 4, 6], "reliabl": 1, "reload": [2, 3, 4, 5, 12, 16], "remain": [0, 6, 12], "rememb": [3, 5, 6, 12], "remote_addr": [5, 13], "remov": [0, 2, 4, 6, 10, 12, 13], "renam": [1, 7], "render": [5, 7, 8, 10, 12, 14, 15, 16], "renoir": 8, "reopen": 5, "repackag": 0, "repeat": [6, 12], "replac": [0, 2, 6, 8, 10, 12, 14, 16], "replic": [1, 5], "report": [4, 8], "repositori": [1, 2, 3], "repr_row": 6, "repres": [0, 8, 12, 16], "represent": [10, 16], "representational_state_transf": 7, "representing_field": 12, "request": [0, 1, 2, 5, 6, 7, 12, 13, 14, 15, 16], "request_bodi": 16, "request_reset_password": 13, "requir": [0, 1, 2, 4, 5, 6, 7, 12, 13, 14, 15, 16], "requires_": 15, "requires_login": 15, "requires_membership": [5, 13], "rescu": 6, "reserv": 12, "reset": 6, "reset_password": 13, "resourc": [6, 13, 17], "respect": [6, 10, 12, 14], "respons": [4, 5, 6, 8, 14, 15, 16, 17], "rest": [7, 13], "restapi": [0, 3, 17], "restart": [2, 4, 5, 6, 14], "restor": 6, "restrict": [5, 6, 7, 12, 16], "restructuredtext": 1, "result": [1, 6, 7, 8, 12, 14, 16], "resultset": 6, "ret": 6, "retain": 6, "retri": 6, "retriev": [4, 5, 6, 15, 16], "return": [5, 6, 7, 10, 12, 13, 14, 16], "reus": 6, "revers": [5, 6], "revert": 6, "rewrit": 6, "rewritten": 6, "rfc": 12, "rid": 6, "ride": 8, "right": [1, 2, 3, 5, 6, 8], "road": 16, "robust": 16, "rocket": 15, "rocket3": [2, 15], "rocketserv": 2, "role": [2, 5, 10], "roll": [5, 6], "rollback": [4, 16], "root": [6, 8, 13, 14], "ror": 6, "roughli": 6, "rout": [0, 2, 3, 5, 14, 15, 16], "rover": 6, "row": [8, 10, 12, 14, 15, 16], "rows1": 6, "rows2": 6, "rows3": 6, "rows_list": 6, "rows_per_pag": 14, "rpc": 6, "rst": 1, "rule": [4, 5, 8, 12, 14], "run": [1, 3, 4, 5, 8, 13, 15, 16, 17], "run_in_transact": 6, "runtim": [2, 6], "s3": 6, "s_": [12, 16], "s_autocomplet": 16, "s_autocomplete_result": 16, "s_down_kei": 16, "s_search": 16, "safari": 16, "safe": [1, 5, 6, 10, 14, 15], "safer": [6, 12, 14], "safeti": [2, 16], "sai": [6, 13], "said": 7, "sake": 6, "salt": 12, "sam": 0, "same": [0, 2, 4, 5, 6, 7, 8, 10, 11, 12, 13, 14, 15, 16], "same_sit": 5, "saml": 13, "saml2": 0, "sampl": 13, "sandbox": 16, "sane": 4, "sanit": [5, 10, 12, 15], "santa": 1, "sap": 6, "sapdb": 6, "sapdbadapt": 6, "sass": 4, "sass_compil": 4, "save": [1, 2, 4, 5, 6, 11, 12], "scaffold": [2, 4, 5, 6, 8, 12, 15, 16], "scaffold_zip": 2, "scale": [5, 8], "scan": 6, "scare": 1, "schafer": 1, "schedul": 17, "scheduled_for": 16, "schema": 6, "scheme": 12, "scheuled_for": 16, "school": 13, "scope": 4, "score": 16, "score_input": 16, "scratch": 17, "script": [2, 5, 8, 12, 16], "sdk": 2, "se": [6, 14], "seamlessli": 8, "search": [0, 1, 2, 3, 6, 10, 12, 13, 17], "search_button_text": 14, "search_form": 14, "search_queri": 14, "search_text": 14, "search_valu": 16, "searchabl": 6, "sec": 16, "second": [5, 10, 12, 13, 15], "secret": [5, 13], "section": [2, 4, 6, 8, 12, 13], "secur": [0, 2, 7, 13], "see": [0, 1, 2, 3, 4, 5, 6, 8, 10, 12, 13, 14, 16], "seem": 6, "seen": [0, 5, 6, 7, 10, 12, 13, 14, 16], "segment": 4, "select": [3, 4, 5, 7, 11, 12, 13, 14, 15, 16, 17], "selected_el": 16, "selected_id": 14, "selectedindex": 16, "selector": [10, 16], "selector1": 10, "selector2": 10, "selectorn": 10, "selectwidget": 12, "self": [2, 5, 10, 12, 14, 16], "semant": [12, 13], "send": [2, 6, 12, 13, 17], "send_two_factor_email": 13, "sender": [13, 16], "sendgrid": 16, "sendgrid_api_kei": 16, "sendgridapicli": 16, "sendmail": 16, "sendmail_task": 16, "sens": [0, 6, 12, 13], "sensit": [5, 6, 12], "sent": [5, 6, 13, 16], "separ": [2, 5, 6, 8, 12, 13, 14, 16], "sequenc": [5, 6], "sequenti": 6, "seri": 1, "serial": [4, 5, 6, 8, 10, 12], "serializ": [0, 5, 6, 10], "serv": [0, 2, 4, 6, 13, 15, 16], "server": [0, 2, 3, 4, 7, 8, 13, 15, 16, 17], "server_addr": 6, "serversid": 16, "session": [0, 2, 4, 6, 10, 12, 13, 14, 15, 16, 17], "session_app1": 5, "session_secret_kei": 5, "set": [0, 1, 2, 4, 5, 7, 8, 10, 11, 13, 16], "set_attribut": 6, "set_encod": 6, "set_head": 6, "set_password": 3, "setinterv": 16, "setup": [1, 3, 4, 13, 14, 16, 17], "setvirtualfield": 6, "sever": 6, "sf": 16, "sftp": 6, "sg": 16, "sh": 16, "sha512": [8, 12], "share": [6, 15], "shell": 10, "ship": 8, "shoe": 6, "shop": 5, "short": [12, 16], "shortcut": [8, 12], "shorter": [6, 12], "shortli": 4, "should": [1, 2, 4, 5, 6, 7, 8, 10, 12, 13, 14, 15, 16], "show": [1, 2, 4, 5, 6, 8, 12, 13, 14], "show_id": 14, "showcas": 6, "shown": [2, 6, 12, 13], "shutil": 6, "side": [1, 6, 16, 17], "sidebar": 8, "sidebar_en": 8, "sidebar_menu": 10, "sidecar": 16, "sign": [2, 4, 5, 6, 8, 12, 13], "signatur": [5, 7, 10, 12, 16], "signed_url": 5, "signer": 5, "signifi": 8, "signific": 8, "signing_info": 12, "similar": [0, 4, 5, 6, 10, 12, 15], "similarli": [6, 10], "simpl": [1, 2, 4, 5, 6, 7, 8, 10, 12, 13, 14, 16, 17], "simple_queri": 16, "simpler": [6, 8, 14], "simplest": [2, 4], "simpli": [2, 4, 5, 6, 8, 11, 12, 16], "simplic": [6, 16], "simplifi": [0, 4, 6, 8], "simultan": 6, "sinc": [0, 4, 5, 6, 7, 8, 13, 14, 15], "singl": [0, 2, 5, 6, 7, 8, 10, 12, 13, 14], "singleton": [5, 15], "site": [1, 2, 4, 5, 6, 10, 14, 16], "situat": 6, "six": 6, "size": [5, 6, 8, 12], "skip": [5, 16], "slash": [1, 4, 5, 13], "slave": 6, "sleep": 16, "sleep_tim": 16, "slice": 6, "slicker": 0, "slow": [6, 16], "slug": 12, "sm": 16, "small": [5, 12], "smaller": 6, "smtplib": 16, "snippet": 6, "so": [2, 5, 6, 8, 10, 12, 13, 14, 15, 16], "soap": 10, "socket": 16, "solut": [0, 1, 2, 6, 16], "some": [0, 1, 2, 4, 5, 6, 7, 8, 10, 12, 13, 15, 16], "some_condit": 8, "some_form": 12, "some_valu": 6, "somefield": 6, "somefil": 6, "somepath": 5, "somet": 6, "someth": [5, 6, 7, 8, 10, 12, 14, 16], "sometim": [5, 6, 8, 10, 12, 14], "somevalu": 6, "somewhat": 12, "somewher": [5, 6], "soon": [8, 16], "sophist": 15, "sort": 14, "sourc": [3, 4, 6, 12, 16], "source1": 12, "south": 1, "sp": 6, "space": [6, 8, 12, 14], "span": [4, 15], "spatialit": 6, "speak": 5, "special": [0, 4, 5, 6, 8, 10, 11, 13, 15, 17], "specif": [1, 2, 5, 6, 7, 8, 10, 12, 13, 15, 16], "specifi": [2, 4, 5, 6, 7, 8, 10, 12, 13, 14, 15, 16], "speed": [6, 7, 8], "sphinx": 1, "spiderman": [7, 14], "spin": [0, 4], "spirit": 7, "split": [6, 7, 8, 12], "split_email": 12, "sql": 17, "sql_mode": 6, "sqladapt": 6, "sqlcustomtyp": 6, "sqlform": [0, 12, 15], "sqlite": [1, 5, 7, 13, 14, 16], "sqlite3": 6, "sqliteadapt": 6, "squar": [0, 8], "src": [5, 6, 8, 10, 12, 16], "ss": 12, "ssl": 2, "ssl_cert": 2, "ssl_kei": 2, "sslcert": 6, "sslkei": 6, "sslmode": 6, "sslrootcert": 6, "sso_id": [5, 13], "stabl": 2, "stai": 6, "stand": [7, 10, 12], "standard": [1, 2, 3, 6, 7, 13, 14, 15, 16, 17], "start": [0, 1, 2, 3, 4, 5, 6, 8, 10, 12, 13, 14, 15, 16], "start_imperson": 13, "startup": [6, 15, 17], "state": [5, 6, 7, 15, 16], "stateless": [5, 16], "statement": [6, 8, 12], "static": [1, 8, 10, 15, 17], "static_dev": 4, "statu": [7, 16], "status_cod": 16, "stderr": [2, 16], "stdout": [2, 16], "steil": [0, 1, 14], "step": [2, 6, 13, 15, 16], "step1": 5, "step2": 5, "step3": 5, "step_complet": 5, "still": [2, 5, 6, 10, 12, 14, 15], "stone": 14, "stop": [2, 3, 13], "stop_imperson": 13, "storag": [5, 6, 7, 14], "store": [0, 2, 5, 6, 10, 12, 13, 15, 16], "stored_item": 6, "stored_item_arch": 6, "stori": [0, 5], "str": [2, 5, 6, 10, 12, 15, 16], "stream": [4, 5, 6, 15], "strength": 7, "strict": 12, "strictli": [4, 6, 16], "string": [4, 5, 7, 8, 10, 11, 12, 14], "stringio": 6, "stringlistproperti": 6, "strip": [2, 12, 15], "strong": [0, 10, 13], "strongli": [1, 5, 12, 14], "structur": [1, 4, 5, 6, 11, 13, 14, 15, 16, 17], "stuck": 2, "student": 2, "studi": 1, "studio": 1, "stuff": [12, 14], "style": [4, 8, 12, 16, 17], "stylesheet": [8, 14], "sub": 6, "subclass": [6, 12], "subfold": [4, 5, 6], "subhead": 10, "subject": [6, 7, 13, 16], "submiss": [12, 16], "submit": [1, 5, 6, 10, 12, 13, 14, 16], "submodul": 0, "subnet": 12, "subqueri": 16, "subsect": 6, "subset": [0, 6, 12], "substitut": [6, 8], "substr": 12, "subtl": 6, "succe": 6, "succeed": 0, "success": [0, 4, 5, 6, 7, 13, 16], "successfulli": 13, "sudo": [2, 13], "suffer": [0, 13], "suffic": 6, "suffici": 6, "sugar": 5, "suggest": [1, 6, 12], "sugizo": 0, "suit": 2, "summar": 6, "superhero": [6, 7, 12, 14, 16], "superman": [6, 7, 12, 14], "superpow": [6, 7], "superseed": 6, "suppli": 10, "support": [1, 4, 5, 8, 10, 11, 12, 13, 14, 15, 16, 17], "suppos": 6, "suppress": [2, 10], "sure": [2, 3, 4, 5, 6, 11, 12, 13, 16], "surround": 12, "susan": 6, "sv": 6, "switch": [2, 5, 6], "sybas": 6, "sybaseadapt": 6, "symbol": 12, "symlink": [2, 4], "sync": [2, 6], "synopsi": 12, "syntact": [5, 12], "syntax": [0, 1, 4, 5, 6, 7, 10, 12, 13, 15, 16, 17], "system": [0, 2, 5, 6, 10, 13, 16], "sysus": 6, "t": [0, 1, 2, 3, 4, 5, 6, 8, 10, 11, 12, 13, 14, 15], "t_folder": 5, "tab": [3, 5, 12], "tabl": [5, 7, 12, 13, 14, 15, 16], "table1": 6, "table_hash": 6, "table_nam": 6, "tablenam": [6, 7, 12, 16], "tag": [0, 5, 7, 8, 15, 16, 17], "tag_input": 16, "tagged_db": 13, "tagger": 10, "tags_input": 16, "tail": 6, "tail_nam": 13, "take": [2, 3, 4, 5, 6, 8, 10, 12, 13, 14, 16], "taken": 12, "tamper": [5, 6], "tanti": 16, "tantissimi": 11, "tap": 16, "tar": 12, "target": [6, 10, 16], "task": [1, 5, 6, 13, 17], "task_run": 16, "tast": 6, "tbodi": 6, "tcp": 3, "td": 6, "teacher": 13, "technic": 16, "tell": [2, 4, 5, 6, 13, 14, 16], "temp": 6, "templat": [0, 10, 12, 13, 15, 16, 17], "temporari": 6, "temporarili": 5, "ten": 12, "tenanc": 6, "teradata": 6, "teradataadapt": 6, "teredo": 12, "term": [6, 12], "termin": [4, 8, 16], "test": [0, 2, 4, 6, 8, 10, 12, 13, 14], "text": [2, 5, 6, 8, 10, 14, 16], "textarea": 12, "textareawidget": 12, "textual": 10, "th": 6, "than": [0, 2, 4, 5, 6, 7, 8, 10, 12, 13, 14, 16], "thank": [0, 6, 10], "that_templ": 8, "thead": 6, "thei": [0, 2, 4, 5, 6, 7, 8, 12, 13, 15, 16], "them": [0, 1, 2, 4, 5, 6, 7, 8, 12, 13, 14, 15, 16], "themselv": [6, 8], "therefor": [2, 4, 5, 6, 8, 10, 12, 15], "therein": 6, "thi": [0, 2, 3, 4, 5, 6, 7, 8, 10, 12, 13, 14, 15, 16], "thing": [2, 5, 6, 12, 14, 15], "thing_id": 12, "thing_tags_default": 6, "think": [5, 6, 8, 14, 16], "third": [0, 5, 6, 12], "this_templ": 8, "thisisatest": 10, "thisisthekei": 12, "those": [0, 2, 5, 6, 8, 10, 13, 15, 16], "though": 8, "thought": [0, 6, 13], "thread": [2, 5, 6, 15, 16], "threadsafevari": 5, "three": [0, 5, 6], "through": [2, 12], "throughout": 5, "thu": [6, 8], "thumbnail": 12, "ti": 5, "ticket": [0, 3, 6], "tickets_onli": 2, "tild": 6, "tim": 6, "time": [0, 2, 4, 5, 8, 14, 15, 16], "timedelta": 12, "timeoffset": 10, "timeout": [5, 16], "timestamp": [5, 7, 16], "tip": [2, 14, 17], "titl": [3, 8, 12, 16], "tmp": [5, 6], "to_addr": 16, "todai": [0, 12, 16], "todeclar": 5, "todo": 16, "togeth": [0, 6, 8, 11, 14], "toi": 6, "token": [5, 12], "too": [2, 5, 6, 12, 16], "took": 6, "tool": [0, 6, 13, 16], "top": [8, 11, 12, 13], "topic": [14, 17], "tornado": 2, "total": [6, 7], "total_pric": 6, "touch": 8, "tr": 6, "traceback": [5, 6], "track": [1, 6, 15], "trade": 6, "tradit": [2, 6], "trail": [2, 12], "train": 1, "transact": [5, 16], "transform": [5, 6, 12, 16], "transit": 16, "translat": [1, 2, 4, 6, 8, 12, 15, 16, 17], "transpar": [6, 8, 12], "trap": 16, "treat": [6, 15], "tree": [4, 8, 12], "tri": [0, 6, 15], "trick": 2, "trickeri": 8, "trigger": [3, 5, 6, 16], "trivial": [5, 6], "true": [1, 5, 6, 7, 8, 10, 12, 13, 14, 15, 16], "truncat": 6, "truth": 16, "try": [1, 2, 5, 6, 12, 13, 16], "ttl": 5, "tupl": [6, 8, 10], "turn": [0, 4, 6, 12, 13, 14, 16], "tutori": [2, 14, 16], "twice": [5, 6], "twilio": 16, "twitter": [0, 5, 13], "two": [0, 1, 2, 4, 5, 6, 8, 12, 14, 15, 16], "two_factor": 13, "two_factor_filt": 13, "txt": [0, 2, 4, 6], "type": [2, 4, 5, 7, 8, 10, 13, 14, 16], "typewrit": 10, "typic": [4, 5, 6, 8, 12], "u": [2, 6, 10, 12], "ubuntu": 13, "uc": 1, "ui": 5, "uid": 6, "ul": [8, 12, 13, 16], "un": [8, 10, 11, 16], "unari": 6, "unauthent": [5, 6, 10], "unauthor": 6, "unchang": [6, 12], "undefin": 5, "under": [2, 3, 4, 5, 6, 12], "underli": 15, "underscor": [6, 10, 12], "understand": [0, 1, 4, 6, 7, 8, 14, 17], "undocu": 16, "unfortun": [6, 14], "unicod": [6, 12], "unicodedecodeerror": 6, "uniform": 6, "union": 6, "uniqu": [6, 7, 12], "unit_pric": 6, "univers": [6, 10], "unknown": 4, "unless": [2, 3, 5, 6, 8, 12, 16], "unlik": [0, 2, 4, 6, 7, 8, 15, 16], "unnam": [6, 10], "unned": 2, "unord": 10, "unpkg": 16, "unquot": [6, 10], "unsaf": [5, 10, 12], "untest": [2, 13], "until": [0, 5, 6, 8, 12], "unus": 6, "unusu": 6, "unwant": [2, 6], "unzip": 2, "up": [1, 2, 5, 6, 8, 13, 16], "updat": [2, 5, 12, 14, 15, 16, 17], "update_form": 12, "update_languag": 11, "update_na": 6, "update_th": 12, "upgrad": [6, 17], "upload": [0, 4, 15], "upload_fold": [6, 12], "upload_help": 16, "uploadf": 6, "uploadfield": 6, "uploadfold": 6, "uploadsepar": 6, "upon": [2, 8, 13, 15], "upper": [4, 5, 12], "upper_cas": 5, "uppercas": [5, 12], "uri": 13, "url": [2, 4, 5, 7, 8, 12, 13, 14, 15, 16], "url_prefix": 2, "url_sign": 5, "url_to_post_to": 16, "urlsign": 17, "us": [0, 1, 3, 4, 7, 11, 12, 15, 17], "usabl": 14, "usag": [2, 3, 4, 5, 6, 10, 12, 13, 14], "use_schedul": 16, "useful": 12, "useless": [12, 15], "user": [0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 12, 14, 15, 16], "user_email": 15, "user_id": [5, 6, 13, 15], "user_nam": 6, "user_outside_network": 13, "user_password": 6, "user_token": 6, "usernam": [5, 6, 13], "usr": 1, "usual": [1, 2, 5, 6, 7, 8, 10, 12], "utcnow": [5, 6], "utf": 6, "utf8": 6, "utf8mb4": 6, "util": [2, 4, 5, 8, 10, 12, 13, 14, 15, 17], "uuid": [5, 6], "uuid4": [5, 6], "v": [5, 10, 12, 16], "v3": 1, "val": [14, 16], "val1_row1": 6, "val1_row2": 6, "val2_row1": 6, "val2_row2": 6, "valid": [2, 4, 7, 8, 10, 14, 15, 17], "validate_j": 4, "valq7711": [0, 4], "valu": [2, 5, 7, 8, 10, 11, 12, 13, 14, 16], "valuabl": 1, "value1": 6, "value2": 6, "value_field": 12, "var": [6, 10, 12, 15, 16], "varchar": 6, "variabl": [4, 5, 6, 10, 11, 12, 14, 16], "variou": [5, 6], "ve": [1, 2, 3, 5, 8, 10, 12, 13, 14, 16], "vehicl": 5, "vendor": 16, "vendor_typ": 16, "venv": 2, "verbos": 6, "veri": [0, 4, 5, 6, 8, 10, 12, 13, 15, 16], "verif": 13, "verifi": [5, 12, 13, 16], "verify_email": 13, "versa": 5, "version": [1, 3, 5, 7, 8, 12, 16], "vertica": 6, "verticaadapt": 6, "via": [5, 6, 8, 10, 13, 16], "vice": 5, "video": [2, 16], "view": [1, 5, 6], "viewport": 8, "virtual": [1, 17], "virtualenv": [1, 2], "virtualfield": 6, "visibl": 4, "visit": [3, 5, 6, 8, 12, 13], "visit_log": 5, "visitor": [6, 10, 12], "visto": 5, "visual": 1, "vital": 13, "volt": 5, "vscode": 2, "vue": [0, 4, 16], "vulner": 8, "w": [2, 4, 5, 6], "w2p_even": 6, "w2p_odd": 6, "wa": [0, 5, 6, 12, 13, 14], "wai": [0, 2, 3, 4, 5, 6, 8, 10, 12, 13, 14, 15, 16], "wait": 6, "waitress": 2, "want": [2, 4, 5, 6, 8, 10, 12, 14, 16], "warn": [2, 5], "warp": 11, "watch": [2, 3, 17], "wayn": [7, 14], "wb": 6, "we": [0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 12, 13, 14, 15, 16], "web": [0, 1, 2, 5, 6, 8, 13, 14, 15, 16, 17], "web2pi": [0, 1, 2, 3, 4, 6, 12, 13, 14, 17], "webserv": 4, "websit": [6, 16], "websocket": 16, "welcom": [2, 4, 5, 8, 15, 16], "well": [0, 5, 6, 8, 12, 13, 16], "were": [0, 4, 6], "what": [1, 4, 5, 6, 8, 12, 13, 15, 16, 17], "whatev": [10, 16], "when": [0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 12, 13, 14, 15, 16], "whenev": [4, 6], "where": [1, 2, 4, 6, 7, 8, 12, 13, 15, 16], "whether": [5, 6, 8, 12, 13, 14, 15], "which": [0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 12, 13, 14, 15, 16], "whichev": 16, "while": [0, 5, 6, 7, 12, 13, 14, 15], "white": [10, 16], "whitelist": 13, "who": [0, 13], "whole": [4, 12], "whose": [6, 8, 12], "why": [5, 6, 8, 15], "widget": [6, 17], "width": [8, 12], "wiki": [6, 7], "wikipedia": [6, 7], "wild": 6, "wildcard": 4, "william": 6, "window": [1, 2, 4, 5, 6, 8, 12], "wish": [1, 6, 12, 16], "wit": 2, "with_alia": 6, "within": [0, 1, 4, 5, 6, 8, 10, 12, 14, 16], "without": [1, 8, 10, 14, 16, 17], "wolf": 0, "won": 6, "wood": 6, "word": [5, 6, 11, 14], "work": [0, 2, 4, 5, 6, 8, 10, 12, 13, 14, 15, 16], "worker": [2, 5, 16], "workflow": [5, 17], "workload": 6, "workspacefold": 2, "world": [4, 5, 6, 8, 10, 12, 16], "worri": [4, 6], "worth": 8, "would": [0, 5, 6, 8, 10, 12, 14, 16], "wouldn": 6, "wrap": [5, 11, 12, 14, 16], "wrapper": [15, 16], "writabl": [5, 6, 12, 15], "write": [2, 4, 5, 6, 8, 12, 15], "written": [1, 8, 12, 14], "wrong": [0, 5, 6], "wsgi": 5, "wsgiref": 2, "wsgirefthreadingserv": 2, "wsgith": 2, "www": [2, 8, 10, 14, 16], "x": [2, 6, 8, 10, 12, 14, 16], "xml": [5, 8, 12, 15, 16], "xmlescap": 10, "xmln": 10, "xss": [6, 8, 10], "xyz": [10, 12], "y": [2, 10, 12], "yaml": 2, "yatl": [0, 4, 5, 6, 12, 14, 16, 17], "yb": 10, "ye": [2, 6, 16], "year": [12, 16], "yes_or_no": 6, "yet": [0, 2, 4, 5, 6, 8, 12, 16], "yield": 6, "yml": 2, "you": [0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 12, 13, 14, 15, 16], "your": [1, 2, 3, 4, 5, 6, 8, 10, 12, 13, 14, 15, 16], "your_app": 12, "your_full_path_to_py4web": 1, "your_nam": [1, 16], "yourapp": 6, "yourappnam": 2, "youremail": 13, "yourself": [1, 2, 12, 14], "youtub": [2, 6], "yyyi": 12, "z": [10, 12], "zanferrari": 0, "zap": 13, "zap_id": 13, "zapper": 13, "zero": [6, 8, 12, 14], "zip": [0, 2, 6, 12], "zip_cod": 16, "zxjdbc": 6}, "titles": ["What is py4web?", "Help, resources and hints", "Installation and Startup", "The Dashboard", "Creating an app", "Fixtures", "The Database Abstraction Layer (DAL)", "The RestAPI", "YATL Template Language", "<no title>", "YATL helpers", "Internationalization", "Forms", "Authentication and authorization", "Grid", "From web2py to py4web", "Advanced topics and examples", "py4web: the reference Manual"], "titleterms": {"A": [1, 10, 12], "On": 4, "One": 6, "The": [1, 3, 4, 5, 6, 7, 12, 14, 16], "_lastsql": 6, "_scaffold": 4, "about": [5, 6], "abstract": 6, "access": 15, "acknowledg": 0, "action": [7, 13, 14], "ad": 6, "adapt": 6, "advanc": [6, 12, 16], "aka": 2, "alias": 6, "all": 6, "alon": 6, "an": [4, 6], "anoth": 6, "any_of": 12, "anywher": 5, "app": [2, 4, 6], "applic": 6, "arg": 15, "as_dict": 6, "as_list": 6, "asyncio": 16, "attempt": 6, "attribut": 6, "auth": [5, 13, 15], "authent": 13, "author": 13, "autocomplet": 16, "avg": 6, "background": 16, "base": 6, "basic": [8, 12, 14], "beautifi": 10, "belong": 6, "binari": 2, "block": 8, "bodi": 10, "broken": 6, "built": 10, "button": 14, "cach": [5, 6], "cacheabl": 6, "call": [2, 15], "callabl": 14, "callback": 6, "cascad": 6, "case": 6, "cat": 10, "caveat": 5, "celeri": 16, "chang": 4, "checkbox": [12, 14], "children": 10, "class": 14, "cleanup": 12, "client": 5, "coalesc": 6, "coalesce_zero": 6, "column": 14, "com": 2, "combin": 6, "command": [2, 6], "commit": 6, "common": 6, "complex": 12, "comput": 6, "condit": 5, "connect": 6, "constructor": [6, 12], "contain": 6, "content": 17, "contribut": 1, "control": 6, "conveni": 5, "convers": 15, "cooki": 5, "copi": [4, 6], "count": 6, "counter": 15, "creat": 4, "crud": 14, "crypt": 12, "csv": 6, "custom": [5, 6, 10, 12, 14], "dai": 6, "dal": [5, 6], "dashboard": [3, 6], "data": 6, "databas": [5, 6, 12], "datastor": 6, "date": 12, "db": 6, "debug": 1, "decor": 5, "def": 8, "default": [6, 8], "defin": 6, "define_t": 6, "delet": 6, "deploy": 2, "design": [2, 12], "develop": 8, "dictionari": [6, 12], "discord": [1, 13], "distinct": 6, "distribut": 6, "div": 10, "docker": 2, "dom": 10, "drop": 6, "dynam": 4, "elif": 8, "els": 8, "em": 10, "endswith": 6, "engin": 2, "environ": 2, "equal": 12, "exampl": [7, 12, 14, 15, 16], "except": 8, "exclud": 6, "executesql": 6, "experi": 6, "experiment": 6, "export": 6, "express": 6, "extend": 8, "facebook": 13, "factor": 13, "failur": 6, "fake_migr": 6, "featur": [6, 14], "fetch": 6, "field": [6, 12, 14], "file": [4, 11, 12, 15], "filter": [6, 14], "filter_in": 6, "filter_out": 6, "final": 8, "find": [6, 10], "first": [2, 6], "fix": 6, "fixtur": 5, "flash": [5, 15], "folder": 6, "form": [10, 12, 15, 16], "format": [6, 12, 16], "from": [2, 4, 6, 15], "function": [8, 12], "gae": 2, "gcloud": 2, "gener": 6, "get": 7, "github": 1, "global": 2, "googl": [1, 2, 6, 13], "gotcha": 6, "grid": [14, 15, 16], "group": [1, 6], "groupbi": 6, "h1": 10, "h2": 10, "h3": 10, "h4": 10, "h5": 10, "h6": 10, "have": 6, "head": 10, "hello": 15, "help": 1, "helper": 10, "hint": 1, "hour": 6, "how": 1, "html": [6, 10], "htmx": 16, "http": 2, "i": [0, 10], "id": 6, "ilik": 6, "img": 10, "imperson": 13, "import": 6, "includ": 8, "index": 6, "indic": 17, "inform": 8, "inherit": 6, "inject": [5, 10], "inner": 6, "input": 10, "insert": 6, "insid": 13, "instal": 2, "internation": 11, "introduct": 6, "is_alphanumer": 12, "is_dat": 12, "is_date_in_rang": 12, "is_datetim": 12, "is_datetime_in_rang": 12, "is_decimal_in_rang": 12, "is_email": 12, "is_empty_or": 12, "is_equal_to": 12, "is_expr": 12, "is_fil": 12, "is_float_in_rang": 12, "is_imag": 12, "is_in_db": 12, "is_in_set": 12, "is_int_in_rang": 12, "is_ipaddress": 12, "is_ipv4": 12, "is_ipv6": 12, "is_json": 12, "is_length": 12, "is_list_of": 12, "is_list_of_email": 12, "is_low": 12, "is_match": 12, "is_not_empti": 12, "is_not_in_db": 12, "is_null_or": 12, "is_saf": 12, "is_slug": 12, "is_strong": 12, "is_tim": 12, "is_upload_filenam": 12, "is_upp": 12, "is_url": 12, "isempti": 6, "iter": 6, "j": 16, "join": 6, "kei": [6, 14], "keyword": 6, "label": 10, "languag": 8, "last": 6, "layer": 6, "layout": 8, "lazi": 6, "ldap": 13, "left": 6, "legaci": 6, "len": 6, "less": 6, "li": 10, "like": 6, "limitbi": 6, "line": 2, "list": 6, "local": 2, "locat": 6, "logic": 6, "login": 3, "lower": 6, "main": 3, "make": 6, "mani": 6, "manipul": 12, "manual": [1, 17], "max": 6, "memcach": 5, "memoiz": 5, "memori": 6, "messag": 16, "method": [6, 15], "microsoft": 6, "migrat": 6, "min": 6, "minim": 12, "minut": 6, "mobil": 8, "model": 6, "modern": 1, "modif": 6, "month": 6, "more": 6, "mssql": 6, "multipl": [5, 13], "mysql": 6, "name": 6, "new": 6, "new_app": 2, "nosql": 6, "note": 6, "o": 15, "oauth2": 13, "object": [4, 13, 14, 16], "ol": 10, "old": 6, "on_defin": 6, "onc": 6, "one": 6, "oper": 6, "option": [2, 10, 12], "oracl": 6, "orderbi": 6, "orderby_on_limitbi": 6, "other": [6, 12], "outer": 6, "overview": 10, "p": 10, "page": [3, 4, 8], "pam": 13, "paramet": [6, 12, 14], "permiss": 13, "pip": 2, "platform": 2, "plugin": 13, "plural": [6, 11], "podman": 2, "polici": 7, "polymodel": 6, "pool": 6, "practic": 7, "pre": 10, "prerequisit": [1, 2], "primari": 6, "primarykei": 6, "procedur": 2, "py4web": [0, 1, 6, 15, 16, 17], "pycharm": 1, "python": 1, "pythonanywher": 2, "q": 16, "queri": 6, "quick": 6, "quot": 6, "rang": 12, "raw": 6, "real": 6, "record": 6, "recurs": 6, "redefin": 6, "redi": 5, "redirect": 15, "refer": [6, 14, 17], "regexp": 6, "relat": 6, "remot": 6, "render": 6, "replic": 6, "repres": 6, "represent": 6, "request": 4, "reserv": 6, "resourc": 1, "respons": 7, "restapi": 7, "return": [4, 8, 15], "rname": 6, "rollback": 6, "rout": 4, "row": 6, "run": [2, 6], "sampl": 14, "schedul": 16, "scratch": 4, "script": 10, "search": 14, "second": 6, "secur": [6, 12], "select": [6, 10], "self": 6, "send": 16, "sequence_nam": 6, "server": [1, 5, 6, 10], "session": 5, "set": [6, 12, 14, 15], "set_password": 2, "setup": 2, "share": 5, "shell": [2, 6], "shortcut": 6, "side": [5, 10], "sidecar": 12, "signatur": 6, "simpl": 15, "singular": 6, "sort": [6, 12], "sourc": [1, 2], "span": 10, "special": [2, 12], "sql": 6, "sqlite": 6, "stand": 6, "standard": [8, 12], "startswith": 6, "startup": 2, "static": 4, "string": [6, 16], "structur": [8, 12], "style": [6, 10, 14], "substr": 6, "sum": 6, "summari": 6, "super": 8, "support": [2, 6], "synchron": 6, "syntax": 8, "t": 16, "tabl": [6, 10, 17], "table_class": 6, "tag": [6, 10, 12, 13], "task": 16, "tbodi": 10, "td": 10, "templat": [4, 5, 8, 14], "text": 12, "textarea": 10, "th": 10, "thead": 10, "thi": 1, "time": [6, 12], "tip": 1, "titl": 10, "topic": 16, "tour": 6, "tr": 10, "transact": 6, "translat": [5, 11], "trigger_nam": 6, "try": 8, "tt": 10, "tupl": 12, "tutori": 1, "two": 13, "two_factor_requir": 13, "two_factor_send": 13, "two_factor_tri": 13, "type": [6, 12], "ubuntu": 2, "ui": 13, "ul": 10, "understand": 2, "up": 15, "updat": [6, 11], "update_or_insert": 6, "update_record": 6, "upgrad": 2, "upload": [6, 12], "upper": 6, "uri": 6, "url": 10, "urlsign": 5, "us": [2, 5, 6, 8, 10, 13, 14, 16], "usag": 16, "user": 13, "util": 16, "valid": [6, 12], "validate_and_insert": 6, "validate_and_upd": 6, "valu": [4, 6], "variabl": [8, 15], "version": [2, 6], "video": 1, "view": 15, "virtual": [2, 6], "vscode": 1, "watch": 4, "web": [3, 4], "web2pi": 15, "what": 0, "while": 8, "widget": [12, 16], "without": [2, 6, 12], "workflow": 8, "workplac": 1, "world": 15, "wsgi": 2, "xml": [6, 10], "yatl": [8, 10], "year": 6}}) \ No newline at end of file diff --git a/apps/_documentation/static/pt/.buildinfo b/apps/_documentation/static/pt/.buildinfo index 0ee6782e1..9535efd4e 100644 --- a/apps/_documentation/static/pt/.buildinfo +++ b/apps/_documentation/static/pt/.buildinfo @@ -1,4 +1,4 @@ # Sphinx build info version 1 # This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done. -config: d2bde93e954cf6ead55363cc5873de58 +config: 06da5036d60ceff9836218aa2c9dac61 tags: 645f666f9bcd5a90fca523b33c5a78b7 diff --git a/apps/_documentation/static/pt/_images/first_run.png b/apps/_documentation/static/pt/_images/first_run.png index 59320040c3446c4d150c43530ba8538181412322..a670f0150cfc926381758be98c43a9645118de4a 100644 GIT binary patch literal 71622 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

              MMXPa)i4{=@dWHlL>V6ak4YNn5u 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 lmV<7HgcM5m|M%r3;df2c5Yp - O que é py4web? — Documentação py4web 1.20240530.2 + O que é py4web? — Documentação py4web 20240630 @@ -18,7 +18,7 @@ - + @@ -43,7 +43,7 @@

              - 1.20240530.2 + 20240630
              @@ -233,7 +233,7 @@

              Acknowledgments - v: 1.20240530.2 + v: 20240630
              diff --git a/apps/_documentation/static/pt/chapter-02.html b/apps/_documentation/static/pt/chapter-02.html index c047a0e01..b7fe3a247 100644 --- a/apps/_documentation/static/pt/chapter-02.html +++ b/apps/_documentation/static/pt/chapter-02.html @@ -4,7 +4,7 @@ - Ajuda, recursos e dicas — Documentação py4web 1.20240530.2 + Ajuda, recursos e dicas — Documentação py4web 20240630 @@ -18,7 +18,7 @@ - + @@ -43,7 +43,7 @@
              - 1.20240530.2 + 20240630
              @@ -267,7 +267,7 @@

              Como contribuir - v: 1.20240530.2 + v: 20240630
              diff --git a/apps/_documentation/static/pt/chapter-03.html b/apps/_documentation/static/pt/chapter-03.html index fb5ec0abb..cdb99d708 100644 --- a/apps/_documentation/static/pt/chapter-03.html +++ b/apps/_documentation/static/pt/chapter-03.html @@ -4,7 +4,7 @@ - Instalação e colocação em funcionamento — Documentação py4web 1.20240530.2 + Instalação e colocação em funcionamento — Documentação py4web 20240630 @@ -18,7 +18,7 @@ - + @@ -44,7 +44,7 @@
              - 1.20240530.2 + 20240630
              @@ -300,7 +300,7 @@

              Melhoramento

              Aviso

              Isto não irá atualizar automaticamente os aplicativos padrão, como o Dashboard ** ** e padrão ** **. Você tem que remover manualmente esses aplicativos e execute

              -
              py4web setup apps
              +
              py4web setup <path to apps_folder>
               

              a fim de re-instalá-los. Esta é uma precaução de segurança, no caso de você fez alterações para esses aplicativos.

              @@ -327,7 +327,8 @@

              Primeira corridaNota

              Alguns aplicativos - como o Dashboard ** ** e padrão ** ** - têm um papel especial na py4web e, portanto, seus começos nome real com `` _`` para evitar conflitos com aplicativos criados por você.

              -

              Uma vez py4web está sendo executado você pode acessar um aplicativo específico nas seguintes URLs:

              +

              Once py4web is running you can access a specific app at the following +urls from the local machine:

              http://localhost:8000
               http://localhost:8000/_dashboard
               http://localhost:8000/{yourappname}/index
              @@ -402,7 +403,7 @@ 

              Opções de linha de comandoapp_names option lets you filter which specific apps you want to serve (comma separated). If absent or empty all the apps in the APPS_FOLDER will be run.

              +

              By default (for security reasons) the py4web framework will listen only on 127.0.0.1, i.e. localhost. +If you need to reach it from other machines you must specify the host option, +like py4web run --host 0.0.0.0 apps.

              The url_prefix option is useful for routing at the py4web level. It allows mapping to multiple versions of py4web running on different ports as long as the url_prefix and port match the location. For example py4web run --url_prefix=/abracadabra --port 8000 apps.

              @@ -691,7 +695,7 @@

              Deployment on Ubuntu - v: 1.20240530.2 + v: 20240630
              diff --git a/apps/_documentation/static/pt/chapter-04.html b/apps/_documentation/static/pt/chapter-04.html index cd5314ab7..3ecf58183 100644 --- a/apps/_documentation/static/pt/chapter-04.html +++ b/apps/_documentation/static/pt/chapter-04.html @@ -4,7 +4,7 @@ - O Dashboard — Documentação py4web 1.20240530.2 + O Dashboard — Documentação py4web 20240630 @@ -18,7 +18,7 @@ - + @@ -43,7 +43,7 @@
              - 1.20240530.2 + 20240630
              @@ -190,7 +190,7 @@

              Sessão no Dashboard - v: 1.20240530.2 + v: 20240630
              diff --git a/apps/_documentation/static/pt/chapter-05.html b/apps/_documentation/static/pt/chapter-05.html index 83ae4476c..7786e106c 100644 --- a/apps/_documentation/static/pt/chapter-05.html +++ b/apps/_documentation/static/pt/chapter-05.html @@ -4,7 +4,7 @@ - Creating an app — Documentação py4web 1.20240530.2 + Creating an app — Documentação py4web 20240630 @@ -18,7 +18,7 @@ - + @@ -43,7 +43,7 @@
              - 1.20240530.2 + 20240630
              @@ -447,7 +447,7 @@

              Watch for files change - v: 1.20240530.2 + v: 20240630
              diff --git a/apps/_documentation/static/pt/chapter-06.html b/apps/_documentation/static/pt/chapter-06.html index 695516ca4..4c7a08c0c 100644 --- a/apps/_documentation/static/pt/chapter-06.html +++ b/apps/_documentation/static/pt/chapter-06.html @@ -4,7 +4,7 @@ - Fixures — Documentação py4web 1.20240530.2 + Fixures — Documentação py4web 20240630 @@ -18,7 +18,7 @@ - + @@ -43,7 +43,7 @@
              - 1.20240530.2 + 20240630
              @@ -135,7 +135,11 @@

              Fixures to parse the session cookie from the HTTP header, pick up a connection from the database connection pool, and - after the action has been executed - save the session back in the database if data has changed.

              -

              Fixtures PY4WEB fornecem um mecanismo para especificar o que uma ação necessidades para que py4web pode realizar as tarefas necessárias (e ignorar os não necessários) da maneira mais eficiente. Fixures tornar o código eficiente e reduzir a necessidade de código clichê.

              +

              PY4WEB fixtures provide a mechanism to specify what an action needs so +that py4web can accomplish the required tasks (and skip non required +ones) in the most efficient manner. Fixtures make the code efficient and +reduce the need for boilerplate code. Think of fixtures as per action +(as opposed to per app) middleware.

              Fixtures PY4WEB são semelhantes aos middleware WSGI e BottlePy plug-in, exceto que eles se aplicam a ações individuais, não para todos eles, e pode dependem uns dos outros.

              PY4WEB comes with some pre-defined fixtures: sessions, url signing and flash messages will be fully @@ -226,7 +230,8 @@

              The Template fixtureThe Inject fixture

              The Inject fixture is used for passing variables (and even python functions) to templates. Here is a simple example:

              -
              my_var = "Example variable to be passed to a Template"
              +
              from py4web.utils.factories import Inject
              +my_var = "Example variable to be passed to a Template"
               
               ...
               
              @@ -274,6 +279,22 @@ 

              The Translator fixturereturn str(T("You have been here {n} times").format(n=counter))

              +

              If the T fixture is to be used from inside a template you may want to pass it to the template:

              +
              @action('index')
              +@action.uses("index.html", session, T)
              +def index():
              +    return dict(T=T)
              +
              +
              +

              Or perahps inject (same effect as above)

              +
              from py4web.utils.factories import Inject
              +
              +@action('index')
              +@action.uses("index.html", session, Inject(T=T)
              +def index():
              +    return dict()
              +
              +

              Agora crie o seguinte arquivo de tradução `` traduções / en.json``:

        • O fixture flash

          @@ -439,11 +477,14 @@

          The Session fixture

          By default the session object is stored inside a cookie called appname_session. It’s a JWT, hence encoded in a URL-friendly string -format and signed using the provided secret for preventing tampering. -Notice that it’s not encrypted (in fact it’s quite trivial to read its -content from http communications or from disk), so do not place any -sensitive information inside, and use a complex secret. -If the secret changes existing sessions are invalidated. +format and signed using the provided secret for preventing tampering.

          +
          +

          Aviso

          +

          Data embedded in cookies is signed, not encrypted! In fact it’s quite +trivial to read its content from http communications or from disk, so +do not place any sensitive information inside, and use a complex secret.

          +
          +

          If the secret changes existing sessions are invalidated. If the user switches from HTTP to HTTPS or vice versa, the user session is also invalidated. Session in cookies have a small size limit (4 kbytes after being serialized and encoded) so do @@ -545,7 +586,7 @@

          Sharing sessions

          The Condition fixture

          -

          Some times you want to restrict access to an action based on a +

          Sometimes you want to restrict access to an action based on a given condition. For example to enforce a workflow:

          @action("step1")
           @action.uses(session)
          @@ -583,9 +624,10 @@ 

          The Condition fixture
          Condition(cond, on_false=lambda: redirect(URL('step1')))
           

          -

          You can use condition to check permissions. For example, assuming you are using -Tags as explained in chapter 13 and you are giving group memberships to users, -then you can require that users action have specific group membership:

          +

          You can use condition to check permissions. For example, if you +are giving group memberships to users using Tags (it will be explained +later on the Authorization using Tags chapter), then you can +require that users action have specific group membership:

        +
      • Using the dashboard app with databases
      • Construtor DAL
        • Assinatura da DAL
        • Strings de conexão (o parâmetro uri)
        • @@ -264,7 +265,7 @@

          The Database Abstraction Layer (DAL)

          DAL introduction

          -

          py4web rely on a database abstraction layer (DAL), an API that maps +

          py4web rely on a database abstraction layer (DAL), an API that maps Python objects into database objects such as queries, tables, and records. The DAL dynamically generates the SQL in real time using the specified dialect for the database back end, so that you do not have to @@ -274,6 +275,14 @@

          DAL introductionpyDAL. It was conceived in the web2py project but it’s a standard python module: you can use it in any Python context.

          +
          +

          Nota

          +

          What makes pyDAL different from most of the other DALs is the syntax: it maps +records to python dictionaries, which is simpler and closer to SQL. +Other famous frameworks instead strictly rely on an Object Relational Mapping (ORM) +like the Django ORM or the SQL Alchemy ORM, that maps tables to Python classes +and rows to Objects.

          +

          A little taste of pyDAL features:

          • Transactions

          • @@ -305,7 +314,7 @@

            Supported databases

  • -
    Row

    contains field values.

    +
    Row

    contains field values:

    for row in rows:
         print(row.myfield)
     
    @@ -454,15 +463,17 @@

    Experimentar com o shell py4web>>> are also directly executable via a py4web shell.

    -

    This is a simple example, using the provided examples app:

    -
    >>> from py4web import DAL, Field
    ->>> from apps.examples import db
    +

    This is a simple example, using the provided showcase app:

    +
    >>> from apps.showcase.examples.models import db
     >>> db.tables()
    -['auth_user', 'auth_user_tag_groups', 'person', 'superhero', 'superpower', 'tag', 'product', 'thing']
    +['auth_user', 'auth_user_tag_groups', 'person', 'superhero', 'superpower', 'tag', 'thing', 'user_token', 'dummy']
     >>> rows = db(db.superhero.name != None).select()
     >>> rows.first()
     <Row {'id': 1, 'tag': <Set ("tag"."superhero" = 1)>, 'name': 'Superman', 'real_identity': 1}>
    @@ -473,6 +484,19 @@ 

    Experimentar com o shell py4web +

    Using the dashboard app with databases

    +

    Generally you can use the dashboard app for viewing and modifying the databases +of a particular app. However this is not bulletproof, so for +security reason this by default is not applied to the showcase app. +But if your installation is local (not exposed to public networks), you can enable it +by simply adding to the file``apps/showcase/__init__.py`` the line:

    +
    from .examples.models import db
    +
    +
    +

    This allow you to look graphically inside the showcase application database:

    +_images/example_db.png +

    Construtor DAL

    Uso básico:

    @@ -600,7 +624,11 @@

    Strings de conexão (o parâmetro uri)
  • in SQLite the database consists of a single file. If it does -not exist, it is created. This file is locked every time it is accessed.

  • +not exist, it is created. This file is locked every time it is accessed. +In addition to the file “storage.sqlite” that contains the data, there will +be also a sql.log file plus one additional file called longhash_tablename.table +for every table definition. The table definition files are used during migrations; +in case of problems they could be deleted (they’ll be automatically recreated).

  • in the case of MySQL, PostgreSQL, MSSQL, FireBird, Oracle, DB2, Ingres and Informix the database “test” must be created outside py4web. Once the connection is established, py4web will create, alter, and drop @@ -665,8 +693,8 @@

    Tabelas preguiçosos

    Aplicativos de modelo-less

    -

    In py4web the code defined outside of actions (where normally DAL tables -are defined) is only executed at startup.

    +

    Normally in py4web the code that define DAL tables lives in the file +models.py, hence it’s only executed at startup because it’s outside of actions.

    However, it is possible to define DAL tables on demand inside actions. This is referred to as “model-less” development by the py4web community.

    To use the “model-less” approach, you take responsibility for doing @@ -763,13 +791,20 @@

    Outros parâmetros do construtor DAL

    Local de pasta do banco de dados

    folder sets the place where migration files will be created (see -Migrations for details). -It is also used for SQLite databases. Automatically set within py4web. -Set a path when using DAL outside py4web.

    +Migrations for details). By default it’s automatically set within py4web on the same +folder of the database itself, but you have to specify it when using DAL outside py4web.

    +

    Note that for SQLite databases it’s normally necessary, +otherwise you’ll implictly choose an in memory database (where folder and +migrations don’t have any sense). So these constructors have the same meaning:

    +
    db = DAL('sqlite://storage.sqlite') # folder parameter not specified
    +db = DAL('sqlite:memory')           # in memory database
    +
    +

  • Configurações padrão de migração

    -

    As configurações de migração construtor DAL são booleans que afetam padrões e comportamento global.

    +

    The DAL constructor migration settings are booleans affecting defaults +and global behaviour (again, see Migrations for details)

    `` Migrar = True`` define o comportamento de migração padrão para todas as tabelas

    `` Fake_migrate = False`` define o comportamento fake_migrate padrão para todas as tabelas

    `` Migrate_enabled = True`` se definido como desativa falsas todas as migrações

    @@ -783,7 +818,7 @@

    `` `` commit`` e rollback``

    If you pass db in an action.uses decorator, you don’t need to call -commit in the controller, it is done for you. (Also, if you use +commit in the controller, it is automatically done for you (also, if you use authenticated or unauthenticated decorator.)

    -

    It is internally implemented as a table, which in +

    Tags are hierarchical. Then find([“color”]) would return id1 and id2 +because both records have tags with “color”.

    +

    It is internally implemented with the creation of an additional table, which in this example would be db.thing_tags_default, because no tail was -specified on the Tags(table, tail=“default”) constructor.

    -

    The find method is doing a search by startswith of the -parameter. Then find([“color”]) would return id1 and id2 -because both records have tags starting with “color”. py4web uses tags as a -flexible mechanism to manage permissions.

    +specified on the Tags(table, tail=“default”) constructor.

    +

    py4web uses Tags as a flexible mechanism to manage permissions, we’ll see +all the details later on the Authorization using Tags chapter.

    @@ -1969,7 +2004,7 @@

    juntar-se, deixou

    cache, em cache

    An example use which gives much faster selects is:

    -
    rows = db(query).select(cache=(cache.ram, 3600), cacheable=True)
    +
    rows = db(query).select(cache=(cache.get, 3600), cacheable=True)
     

    Look at Caching selects, to understand what the trade-offs are.

    @@ -2240,10 +2275,15 @@

    `` Find``, `` exclude``, `` sort``

    Selects com cache

    -

    O método de seleção também leva um argumento cache`` , cujo padrão é None. Para fins de armazenamento em cache, deve ser definido como um tuplo em que o primeiro elemento é o modelo do cache ( `` cache.ram, `` cache.disk``, etc), e o segundo elemento é o tempo de validade em segundo .

    +

    The select method also takes a cache argument, which defaults to +None. For caching purposes, it should be set to a tuple where the first +element is the cache function with signature (key, callback, expiration) +(ror example cache.get assuming cache +is an instance of the py4web cache object), and +the second element is the expiration time in seconds.

    No exemplo a seguir, você vê um controlador que armazena em cache um seleto sobre a mesa db.log previamente definido. As buscas reais dados selecionados do banco de dados back-end não mais do que uma vez a cada 60 segundos e armazena o resultado na memória. Se a próxima chamada para este controlador ocorre em menos de 60 segundos desde o último banco de dados IO, ele simplesmente vai buscar os dados anteriores da memória.

    def cache_db_select():
    -    logs = db().select(db.log.ALL, cache=(cache.ram, 60))
    +    logs = db().select(db.log.ALL, cache=(cache.get, 60))
         return dict(logs=logs)
     
    @@ -2253,7 +2293,7 @@

    Selects com cache
    rows = db(query).select(cache=(cache.ram, 3600), cacheable=True)
    +
    rows = db(query).select(cache=(cache.get, 3600), cacheable=True)
     

    @@ -2634,7 +2674,9 @@

    Many to many relationCurt

    -

    Uma alternativa mais leve para muitos-para-muitos relações é a marcação, encontram-se um exemplo disso na próxima seção. Marcação de obras, mesmo em backends de banco de dados que não suportam JOINs como o Google App Engine NoSQL.

    +

    A lighter alternative to many-to-many relations is tagging, see the +Authorization using Tags chapter. Tagging works even on database backends +that do not support JOINs like the Google App Engine NoSQL.

    A auto-referência e aliases

    @@ -3088,7 +3130,7 @@

    HTML e XML (uma tabela de cada vez)`` TAG`` helper +tags, you can easily do that using the universal TAG XML helper that we’ll see later and the Python syntax *<iterable> allowed in function calls:

    >>> rows = db(db.person).select()
    @@ -3102,6 +3144,12 @@ 

    HTML e XML (uma tabela de cada vez)</result>

    +
    +

    Aviso

    +

    Do not confuse the TAG XML helper used here (see the `` TAG`` +chapter) with the Tags method that will be extensively explained +on the Authorization using Tags chapter.

    +

    Representação de dados

    @@ -3827,7 +3875,7 @@

    Google NoSQL (Datastore) - v: 1.20240530.2 + v: 20240630
    diff --git a/apps/_documentation/static/pt/chapter-08.html b/apps/_documentation/static/pt/chapter-08.html index b64110cd4..54a3633af 100644 --- a/apps/_documentation/static/pt/chapter-08.html +++ b/apps/_documentation/static/pt/chapter-08.html @@ -4,7 +4,7 @@ - The RestAPI — Documentação py4web 1.20240530.2 + The RestAPI — Documentação py4web 20240630 @@ -18,7 +18,7 @@ - + @@ -43,7 +43,7 @@
    - 1.20240530.2 + 20240630
    @@ -1169,7 +1169,7 @@

    The RestAPI response - v: 1.20240530.2 + v: 20240630
    diff --git a/apps/_documentation/static/pt/chapter-09.html b/apps/_documentation/static/pt/chapter-09.html index 7a3ebde6b..312471b0e 100644 --- a/apps/_documentation/static/pt/chapter-09.html +++ b/apps/_documentation/static/pt/chapter-09.html @@ -4,7 +4,7 @@ - Linguagem de template YATL — Documentação py4web 1.20240530.2 + Linguagem de template YATL — Documentação py4web 20240630 @@ -18,7 +18,7 @@ - + @@ -43,7 +43,7 @@
    - 1.20240530.2 + 20240630
    @@ -734,7 +734,7 @@

    Mobile development - v: 1.20240530.2 + v: 20240630
    diff --git a/apps/_documentation/static/pt/chapter-10.html b/apps/_documentation/static/pt/chapter-10.html index 7244af72a..f154bc3a0 100644 --- a/apps/_documentation/static/pt/chapter-10.html +++ b/apps/_documentation/static/pt/chapter-10.html @@ -4,7 +4,7 @@ - Helpers YATL — Documentação py4web 1.20240530.2 + Helpers YATL — Documentação py4web 20240630 @@ -18,7 +18,7 @@ - + @@ -43,7 +43,7 @@
    - 1.20240530.2 + 20240630
    @@ -843,7 +843,7 @@

    Using Inject - v: 1.20240530.2 + v: 20240630
    diff --git a/apps/_documentation/static/pt/chapter-11.html b/apps/_documentation/static/pt/chapter-11.html index 7dd6772fa..16fa7b1b6 100644 --- a/apps/_documentation/static/pt/chapter-11.html +++ b/apps/_documentation/static/pt/chapter-11.html @@ -4,7 +4,7 @@ - Internacionalização — Documentação py4web 1.20240530.2 + Internacionalização — Documentação py4web 20240630 @@ -18,7 +18,7 @@ - + @@ -43,7 +43,7 @@
    - 1.20240530.2 + 20240630
    @@ -212,7 +212,7 @@

    Atualizar os arquivos de tradução - v: 1.20240530.2 + v: 20240630
    diff --git a/apps/_documentation/static/pt/chapter-12.html b/apps/_documentation/static/pt/chapter-12.html index a90edd259..6bd7230fe 100644 --- a/apps/_documentation/static/pt/chapter-12.html +++ b/apps/_documentation/static/pt/chapter-12.html @@ -4,7 +4,7 @@ - Forumlários — Documentação py4web 1.20240530.2 + Forumlários — Documentação py4web 20240630 @@ -18,7 +18,7 @@ - + @@ -43,7 +43,7 @@
    - 1.20240530.2 + 20240630
    @@ -189,7 +189,7 @@

    ForumláriosThe Form class provides a high-level API for quickly building CRUD (create, update and delete) forms, especially for working on an existing database table. It can generate and process a form from a list of desired fields and/or from an existing database table.

    -

    There are 3 typs of forms:

    +

    There are 3 types of forms:

    CRUD Create forms:

    @@ -1061,7 +1061,7 @@

    Sorted options

    IS_IN_SET and Tagging

    The IS_IN_SET validator has an optional attribute multiple=False. If set to True, multiple values can be stored in one -field. The field should be of type list:integer or list:string as discussed in [[Chapter 6 ../06#list-type-and-contains]]. +field. The field should be of type list:integer or list:string as discussed in `` Lista: <type> `` e `` contains``. An explicit example of tagging is discussed there. We strongly suggest using the jQuery multiselect plugin to render multiple fields.

    Note that when multiple=True, IS_IN_SET will accept zero or more values, i.e. it will accept the field when nothing has been selected. multiple can also be a tuple of the form (a, b) where a and b are the minimum and (exclusive) maximum number of items @@ -1612,7 +1612,7 @@

    Validation functions - v: 1.20240530.2 + v: 20240630
    diff --git a/apps/_documentation/static/pt/chapter-13.html b/apps/_documentation/static/pt/chapter-13.html index e9f0e75a2..27876932f 100644 --- a/apps/_documentation/static/pt/chapter-13.html +++ b/apps/_documentation/static/pt/chapter-13.html @@ -4,7 +4,7 @@ - Authentication and authorization — Documentação py4web 1.20240530.2 + Authentication and authorization — Documentação py4web 20240630 @@ -18,7 +18,7 @@ - + @@ -43,7 +43,7 @@
    - 1.20240530.2 + 20240630
    @@ -424,7 +424,8 @@

    OAuth2 with Discord

    As already mentioned, authorization is the process of verifying what specific applications, files, and data a user has access to. This is accomplished -in py4web using Tags.

    +in py4web using Tags, that we’ve already discovered on Marcação de registros +in the DAL chapter.

    Etiquetas e permissões

    Py4web provides a general purpose tagging @@ -443,12 +444,13 @@

    Etiquetas e permissõesTo use the tagging system you first need to import the Tags module from pydal.tools. Then create a Tags object to tag a table:

    from pydal.tools.tags import Tags
    -groups = Tags(db.auth_user)
    +groups = Tags(db.auth_user, 'groups')
     
    -

    If you look at the database level, a new table will be created with a -name equals to tagged_db + “_tag” + tagged_name, in this case -auth_user_tag_groups:

    +

    The tail_name parameter is optional and if not specified the “default” +value will be used. If you look at the database level, a new table will +be created with a name equals to tagged_db + '_tag_' + tail_name, +in this case auth_user_tag_groups:

    _images/tags_db.png

    Então você pode adicionar uma ou mais marcas de registros da tabela, bem como remover existente tags:

    +

    We’ve already seen a simple requires_membership fixture on :ref:The Condition fixture. It +enables the following syntax:

    +
    groups = Tags(db.auth_user)
    +
    +def requires_membership(group_name):
    +    return Condition(
    +       lambda: group_name in groups.get(auth.user_id),
    +       exception=HTTP(404)
    +    )
    +
    +@action('index')
    +@action.uses(requires_membership('teacher'))
    +def index():
    +    return 'hello teacher'
    +
    +

    Deixamos para você como um exercício para criar um dispositivo elétrico `` has_membership`` para permitir a seguinte sintaxe:

    +
    +

    Grids with checkboxes

    +

    While the grid, per se, does not support checkboxes, you can use custom columns to add one or more columns of checboxes. +You can also add the helpers logic (the grid uses helpers to generate HTML) to wrap it in a <form> and add one +or more submit bottons. You can then add logic to process the selected rows when the button is selected. For example:

    +
    column = Column("select", lambda row: INPUT(_type="checkbox",_name="selected_id",_value=row.id))
    +
    +@action("manage")
    +@action("manage/<path:path>")
    +@action.uses("manage.html", db)
    +def manage(path=None):
    +
    +   grid = Grid(path, db.thing, columns=[column, db.thing.name])
    +
    +   # if we are displaying a "select" grid page (not a form)
    +   if not grid.form:
    +      grid = grid.render()
    +      # if checkboxes selection was submitted
    +      if request.method == "POST":
    +         # do something with the selected ids
    +         print("you selected", request.POST.get("selected_id"))
    +      # inject a ``<form>`` and a ``submit`` button
    +      grid.children[1:] = [FORM(
    +            *grid.children[1:],
    +            DIV(INPUT(_type="submit",_value="do it!")),
    +            _method="POST",
    +            _action=request.url)]
    +   return locals()
    +
    +
    +

    Notice in the above example request.POST.get("selected_id") can be a single ID (if one selected) or a list of IDs (if more than one elsected).

    +
    @@ -627,7 +660,7 @@

    Os campos de referência - v: 1.20240530.2 + v: 20240630
    diff --git a/apps/_documentation/static/pt/chapter-15.html b/apps/_documentation/static/pt/chapter-15.html index 3b00bfe8f..e8743c84a 100644 --- a/apps/_documentation/static/pt/chapter-15.html +++ b/apps/_documentation/static/pt/chapter-15.html @@ -4,7 +4,7 @@ - De web2py para py4web — Documentação py4web 1.20240530.2 + De web2py para py4web — Documentação py4web 20240630 @@ -18,7 +18,7 @@ - + @@ -43,7 +43,7 @@
    - 1.20240530.2 + 20240630
    @@ -491,7 +491,7 @@

    “auth” example - v: 1.20240530.2 + v: 20240630
    diff --git a/apps/_documentation/static/pt/chapter-16.html b/apps/_documentation/static/pt/chapter-16.html index 46fde01d6..0bf54faab 100644 --- a/apps/_documentation/static/pt/chapter-16.html +++ b/apps/_documentation/static/pt/chapter-16.html @@ -4,7 +4,7 @@ - Advanced topics and examples — Documentação py4web 1.20240530.2 + Advanced topics and examples — Documentação py4web 20240630 @@ -18,7 +18,7 @@ - + @@ -42,7 +42,7 @@
    - 1.20240530.2 + 20240630
    @@ -71,6 +71,7 @@
  • De web2py para py4web
  • Advanced topics and examples
    • The scheduler
    • +
    • Sending messages using a background task
    • Celery
    • py4web and asyncio
    • htmx
        @@ -121,15 +122,15 @@

        The schedulertask_run and enqueueing runs of the predefined task as table records. -Each task_run references a task and contains the input to be passed to that task. The scheduler will caputure the +Each task_run references a task and contains the input to be passed to that task. The scheduler will capture the task stdout+stderr in a db.task_run.log and the task output in db.task_run.output.

        A py4web thread loops and finds the next task that needs to be executed. For each task it creates a worker process and assigns the task to the worker process. You can specify how many worker processes should run concurrently. The worker processes are daemons and they only live for the life of one task run. Each worker process is only responsible for executing that one task in isolation. The main loop is responsible for assigning tasks and timeouts.

        The system is very robust because the only source of truth is the database and its integrity is guaranteed by -transational safety. Even if py4web is killed, running tasks continue to run unless they complete, fail, or are -explicitely killed.

        +transactional safety. Even if py4web is killed, running tasks continue to run unless they complete, fail, or are +explicitly killed.

        Aside for allowing multiple concurrent task runs in execution on one node, it is also possible to run multiple instances of the scheduler on different computing nodes, as long as they use the same client/server database for task_run and as long as @@ -160,7 +161,7 @@

        The schedulerUSE_SCHEDULER=True in settings.py.

        You can manage your task runs busing the dashboard or using a Grid(path, db.task_run).

        -

        To prevent database locks (in particular with sqlite) we recommand:

        +

        To prevent database locks (in particular with sqlite) we recommend:

        • Use a different database for the scheduler and everything else

        • Always db.commit() as soon as possible after any insert/update/delete

        • @@ -175,11 +176,71 @@

          The scheduler +

          Sending messages using a background task

          +

          As en example of application of the above, +Consider the case of wanting to send emails asynchronously from a background task. +In this example we send them using SendGrid from Twilio (https://www.twilio.com/docs/sendgrid/for-developers/sending-email/quickstart-python) +Also we assume emails are represented by the following JSON structure

          +

          That means you need a new task:

          +
          import sendgrid
          +from sendgrid.helpers.mail import Mail, Email, To, Content
          +
          +def sendmail_task(from_addr, to_addrs, subject, body):
          +    ""
          +    # build the messages using sendgrid API
          +    from_email = Email(from_addr)  # Must be your verified sender
          +    content_type = "text/plain" if body[:6] != "<html>" else "text/html"
          +    content = Content(content_type, body)
          +    mail = Mail(from_email, To(to_addrs), subject, content)
          +    # ask sendgrid to deliver it
          +    sg = sendgrid.SendGridAPIClient(api_key=settings.SENDGRID_API_KEY)
          +    response = sg.client.mail.send.post(request_body=mail.get())
          +    # check if worked
          +    assert response.status_code == "200"
          +
          +# register the above task with the scheduler
          +scheduler.register_task("sendmail", sendmail_task)
          +
          +
          +

          To schedule sending a new email do:

          +
          email = {
          +    "from_addr": "me@example.com",
          +    "to_addrs": ["me@example.com"],
          +    "subject": "Hello World",
          +    "body": "I am alive!",
          +}
          +scheduler.enqueue_run(name="sendmail", inputs=email, scheduled_for=None)
          +
          +
          +

          The key:value in the email representation must match the arguments of the task. +The scheuled_for argument is optional and allows you to specify when the email should be sent. +You can use the Dashboard to see the status of your task_run``s for the task called ``sendmail.

          +

          You can also tell auth to tap into above mechanism for sending emails:

          +
          class MySendGridSender:
          +    def __init__(self, from_addr):
          +        self.from_addr = from_adds
          +    def send(self, to_addr, subject, body):
          +        email = {
          +            "from_addr": self.from_addr,
          +            "to_addrs": [to_addr],
          +            "subject": subject,
          +            "body": body,
          +        }
          +        scheduler.enqueue_run(name="sendmail", inputs=email)
          +
          +auth.sender = MySendGridSender(from_addr="me@example.com")
          +
          +
          +

          With the above, Auth will not send emails using smtplib. Instead it will send them with SendGrid using the scheduler. +Notice the only requirement here is that auth.sender must be an object with a send method with the same signature as in the example.

          +

          Notice, it it also possible to send SMS messages instead of emails but this requires 1) store the phone number in auth_user and 2) override the Auth.send method.

          +

          Celery

          Yes. You can use Celery instead of the build-in scheduler but it adds complexity and it is less robust. -Yet the build-in schduler is designed for long running tasks and the database can become a bottle neck -if you have hundrands running concurrently. Celery may work better if you have more than 100 concurrent +Yet the build-in scheduler is designed for long running tasks and the database can become a bottleneck +if you have hundreds of tasks running concurrently. Celery may work better if you have more than 100 concurrent tasks and/or they are short running tasks.

          @@ -828,7 +889,7 @@

          The T object - v: 1.20240530.2 + v: 20240630
          diff --git a/apps/_documentation/static/pt/genindex.html b/apps/_documentation/static/pt/genindex.html index b03783f6e..369a73275 100644 --- a/apps/_documentation/static/pt/genindex.html +++ b/apps/_documentation/static/pt/genindex.html @@ -3,7 +3,7 @@ - Índice — Documentação py4web 1.20240530.2 + Índice — Documentação py4web 20240630 @@ -17,7 +17,7 @@ - + @@ -41,7 +41,7 @@
          - 1.20240530.2 + 20240630
          @@ -135,7 +135,7 @@

          Índice

          - v: 1.20240530.2 + v: 20240630
          diff --git a/apps/_documentation/static/pt/index.html b/apps/_documentation/static/pt/index.html index d95e6f0cc..69a17107d 100644 --- a/apps/_documentation/static/pt/index.html +++ b/apps/_documentation/static/pt/index.html @@ -4,7 +4,7 @@ - py4web: o manual de referência — Documentação py4web 1.20240530.2 + py4web: o manual de referência — Documentação py4web 20240630 @@ -18,7 +18,7 @@ - + @@ -42,7 +42,7 @@
          - 1.20240530.2 + 20240630
          @@ -155,6 +155,7 @@

          py4web: o manual de referênciaThe Database Abstraction Layer (DAL)
        • De web2py para py4web
            @@ -227,6 +229,7 @@

            py4web: o manual de referênciaAdvanced topics and examples
            • The scheduler
            • +
            • Sending messages using a background task
            • Celery
            • py4web and asyncio
            • htmx
            • @@ -280,7 +283,7 @@

              Índices e tabelas - v: 1.20240530.2 + v: 20240630
              diff --git a/apps/_documentation/static/pt/objects.inv b/apps/_documentation/static/pt/objects.inv index 348ba2b750f536cf88fadb6e65b4821cf311c146..9c64e6537b8718ab5b17c0cc62c30702c89b2643 100644 GIT binary patch delta 3904 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 delta 3823 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 diff --git a/apps/_documentation/static/pt/search.html b/apps/_documentation/static/pt/search.html index f735cc56e..3a1267fc5 100644 --- a/apps/_documentation/static/pt/search.html +++ b/apps/_documentation/static/pt/search.html @@ -3,7 +3,7 @@ - Pesquisar — Documentação py4web 1.20240530.2 + Pesquisar — Documentação py4web 20240630 @@ -18,7 +18,7 @@ - + @@ -44,7 +44,7 @@
              - 1.20240530.2 + 20240630
              @@ -142,7 +142,7 @@ - v: 1.20240530.2 + v: 20240630
              diff --git a/apps/_documentation/static/pt/searchindex.js b/apps/_documentation/static/pt/searchindex.js index 1db27cdcc..5d8eb4a61 100644 --- a/apps/_documentation/static/pt/searchindex.js +++ b/apps/_documentation/static/pt/searchindex.js @@ -1 +1 @@ -Search.setIndex({"alltitles": {"A auto-refer\u00eancia e aliases": [[6, "self-reference-and-aliases"]], "A minimal form example without a database": [[12, "a-minimal-form-example-without-a-database"]], "A obten\u00e7\u00e3o de um `` row``": [[6, "fetching-a-row"]], "A p\u00e1gina Web principal": [[3, "the-main-web-page"]], "ANY_OF": [[12, "any-of"]], "Acknowledgments": [[0, "acknowledgments"]], "Adicionando atributos para campos e tabelas": [[6, "adding-attributes-to-fields-and-tables"]], "Advanced form design": [[12, "advanced-form-design"]], "Advanced topics and examples": [[16, "advanced-topics-and-examples"]], "Agrupamento e contando": [[6, "grouping-and-counting"]], "Ajuda, recursos e dicas": [[1, "help-resources-and-hints"]], "Aplicativos de modelo-less": [[6, "model-less-applications"]], "As fontes no GitHub": [[1, "the-sources-on-github"]], "Assinatura da DAL": [[6, "dal-signature"]], "Atalhos": [[6, "shortcuts"]], "Atualizar os arquivos de tradu\u00e7\u00e3o": [[11, "update-the-translation-files"]], "Authentication and authorization": [[13, "authentication-and-authorization"]], "Authentication using Auth": [[13, "authentication-using-auth"]], "Authorization using Tags": [[13, "authorization-using-tags"]], "Autocomplete Widget using htmx": [[16, "autocomplete-widget-using-htmx"]], "A\u00e7\u00e3o personalizada Bot\u00f5es": [[14, "custom-action-buttons"]], "Bancos de dados legados e tabelas com chave": [[6, "legacy-databases-and-keyed-tables"]], "Bancos de dados replicados": [[6, "replicated-databases"]], "Basic form example": [[12, "basic-form-example"]], "Basic grid example": [[14, "basic-grid-example"]], "Bot\u00e3o Classe A\u00e7\u00e3o Amostra": [[14, "sample-action-button-class"]], "Built-in helpers": [[10, "built-in-helpers"]], "CLEANUP": [[12, "cleanup"]], "CRUD settings": [[14, "crud-settings"]], "CRYPT": [[12, "crypt"]], "CSV (todas as tabelas ao mesmo tempo)": [[6, "csv-all-tables-at-once"]], "CSV (uma tabela de cada vez)": [[6, "csv-one-table-at-a-time"]], "CSV e sincroniza\u00e7\u00e3o de banco de dados remoto": [[6, "csv-and-remote-database-synchronization"]], "Caching e Memoize": [[5, "caching-and-memoize"]], "Campos computados": [[6, "computed-fields"]], "Campos virtuais": [[6, "virtual-fields"]], "Campos virtuais novo estilo (experimental)": [[6, "new-style-virtual-fields-experimental"]], "Campos virtuais velho antigo": [[6, "old-style-virtual-fields"]], "Caracter\u00edsticas avan\u00e7adas": [[6, "advanced-features"]], "Cascades no banco de dados": [[6, "database-cascades"]], "Caveats about fixtures": [[5, "caveats-about-fixtures"]], "Celery": [[16, "celery"]], "Checkbox validation": [[12, "checkbox-validation"]], "Client-side session in cookies": [[5, "client-side-session-in-cookies"]], "Combinando Rows": [[6, "combining-rows"]], "Como contribuir": [[1, "how-to-contribute"]], "Complexity and security validators": [[12, "complexity-and-security-validators"]], "Computed and Virtual fields": [[6, "computed-and-virtual-fields"]], "Configura\u00e7\u00f5es de quoting e case e do banco de dados": [[6, "database-quoting-and-case-settings"]], "Configura\u00e7\u00f5es padr\u00e3o de migra\u00e7\u00e3o": [[6, "default-migration-settings"]], "Construtor DAL": [[6, "dal-constructor"]], "Construtor Field": [[6, "field-constructor"]], "Construtor Table": [[6, "table-constructor"]], "Conte\u00fado:": [[17, null]], "Copiar dados de um para outro db": [[6, "copy-data-from-one-db-into-another"]], "Copying the _scaffold app": [[4, "copying-the-scaffold-app"]], "Creating an app": [[4, "creating-an-app"]], "Custom columns": [[14, "custom-columns"]], "Custom forms": [[12, "custom-forms"]], "Custom widgets": [[12, "custom-widgets"]], "Customizing style": [[14, "customizing-style"]], "DAL introduction": [[6, "dal-introduction"]], "Database validators": [[12, "database-validators"]], "Date and time validators": [[12, "date-and-time-validators"]], "De web2py para py4web": [[15, "from-web2py-to-py4web"]], "Decoradores de conveni\u00eancia": [[5, "convenience-decorators"]], "Default page layout": [[8, "default-page-layout"]], "Deployment on Docker/Podman": [[2, "deployment-on-docker-podman"]], "Deployment on GCloud (aka GAE - Google App Engine)": [[2, "deployment-on-gcloud-aka-gae-google-app-engine"]], "Deployment on Ubuntu": [[2, "deployment-on-ubuntu"]], "Depura\u00e7\u00e3o py4web com PyCharm": [[1, "debugging-py4web-with-pycharm"]], "Depura\u00e7\u00e3o py4web com VScode": [[1, "debugging-py4web-with-vscode"]], "Dicas e sugest\u00f5es": [[1, "hints-and-tips"]], "Dictionaries and tuples with IS_IN_SET": [[12, "dictionaries-and-tuples-with-is-in-set"]], "Do princ\u00edpio": [[4, "from-scratch"]], "Em valores de retorno": [[4, "on-return-values"]], "Este manual": [[1, "this-manual"]], "Etiquetas e permiss\u00f5es": [[13, "tags-and-permissions"]], "Experimentar com o shell py4web": [[6, "experiment-with-the-py4web-shell"]], "Exportar e importar dados": [[6, "exporting-and-importing-data"]], "Express\u00f5es": [[6, "expressions"]], "Extending using variables": [[8, "extending-using-variables"]], "Falhas de conex\u00e3o (par\u00e2metro tentativas)": [[6, "connection-failures-attempts-parameter"]], "Fazendo uma conex\u00e3o segura": [[6, "making-a-secure-connection"]], "Field types and validators": [[6, "field-types-and-validators"]], "File upload field": [[12, "file-upload-field"]], "Fixa\u00e7\u00e3o migra\u00e7\u00f5es quebrados": [[6, "fixing-broken-migrations"]], "Fixtures personalizados": [[5, "custom-fixtures"]], "Fixures": [[5, "fixtures"]], "Form structure manipulation": [[12, "form-structure-manipulation"]], "Foruml\u00e1rios": [[12, "forms"]], "Generating raw SQL": [[6, "generating-raw-sql"]], "Google NoSQL (Datastore)": [[6, "google-nosql-datastore"]], "Google SQL": [[6, "google-sql"]], "HTML e XML (uma tabela de cada vez)": [[6, "html-and-xml-one-table-at-a-time"]], "HTTPS": [[2, "https"]], "Helpers YATL": [[10, "yatl-helpers"]], "Helpers overview": [[10, "helpers-overview"]], "Helpers personalizados": [[10, "custom-helpers"]], "Heran\u00e7a de tabela": [[6, "table-inheritance"]], "IS_ALPHANUMERIC": [[12, "is-alphanumeric"]], "IS_DATE": [[12, "is-date"]], "IS_DATETIME": [[12, "is-datetime"]], "IS_DATETIME_IN_RANGE": [[12, "is-datetime-in-range"]], "IS_DATE_IN_RANGE": [[12, "is-date-in-range"]], "IS_DECIMAL_IN_RANGE": [[12, "is-decimal-in-range"]], "IS_EMAIL": [[12, "is-email"]], "IS_EMPTY_OR": [[12, "is-empty-or"]], "IS_EQUAL_TO": [[12, "is-equal-to"]], "IS_EXPR": [[12, "is-expr"]], "IS_FILE": [[12, "is-file"]], "IS_FLOAT_IN_RANGE": [[12, "is-float-in-range"]], "IS_IMAGE": [[12, "is-image"]], "IS_INT_IN_RANGE": [[12, "is-int-in-range"]], "IS_IN_DB": [[12, "is-in-db"]], "IS_IN_DB and Tagging": [[12, "is-in-db-and-tagging"]], "IS_IN_SET": [[12, "is-in-set"]], "IS_IN_SET and Tagging": [[12, "is-in-set-and-tagging"]], "IS_IPADDRESS": [[12, "is-ipaddress"]], "IS_IPV4": [[12, "is-ipv4"]], "IS_IPV6": [[12, "is-ipv6"]], "IS_JSON": [[12, "is-json"]], "IS_LENGTH": [[12, "is-length"]], "IS_LIST_OF": [[12, "is-list-of"]], "IS_LIST_OF_EMAILS": [[12, "is-list-of-emails"]], "IS_LOWER": [[12, "is-lower"]], "IS_MATCH": [[12, "is-match"]], "IS_NOT_EMPTY": [[12, "is-not-empty"]], "IS_NOT_IN_DB": [[12, "is-not-in-db"]], "IS_NULL_OR": [[12, "is-null-or"]], "IS_SAFE": [[12, "is-safe"]], "IS_SLUG": [[12, "is-slug"]], "IS_STRONG": [[12, "is-strong"]], "IS_TIME": [[12, "is-time"]], "IS_UPLOAD_FILENAME": [[12, "is-upload-filename"]], "IS_UPPER": [[12, "is-upper"]], "IS_URL": [[12, "is-url"]], "Implanta\u00e7\u00e3o em PythonAnywhere.com": [[2, "deployment-on-pythonanywhere-com"]], "Information workflow": [[8, "information-workflow"]], "Inner join": [[6, "inner-join"]], "Inserir e atualizar a partir de um dicion\u00e1rio": [[6, "inserting-and-updating-from-a-dictionary"]], "Instalando a partir de bin\u00e1rios": [[2, "installing-from-binaries"]], "Instalando a partir de fonte (localmente)": [[2, "installing-from-source-locally"]], "Instala\u00e7\u00e3o de fonte (globalmente)": [[2, "installing-from-source-globally"]], "Instala\u00e7\u00e3o e coloca\u00e7\u00e3o em funcionamento": [[2, "installation-and-startup"]], "Installing from pip, using a virtual environment": [[2, "installing-from-pip-using-a-virtual-environment"]], "Installing from pip, without virtual environment": [[2, "installing-from-pip-without-virtual-environment"]], "Interface de autentica\u00e7\u00e3o": [[13, "auth-ui"]], "Internacionaliza\u00e7\u00e3o": [[11, "internationalization"]], "Joins and Relations": [[6, "joins-and-relations"]], "Key features": [[14, "key-features"]], "LDAP": [[13, "ldap"]], "Left outer join": [[6, "left-outer-join"]], "Linguagem de template YATL": [[8, "yatl-template-language"]], "Local de pasta do banco de dados": [[6, "database-folder-location"]], "MSSQL (Microsoft SQL Server)": [[6, "mssql-microsoft-sql-server"]], "Mais sobre envios": [[6, "more-on-uploads"]], "Many to many relation": [[6, "many-to-many-relation"]], "Marca\u00e7\u00e3o de registros": [[6, "tagging-records"]], "Melhoramento": [[2, "upgrading"]], "Migra\u00e7\u00e3o resumo controle": [[6, "migration-control-summary"]], "Migra\u00e7\u00f5es": [[6, "migrations"]], "Mobile development": [[8, "mobile-development"]], "Modelos": [[4, "templates"]], "Multiple Tags objects": [[13, "multiple-tags-objects"]], "Multiple fixtures": [[5, "multiple-fixtures"]], "MySQL": [[6, "mysql"]], "Nota sobre novo DAL e adaptadores": [[6, "note-on-new-dal-and-adapters"]], "O Dashboard": [[3, "the-dashboard"]], "O fixture DAL": [[5, "the-dal-fixture"]], "O fixture flash": [[5, "the-flash-fixture"]], "O grupo Google": [[1, "the-google-group"]], "O objeto `` request``": [[4, "the-request-object"]], "O pool de conex\u00f5es": [[6, "connection-pooling"]], "O que \u00e9 py4web?": [[0, "what-is-py4web"]], "OAuth2 with Discord": [[13, "oauth2-with-discord"]], "OAuth2 with Facebook": [[13, "oauth2-with-facebook"]], "OAuth2 with Google": [[13, "oauth2-with-google"]], "Operadores l\u00f3gicos": [[6, "logical-operators"]], "Op\u00e7\u00e3o `` comando call``": [[2, "call-command-option"]], "Op\u00e7\u00e3o `` comando new_app``": [[2, "new-app-command-option"]], "Op\u00e7\u00e3o `` comando run``": [[2, "run-command-option"]], "Op\u00e7\u00e3o `` comando set_password``": [[2, "set-password-command-option"]], "Op\u00e7\u00e3o `` comando setup``": [[2, "setup-command-option"]], "Op\u00e7\u00e3o `` comando shell``": [[2, "shell-command-option"]], "Op\u00e7\u00e3o `` comando version``": [[2, "version-command-option"]], "Op\u00e7\u00f5es de linha de comando": [[2, "command-line-options"]], "Or\u00e1culo": [[6, "oracle"]], "Os campos de refer\u00eancia": [[14, "reference-fields"]], "Os valores por defeito com `` `` coalesce`` e coalesce_zero``": [[6, "default-values-with-coalesce-and-coalesce-zero"]], "Other validators": [[12, "other-validators"]], "Outros operadores": [[6, "other-operators"]], "Outros par\u00e2metros do construtor DAL": [[6, "other-dal-constructor-parameters"]], "PAM": [[13, "pam"]], "Page layout standard structure": [[8, "page-layout-standard-structure"]], "Palavras-chave reservadas": [[6, "reserved-keywords"]], "Pegadinhas": [[6, "gotchas"]], "Personalizados `` tipos Field``": [[6, "custom-field-types"]], "Plataformas e pr\u00e9-requisitos suportados": [[2, "supported-platforms-and-prerequisites"]], "Plugins de Autentica\u00e7\u00e3o": [[13, "auth-plugins"]], "Pluralizar": [[11, "pluralize"]], "Primeira corrida": [[2, "first-run"]], "Procedimentos de configura\u00e7\u00e3o": [[2, "setup-procedures"]], "Pr\u00e9-requisitos": [[1, "prerequisites"]], "P\u00e1ginas est\u00e1ticas": [[4, "static-web-pages"]], "P\u00e1ginas web din\u00e2micas": [[4, "dynamic-web-pages"]], "Range, set and equality validators": [[12, "range-set-and-equality-validators"]], "Raw SQL": [[6, "raw-sql"]], "Recursivas `` s SELECT``": [[6, "recursive-selects"]], "Recursos": [[1, "resources"]], "Rede": [[14, "grid"]], "Renderizando Rows com represent": [[6, "rendering-rows-using-represent"]], "Representa\u00e7\u00e3o de dados": [[6, "data-representation"]], "RestAPI GET": [[7, "restapi-get"]], "RestAPI policies and actions": [[7, "restapi-policies-and-actions"]], "RestAPI practical examples": [[7, "restapi-practical-examples"]], "Rotas": [[4, "routes"]], "SQLite": [[6, "sqlite"]], "Searching and filtering": [[14, "searching-and-filtering"]], "Selects com cache": [[6, "caching-selects"]], "Server-side DOM": [[10, "server-side-dom"]], "Server-side session anywhere": [[5, "server-side-session-anywhere"]], "Server-side session in Redis": [[5, "server-side-session-in-redis"]], "Server-side session in database": [[5, "server-side-session-in-database"]], "Server-side session in memcache": [[5, "server-side-session-in-memcache"]], "Sess\u00e3o no Dashboard": [[3, "login-into-the-dashboard"]], "Sharing sessions": [[5, "sharing-sessions"]], "Simple conversion examples": [[15, "simple-conversion-examples"]], "Sintaxe b\u00e1sica": [[8, "basic-syntax"]], "Sorted options": [[12, "sorted-options"]], "Special installations": [[2, "special-installations"]], "Special type validators": [[12, "special-type-validators"]], "Standard widgets": [[12, "standard-widgets"]], "Strings de conex\u00e3o (o par\u00e2metro uri)": [[6, "connection-strings-the-uri-parameter"]], "Substrings": [[6, "substrings"]], "Supported databases": [[6, "supported-databases"]], "Tabelas pregui\u00e7osos": [[6, "lazy-tables"]], "Table methods": [[6, "table-methods"]], "Template Functions": [[8, "template-functions"]], "Temporiza\u00e7\u00e3o de consultas": [[6, "timing-queries"]], "Text format validators": [[12, "text-format-validators"]], "The Auth fixture": [[5, "the-auth-fixture"]], "The Condition fixture": [[5, "the-condition-fixture"]], "The DAL: a quick tour": [[6, "the-dal-a-quick-tour"]], "The Database Abstraction Layer (DAL)": [[6, "the-database-abstraction-layer-dal"]], "The Discord server": [[1, "the-discord-server"]], "The Form constructor": [[12, "the-form-constructor"]], "The Grid object": [[14, "the-grid-object"]], "The Inject fixture": [[5, "the-inject-fixture"]], "The Q object": [[16, "the-q-object"]], "The RestAPI": [[7, "the-restapi"]], "The RestAPI response": [[7, "the-restapi-response"]], "The Session fixture": [[5, "the-session-fixture"]], "The T object": [[16, "the-t-object"]], "The Template fixture": [[5, "the-template-fixture"]], "The Translator fixture": [[5, "the-translator-fixture"]], "The URLsigner fixture": [[5, "the-urlsigner-fixture"]], "The _scaffold app": [[4, "the-scaffold-app"]], "The scheduler": [[16, "the-scheduler"]], "The sidecar parameter": [[12, "the-sidecar-parameter"]], "Transa\u00e7\u00e3o distribu\u00edda": [[6, "distributed-transaction"]], "Tutoriais e v\u00eddeo": [[1, "tutorials-and-video"]], "Two Factor Authentication": [[13, "two-factor-authentication"]], "Um local de trabalho python moderna": [[1, "a-modern-python-workplace"]], "Um para muitos rela\u00e7\u00e3o": [[6, "one-to-many-relation"]], "Understanding the design": [[2, "understanding-the-design"]], "Usando DAL sem definir tabelas": [[6, "using-dal-without-define-tables"]], "Usando o DAL \u201cstand-alone\u201d": [[6, "using-the-dal-stand-alone"]], "Usando templates": [[14, "using-templates"]], "Usando um seleto para uso de mem\u00f3ria inferior \u00e0 base de iterador": [[6, "using-an-iterator-based-select-for-lower-memory-use"]], "User Impersonation": [[13, "user-impersonation"]], "Using Auth inside actions": [[13, "using-auth-inside-actions"]], "Using Fixtures": [[5, "using-fixtures"]], "Using Inject": [[10, "using-inject"]], "Using callable parameters": [[14, "using-callable-parameters"]], "Validation functions": [[12, "validation-functions"]], "Valida\u00e7\u00e3o de formul\u00e1rio": [[12, "form-validation"]], "WSGI": [[2, "wsgi"]], "Watch for files change": [[4, "watch-for-files-change"]], "Widgets": [[12, "widgets"]], "`` A``": [[10, "a"]], "`` BEAUTIFY``": [[10, "beautify"]], "`` BODY``": [[10, "body"]], "`` Belongs``": [[6, "belongs"]], "`` CAT``": [[10, "cat"]], "`` Comando SELECT``": [[6, "select-command"]], "`` Count``, `` isempty``, `` DELETE``, `` update``": [[6, "count-isempty-delete-update"]], "`` Def \u2026 return``": [[8, "def-return"]], "`` Div``": [[10, "div"]], "`` Drop``": [[6, "drop"]], "`` EM``": [[10, "em"]], "`` Find``, `` exclude``, `` sort``": [[6, "find-exclude-sort"]], "`` Form``": [[10, "form"]], "`` Format``: representa\u00e7\u00e3o da ficha": [[6, "format-record-representation"]], "`` H1``, `` h2``, `` H3``, `` H4``, `` H5``, `` H6``": [[10, "h1-h2-h3-h4-h5-h6"]], "`` HEAD``": [[10, "head"]], "`` HTML``": [[10, "html"]], "`` IMG``": [[10, "img"]], "`` INPUT``": [[10, "input"]], "`` I``": [[10, "i"]], "`` Id``: Notas sobre a chave prim\u00e1ria": [[6, "id-notes-about-the-primary-key"]], "`` If \u2026 elif \u2026 else``": [[8, "if-elif-else"]], "`` Insert``": [[6, "insert"]], "`` LI``": [[10, "li"]], "`` Label``": [[10, "label"]], "`` Like``, `` ilike``, `` regexp``, `` startswith``, `` endswith``, `` contains``, `` upper``, `` lower``": [[6, "like-ilike-regexp-startswith-endswith-contains-upper-lower"]], "`` Lista: `` e `` contains``": [[6, "list-type-and-contains"]], "`` Migrate``, `` fake_migrate``": [[6, "migrate-fake-migrate"]], "`` OL``": [[10, "ol"]], "`` OPTION``": [[10, "option"]], "`` On_define``": [[6, "on-define"]], "`` Orderby``, `` groupby``, `` limitby``, `` distinct``, `` having``, `` orderby_on_limitby``, `` join``, `` left``, `` cache``": [[6, "orderby-groupby-limitby-distinct-having-orderby-on-limitby-join-left-cache"]], "`` PRE``": [[10, "pre"]], "`` P``": [[10, "p"]], "`` Para \u2026 in``": [[8, "for-in"]], "`` Primarykey``: Suporte para tabelas legadas": [[6, "primarykey-support-for-legacy-tables"]], "`` Query``, `` Set``, `` Rows``": [[6, "query-set-rows"]], "`` Redefine``": [[6, "redefine"]], "`` Rname``: nome real": [[6, "rname-real-name"]], "`` SCRIPT``": [[10, "script"]], "`` SELECT``": [[10, "select"]], "`` SPAN``": [[10, "span"]], "`` STYLE``": [[10, "style"]], "`` Sequence_name``": [[6, "sequence-name"]], "`` Sum``, `` avg``, `` min``, `` `` max`` e len``": [[6, "sum-avg-min-max-and-len"]], "`` TABLE``, `` TR``, `` TD``": [[10, "table-tr-td"]], "`` TAG``": [[10, "tag"]], "`` TBODY``": [[10, "tbody"]], "`` TEXTAREA``": [[10, "textarea"]], "`` THEAD``": [[10, "thead"]], "`` TH``": [[10, "th"]], "`` TITLE``": [[10, "title"]], "`` TT``": [[10, "tt"]], "`` Table_class``": [[6, "table-class"]], "`` Tentar \u2026 exceto \u2026 else \u2026 finally``": [[8, "try-except-else-finally"]], "`` Trigger_name``": [[6, "trigger-name"]], "`` UL``": [[10, "ul"]], "`` URL``": [[10, "url"]], "`` Update_or_insert``": [[6, "update-or-insert"]], "`` Update_record``": [[6, "update-record"]], "`` Validate_and_insert``, `` validate_and_update``": [[6, "validate-and-insert-validate-and-update"]], "`` While``": [[8, "while"]], "`` XML``": [[10, "xml"]], "`` Year``, `` month``, `` day``, `` hour``, `` minutes``, `` seconds``": [[6, "year-month-day-hour-minutes-seconds"]], "`` _Lastsql``": [[6, "lastsql"]], "`` `` As_dict`` e as_list``": [[6, "as-dict-and-as-list"]], "`` `` Filter_in`` e filter_out``": [[6, "filter-in-and-filter-out"]], "`` `` First`` e last``": [[6, "first-and-last"]], "`` `` Plural`` e singular``": [[6, "plural-and-singular"]], "`` `` commit`` e rollback``": [[6, "commit-and-rollback"]], "`` case``": [[6, "case"]], "`` executesql``": [[6, "executesql"]], "`` polymodel``": [[6, "polymodel"]], "assinatura define_table": [[6, "define-table-signature"]], "block and super": [[8, "block-and-super"]], "cache, em cache": [[6, "cache-cacheable"]], "children": [[10, "children"]], "distinto": [[6, "distinct"]], "extend and include": [[8, "extend-and-include"]], "filtros comuns": [[6, "common-filters"]], "find": [[10, "find"]], "groupby, tendo": [[6, "groupby-having"]], "htmx": [[16, "htmx"]], "htmx usage in Form": [[16, "htmx-usage-in-form"]], "htmx usage in Grid": [[16, "htmx-usage-in-grid"]], "juntar-se, deixou": [[6, "join-left"]], "limitby": [[6, "limitby"]], "modifica\u00e7\u00e3o da tabela e campo em tempo de execu\u00e7\u00e3o": [[6, "run-time-field-and-table-modification"]], "ordenar por": [[6, "orderby"]], "orderby_on_limitby": [[6, "orderby-on-limitby"]], "py4web and asyncio": [[16, "py4web-and-asyncio"]], "py4web model": [[6, "py4web-model"]], "py4web: o manual de refer\u00eancia": [[17, "py4web-the-reference-manual"]], "retornos de chamada no registro de inser\u00e7\u00e3o, exclus\u00e3o e atualiza\u00e7\u00e3o": [[6, "callbacks-on-record-insert-delete-and-update"]], "string.format": [[16, "string-format"]], "two_factor_required": [[13, "two-factor-required"]], "two_factor_send": [[13, "two-factor-send"]], "two_factor_tries": [[13, "two-factor-tries"]], "utils.js": [[16, "utils-js"]], "versionamento recorde": [[6, "record-versioning"]], "\u00cdndices": [[6, "indexes"]], "\u00cdndices e tabelas": [[17, "indices-and-tables"]], "\u201cAccessing OS files\u201d example": [[15, "accessing-os-files-example"]], "\u201cForm and flash\u201d example": [[15, "form-and-flash-example"]], "\u201cHello world\u201d example": [[15, "hello-world-example"]], "\u201cRedirect with variables\u201d example": [[15, "redirect-with-variables-example"]], "\u201cReturn calling methods\u201d example": [[15, "return-calling-methods-example"]], "\u201cReturning args\u201d example": [[15, "returning-args-example"]], "\u201cReturning variables\u201d example": [[15, "returning-variables-example"]], "\u201cSetting up a counter\u201d example": [[15, "setting-up-a-counter-example"]], "\u201cView\u201d example": [[15, "view-example"]], "\u201cauth\u201d example": [[15, "auth-example"]], "\u201cgrid\u201d example": [[15, "grid-example"]]}, "docnames": ["chapter-01", "chapter-02", "chapter-03", "chapter-04", "chapter-05", "chapter-06", "chapter-07", "chapter-08", "chapter-09", "chapter-1", "chapter-10", "chapter-11", "chapter-12", "chapter-13", "chapter-14", "chapter-15", "chapter-16", "index"], "envversion": {"sphinx": 61, "sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2}, "filenames": ["chapter-01.rst", "chapter-02.rst", "chapter-03.rst", "chapter-04.rst", "chapter-05.rst", "chapter-06.rst", "chapter-07.rst", "chapter-08.rst", "chapter-09.rst", "chapter-1.rst", "chapter-10.rst", "chapter-11.rst", "chapter-12.rst", "chapter-13.rst", "chapter-14.rst", "chapter-15.rst", "chapter-16.rst", "index.rst"], "indexentries": {}, "objects": {}, "objnames": {}, "objtypes": {}, "terms": {"0": [2, 3, 5, 6, 7, 8, 10, 11, 12, 13, 14, 15, 16], "00": 7, "01": 7, "02": [6, 12], "03": [2, 6, 7], "04": 2, "04t07": 7, "05": 7, "06": 12, "08": 12, "0x4e86": 12, "0x7fa533ff7640": 10, "1": [2, 3, 5, 6, 7, 8, 10, 11, 12, 14, 15, 16], "10": [2, 6, 7, 8, 10, 11, 12, 13, 16], "100": [2, 6, 7, 8, 12, 16], "1000": [5, 6, 12, 16], "1000ms": 16, "100px": 16, "1024": 12, "1048576": 12, "10px": 14, "11": [6, 12], "111111": 16, "11211": 5, "12": 12, "120": 6, "123": [10, 12], "123218": 7, "123456": 12, "125": 6, "127": [2, 3, 5, 12, 14], "13": [5, 6, 12], "132635": 7, "14": [8, 12, 14], "15": [6, 12, 13, 14], "16": 12, "168": 12, "169": 12, "16px": 8, "172": [6, 12], "174": 6, "178974": 7, "19": [6, 7, 12], "192": [6, 12], "1963": 12, "198": 6, "199": 12, "19t05": 7, "1e100": 6, "1kb": 12, "1l": 6, "1mb": 12, "1pkogiy59xj8co8": 8, "2": [5, 6, 7, 8, 10, 11, 12, 13, 15, 16], "20": [2, 7, 11, 12], "200": [7, 12, 15, 16], "2001": 12, "2002": 12, "2005": 6, "2007": 0, "2008": 12, "2009": 12, "200ms": 16, "200x200": 12, "2010": 6, "2012": 6, "2013": 6, "2015": 0, "2018": 6, "2019": 7, "201988": 7, "2020": 1, "20201112": 3, "2021": 7, "2022": 5, "207": 6, "217": 6, "22": 13, "227": 6, "239": 6, "2396": 12, "24": 12, "254": 12, "255": 12, "256": 6, "2616": 12, "28": 12, "2em": 16, "2px": 16, "3": [0, 2, 4, 5, 6, 7, 8, 10, 12, 13, 14, 15, 16], "30": [2, 6, 8, 12], "301": 15, "309903": 7, "31": [6, 7, 12], "32": [6, 12], "322494": 7, "33": [6, 12], "34": 7, "3490": 12, "3492": 12, "35": 6, "355181": 7, "3600": [5, 6], "366288": 7, "38": 7, "3em": 16, "4": [2, 5, 6, 7, 8, 12, 14], "40": [2, 10, 16], "400": [5, 15], "404": [5, 13], "405515": 7, "43": 6, "45": [8, 12], "451907": 7, "453020": 7, "456": 12, "466030": 7, "4e": 12, "5": [5, 6, 7, 8, 11, 12, 13, 14, 16], "50": [2, 7], "500": 16, "500ms": 16, "512": 6, "53": 12, "54": 8, "559918": 7, "58": 8, "59": 12, "6": [5, 6, 7, 12, 13, 15], "60": [5, 6], "63": [6, 12], "6379": 5, "64": [6, 8, 16], "65": 6, "6to4": 12, "7": [2, 7, 8, 12, 15], "70": 7, "74": 6, "75": 7, "768": 6, "8": [2, 6, 7, 12], "80": [7, 12], "8000": [2, 3, 4, 12, 14], "86": 12, "8601": 7, "8em": [8, 16], "9": [6, 7, 12, 14, 15], "90": [6, 7], "91": 6, "95": 6, "97": 6, "974953": 7, "99": 6, "A": [1, 2, 4, 5, 7, 8, 11, 13, 14, 15, 16, 17], "AS": 6, "Ao": [4, 6, 8, 14], "As": [3, 4, 5, 6, 7, 8, 10, 11, 12, 13, 14, 16], "COMO": 6, "Com": 6, "Comando": 17, "Como": [6, 17], "Da": 6, "De": [0, 1, 4, 6, 17], "Do": [8, 12, 14, 17], "E": [1, 6, 13], "Ela": [1, 6, 8], "Ele": [2, 3, 5, 6, 10], "Eles": [0, 4, 6], "Em": [2, 5, 6, 8, 10], "Essas": 0, "Esse": 4, "Esses": [5, 6], "Esta": [0, 1, 2, 4, 6], "Estas": 10, "Este": [2, 6, 8, 10, 14, 15], "Estes": 6, "For": [1, 2, 4, 5, 6, 7, 8, 10, 12, 13, 15, 16], "Fora": 0, "H\u00e1": [1, 5, 6, 14], "Isso": [2, 4, 6], "Isto": [0, 2, 3, 4, 5, 6, 10, 14], "Mas": [1, 4, 6], "NO": 6, "Na": 0, "Nem": 6, "No": [2, 5, 6, 8, 14], "Nos": 6, "N\u00f3s": [0, 1, 5], "O": [2, 8, 10, 12, 13, 17], "OU": 14, "Os": [0, 3, 4, 8, 10, 13, 17], "Por": [2, 3, 4, 5, 6, 10], "SE": 6, "Se": [1, 2, 3, 4, 6, 8, 10, 14], "Seu": 6, "Tamb\u00e9m": 6, "Um": 5, "Uma": [2, 4, 6, 8, 10], "_": [2, 12, 16], "__": [1, 2, 4], "__file__": [5, 7, 14], "__init": 2, "__init__": [2, 4, 5, 6, 7, 14, 15, 16], "__prerequisite__": 5, "__prerequisites__": 5, "__str__": [5, 8, 10], "_action": 10, "_adapt": 6, "_after_delet": 6, "_after_insert": 6, "_after_updat": 6, "_alt": 10, "_and": 12, "_antes_": 6, "_autocomplet": 16, "_autocomplete_search_fields": 16, "_before_delet": 6, "_before_insert": 6, "_before_updat": 6, "_bgcolor": 10, "_c": 10, "_checked": 10, "_class": [5, 10, 12, 16], "_cols": 10, "_common_filt": 6, "_count": 6, "_dashboard": [2, 3], "_dat": 10, "_db": 6, "_dbnam": 6, "_default": [2, 4], "_delet": 6, "_disabled": 10, "_documentation": [1, 3], "_enable_record_versioning": 6, "_extr": 6, "_format": 6, "_href": [5, 8, 10, 12, 14], "_hx": 16, "_id": [6, 10, 12, 16], "_insert": 6, "_listify": 6, "_method": 10, "_nam": [6, 10, 12, 16], "_next_url": 13, "_nonreserved": 6, "_onclick": 12, "_placehold": [12, 16], "_rows": 10, "_scaffold": [5, 8, 10, 12, 13, 14, 15, 17], "_search": 16, "_select": 6, "_selected": 10, "_sesson": 5, "_src": 10, "_style": [12, 16], "_tabl": [6, 12, 16], "_tablenam": 6, "_tag": 13, "_timings": 6, "_titl": [12, 16], "_type": [6, 10, 12, 16], "_u": 10, "_updat": 6, "_ur": 6, "_valu": [10, 12, 16], "_xmlns": 10, "aaabaaeaaqeaaaeaiaawaaaafgaaacgaaaabaaaaagaaaaeaiaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaapaaaaa": 8, "ab": [10, 12], "aba": 3, "abaix": 6, "abas": 3, "abbreviated": 12, "abc": [10, 12], "abert": [1, 3, 6], "ability": 15, "able": [5, 6, 12], "abort": [4, 6], "about": [6, 7, 13, 14, 15, 16, 17], "abov": [4, 5, 6, 7, 8, 12, 14], "abracadabr": 2, "abrir": 2, "absent": 2, "absolut": [2, 6, 15], "abspath": 4, "abstraction": [5, 15, 17], "abstra\u00e7\u00e3": 6, "acab": 6, "accdesc": 6, "accept": [4, 5, 12, 16], "acceptanc": 12, "accepted": [1, 2, 6, 12, 15, 16], "accepting": 10, "accepts": 12, "access": [4, 5, 6, 10, 13, 15, 16], "accessed": [6, 10, 12], "accessibl": 4, "accessing": [5, 6], "accnum": 6, "accomplish": 6, "accomplished": [6, 13, 15], "according": 8, "accordingly": 8, "account": 6, "acctype": 6, "aceit": [6, 11, 12], "aceler": 6, "acert": 2, "acess": [0, 2, 4, 5, 6], "acess\u00f3ri": 4, "achieved": [5, 15], "acim": [6, 7, 8, 13], "acion": 6, "acknowledgments": 17, "acompanh": 6, "acontec": 6, "acord": 6, "acrescent": 6, "across": [6, 8], "act": 6, "action": [4, 5, 6, 7, 10, 12, 13, 14, 15, 16], "action_button": 14, "action_token": [5, 13], "actions": [4, 5, 6, 14, 15, 17], "activ": [6, 13], "activat": [2, 13], "activated": 13, "activating": 2, "activiti": 6, "acts": 12, "actu": 6, "actual": [5, 6, 8, 13, 14], "actualiz": 6, "actually": [6, 8], "ac\u00e7\u00e3": [4, 5, 6, 7], "ad": 13, "adapt": 13, "adapter_args": 6, "adapters": [6, 16], "add": [1, 2, 4, 5, 6, 7, 8, 10, 11, 12, 13, 14, 15, 16], "added": [0, 2, 5, 12, 13, 16], "adding": [6, 12, 14], "addition": [6, 8], "additional": [4, 5, 7, 8, 12, 14], "additional_cl": 14, "additional_styl": 14, "address": [2, 12, 13], "adds": 16, "adi": 6, "adiant": 13, "adicion": [2, 5, 11, 12, 13, 14], "adicional": [2, 5, 6], "adi\u00e7\u00e3": 6, "admin": 15, "administr": [0, 6], "administrativ": 2, "administrator": 2, "adquir": 6, "advanc": [2, 13, 14], "advanced": [14, 17], "advantag": [2, 6, 8, 16], "advisabl": 6, "advised": 14, "afet": 6, "after": [5, 6, 8, 12, 13, 14, 16], "after_connection": 6, "after_delet": 6, "after_insert": 6, "after_updat": 6, "aftermath": 6, "again": [2, 4, 5, 6, 12, 16], "against": [6, 7, 10, 12, 14], "age": 6, "aggregat": 6, "agir": [6, 10], "agn\u00f3st": 4, "agor": [2, 4, 5, 6, 8], "agrad": 10, "agreg": 6, "aid": 6, "aims": 0, "aind": [2, 6, 13], "ajax": [8, 14, 16], "ajud": [0, 2, 4, 6, 15, 17], "ajust": 6, "aka": 1, "alcanc": 6, "aleat\u00f3r": 6, "alert": [5, 8, 10, 12, 15], "alerts": [5, 8, 15], "alex": 6, "alfar": [0, 1], "alg": 12, "algo": [5, 6, 7, 8], "algorithm": [5, 12], "algum": [4, 6, 10], "alguns": [0, 2, 4, 5, 6, 7, 8, 10], "ali": [6, 12], "aliment": 6, "all": [0, 1, 2, 4, 5, 6, 7, 8, 10, 12, 13, 14, 15, 16], "allocated": 12, "allow": [7, 8, 10, 12, 13, 14, 16], "allowed": [6, 7, 12, 13], "allowed_actions": 13, "allowed_attribut": 10, "allowed_overrid": 12, "allowed_patterns": 7, "allowed_schem": 12, "allowing": [1, 12, 16], "allows": [2, 3, 4, 5, 6, 7, 8, 12, 13, 14, 16], "almost": 5, "along": [2, 4, 10, 12, 16], "alphabetically": 12, "alphanumeric": 12, "already": [2, 4, 5, 10, 12, 13, 14], "also": [0, 1, 2, 4, 5, 6, 8, 10, 12, 13, 14, 15, 16], "alt": 10, "alter": [0, 2, 4, 5, 6, 11], "altering": 6, "altern": 6, "alternat": [5, 16], "alternativ": [2, 8, 12], "although": [2, 8, 12], "alvo": 6, "always": [0, 2, 4, 5, 6, 12, 16], "al\u00e9m": [4, 6, 14], "am": [12, 16], "amazon": 6, "ambas": 6, "ambient": 2, "ambigu": [4, 6], "ambos": [4, 5, 6], "among": [6, 12], "amount": 6, "ampli": 1, "an": [0, 1, 2, 3, 5, 6, 8, 10, 12, 13, 14, 15, 16, 17], "analis": [4, 6, 11], "analogy": 15, "ancestor": 10, "anchor": 16, "and": [0, 1, 2, 3, 4, 5, 10, 17], "andaim": 4, "andrew": 1, "anex": 6, "angle": 8, "angul": 16, "angularjs": 0, "aninh": [6, 10], "anonymous": [6, 8, 12], "anoth": [4, 5, 6, 8, 12, 13], "anotherpath": 5, "ansi": 6, "answer": 1, "anteced": 4, "anterior": [2, 6], "antes": [1, 6, 8, 10, 13, 14], "antig": 15, "any": [2, 3, 4, 5, 6, 7, 8, 10, 12, 13, 14, 15, 16], "anyhow": 2, "anyobj": 6, "anything": 4, "anyway": 6, "anywher": [8, 15], "an\u00e1lis": 6, "apag": 12, "aparec": 6, "aparent": 6, "apen": [2, 5, 6, 7], "api": [0, 6, 7, 10, 12, 13, 16], "api_version": 7, "apis": [0, 6, 13, 15], "aplic": [0, 2, 3, 4, 5, 14, 15], "apoi": 6, "apont": 6, "app": [0, 1, 3, 5, 6, 7, 8, 10, 11, 12, 13, 14, 15, 16, 17], "app1": 5, "app1_session": 5, "app2": 5, "app_fold": 15, "app_nam": [2, 4, 5, 6], "app_watch_handl": 4, "appadmin": [0, 6], "appe": [6, 12], "append": [6, 10, 12, 14, 16], "append_id": 14, "appended": [5, 6], "apple": 12, "appli": [6, 12, 16], "application": [2, 5, 6, 8, 12, 13, 15, 16], "applications": [0, 2, 3, 4, 6, 12, 13, 14], "applied": [5, 12, 14, 16], "apply": [0, 5, 12, 13, 14], "applying": [6, 14], "appnam": [2, 5, 13, 15], "appname_session": 5, "approach": [6, 15], "appropriat": [6, 12], "appropriately": 6, "approv": 13, "apps": [0, 1, 2, 3, 4, 5, 6, 8, 13, 15], "apps_fold": 2, "aprend": 1, "apresent": 8, "apropri": 6, "aproxim": 6, "apt": 13, "ap\u00f3s": [2, 6, 14], "aqu": [2, 3, 4, 5, 6, 7, 8, 10, 11, 12, 13, 14], "aquel": [6, 13], "arbitrary": [4, 13], "arbitr\u00e1ri": 6, "archive_db": 6, "archive_nam": 6, "are": [0, 1, 2, 4, 5, 6, 7, 8, 10, 12, 13, 14, 15, 16], "aren": 6, "args": [1, 2, 6], "argument": [2, 4, 5, 6, 8, 10, 12, 13], "arguments": [2, 5, 6, 8, 10, 12, 13, 15], "arithmetic": 12, "armazen": [0, 2, 5, 6, 10], "around": [1, 15], "arquiv": [0, 2, 3, 4, 5, 6, 13, 17], "arrang": 12, "array": 16, "arriv": [0, 6], "as_ordered_dict": 6, "asci": 12, "asid": 16, "asked": 2, "asking": 5, "aspas": 6, "assert": 6, "assets": 2, "assigned": [6, 12, 13, 15], "assigning": [15, 16], "assignment": 8, "assigns": 16, "assim": [6, 8], "assinatur": [4, 5], "assist": 4, "assistent": 10, "assoc": [6, 11], "associated": [6, 12, 13], "assum": [2, 5, 6, 7, 11, 12], "assumed": 15, "assuming": 5, "async": 16, "asynci": 17, "at": [0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 12, 13, 14, 15, 16], "atend": [2, 6], "ativ": [2, 6], "atrav\u00e9s": [6, 8, 10, 13], "atribut": [5, 10], "atribu\u00edd": 6, "attached": [6, 13], "attaching": 15, "attacks": [5, 10], "attempted": 12, "attempting": 6, "attempts": [6, 13], "attention": 6, "attribut": [4, 5, 6, 10, 12, 14, 15, 16], "attributes_plugin": 16, "attributespluginhtmx": 16, "attrs": [12, 14, 16], "atual": [2, 6], "atualiz": [2, 17], "aug": 12, "august": 12, "aul": 14, "aut": 10, "autentic": 6, "auth": [0, 2, 4, 6, 8, 10, 16, 17], "auth_group": 13, "auth_groups": 13, "auth_plugins": 13, "auth_us": [5, 6, 13], "auth_user_tag_groups": [6, 13], "auth_user_tagged_groups": 13, "authenticat": 13, "authenticated": [5, 6], "authentication": [5, 14, 17], "authoriz": [6, 7], "authorization": [5, 17], "authorized": 13, "auto_import": 6, "auto_process": [14, 16], "autocomplete_query": 16, "autodelet": 6, "autogenerated": 6, "automat": [2, 4, 6, 8, 10, 13, 14], "automatic": [4, 6, 8, 15], "automatically": [2, 3, 4, 5, 6, 12, 13, 14, 15, 16], "autoriz": 6, "auxili": [5, 6, 8, 10], "availabl": [1, 2, 6, 8, 10, 13, 15, 16], "avali": [6, 8], "avanc": 17, "avis": [5, 6, 13], "avoid": [1, 2, 5, 6, 12], "avoided": 8, "avoiding": 5, "avoids": 6, "awar": 6, "awesom": [8, 14], "axel": 0, "axolotl": 0, "azul": 4, "a\u00e7\u00e3": [4, 5, 6, 13, 17], "a\u00e7\u00f5": 5, "a\u00e7\u00fac": 5, "b": [5, 6, 8, 10, 12, 15, 16], "back": [5, 6, 12], "backend": 6, "backends": 6, "background": [2, 4, 12, 16], "backported": 6, "backslash": 4, "backup": [2, 6, 12], "backward": 12, "backwards": [0, 12], "bad_days": 6, "bails": 6, "banan": 12, "banc": [0, 1, 3, 4, 5, 13], "bar": [8, 14], "barc": 6, "barr": 4, "barri": 0, "bas": [0, 2, 4, 8, 14, 16], "base64": [6, 8, 16], "base_dn": 13, "baseadapt": 6, "based": [0, 2, 3, 4, 5, 7, 8, 12, 13, 14, 15, 16], "bash": 2, "basic": [2, 5, 17], "basically": 16, "bast": 2, "bat": 2, "batman": [7, 12, 14], "battl": 0, "be": [0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 12, 13, 14, 15, 16], "beasley": 0, "becaus": [0, 2, 4, 5, 6, 8, 10, 12, 14, 16], "becom": [12, 16], "bed": 11, "been": [0, 2, 5, 6, 8, 12], "befor": [2, 5, 6, 8, 12, 13, 14], "before_delet": 6, "before_insert": 6, "before_updat": 6, "begin": [12, 14], "beginners": 2, "beginning": [8, 12, 13], "behavior": [6, 12, 15, 16], "behaviour": [2, 14], "being": [5, 6, 7, 8, 12, 16], "believ": [0, 5], "belong": [13, 15], "belonging": 6, "belongs": 13, "below": [5, 6, 7, 12, 14], "bem": [0, 4, 5, 6, 13], "benefits": 16, "benef\u00edci": 6, "best": [2, 5, 6], "bett": [0, 1, 2, 4, 6, 14, 15, 16], "between": [5, 10, 12, 15], "beyond": 12, "bgcolor": 10, "bibliotec": [0, 4, 11], "big": 15, "bigint": 6, "bigint_id": 6, "bilhet": [0, 3, 6], "bilh\u00e9t": 0, "bin": [1, 2], "binari": 2, "binary": 6, "bind": 16, "bin\u00e1ri": 6, "birthplac": 6, "bit": 12, "bitbucket": 1, "black": [8, 12], "blank": [12, 14], "blanks": 12, "blink": 16, "blob": [1, 6], "bloc": [8, 10], "block": [13, 16], "blockquot": 10, "blocks": 8, "blog": [1, 6, 10], "blog_post": 6, "bloqu": 13, "blu": [4, 6, 12, 15], "bmp": 12, "boas": 2, "boat": 6, "bob": 6, "body": [4, 8, 13, 14, 16], "bold": 10, "bom": 2, "bonit": 6, "book": 6, "boolean": [6, 14], "booleans": 6, "boost": [6, 8], "bootstrap": 14, "bord": 16, "botar": 0, "both": [1, 2, 5, 6, 8, 12, 15], "bottl": [0, 4, 5, 8, 15, 16], "bottle_app": 2, "bottlepy": [4, 5], "bottom": 12, "bot\u00e3": 3, "bot\u00f5": [3, 17], "boundari": 12, "boundary": 12, "box": [0, 6, 12], "br": [8, 10], "bracket": 8, "brackets": [8, 12], "branch": [1, 2], "break": [2, 6], "breaking": 6, "breaks": 12, "breez": 1, "brev": 4, "briefly": 2, "broken": [0, 6, 12], "brows": [1, 2, 3, 5, 7, 8, 14, 16], "browsers": 16, "browsing": 3, "bruc": [7, 14], "brut": 6, "bsd": 1, "buff": 6, "bug": 6, "bugs": 1, "build": [1, 2, 4, 5, 10, 14, 16], "building": [4, 12, 16], "built": [0, 1, 4, 6, 8, 12, 16, 17], "bulk_insert": 6, "bulm": [12, 14, 16], "bunch": 2, "busc": [3, 6, 14], "busing": 16, "but": [0, 1, 2, 4, 5, 6, 7, 8, 10, 12, 13, 14, 15, 16], "button": [3, 4, 5, 12, 14, 16], "buttons": [10, 12, 14, 16], "by": [0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 12, 13, 14, 15, 16], "bypass": [12, 13], "bypassed": 13, "byte": 12, "bytecod": 8, "bytes": 6, "b\u00e1sic": [0, 1, 6, 17], "c": [1, 2, 3, 5, 6, 8, 10, 12, 15], "ca": 12, "cabec": [10, 14], "cabe\u00e7alh": [4, 10], "cach": [0, 2, 4, 5, 12], "cache_db_select": 6, "cacheabl": 6, "cached": 5, "cache\u00e1vel": 6, "caching": [6, 17], "cachorr": 11, "cad": [2, 4, 5, 8, 11, 14], "caiu": 6, "caix": [0, 6, 10], "calcul": 6, "calend": 14, "call": [0, 5, 6, 8, 12, 13, 16], "callabl": [10, 12], "callback": [6, 12, 13, 16], "callback_url": 13, "called": [1, 2, 5, 6, 7, 8, 10, 12, 14, 15, 16], "calling": [5, 6, 8], "calls": [2, 6, 8, 16], "cam": [6, 11], "caminh": [2, 4, 6, 14], "camp": [5, 7, 10, 12, 17], "can": [0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 11, 12, 13, 14, 15, 16], "cancel": [12, 16], "cancel_attrs": 16, "cannot": [2, 5, 6, 8, 12, 16], "capabiliti": [14, 16], "capac": 0, "capaz": [1, 2], "capitaliz": 16, "caputur": 16, "cap\u00edtul": [2, 4, 5, 15], "car": 6, "caract": [6, 10], "caracter": 4, "caracter\u00edst": 17, "card": 6, "careful": [5, 6, 8, 15, 16], "carg": 6, "carl": 6, "carreg": [0, 6], "carroll": 0, "carry": 15, "cart": 5, "car\u00e1ct": [4, 6], "cas": [0, 1, 2, 3, 4, 5, 8, 10, 12, 13, 14, 15, 16], "cascading": 6, "cascat": 6, "case_sensitiv": 6, "cassi": 0, "caus": [6, 12], "caveat": [6, 8, 15], "caveats": 17, "cd": 2, "cdnjs": [8, 14], "celery": 17, "cent": [5, 6, 8], "century": 12, "ceo": [7, 14], "cerc": 6, "cert": [1, 2, 6, 14], "certain": [6, 8, 12, 14], "certez": 6, "certificat": 2, "certifiqu": [6, 11], "cf": 4, "cgi": 12, "cha": 6, "challeng": 13, "cham": [2, 4, 5, 7, 8, 11, 14], "chang": [1, 2, 3, 5, 6, 7, 8, 12, 13, 14, 15, 16, 17], "change_email": 13, "change_password": [8, 13], "changed": [2, 3, 4, 5, 6, 8, 12, 15, 16], "changed_fil": 4, "changing": 6, "channel": 1, "chapt": [3, 4, 5, 6, 8, 10, 12, 14], "chapters": [1, 5], "char": 6, "charact": [6, 12], "characters": [6, 12], "charg": [2, 15], "chars": 13, "chat": 2, "chats": 1, "chav": [4, 8, 10, 11, 14], "chec": 11, "check": [3, 4, 5, 6, 12, 13, 14], "check_": 16, "check_reserved": 6, "checkbox": [8, 10], "checkboxwidget": 12, "checked": [10, 12], "checking": [1, 12, 13, 15], "checks": [2, 6, 8, 12, 13], "cherry": 12, "chicag": 6, "choic": [1, 12, 14], "choos": [12, 13], "choosen": 6, "chrom": [3, 16], "cient": 6, "cinc": 6, "circul": 6, "circumstanc": 5, "cit": [6, 10, 12], "cit0801": 7, "cit0802": 7, "cit1601": 16, "clar": 6, "clark": [7, 14], "clash": 12, "class": [5, 6, 8, 10, 12, 13, 15, 16], "class_inner_exceptions": 16, "class_styl": 14, "classific": [6, 14], "claud": 6, "claus": 6, "cle": 12, "clean": [5, 10], "cleanup": 0, "clearly": 16, "clev": 12, "cli": [1, 2], "clic": 14, "clich": 5, "click": [3, 10, 12, 14, 16], "clickabl": 14, "clicked": [14, 16], "clicks": [6, 16], "client": [0, 7, 12, 13, 16], "client_id": 13, "client_ip": 5, "client_secret": 13, "clients": 5, "clientsid": 16, "cliqu": [3, 14], "clock": 12, "clon": [2, 4, 6, 16], "cloned": 2, "clos": [6, 10], "closed": [6, 8], "closing": [5, 6], "cloudflar": [8, 14], "cl\u00e1usul": [6, 8], "cmd": 2, "cn": 13, "co": [6, 12], "coa": 6, "cod": [1, 2, 4, 5, 6, 7, 8, 10, 12, 13, 14, 15, 16], "codific": 6, "coding": 1, "cois": 6, "colegial": 13, "collapsibl": 10, "collection": [0, 15], "collections": 2, "collects": 2, "colnam": 6, "coloc": 17, "colon": 8, "color": [4, 6, 8, 10, 12, 16], "colors": [4, 6], "cols": 10, "colspan": 10, "column": [6, 14], "columns": [6, 17], "colun": [6, 14], "comand": 6, "comando": [3, 4, 6, 10, 17], "combin": [4, 5, 10, 14], "combined": [5, 6, 12], "come": [0, 5], "comec": [1, 2, 4, 6], "comes": [0, 5, 8, 12, 13, 14, 15, 16], "comet": 6, "coming": 5, "comm": [2, 16], "command": [2, 4, 6, 8], "commands": [2, 4, 6, 8, 10], "comment": [6, 10], "commit": [5, 7, 14, 16], "commits": [5, 6], "committed": [6, 15], "common": [2, 4, 5, 8, 12, 13, 15, 16], "common_filt": 6, "common_filters": 6, "commonality": 8, "communicat": 5, "communication": 6, "communications": 5, "community": [0, 6], "compact": 6, "company": 14, "compar": [6, 15], "compared": 0, "comparison": 12, "compartilh": [5, 6], "compat": 6, "compatibility": 12, "compatibl": [0, 1, 10, 12], "competitor": 0, "compil": [4, 8, 10, 12], "compilation": 8, "compiled": [4, 8, 10, 12], "compiled_css": 4, "compiling": 8, "complet": [0, 2, 6, 10, 12, 14, 16], "completed": [0, 6], "completely": [6, 8, 13], "complex": [1, 2, 4, 5, 6, 8, 10, 13, 15, 16], "complexiti": 16, "complexity": 16, "compliant": 16, "complicated": 5, "component": [0, 4, 5, 8, 10, 12, 13, 16], "component_1": 16, "components": [0, 3, 10, 12, 16], "comport": [4, 6, 10, 14], "compos": 2, "composing": 5, "compost": [6, 10], "compreend": [1, 14], "compressed": 4, "comprim": 3, "compriment": 6, "compris": 3, "compromet": [4, 6], "compromis": 0, "comput": 1, "computed": 17, "computing": 16, "comp\u00f5": 6, "comum": [5, 6], "comunic": 6, "comuns": 3, "concaten": 6, "concatenat": 10, "concatenating": 10, "conceived": 6, "concept": [0, 13], "conch": 2, "concorrent": 0, "concurrency": [6, 16], "concurrent": 16, "concurrently": [2, 12, 16], "cond": 5, "condicion": 8, "condicional": 6, "condition": [6, 12, 17], "conditions": [6, 12], "condi\u00e7\u00e3": 6, "condi\u00e7\u00f5": 6, "conect": [6, 13], "conex\u00e3": 4, "conf": 6, "confiabil": 1, "config": [2, 4], "configur": [3, 13, 14, 15, 16, 17], "configuration": 1, "configurations": 2, "configured": [5, 12, 15], "confirm": [2, 12, 14], "confirmation": 16, "confirmations": 16, "confirms": 13, "conflicts": 6, "conflit": [0, 2, 4, 6], "conform": [6, 13], "confund": 6, "confus": 6, "conhec": [1, 6], "conjunt": [6, 10, 11, 14], "conn": 5, "connect": [3, 6], "connecting": 6, "connection": [5, 6, 12], "connectionpool": 6, "connections": [5, 6, 15], "cons": 6, "conseg": 6, "consegu": 6, "consequenc": [6, 12, 16], "consequently": 12, "consid": [5, 8, 10, 12, 14], "consider": [6, 8, 10], "considered": [5, 6, 8, 15], "consist": [6, 15], "consistency": 8, "consistent": 5, "consists": [6, 14], "consol": [2, 10, 13, 16], "constant": 12, "constraining": 15, "constru": [6, 10, 14], "constructing": 6, "construction": 4, "constructor": [6, 13, 17], "constructors": 12, "construtor": [5, 10, 12, 17], "constru\u00e7\u00e3": [6, 10, 14], "constru\u00edd": [6, 14], "constr\u00f3": 6, "consult": [1, 7, 13, 14], "consulta1": 6, "cont": [2, 5, 10, 11, 13], "contador": [5, 6], "contag": 6, "contain": [2, 4, 5, 6, 8, 10, 12, 13, 16], "contained": [10, 12, 14], "containing": [0, 2, 5, 12, 13, 14, 16], "contains": [3, 5, 7, 8, 11, 12, 14, 15, 16], "contect": 8, "contenh": 5, "content": [2, 4, 5, 6, 8, 10, 12, 14, 15, 16], "contents": [8, 10, 16], "context": [3, 5, 6, 8], "contextlib": 6, "contexts": 5, "conte\u00fad": [4, 6, 10], "continu": [0, 6, 8, 16], "contr": 6, "contribu": 17, "contributed": 0, "control": [2, 8, 12, 13, 14, 16], "controll": [5, 6, 8, 10, 12, 13, 14, 15, 16], "controllers": [4, 6, 8, 10, 12, 15, 16], "controls": 12, "contr\u00e1ri": [0, 4, 6, 8], "cont\u00e9m": [2, 4, 5, 6], "cont\u00eain": 6, "cont\u00eam": [6, 11], "convenienc": 5, "convenient": [6, 17], "convention": [8, 12, 15], "conventions": [4, 6], "conven\u00e7\u00e3": 4, "conversion": [12, 17], "convers\u00e3": 6, "convert": [4, 6, 10], "converted": [1, 6, 12], "converting": 6, "converts": 12, "cooki": [0, 4, 6, 12, 16], "copi": 2, "copied": 2, "copy": [1, 2, 3, 4, 6, 14], "copyfileobj": 6, "copying": [2, 8, 10, 17], "cor": [1, 2, 4, 5], "cord": [4, 6, 11], "corey": 1, "corn": 14, "cornerston": 0, "corp": [8, 10], "corr": 17, "correct": 13, "correctly": 12, "corrent": 6, "correspond": [2, 4, 6, 11], "correspondent": [4, 6, 10], "corresponding": [3, 6, 13, 14, 15], "corresponds": [2, 6, 10], "corret": 6, "corrig": 1, "corromp": 6, "corrupted": 6, "corruption": 6, "costum": 6, "cot": 6, "cota\u00e7\u00e3": 6, "couchdb": 6, "couchdbadapt": 6, "could": [1, 2, 4, 6, 8, 10, 12, 13, 15], "count": [5, 7, 13, 14, 16], "coupl": 16, "cours": [1, 8], "cp": 2, "creat": [0, 1, 2, 4, 5, 6, 8, 12, 13, 14, 16], "create_form": 12, "create_thing": 12, "created": [0, 2, 4, 5, 6, 8, 12, 13, 16], "created_by": 6, "created_on": 6, "creating": [1, 2, 6, 13, 15, 16, 17], "creation": 6, "creativ": 12, "creativity": 13, "credential_decod": 6, "cresc": 6, "cri": [2, 3, 4, 5, 6, 8, 10, 13, 14], "cria\u00e7\u00e3": [2, 6, 14], "crit": 12, "critical": 2, "crit\u00e9ri": 6, "cross": [5, 10], "crossorigin": 8, "crt": [2, 6], "crud": [3, 12, 16], "cruz": [1, 6], "crypt": 2, "cs": 5, "csrf": [5, 12], "csrf_protection": 12, "csrf_session": 12, "css": [1, 4, 5, 8, 10, 12, 13, 14, 16], "csv": 15, "ct": 5, "ctrl": [2, 3], "cubrid": 6, "cubridadapt": 6, "cubriddb": 6, "cuj": 6, "current": [5, 6, 10, 13, 14, 15, 16], "current_record": 6, "currently": [2, 5, 8], "curs": 1, "cursor": [6, 16], "curt": 6, "custom": [0, 4, 5, 6, 8, 10, 15, 16, 17], "custom_check": 12, "custom_qualifi": 6, "customiz": [8, 12, 14], "customizabl": [12, 14], "customization": 12, "customizing": 17, "cx_oracl": 6, "c\u00edclic": 6, "c\u00f3dig": [4, 5, 6, 8, 10], "c\u00f3p": 6, "d": [2, 7, 10, 12], "dad": [0, 1, 3, 4, 5, 13, 17], "daemon": 2, "daemons": 16, "dal": [2, 4, 7, 12, 14, 16, 17], "dan": 0, "danc": 13, "dand": 4, "dangerous": 15, "daquel": 6, "dar": 6, "dash": 12, "dashboard": [2, 4, 6, 8, 12, 16, 17], "dashboard_mod": 2, "dat": [0, 2, 5, 6, 7, 8, 10, 13, 14, 15, 16], "data_label": 16, "databas": [0, 1, 3, 7, 13, 14, 15, 16, 17], "datalist": 16, "datetim": [4, 5, 6, 7, 12, 16], "datetimewidget": 12, "day": 12, "days": 12, "db": [2, 3, 4, 5, 7, 10, 12, 13, 14, 15, 16], "db1": 6, "db2": 6, "db2adapt": 6, "db2ibm": 6, "db2pyodbc": 6, "db_a": 6, "db_b": 6, "db_codec": 6, "db_fold": [5, 7, 14], "db_nam": 6, "db_uid": 6, "dbadmin": 4, "dbi": 12, "dbo": 6, "dbset": 12, "dbstor": 5, "dc": 13, "dd": 12, "deal": [6, 16], "dealfar": 0, "debounc": 16, "debug": [1, 2, 5, 6, 8], "debugg": 1, "debugged": 8, "debuggers": 15, "debugging": [1, 4], "decid": [6, 12, 14], "decim": 4, "decimal": [6, 12], "decimals": 12, "decl": [4, 6], "declar": [0, 4, 5, 6, 8], "declared": 5, "decod": 6, "decode_credentials": 6, "decoded": 6, "decomp\u00f5": 6, "decor": [1, 4, 17], "decorated": 15, "decorator": [4, 5, 6, 15], "decorators": [5, 15], "dedic": [1, 4, 15], "dedicated": [1, 5, 10], "def": [4, 5, 6, 7, 10, 12, 13, 14, 15, 16], "default": [2, 3, 4, 5, 6, 7, 10, 12, 13, 14, 15, 16], "defaults": [5, 12, 14, 15], "deferred": [6, 16], "defin": [0, 4, 5, 8, 10, 12, 14, 16], "define_tabl": [5, 7, 12, 13, 14, 15], "defined": [2, 4, 5, 6, 8, 12, 13, 14, 15, 16], "defining": 14, "definit": 12, "definition": [6, 7, 12, 14], "definitions": [6, 7, 15], "defini\u00e7\u00e3": 6, "defini\u00e7\u00f5": 6, "deform": 11, "deix": 13, "del": [5, 6, 10], "delay": 16, "delaying": 16, "deleg": 6, "delet": [2, 4, 7, 12, 14, 16], "deletabl": [12, 14], "delete_record": 6, "deleted": 6, "deleting": [6, 14], "deletion": 6, "deletions": 6, "delimit": [0, 6, 8], "delimiters": [5, 15], "delt": 16, "dem": [1, 2, 16], "demand": 6, "denormaliz": 7, "denormalization": 6, "dentr": [0, 2, 4, 6, 14], "deny": 7, "depend": [4, 5, 6], "dependenc": [0, 2, 5, 15], "dependent": [2, 3, 4, 5], "depending": [6, 8, 12, 14], "depends": [5, 6, 15], "deploy": 2, "deployment": 1, "deployment_tools": 2, "depo": [2, 3, 6], "deprecated": [12, 16], "depur": [6, 8], "deriv": 6, "derived": [6, 12], "desat": 6, "desativ": 6, "desc": 14, "descart": 6, "descendant": 10, "descobert": [2, 11], "descompact": 2, "descrev": 6, "describ": [3, 12], "described": [2, 4, 5, 6, 12], "description": [6, 7, 12, 13], "descriptiv": 12, "descrit": [2, 4, 6, 14], "desd": [5, 6], "desej": [1, 2, 5, 6, 13, 14], "desempenh": 6, "desencad": 3, "desenvolv": 0, "desenvolvedor": [1, 8, 13, 14], "desfaz": 6, "design": [0, 13, 16, 17], "designed": [0, 4, 6, 8, 12, 16], "desir": 8, "desired": [5, 12], "desloc": 6, "desnormaliz": 7, "despej": 6, "dess": [0, 5, 6, 13], "dest": [4, 6, 12], "detail": [6, 10, 14, 16], "detail_fields": 12, "detailed": [2, 14], "details": [0, 1, 5, 6, 7, 8, 12, 14], "detalh": [6, 14], "determin": [4, 5, 6, 11, 12, 13, 14], "determined": [8, 12], "determining": 5, "deterministic": 5, "dev": [1, 2, 3, 4, 5, 6, 8, 10, 13, 14], "develop": [5, 6, 8, 13, 14, 15], "developers": [0, 1, 6, 13, 16], "developing": 4, "development": [0, 1, 4, 6], "development_tools": 2, "devic": 8, "devolv": [6, 8], "di": [0, 5], "diagr": 7, "dialect": 6, "dialects": 6, "dialet": 6, "dic": 17, "dicion\u00e1ri": [10, 11, 12], "dict": [4, 5, 6, 11, 12, 14, 15, 16], "dictionari": 6, "dictionary": [4, 5, 6, 10, 12, 15], "did": [0, 4, 16], "dif": 6, "diferenc": 6, "diferent": [2, 5, 6, 11, 14], "diff": 6, "differenc": [6, 12, 15], "different": [0, 2, 5, 6, 8, 12, 13, 15, 16], "differs": [6, 14], "difficult": [2, 16], "dif\u00edcil": 1, "dig": 6, "digit": [12, 13], "dimensions": 12, "dinam": 10, "din\u00e2m": [6, 17], "dir": [2, 12, 16], "direct": 6, "directiv": [2, 8, 12], "directly": [2, 4, 6, 7, 10, 12, 13, 14, 16], "directory": 13, "direit": [3, 6], "diret": [1, 5, 6, 8], "diret\u00f3ri": 4, "dirnam": [5, 7, 14], "disabl": [6, 14], "disabled": [7, 10, 12], "disallow": 12, "discord_client_id": 13, "discord_client_secret": 13, "discount": 6, "discounted_total": 6, "discounted_total_pric": 6, "discounted_unit_pric": 6, "discriminator": 13, "discuss": 3, "discussed": [6, 8, 10, 12], "discussion": 6, "discuss\u00e3": 1, "discuss\u00f5": 1, "discut": 6, "disk": [5, 6], "dismissal": 15, "dismissibl": 5, "dispar": 6, "display": [5, 12, 13, 14, 16], "displayed": [3, 6, 10, 12, 14, 16], "displaying": [5, 12, 14], "displays": [13, 14], "dispon": 6, "dispon\u00edv": 1, "disposit": [4, 5, 13], "diss": [4, 6, 14], "distinct": [8, 12], "distinction": 6, "distin\u00e7\u00e3": 6, "distribu": 6, "distribut": 6, "distributed_transaction_commit": 6, "distribution": 6, "ditched": 0, "div": [4, 5, 8, 12, 15, 16], "divisibl": [8, 12], "division": [8, 10], "divis\u00e3": 8, "divmod": 6, "diz": [4, 6, 13, 14], "djang": [0, 1, 15], "do_connect": 6, "dobr": 6, "dobrag": 6, "doc": 1, "dockerfil": 2, "docs": [1, 2, 4], "doctor": 6, "doctyp": [8, 14], "document": [6, 8, 10, 12, 16], "documentation": [3, 12, 16], "documentations": 5, "documented": [5, 12], "does": [0, 2, 5, 6, 8, 12, 13, 14, 15, 16], "doesn": 5, "dog": [11, 12, 16], "doh": 12, "doing": [6, 12, 16], "dois": [0, 5, 6, 8], "dom": [8, 17], "domain": [12, 13], "don": [2, 4, 6, 8, 12, 13, 14, 15], "dot": 12, "doubl": [2, 6, 8], "doubt": 14, "down": [12, 16], "download": [2, 12], "download_url": 12, "downs": 6, "downsid": [6, 15], "dramat": 6, "driv": 6, "driven": 0, "driver_args": 6, "drivers": 6, "drop": 12, "dropdown": [12, 14, 16], "dropdowns": 16, "dropping": 6, "dsn": 6, "duas": [5, 6], "due": [6, 7, 12], "dummy": [6, 8], "dummyrespons": 8, "dump": 5, "dumpfil": 6, "dumps": [6, 16], "duplicat": 6, "durability": 7, "during": 14, "dynamic": [4, 8, 13], "dynamically": [6, 7, 8, 12], "d\u00e1": [0, 2, 14], "d\u00edgit": [4, 6], "ea": 6, "each": [2, 5, 6, 7, 8, 10, 12, 13, 14, 15, 16], "earli": 16, "early": 5, "easi": [7, 8], "easiest": 6, "easily": [6, 8, 10, 12, 14], "easy": [5, 8, 12], "ebook": 1, "echo": 4, "ecosyst": 16, "edge": 16, "edif\u00edci": 5, "edit": [0, 2, 3, 4, 8, 12, 13, 14, 15, 16], "edit_sidec": 16, "editabl": [14, 15], "editing": [8, 10, 12, 13, 14], "editor": [1, 8], "editors": 8, "edi\u00e7\u00e3": 0, "edi\u00e7\u00f5": 3, "education": 2, "efeit": 6, "efet": 6, "effect": [3, 6, 12], "efficient": 0, "efficiently": [1, 15], "efforts": 1, "efg": 10, "eficient": [5, 6], "eith": [6, 12], "el": 10, "element": [6, 8, 10, 12, 14, 16], "elements": [6, 10, 12, 16], "elev": 6, "elimin": [6, 14], "else": [2, 6, 12, 13, 14, 15, 16], "elt": 16, "el\u00e9tr": [4, 5, 13], "emacs": 8, "email": [2, 8, 12, 13, 15], "emails": 12, "emails_onvalidation": 12, "embed": 10, "embedded": [8, 12], "embedding": 8, "ember": 12, "embor": 6, "emerging": 16, "emit": [3, 6], "employ": 5, "employe": 14, "empreg": 14, "empres": 14, "empty": [2, 4, 12, 16], "empty_regex": 12, "en": [5, 7], "enabl": [1, 5, 7, 10, 13, 15, 16], "enable_record_versioning": 6, "enabled": [5, 7, 13, 15], "encaix": 4, "encapsulat": [8, 10], "encerr": 8, "enclosed": 6, "enclosing": 8, "encod": 6, "encoded": [5, 6, 12, 16], "encoding": 6, "encontr": [4, 6, 8, 11, 13], "encrypted": [2, 5], "encryption": 0, "end": [4, 6, 8, 12, 13, 14, 16], "enderec": 6, "ending": 8, "endpoint": [13, 16], "ends": [6, 8, 15], "enforc": [5, 12], "enforced": [6, 12, 15], "enfrent": [1, 6], "engin": [6, 12], "engineering": 2, "english": 5, "enough": [12, 13], "enquant": [0, 6, 8], "enqueu": 16, "enqueue_run": 16, "enqueueing": 16, "ensin": 13, "ensur": 12, "entant": [6, 8, 10, 14], "entend": 6, "enter": [4, 12, 13], "entered": 10, "entering": 5, "enterpris": [1, 13], "entidad": 6, "entir": [8, 15, 16], "entity_quoting": 6, "entrad": [4, 6, 10, 11], "entri": [7, 12, 14], "entropy": 12, "entry": [0, 6, 15], "ent\u00e3": [2, 4, 6, 13], "env": [1, 15], "envelop": 16, "envi": [10, 14], "environ": [5, 15], "environment": [0, 1, 4, 5, 6], "environments": 1, "envolt": 11, "envolv": 6, "eo": 6, "epub": 1, "eq": 7, "equal": [7, 12, 13, 16], "equals": [10, 13], "equip": 5, "equivalent": [4, 5, 6, 10, 12, 15], "equivalently": 10, "errad": 6, "errlog": 5, "erro": [2, 3, 6], "error": [2, 3, 5, 6, 7, 8, 10, 12, 16], "error_messag": 12, "errorlog": 2, "errors": [1, 5, 6, 7, 12, 15], "escap": [6, 8, 10], "escaped": [6, 8, 10], "escaping": [6, 8], "escolh": [1, 4, 6], "escond": 6, "escrav": 6, "escrev": [6, 8, 10], "escrit": [6, 8], "espac": [6, 11, 14], "espec": [5, 6, 10], "especial": [2, 4, 6, 11], "especializ": 6, "especially": [0, 2, 5, 12, 13], "especif": [4, 6], "especific": [4, 5, 6], "especifiqu": 14, "espec\u00edf": [1, 2, 6], "esper": [4, 5, 6], "esprim": 4, "esquec": 6, "esquem": 6, "esquerd": [6, 14], "estabelec": 6, "establish": 6, "established": 6, "establishing": 15, "estad": [5, 6], "estam": 6, "estar": [4, 6, 10], "estend": [0, 5, 6], "estil": 14, "estiv": 6, "estrangeir": [1, 14], "estreit": 6, "estrutur": [4, 5, 6, 11], "est\u00e1t": [10, 17], "est\u00e3": [5, 6, 7, 10, 13], "etap": 6, "etc": [4, 5, 6, 7, 11, 15], "etiquet": [6, 10], "eval": 16, "evaluat": [5, 12, 16], "evaluated": [6, 7], "even": [1, 4, 5, 6, 8, 10, 12, 14, 15, 16], "event": 6, "event_tim": 6, "events": [2, 16], "eventually": 5, "ever": 6, "every": [0, 5, 6, 13, 14, 15, 16], "everyon": [0, 1], "everything": [2, 15, 16], "evit": [0, 2, 6, 8, 12], "evolution": 0, "ex": 6, "exact": [8, 15], "exactly": 5, "exampl": [1, 2, 4, 5, 6, 8, 10, 11, 13, 17], "exat": [6, 8], "excellent": [1, 14], "except": [2, 5, 6, 8, 10, 12, 13, 16], "exception": [5, 6, 12, 13, 16], "exceptions": [4, 5, 16], "excep\u00e7\u00e3": 8, "excerpt": 8, "excet": [5, 6], "exce\u00e7\u00e3": [4, 5, 6, 8], "exce\u00e7\u00f5": 4, "exclu": 6, "exclud": 12, "exclus": 6, "exclusiv": [12, 13], "exclusively": [0, 5, 6], "exclus\u00e3": 14, "exclu\u00edd": [2, 6], "exe": 2, "execu": [2, 4], "execut": [0, 2, 3, 6, 12], "executabl": [6, 10], "executed": [2, 5, 6, 8, 15, 16], "executing": 16, "execution": [1, 16], "exempl": [2, 3, 4, 5, 6, 7, 8, 10, 11, 12, 13], "exercis": 5, "exerc\u00edci": 13, "exib": [3, 6, 8, 10, 14], "exibi\u00e7\u00e3": [13, 14], "exig": [1, 2, 6, 13], "exist": [1, 2, 4, 5, 6, 8, 12, 16], "existenc": 13, "existent": [2, 6, 13, 14], "existing": [2, 5, 6, 12], "exists": [5, 6], "exit": 2, "exiting": 5, "exp": [4, 6], "expand": 3, "expect": [6, 12], "expected": 15, "expects": [2, 10], "experienc": [1, 13], "experienced": 0, "experiment": [1, 12], "experimental": [2, 5], "experimenting": 1, "expir": 5, "expiration": 5, "explain": 12, "explained": [5, 6, 12, 14], "explanatory": 6, "explic": [4, 6], "explicit": [0, 2, 4, 5, 6, 8, 12], "explicitely": 16, "explicitly": [0, 2, 5, 6, 8, 10, 12], "explict": 6, "exploring": 3, "expl\u00edcit": [6, 13], "expor": [4, 13], "export": 17, "export_to_csv_fil": 6, "exporting": 6, "expos": [4, 5], "expost": 7, "express": 12, "expressed": 12, "expression": [4, 6, 8, 11, 12, 14], "expressions": [10, 12, 16], "express\u00e3": [6, 7, 11, 14], "express\u00f5": 11, "exp\u00f5": [0, 3, 4, 6, 13], "extend": [5, 6, 12, 13, 15, 16], "extended": 8, "extends": [6, 8, 16], "extensibl": 15, "extension": [12, 15], "extensions": 12, "extensively": 3, "extens\u00e3": 6, "extern": 2, "external": 6, "extra": [5, 6, 12, 13], "extra_fields": 5, "extract": [6, 12], "extracted": 6, "extracts": 16, "extras": 6, "extra\u00edd": 6, "extrem": 6, "f": [6, 13, 14, 15, 16], "fa": 14, "facebook": [0, 5], "facil": [4, 5, 6], "facilitat": 4, "fact": [4, 5, 15], "factori": 10, "fail": [6, 8, 12, 16], "failed": 6, "fails": [3, 12], "failur": [6, 12, 16], "fak": 6, "fake_migrate_all": 6, "falh": 4, "fall": 12, "fals": [2, 5, 6, 7, 8, 10, 12, 13, 14, 15, 16], "falt": 6, "famous": 1, "fancy": 16, "far": [14, 16], "fas": 6, "fast": [0, 4, 6, 8, 15, 16], "fat": 6, "fath": 6, "father_id": 6, "favorite_color": 5, "faz": [2, 5, 8, 10, 12, 13], "fb00": 12, "fdb": 6, "fe80": 12, "feasibl": [2, 12], "featur": [0, 4, 6, 7, 8, 15, 17], "february": 5, "fech": [6, 8, 10], "fechament": 10, "feit": 6, "fetch": [6, 15, 16], "fetchon": 6, "few": [8, 13, 16], "fez": [2, 6], "ff00": 12, "fic": 6, "ficheir": 6, "fict\u00edc": 6, "fict\u00edci": 6, "fid": 6, "field": [2, 4, 5, 7, 13, 14, 15, 16, 17], "field1": 6, "field2": 6, "field3": 6, "field_id": 14, "fieldnam": [6, 16], "fields": [5, 7, 12, 13, 14, 15, 17], "fieldstorag": 12, "fifth": 14, "fil": [0, 1, 2, 3, 5, 6, 8, 10, 11, 13, 14, 16, 17], "file_content": [6, 16], "file_nam": [6, 16], "file_path": 15, "fileir": 6, "filenam": [2, 4, 5, 6, 12], "filep": 4, "filepaths": 4, "filesyst": [4, 5, 6], "fileuploadwidget": 12, "fill": [12, 16], "filled": 12, "filt": [2, 4, 7, 12, 14], "filter_in": 12, "filter_out": 14, "filtered": 13, "filters": [4, 12], "filtr": [13, 14], "filtrag": [4, 14], "fim": [1, 2, 5, 6], "fin": [2, 13, 14], "final": [1, 2, 5, 6, 11], "finally": [4, 14], "find": [1, 2, 4, 12, 13, 14], "find_by_tag": 13, "find_match": 11, "findall": 12, "finding": 14, "finds": [6, 16], "fins": 6, "firebird": 6, "firebird_embedded": 6, "firebirdadapt": 6, "firebirdembedded": 6, "firebirdembeddedadapt": 6, "firefox": [3, 16], "firfox": 16, "first": [0, 2, 3, 5, 7, 8, 10, 12, 13, 14, 15, 16], "first_nam": [4, 5, 13, 14], "first_only": 10, "first_row": 6, "first_row_dict": 6, "fist": 12, "fits": 12, "fix": [5, 6], "fixed": [6, 15], "fixtur": [0, 2, 6, 10, 15, 17], "fixur": 17, "fiz": 1, "fk_field": 16, "fk_tabl": 16, "fkdaog": 8, "flag": 12, "flash": [8, 12, 16, 17], "flask": [0, 15], "flexibil": [0, 14], "flexibility": 16, "flexibl": [6, 13], "flex\u00edv": 0, "flex\u00edvel": 6, "flight": 7, "float": [4, 12], "floating": 12, "flow": 13, "flux": 6, "fn": 2, "focus": 16, "fold": [1, 2, 3, 4, 5, 6, 7, 11, 12, 14, 15], "folders": 2, "follow": [2, 4, 7, 13, 14, 15], "followed": [2, 5, 12], "following": [1, 4, 5, 6, 8, 10, 12, 13, 14, 15, 16], "follows": [5, 6, 12], "font": [6, 8, 12, 14], "foo": 14, "foot": 8, "footers": 8, "footing": 13, "forbid": 12, "forbidden": 12, "forc": [2, 6, 7, 12, 13], "forcing": 12, "foreground": 12, "foreign": 14, "foreign_key_checks": 6, "forgery": 5, "forget": 14, "form": [0, 4, 5, 6, 7, 11, 13, 14, 17], "form_basic": 12, "form_custom_widgets": 12, "form_exampl": 12, "form_minimal": 12, "form_nam": 12, "form_widgets": 12, "format": [4, 5, 7, 10, 11, 13, 14], "formats": 12, "formatt": 16, "forma\u00e7\u00e3": 6, "formdat": 7, "forms": [6, 10, 14, 15, 16], "formstyl": [12, 14, 16], "formstylebootstrap4": 12, "formstylebulm": [12, 14, 16], "formstyledefault": [12, 14], "formstylefactory": 16, "formul\u00e1ri": [6, 13, 14, 17], "fornec": [0, 2, 3, 4, 5, 6, 10, 13, 14], "forum": 3, "foruml\u00e1ri": [6, 10, 17], "forward": 1, "found": [2, 6, 12], "four": [2, 6], "fourth": 12, "fp": 5, "fr": 11, "fracass": 6, "framework": [0, 2, 12, 13, 14, 15, 16], "frameworks": [0, 2, 5, 15, 16], "fras": 6, "fre": [1, 5, 13], "freetext": 16, "frent": 8, "frequently": 12, "frequ\u00eanc": 1, "friendly": [0, 5, 8], "from": [0, 1, 3, 4, 5, 6, 7, 8, 10, 11, 12, 13, 14, 15, 16], "from_address": 13, "front": [12, 16], "frontends": 16, "fronts": 0, "fsstorag": 5, "ftps": 12, "fug": [6, 8], "full": [2, 4, 6, 8, 12, 16], "fullnam": 6, "fully": [4, 5, 6, 12], "func": [2, 5], "funcion": [6, 17], "funcional": [0, 5, 6], "function": [2, 4, 5, 6, 7, 8, 10, 12, 14, 15, 16], "functional": 16, "functionaliti": 2, "functionality": [0, 8, 15], "functions": [2, 5, 10, 16], "functools": 16, "fund": 4, "fun\u00e7\u00e3": [4, 6, 8, 10], "fun\u00e7\u00f5": [4, 8], "futur": [5, 15, 16], "f\u00e1bric": 6, "f\u00e1cil": [0, 6, 8, 10, 13], "f\u00edsic": 13, "g": [1, 2, 6, 10, 12], "gain": 2, "gananc": 4, "garant": [6, 8], "garraf": 4, "gavgavian": 1, "gend": 6, "general": [5, 6, 12, 13], "generaliz": 6, "generally": [2, 5, 8], "generat": [2, 6, 8, 10, 12, 13, 14, 15, 16], "generated": [1, 5, 6, 8, 12, 14, 16], "generation": 1, "generator": 10, "generic": [2, 4, 5, 6, 12], "generically": 6, "genindex": 17, "gen\u00e9r": 6, "ger": [6, 8, 10, 13, 14], "gerador": 6, "geral": [0, 2, 6, 7, 10], "german": 11, "gest\u00e3": [0, 1], "get": [1, 2, 4, 5, 6, 8, 12, 13, 14, 15, 16, 17], "get_cooki": 16, "get_us": [4, 5, 13, 15], "get_vars": [7, 15], "gets": [8, 13], "getvalu": 6, "gevent": [1, 2], "geventwebsocketserv": 2, "geventws": 2, "gia": 5, "gib": 6, "gif": 12, "git": [1, 2], "github": [2, 3, 4, 6, 14], "gitlat": 1, "giv": [4, 5, 6, 8, 13], "given": [2, 5, 6, 8, 12, 16], "giving": 5, "global": [0, 6, 15, 16], "globally": [2, 6], "globals": [5, 6, 8, 13, 15], "go": [2, 4, 14], "goes": [6, 12], "going": [4, 16], "good": [3, 12], "googl": [0, 3, 5, 8, 12, 14], "googledatastor": 6, "googledatastoreadapt": 6, "googlemysql": 6, "googlepostgr": 6, "googlesql": 6, "googlesqladapt": 6, "gost": 6, "got": 6, "gotch": 6, "gott": 8, "grac": 6, "grad": 0, "grand": 6, "granul": 6, "granulary": 12, "graphql": 7, "grau": 6, "grav": 6, "grava\u00e7\u00f5": 12, "gravidad": 6, "grav\u00e1vel": 6, "great": 16, "green": [4, 6, 12, 15], "grelh": 14, "grid": [0, 17], "grid_class_styl": 14, "grid_tutorial": 14, "gridactionbutton": 14, "gridclassstyl": 14, "gridclassstylebulm": 14, "grids": 14, "group": [1, 3, 5, 13, 15], "group_nam": [5, 13], "groupby": 12, "grouping": 2, "groups": [0, 1, 3, 5, 13, 15], "growing": [0, 16], "grup": [6, 13], "gt": [7, 10], "guarant": 5, "guaranteed": [6, 15, 16], "gui": 3, "guid": 2, "guidelin": 13, "gunicorn": 2, "gunicorngevent": 2, "gz": 12, "h": [2, 12], "h1": [4, 8], "h2": [8, 12], "habilit": 6, "had": 6, "hamburg": 8, "hand": [2, 16], "handl": [2, 4, 5, 6, 15, 16], "handled": [4, 5, 12, 16], "handlers": 4, "handling": 14, "handy": 6, "hanging": 1, "happen": 5, "happens": 6, "hard": 15, "hardcod": 5, "harmoniz": 4, "has": [0, 2, 4, 5, 6, 8, 12, 13, 14, 15, 16], "has_membership": 13, "hash": [2, 6, 12], "hashed": 12, "hav": [0, 1, 2, 5, 6, 7, 8, 10, 12, 13, 14, 15, 16], "head": [4, 5, 6, 8, 14, 16], "headers": [4, 8, 16], "heading": 12, "headings": [10, 14], "height": [12, 14, 16], "hell": [4, 5, 6, 8, 10, 12, 13, 16], "help": [1, 2, 5, 6, 7, 8, 10, 12, 14, 15], "helpers": [4, 6, 8, 12, 14, 15, 17], "helps": [6, 8, 12], "henc": [0, 2, 5, 6, 12], "her": [0, 1, 2, 4, 5, 6, 7, 8, 10, 12, 13, 14, 16], "herd": 6, "her\u00f3": 7, "hesitat": 6, "hex": 12, "hh": 12, "hi": 16, "hid": 14, "hidden": [12, 16], "hidden_div": 16, "hidden_input": 16, "hierarchical": 13, "high": [12, 13], "highest": 12, "highlighting": [1, 8], "highly": [1, 14], "hints": 14, "his": 12, "historical": 0, "history": 12, "hist\u00f3r": [5, 6], "hmac": 12, "ho": 5, "hold": 16, "holds": 6, "hom": 8, "hom\u00f3log": 4, "hor": 6, "hosped": 1, "host": [2, 5, 12, 13], "hosted": 1, "hour": 12, "hous": 15, "housekeeping": 6, "houv": 6, "how": [0, 2, 4, 5, 6, 7, 8, 12, 13, 14, 15, 16], "howev": [6, 8, 12, 16], "href": [8, 10, 13, 14], "hs256": 5, "html": [1, 2, 4, 5, 7, 8, 11, 12, 13, 14, 15, 16], "html5": 8, "htmx": [14, 17], "htmx_form": 16, "htmx_form_dem": 16, "htmx_grid": 16, "htmx_list": 16, "htmxautocompletewidget": 16, "http": [0, 2, 3, 4, 5, 6, 7, 8, 10, 11, 12, 13, 14, 15], "https": [1, 3, 4, 5, 7, 8, 12, 13, 14, 16], "httrespons": 5, "hulk": 12, "hundrands": 16, "hx": 16, "hypertext": 16, "hyphen": 10, "h\u00e1bit": 2, "h\u00edfens": 10, "i": [4, 5, 6, 7, 8, 12, 13, 16], "i18n": 11, "ibm_db_dbi": 6, "icon": [8, 14], "icons": 14, "id": [2, 5, 7, 8, 10, 12, 13, 14, 15, 16], "id1": 6, "id2": 6, "id_field_nam": 14, "id_valu": 14, "ide": [0, 1, 2, 3, 6], "ident": 7, "identical": 15, "identifi": 6, "identific": [6, 10], "identify": 4, "identifying": [5, 12], "identity": [6, 7, 15], "ides": 15, "idiom": 11, "idn": 12, "ids": 6, "ie": 12, "ietf": 12, "if": [0, 1, 2, 3, 4, 5, 6, 7, 10, 12, 13, 14, 15, 16], "ifram": 12, "ignor": [5, 6, 8, 12, 14], "ignore_attribute_plugin": 14, "ignore_common_filters": [6, 12], "ignore_field_cas": 6, "ignored": [4, 8, 10, 14, 16], "igual": [6, 7], "iip": 6, "illustrat": 6, "ilustr": [6, 8], "imag": [6, 8, 10, 12], "image_fil": 6, "imagin": [5, 6, 8, 16], "imaging": 12, "imap": 6, "imapadapt": 6, "imaplib": 6, "imediat": 14, "img": [4, 12], "immediat": 2, "immediately": 6, "immensely": 0, "imped": [6, 10], "impersonat": 13, "impersonating": 13, "implement": [5, 6, 8, 13], "implementation": [4, 8, 12, 15], "implementations": 16, "implemented": 6, "implements": [5, 6], "impli": 7, "implications": 5, "implicit": 6, "implicitly": 12, "impl\u00edcit": 6, "impor": 6, "import": [0, 1, 2, 4, 5, 7, 8, 10, 11, 12, 13, 14, 15, 16, 17], "import_and_sync": 6, "import_from_csv_fil": 6, "important": [0, 2, 4, 5, 6, 12, 13], "imported": [2, 12, 13, 15], "importing": 6, "impos": 8, "impot": 12, "imprim": 6, "improved": 12, "improvement": 14, "improving": [12, 13], "in": [0, 1, 2, 3, 4, 6, 7, 11, 12, 13, 14, 15, 17], "inalter": 6, "inclu": [0, 4, 6, 8, 10, 14], "includ": [4, 6, 7, 10, 14, 16], "include_action_button_text": 14, "include_paths": 4, "included": [6, 8, 12, 14], "including": [5, 12, 14, 15, 16], "inclusion": 0, "inclusiv": [0, 12], "inclus\u00e3": 10, "inclu\u00edd": [6, 10], "incoming": 2, "incomum": 6, "incorpor": 6, "incorret": 8, "increased": 5, "increment": 6, "indeed": [0, 5], "indent": 8, "indentation": 8, "indented": 8, "independent": [0, 5, 6, 13], "indesej": [2, 6], "index": [1, 2, 4, 5, 6, 7, 8, 10, 12, 13, 14, 15, 16], "indic": [4, 6], "indicat": [12, 15], "indicator": 16, "individu": [0, 2, 5, 6], "individual": [5, 6, 7, 8, 12], "indo": 6, "inefficient": 5, "ineficient": 6, "infinit": 6, "info": [2, 4, 5, 13], "inform": [1, 4, 5, 6, 12], "information": [5, 6, 7, 12, 13, 15, 17], "informed": 6, "informix": 6, "informixadapt": 6, "informixdb": 6, "informixs": 6, "ingredient": 4, "ingres": 6, "ingresadapt": 6, "ingresdb": 6, "ingresu": 6, "ingresunicod": 6, "ingresunicodeadapt": 6, "inic": [2, 4], "inicializ": [4, 5], "init": [4, 14], "initial": [8, 12], "initializ": 2, "initialized": 0, "inject": [12, 17], "injected": [5, 8, 10, 12], "injecting": 10, "injection": 6, "injections": 10, "inje\u00e7\u00e3": 6, "inlin": 16, "inner": [5, 16], "input": [2, 5, 6, 8, 12, 16], "inputs": [12, 16], "insegur": 10, "insensitiv": 12, "inser": [3, 8], "insert": [5, 7, 8, 12, 13, 14, 16], "inserted": 8, "inserting": 12, "inserts": 12, "inser\u00e7\u00f5": 6, "insid": [1, 2, 4, 5, 6, 8, 10, 12, 14, 15, 16], "insir": 6, "insist": 10, "inspector": 8, "inspired": 7, "instal": [3, 6, 13, 17], "install": [2, 6, 13, 16], "installation": 2, "installations": 17, "installed": [0, 1, 2, 3, 4, 5, 6], "installs": 2, "instanc": [6, 10, 12, 14, 16], "instanci": 6, "instantiat": [6, 13, 15], "instantiated": 6, "instantiation": [13, 14], "instead": [1, 4, 5, 6, 8, 10, 12, 13, 14, 15, 16], "instructions": [2, 12], "instru\u00e7\u00e3": 6, "instru\u00e7\u00f5": 6, "inst\u00e2nc": [6, 14], "int": [4, 6, 12, 13, 15], "int2ip": 6, "integ": [2, 6, 7, 10, 12, 16], "integers": 12, "integr": 0, "integrated": 1, "integration": 16, "integrity": [8, 16], "inteir": [4, 6], "intended": [6, 16], "intentionally": 12, "interaction": 5, "interag": 0, "interchangeably": 13, "interfac": [0, 3, 5, 6, 14, 15, 16], "interior": 8, "intermedi\u00e1r": 6, "intern": [5, 6], "internacionaliz": [0, 4, 17], "internal": [0, 1, 8, 13], "internally": [4, 5, 6, 14], "internationaliz": 12, "internationalization": [5, 12, 15], "internationalized": 12, "interpret": [0, 6], "interpreted": 10, "interpreting": 7, "interromp": 6, "intersec\u00e7\u00e3": 6, "into": [0, 2, 4, 5, 6, 8, 10, 12, 15, 16], "introdu": 2, "introduc": 0, "introduction": [1, 17], "introduz": 8, "intuitively": 12, "invalid": [2, 6, 12], "invalidated": 5, "invalidating": 12, "invers": 6, "invert": [6, 12], "invisibl": 6, "involv": [6, 14, 15], "involved": [6, 8], "inv\u00e9s": 6, "in\u00edci": 6, "in\u00fatil": 6, "io": [2, 6], "ip": [6, 12], "ip2int": 6, "ip_list": 13, "ipaddr": 6, "ipaddress": 13, "iptabl": 2, "ipv4": [6, 12], "ipv4address": 13, "ipv4network": 13, "ipv6": 12, "irem": [4, 5], "ir\u00e1": [2, 3, 4, 6, 8, 13, 14], "is": [0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 12, 13, 14, 15, 16], "is_6to4": 12, "is_activ": 6, "is_automatic": 12, "is_dat": 6, "is_datetim": 6, "is_decimal_in_rang": 6, "is_empty_or": 6, "is_float_in_rang": 6, "is_impersonating": 13, "is_in_db": [6, 14], "is_in_set": 6, "is_int_in_rang": 6, "is_json": 6, "is_length": 6, "is_link_local": 12, "is_localhost": 12, "is_multicast": 12, "is_not_empty": 6, "is_null_or": 14, "is_privat": 12, "is_public": 6, "is_reserved": 12, "is_routeabl": 12, "is_tered": 12, "is_tim": 6, "isdir": [7, 14], "isn": [12, 14], "iso": 7, "isolation": 16, "issu": [0, 6], "it": [0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 11, 12, 13, 14, 15, 16], "italian": [5, 11], "item": [6, 8, 10], "itemize1": 8, "itemize2": 8, "items": [6, 7, 8, 12], "itens": 6, "iter": 8, "iterabl": [6, 12], "iterations": 12, "iterators": 6, "iterselect": 6, "its": [0, 1, 2, 3, 4, 5, 6, 8, 10, 12, 13, 14, 15, 16], "itself": [2, 6, 12, 16], "it\u00e1l": 10, "iv": 6, "janel": 2, "javascript": [1, 4, 7, 10, 16], "jdbc": 6, "jdbcpostgr": 6, "jdbcpostgresqladapt": 6, "jdbcsqlit": 6, "jdbcsqliteadapt": 6, "jetbrains": 1, "jim": [0, 1, 14], "jinja2": 5, "job": [7, 12, 14], "jog": [6, 11], "john": [0, 6], "join": [4, 5, 7, 12, 14, 15], "joined": 14, "joins": [14, 17], "jonathan": 6, "jorn": 1, "journalist": [7, 14], "jpeg": 12, "jpg": 12, "jpsteil": 14, "jquery": [10, 12, 16], "js": [0, 4, 5, 8, 11, 15, 17], "jsl": 16, "json": [0, 1, 2, 4, 5, 6, 7, 11, 12, 15, 16], "junt": [10, 14], "jun\u00e7\u00e3": [6, 13], "jun\u00e7\u00f5": 6, "just": [1, 2, 4, 5, 6, 7, 8, 12, 14, 16], "jwt": 5, "jython": 6, "k": [5, 8, 15], "kargs": 10, "kbd": 2, "kbytes": 5, "keep": [1, 2, 4, 5, 6, 7, 8, 10, 12, 15], "keep_valu": 12, "keeps": [5, 14], "kell": 0, "ken": 6, "kent": [7, 14], "kevin": 0, "key": [2, 4, 5, 6, 7, 10, 12, 13, 17], "keycod": 16, "keyed": 6, "keys": [6, 7], "keyup": 16, "keyword": [6, 8, 10], "keywords": 6, "kfield": 16, "killed": 16, "kind": 4, "kindness": 0, "kinterbasdb": 6, "know": [5, 14], "known": [6, 8], "known_expressions": 11, "knows": 5, "ktabl": 16, "kwargs": [6, 16], "ky8iq0g4b3cyey6wyhn3yt9pw0xpsrivlkmxe40ptknxrlnz9": 8, "l": [2, 12], "la": [4, 6], "label": [6, 7, 8, 12, 16], "labeling": 15, "labels": 12, "lac": 6, "lacking": 12, "lacks": 15, "lad": [1, 5, 6], "lambd": [5, 6, 10, 12, 14, 16], "languag": [1, 4, 5, 8, 11, 15, 16], "larg": [0, 12], "last": [1, 5, 8, 12, 13, 14, 16], "last_insert_id": 6, "last_nam": [5, 13, 14], "last_row": 6, "lastdot": 12, "lastrowid": 6, "lat": [1, 2, 4, 5, 6, 8, 10, 12, 14], "latest": [2, 6, 15], "latin1": 6, "latt": [6, 12, 15], "launch": [1, 2], "lax": 5, "lay": [5, 15, 17], "layers": 5, "layout": [12, 13, 14, 15, 16, 17], "layouts": [8, 14], "lazily": 16, "lazy": [2, 4, 6], "lazy_tabl": 6, "lazy_total_pric": 6, "ldap": [0, 5], "ldap_plugin": 13, "ldap_setting": 13, "ldap_settings": 13, "ldapplugin": 13, "lead": [14, 16], "learn": [1, 6], "least": [1, 2, 12, 15, 16], "leav": [5, 6], "left": [8, 12, 14, 16], "legacy": 6, "leg\u00edvel": 6, "leitur": 6, "lembr": [3, 6, 8, 12], "len": [12, 16], "length": [6, 12], "ler": [1, 6], "less": [7, 12, 15, 16], "let": [7, 12, 16], "lets": 2, "letters": 12, "letting": 6, "lev": [6, 10], "levant": 6, "level": [2, 6, 7, 12, 13], "leverag": 0, "li": [8, 12, 13, 16], "lib": 2, "libldap2": 13, "librari": 13, "library": [2, 6, 11, 12, 15, 16], "libs": [8, 10, 14], "libsasl2": 13, "libsass": 4, "licens": 1, "lid": [1, 4, 5, 6, 14], "lif": 16, "lifespan": 12, "lifetim": 5, "lig": [2, 5, 6, 10], "liga\u00e7\u00e3": [4, 5, 6], "liga\u00e7\u00f5": [6, 10], "light": 15, "lik": [0, 1, 2, 3, 4, 5, 7, 8, 10, 11, 12, 13, 14, 15, 16], "limit": [5, 6, 7, 12, 13], "limitation": 8, "limited": [0, 2, 5, 15, 16], "limiting": 16, "limits": 12, "limp": 1, "lin": [2, 4, 5, 7, 8, 10, 12, 13, 14, 16], "linguag": [0, 4, 5, 17], "linguagens": 4, "linh": [5, 6, 8, 10, 14, 17], "link": [4, 7, 8, 10, 12, 13, 14], "linked": 7, "links": [2, 6, 14, 16], "linting": 1, "linux": 2, "list": [0, 1, 2, 4, 5, 7, 8, 10, 12, 13, 14, 16], "list_of_fields": 6, "listabl": 6, "listagens": 10, "listed": [5, 12, 16], "listening": 3, "listproperty": 6, "lists": [6, 14], "liststringproperty": 6, "listwidget": 12, "littl": [1, 5, 6], "liv": 16, "livr": [1, 6], "lix": 6, "ll": [1, 2, 3, 5, 6, 8, 12, 14, 16], "lo": [1, 2, 3, 4, 6, 7, 8, 10], "load": [3, 5, 16], "loaded": [4, 8, 14, 16], "loading": 16, "loads": [6, 16], "loazkjy": 8, "loc": 5, "local": [3, 5, 8, 12, 13, 14], "localhost": [2, 4, 5, 6, 12], "localiz": 4, "locally": 2, "locals": [5, 12, 15], "locat": 15, "location": [2, 4, 6, 8, 15], "locked": 6, "locking": 5, "locks": 16, "log": [0, 2, 4, 5, 6, 8, 10, 13, 15, 16], "logerrors": 5, "logfil": 6, "logged": [5, 8, 13, 15], "logging": [2, 13], "logging_level": 2, "logic": [2, 5, 6, 13, 15, 16], "logical": 12, "login": [0, 2, 3, 4, 5, 6, 8, 12, 13, 15], "logout": [0, 8, 13], "logs": [2, 5, 6], "loj": 6, "long": [0, 2, 6, 12, 16], "longtext": 6, "look": [5, 6, 7, 12, 13], "looking": 3, "looks": [2, 6, 12], "lookup": [5, 7], "lookups": 12, "loop": [6, 8, 16], "looping": 6, "loops": 16, "los": [2, 4, 6, 12], "lost": [5, 15], "lot": [4, 6], "lots": 1, "loved": 0, "low": [0, 12], "lowercas": 12, "lowest": 12, "lru": 5, "lt": 10, "lts": 2, "luc": [0, 1], "lug": [1, 5, 6], "lumin\u00e1r": 4, "l\u00e1": [2, 4], "l\u00edngu": 1, "m": [0, 2, 6, 10, 12], "mac": [2, 6], "macac": 5, "macneiln": 2, "mad": [8, 12, 14], "magically": 0, "mai": 5, "mail": [2, 3, 5, 12, 13], "mailing": 6, "mailt": 12, "main": [1, 2, 3, 4, 6, 8, 14, 15, 16], "maintain": [6, 8, 16], "maintainability": 6, "maintainabl": 14, "maintenanc": 16, "maior": [6, 7], "mai\u00fascul": 6, "major": 6, "mak": [0, 1, 2, 5, 6, 8, 10, 12, 13, 14, 15, 16], "makefil": 2, "making": [6, 8], "man": 16, "manag": [2, 3, 4, 5, 6, 13, 16], "managed": 0, "management": 12, "managing": 6, "mandatory": [5, 8], "maneir": [5, 6, 14], "manipul": 6, "manipulat": 12, "manipulated": 12, "mann": 15, "manual": [2, 3, 4, 6], "manually": [2, 4, 6, 10, 13, 14], "many": [0, 1, 2, 4, 5, 7, 8, 12, 14, 15, 16], "map": [4, 6, 10, 11], "map_non": 6, "mapping": [2, 6, 12, 15], "maps": [6, 10], "marc": [1, 6, 10, 13], "marca\u00e7\u00e3": 10, "margin": [8, 16], "marked": 6, "massim": [0, 6], "mast": [1, 2, 14], "match": [2, 5, 6, 8, 10, 11, 12], "matched": [4, 7, 10, 12], "matching": [7, 10, 12], "matem\u00e1t": 6, "material": 6, "math": 16, "matriz": 10, "matters": 15, "max": [11, 12, 16], "max_concurrent_runs": 16, "maximum": [5, 12], "maxip": 12, "maxlen": 12, "maxsiz": 12, "may": [2, 4, 5, 6, 8, 10, 12, 15, 16], "md": 1, "md5": 12, "mean": 15, "meaning": [6, 12, 13], "meanings": 12, "means": [1, 2, 3, 5, 6, 8, 12, 13, 15], "mecan": [5, 6, 8], "mechanism": [0, 6, 8, 10, 13, 15], "med": 1, "mediant": 8, "mei": 6, "melhor": [0, 1, 6, 11, 14, 17], "memb": [12, 13], "membership": [0, 5, 12, 13, 15], "memberships": 5, "membr": 13, "memcach": [0, 6], "memoiz": 17, "memory": [5, 6], "men": [1, 2, 5, 6], "menor": 6, "mensag": 14, "mensagens": [5, 6], "ment": 1, "mention": 5, "mentioned": [13, 16], "menu": [8, 12, 13], "menus": [8, 12], "mes": [6, 10], "mescl": 6, "mesm": [0, 1, 2, 4, 5, 8, 10, 11, 14], "messag": [2, 4, 5, 7, 8, 12, 14, 15, 16], "messed": 1, "mestr": 6, "met": [6, 8, 10], "metad": 6, "metadat": 6, "metatag": 10, "method": [4, 5, 6, 7, 8, 10, 12, 13, 14, 15, 16], "methods": [5, 7, 10, 12, 13, 14, 17], "mfa": 13, "micah": 0, "microsoft": [1, 13], "mid": 6, "middlewar": 5, "might": [7, 12], "migr": 6, "migrate_enabled": 6, "migrated": 6, "migrating": [6, 15], "migration": 6, "migrations": 6, "migra\u00e7\u00f5": 17, "min": [8, 12, 14], "min_length": 12, "mind": [4, 6, 7, 8, 12], "mindful": 6, "minimal": [5, 14, 17], "minimalist": [8, 15], "minimalist_pag": 8, "minimum": 12, "minip": 12, "minor": [8, 12, 15], "minsiz": 12, "minut": 12, "min\u00fascul": 6, "missing": [2, 13, 14], "mistak": 2, "mix": 8, "mkdir": [2, 4, 7, 14], "mm": 12, "mobili\u00e1ri": 5, "mod": [2, 4, 5, 6, 12, 13], "model": [0, 3, 7, 10, 12, 15, 16], "models": [4, 6, 7, 14, 15], "modern": [6, 13, 16], "modifi": 14, "modific": [2, 4], "modificaiton": 12, "modifications": 2, "modified": [4, 12, 15], "modified_by": 6, "modified_on": 6, "modifiers": 7, "modify": [12, 14, 16], "modifying": [2, 8], "modindex": 17, "modul": [0, 1, 2, 4, 6, 8, 10, 12, 13, 14, 15], "moment": [2, 6], "mong": 6, "mongodb": 6, "mongodbadapt": 6, "monoespac": 10, "monolithic": 0, "mont": 13, "month": 12, "mor": [0, 2, 4, 5, 6, 7, 8, 10, 12, 14, 15, 16], "moreov": 16, "most": [0, 4, 5, 6, 12, 13, 14, 15, 16], "mostr": [1, 4, 6, 14], "moth": 6, "mother_id": 6, "motor": 6, "mov": 6, "mssql1": 6, "mssql1n": 6, "mssql2": 6, "mssql2adapt": 6, "mssql3": 6, "mssql3adapt": 6, "mssql3n": 6, "mssql4": 6, "mssql4adapt": 6, "mssql4n": 6, "mssqladapt": 6, "mssqln": 6, "mtabl": 0, "much": [0, 1, 5, 6, 8, 12, 14, 15, 16], "mud": [4, 5, 6], "mudanc": 6, "muit": [0, 1, 4, 5], "mult": [1, 2, 6, 15], "multicast": 12, "multipl": [1, 2, 6, 8, 10, 12, 15, 16, 17], "multiprocess": 5, "multiselect": 12, "multius": 13, "must": [1, 2, 3, 4, 5, 6, 8, 10, 12, 13, 15], "my": [5, 8, 10, 12, 13, 16], "my_app": 4, "my_id": 16, "my_password_fil": 2, "my_task": 16, "my_url_path": 15, "my_var": [5, 10], "myapp": [2, 4], "myclass": 10, "mycomponent": 16, "mycustomwidget": 12, "mydb": 6, "myerrors": 5, "myfield": 6, "myfil": 6, "myfixtur": 5, "myfunction": 2, "myidx": 6, "myobj": 6, "myobjnam": 6, "myord": 6, "myquery": 6, "myrecord": 6, "mysaltvalu": 12, "myset": 6, "mysideb": 8, "mysqladapt": 6, "mysqldb": 6, "mysqldv": 6, "mystyle": 12, "mytabl": 6, "myvalu": 6, "myvirtualfields": 6, "myvirtualfields1": 6, "myvirtualfields2": 6, "m\u00e1quin": [6, 10], "m\u00e1x": 6, "m\u00e1xim": 6, "m\u00e9d": 6, "m\u00e9di": 13, "m\u00e9tod": [4, 5, 6, 8, 14], "m\u00ednim": [5, 6], "m\u00f3dul": [0, 2, 5, 6], "m\u00faltipl": [0, 6], "n": [5, 6, 11, 16], "nad": [2, 4, 6], "nam": [2, 4, 5, 6, 7, 8, 10, 12, 13, 14, 15, 16], "named": 10, "nameonly": 6, "naming": 6, "nasc": 6, "natal": 6, "nativ": 6, "native_json": 12, "nav": 8, "navb": [8, 13], "naveg": 14, "navigat": 16, "navigation": [8, 16], "ndb": 6, "ne6fz": 8, "necess": [1, 2, 4, 5, 6, 8], "necessary": [6, 8, 10], "necessit": 6, "necess\u00e1r": [1, 5, 6], "necess\u00e1ri": [2, 4, 5, 6], "neck": 16, "need": [0, 1, 2, 5, 6, 8, 10, 12, 13, 14, 15, 16], "needed": [2, 4, 5, 6, 10, 12, 13, 16], "needs": [0, 4, 5, 6, 13, 15, 16], "neg": 6, "negated": 6, "negativ": [6, 12], "nega\u00e7\u00e3": 6, "neith": 12, "nel": 6, "nenhum": [6, 13], "ness": 6, "nest": [1, 6, 8, 10], "nested": [6, 8], "nested_select": 6, "network": [12, 13], "networks": [12, 13], "nev": [6, 8, 12, 15, 16], "new": [0, 2, 4, 5, 6, 7, 8, 10, 11, 12, 13, 14, 15, 16], "new_app": [8, 10], "new_password": 16, "new_sidec": 16, "newlin": [6, 12], "newly": 6, "next": [1, 5, 6, 8, 12, 16], "nginx": 2, "nic": [0, 16], "nicozanf": 2, "nid": 6, "niss": 6, "no_backslash_escap": 6, "no_tabl": [12, 16], "nod": [4, 16], "nom": [2, 4, 5, 7, 10, 12, 13, 14], "nomeaplic": 13, "non": [2, 4, 5, 6, 7, 10, 12, 14, 15, 16], "nor": [2, 12], "norm": 6, "normal": [4, 5, 6, 8, 12, 14, 16], "normaliz": 6, "normalized": 6, "normally": [2, 6, 8, 10, 12, 14], "northwind": 1, "nosqladapt": 6, "noss": [1, 4, 5, 6], "not": [0, 1, 2, 4, 5, 7, 8, 10, 12, 13, 14, 15, 16], "not_authorized": 13, "notation": 10, "nota\u00e7\u00e3": [6, 10], "noted": 8, "nothing": [2, 5, 6, 12, 16], "notic": [2, 4, 5, 6, 8, 10, 12, 13, 14, 15, 16], "notnull": 6, "notset": 2, "nov": [0, 1, 2, 3, 4, 14], "novaaplicaca": 4, "now": [0, 4, 5, 6, 12, 14, 16], "nowadays": 1, "nul": 6, "null": [6, 7, 12, 16], "numb": [2, 5, 6, 8, 12], "number_workers": 2, "numbers": 12, "numerical": 12, "num\u00e9r": 6, "nunc": [5, 6], "n\u00e3": [0, 1, 2, 3, 4, 5, 6, 8, 10, 13, 14], "n\u00edvel": [6, 11], "n\u00famer": [4, 6, 11, 14], "oauth": 13, "oauth2": [0, 5], "oauth2discord": 13, "oauth2facebook": 13, "oauth2googl": 13, "obj": [6, 8], "object": [0, 4, 5, 6, 7, 8, 10, 12, 13, 15, 17], "objects": [0, 4, 5, 6, 10, 12, 14, 15, 16], "objet": [0, 5, 6, 8, 10, 11], "obras": 6, "obrigat\u00f3ri": 6, "observ": [4, 6, 8], "obsolet": 6, "obtain": [2, 13, 16], "obtained": 6, "obter": [4, 6], "obtid": [2, 6], "obvi": 6, "obvious": [7, 8, 13], "obviously": 12, "ocasional": 6, "occasionally": 12, "occur": [2, 12, 16], "occurring": 2, "occurs": 12, "ocorr": [4, 6, 8], "ocult": [6, 12], "odd": [6, 8], "of": [0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 12, 13, 14, 15, 16], "off": [0, 2, 4, 14, 16], "official": [0, 12, 16], "offs": 6, "offset": [6, 7], "oficial": 6, "often": [6, 13, 16], "ok": [10, 15], "old": [2, 5, 12, 15], "older": 12, "olhand": 6, "ol\u00e1": 8, "ombott": [0, 4, 15], "omit": 2, "omitted": 2, "on": [0, 1, 3, 4, 5, 6, 7, 8, 12, 13, 14, 15, 16], "on_delete_action": 6, "on_error": 5, "on_fals": 5, "on_request": 5, "on_success": 5, "once": [1, 2, 5, 6, 12, 13, 16], "onclick": 16, "onde": [2, 6, 7, 8, 12], "ondelet": 6, "one": [0, 2, 4, 5, 6, 7, 8, 12, 13, 14, 16], "ones": [2, 7, 12, 15], "onion": 5, "onkeydown": 16, "onlin": [1, 6], "onload": 16, "only": [1, 2, 3, 4, 5, 6, 7, 8, 10, 12, 13, 14, 15, 16], "onvalidation": 12, "opacity": 16, "opcion": [6, 10], "opcional": [4, 6, 10, 12], "open": [1, 2, 4, 5, 6, 10], "opening": 5, "oper": [0, 3, 11, 17], "operat": 12, "operation": [6, 13], "operationalerror": 12, "operations": [5, 6], "operator": [5, 6, 12], "oposi\u00e7\u00e3": 10, "opost": 6, "opposit": 5, "oprow": 6, "optimized": 6, "option": [2, 3, 5, 6, 12, 13, 16], "optional": [2, 5, 6, 7, 8, 12, 13, 14, 15], "optionally": [0, 2], "options": [2, 6, 7, 10, 13, 15, 16], "opt\u00e1m": 6, "op\u00e7\u00e3": [3, 4, 6, 8, 10], "op\u00e7\u00f5": [6, 17], "or": [0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 12, 13, 14, 15, 16], "oracl": 6, "oracleadapt": 6, "ordem": 6, "order": [1, 2, 4, 5, 6, 7, 10, 12, 14, 15], "order_it": 6, "orderby": [12, 13, 14, 16], "ordered": 10, "ordereddict": 6, "org": [2, 4, 7, 10, 16], "organiz": 6, "organized": 4, "orig": [2, 11], "origin": 6, "original": [6, 8, 10, 12], "other": [0, 1, 2, 4, 5, 6, 7, 8, 10, 13, 14, 15, 16], "other_pag": [12, 16], "otherfield": 6, "others": [0, 6, 15], "othertabl": 6, "otherwis": [5, 6, 8, 12, 13, 14], "otimiz": 6, "oufil": 6, "our": [0, 1, 2, 5, 6, 10, 12, 16], "out": [0, 1, 2, 5, 8, 12, 16], "outlined": [4, 5], "output": [1, 2, 5, 8, 12, 16], "output_styl": 4, "outr": [1, 2, 4, 5, 10, 11, 13, 14, 17], "outsid": [0, 5, 6, 12, 14, 15, 16], "ov": 6, "over": [8, 14, 16], "overkill": 13, "overrid": [4, 6, 8, 13, 14, 15, 16], "override_cl": 14, "override_styl": 14, "overriding": 16, "overview": 17, "overwritten": [5, 15], "own": [4, 5, 6, 8, 12, 13, 14, 15, 16], "owner": [6, 12], "owner_id": 6, "owner_id1": 6, "owner_id2": 6, "owners": 12, "ownership": 6, "owns": 6, "p": [2, 8, 12], "p10n": 11, "packag": [0, 6, 10], "padded": [8, 15], "padding": 16, "padroniz": 6, "padr\u00e3": [0, 2, 4, 5, 8, 10, 14], "padr\u00f5": [4, 6, 10], "pag": [1, 3, 4, 5, 6, 10, 12, 13, 14, 15, 16, 17], "page_head": 8, "page_left_menu": 8, "page_scripts": 8, "pagin": [6, 14], "pai": 6, "painel": [0, 2, 3], "paint": [4, 12], "painting": 4, "pairs": 10, "palavr": [8, 10, 11], "pam": [0, 5], "pam_plugin": 13, "pamplugin": 13, "papel": 2, "par": [0, 1, 2, 3, 4, 5, 10, 11, 12, 13, 14, 16, 17], "paragraph": [5, 10, 12, 14], "paramet": [1, 2, 4, 5, 6, 13, 14, 16], "parameters": [2, 6], "params": 16, "parec": [5, 6], "parent": [2, 6, 8, 16], "park": [7, 14], "pars": [5, 6, 12, 13], "parsed": 6, "parsemodul": 4, "part": [4, 10, 15], "partial": [4, 6, 15], "particip": 6, "participat": 1, "particul": [0, 1, 6, 12, 14, 15, 16], "particular": 6, "particularly": 6, "parts": 12, "party": [0, 5], "par\u00e1graf": [1, 10], "par\u00e2metr": [5, 14], "par\u00eantes": 6, "pass": [4, 5, 6, 8, 10, 12, 13, 14, 15, 16], "passed": [2, 4, 5, 6, 10, 12, 13, 14, 16], "passing": [5, 6, 10, 12], "passphras": 5, "password": [2, 6, 8, 12, 13, 15, 16], "password_fil": 2, "passwords": 12, "passwordwidget": 12, "past": [2, 4], "path": [2, 4, 5, 6, 7, 11, 12, 14, 15, 16], "path_t": 2, "pattern": 7, "patterns": 7, "paus": 2, "payment": 6, "payroll": 5, "pbkdf2": 12, "pc": 3, "pdf": [1, 12], "pdkdf2": 2, "pec": [5, 6], "ped": [2, 4, 5, 6, 14], "pedac": 8, "peg": 6, "pegadinh": 17, "pel": [1, 4, 5, 6, 8, 10, 11, 13], "pens": 6, "per": [5, 7], "percentual": 6, "perd": [1, 2, 6], "perfect": 0, "perfectly": 14, "perfil": [0, 13], "perform": [5, 6, 12, 13], "performanc": [0, 5, 6, 15], "performing": 6, "performs": 12, "pergunt": 6, "period": 16, "periodic": 16, "permanec": 6, "permission": [5, 13], "permissions": [0, 5, 6, 13, 15], "permiss\u00e3": [5, 6, 13], "permit": [0, 3, 5, 6, 8, 10, 13, 14], "permitted_tags": 10, "persist": 5, "persistent": [6, 13], "person": [6, 7, 12, 14], "personag": 6, "personagens": [4, 6], "personal": 2, "personaliz": [0, 2, 17], "persons": 12, "persons_and_things": 6, "perspectiv": 0, "pertenc": 6, "pertencent": 6, "pesquis": [2, 3, 6, 14], "pesso": 6, "pet": [6, 7, 14], "philip": 6, "phon": 12, "photograph": [7, 14], "physics": 13, "pick": [5, 13], "picked": 4, "picks": 5, "piec": [0, 12], "pierr": 0, "pip": [0, 1, 6], "pirsch": 0, "piscin": [4, 6], "piu": 5, "pixels": 12, "plac": [1, 5, 6, 8, 12, 14, 16], "placehold": [12, 16], "placeholders": 6, "placing": 14, "plan": [1, 16], "plataform": 17, "platform": [0, 1], "play": 16, "playing": 0, "pleas": [5, 6], "plug": 5, "plugin": [5, 12, 13, 14, 16], "plugins": [12, 16], "plural": 11, "pluraliz": [0, 4, 5, 14, 16, 17], "pluralization": 15, "plus": [8, 13, 14], "pm": 12, "png": [10, 12], "pod": [0, 1, 2, 4, 5, 6, 7, 8, 10, 11, 13, 14], "point": [4, 5, 6, 12, 15, 16], "pointing": [2, 3, 8], "points": [6, 7, 12, 14], "polic": 17, "policy": 7, "pollut": 5, "pol\u00edt": 0, "pont": 6, "pool": 5, "pool_connection": 6, "pool_siz": [5, 6], "pooling": 6, "poor": 16, "pop": 16, "popul": [0, 6], "porqu": [2, 4, 5, 6, 8, 11], "port": [0, 2, 3, 5, 6, 15], "portability": 6, "portabl": 6, "portant": [2, 4, 5, 6, 10], "ports": 2, "por\u00e7\u00f5": 14, "posicion": 10, "position": 5, "positional": 10, "posi\u00e7\u00e3": [5, 10], "possibil": 6, "possibl": [4, 5, 6, 8, 12, 14, 15, 16], "possibly": 6, "poss\u00edv": 6, "poss\u00edvel": [4, 6], "post": [4, 6, 7, 10, 12, 13, 14, 15, 16], "post_action_buttons": 14, "post_text": 6, "post_vars": [7, 15], "post_writabl": 7, "posted": 7, "postel": 11, "posterior": 5, "postfix": 15, "postgr": 6, "postgreboolean": 6, "postgrenew": 6, "postgrepsyc": 6, "postgrepsycoboolean": 6, "postgrepsyconew": 6, "postgres2": 6, "postgres3": 6, "postgres_nonreserved": 6, "postgresql": [2, 6], "postgresqladapt": 6, "postprocessing": 15, "posts": 6, "potentially": 2, "pouc": [5, 6], "pow": [2, 6, 16], "powerful": [7, 13, 15], "powers": 7, "pprint": 6, "pr": 1, "practic": [8, 12], "practical": [6, 12, 15, 17], "pre": [2, 4, 5, 14], "pre_action_buttons": 14, "precau\u00e7\u00e3": 2, "preced": [5, 6, 8], "preceded": [6, 12], "precedent": 6, "preceding": 7, "precious": 14, "precis": [1, 2, 4, 5, 6, 14], "predefin": 8, "predefined": [12, 16], "predetermined": 15, "preench": 6, "preenchiment": 6, "pref": [2, 16], "prefer": 10, "preferenc": 5, "preferred": [5, 6], "prefix": [2, 4, 6, 7, 8, 12, 15], "preguic": 15, "prelimin": 1, "preocup": 6, "prepend": [12, 16], "prepend_schem": 12, "prepended": [12, 15], "prepending": 12, "prepends": 4, "preprocessing": 15, "prerequisit": [2, 5], "presenc": [5, 6], "present": [2, 6, 8, 12, 13], "preserv": [0, 5], "preserved": 5, "press": [4, 14], "pression": 3, "prest": 10, "pretend": 6, "pretty": [6, 15], "prevent": [6, 10, 12, 16], "prevented": 6, "preventing": 5, "prevents": [2, 5, 16], "previ": [6, 12], "previous": [5, 8, 10, 12, 16], "previously": [5, 6, 12], "prim": [5, 12], "primarily": 14, "primary": [6, 8, 13], "primeir": [6, 8, 13, 17], "princip": 0, "principal": [1, 5, 6, 17], "princ\u00edpi": [6, 17], "print": [4, 6, 10, 11, 13, 15, 16], "printed": 4, "privat": [5, 12], "probability": 12, "probl": [0, 6, 8, 14], "problem": [1, 6], "problems": [6, 13, 16], "proc": [13, 16], "proced": 17, "procedur": 2, "process": [2, 4, 5, 6, 8, 10, 12, 13, 14, 15, 16], "processed": [5, 6, 8, 12], "processing": [5, 6, 8, 12, 16], "procur": [1, 6], "produc": [6, 10, 12, 13], "product": [6, 16], "product_record": 16, "production": [2, 4], "products": 6, "produz": [2, 5, 6, 8, 10], "produ\u00e7\u00e3": 0, "professor": 13, "profil": [8, 13, 15], "progr": [1, 2, 3, 10], "program": [1, 3, 6, 8], "programmatically": 10, "programming": [1, 6, 8, 16], "programs": [1, 2, 12], "project": [0, 2, 4, 5, 6], "project_nam": 2, "projet": [0, 2], "prompt": [2, 4, 6], "pront": 6, "prop": [5, 6, 14], "properly": 4, "properti": [6, 12], "propriedad": 6, "propriet\u00e1r": 6, "propriet\u00e1ri": 6, "protocol": 3, "prototyp": 16, "provavel": [4, 5, 6], "proveit": 6, "provid": [0, 4, 5, 6, 8, 10, 12, 13, 14, 15, 16], "provided": [5, 6, 8, 10, 12, 14], "providing": [0, 14, 15], "provoc": 6, "prudent": 6, "pr\u00e1tic": [0, 6, 7], "pr\u00e9": [10, 14, 17], "pr\u00f3pr": [13, 14], "pr\u00f3pri": [6, 14], "pr\u00f3xim": [2, 6], "pseud": 6, "psycopg2": 6, "public": 4, "pud": 2, "pull": 1, "punycod": 12, "pur": 6, "purpos": [0, 6, 10, 12, 13, 15], "put": [5, 7, 12, 16], "put_writabl": 7, "putting": 4, "pux": 6, "pwd": 6, "py": [1, 2, 4, 5, 6, 7, 10, 11, 12, 13, 14, 15, 16], "py4web": [2, 3, 4, 5, 7, 8, 10, 12, 13, 14], "py4web_filesyst": 6, "py4web_wsg": 2, "pyc": 8, "pydal": [0, 2, 3, 5, 6, 7, 12, 13, 14, 15, 16], "pyfilesyst": 6, "pyinstall": 2, "pymong": 6, "pymysql": 6, "pyodbc": 6, "pypi": 2, "pypyodbc": 6, "pysqlite2": 6, "pytds": 6, "python": [0, 2, 4, 5, 6, 8, 10, 11, 12, 13, 14, 15, 16], "python2": [2, 15], "python3": [1, 2], "pyweb": 15, "p\u00e1gin": [8, 10, 14, 17], "p\u00f3s": 14, "p\u00fablic": 6, "q": [2, 6, 14], "qua": [0, 6], "quadr": [0, 1, 6], "quaisqu": [6, 12], "qualified": 6, "qualqu": [1, 2, 4, 5, 6, 7, 8, 13], "quand": [1, 4, 6, 8, 14], "quant": 6, "quantity": 6, "quebr": 0, "qued": 14, "queir": 5, "quer": [2, 4, 5, 6, 10], "queri": [6, 7, 14, 15, 16], "queried": 7, "query": [4, 5, 7, 10, 12, 14, 15, 16], "query1": 6, "query2": 6, "queryselector": 16, "queryselectorall": 16, "querystring": 14, "questions": [1, 2], "quest\u00e3": 6, "quick": [1, 12], "quickly": [2, 12, 14], "quiet": 2, "quirk": 5, "quis": [4, 6], "quit": [1, 2, 5, 7, 8, 12, 14], "quot": [2, 10], "quote_minimal": 6, "quote_nonnumeric": 6, "quotech": 6, "r": [2, 6, 12], "rac": 12, "radi": [10, 12], "radiowidget": 12, "radius": 16, "rais": [5, 12, 13, 15], "raised": 5, "ram": [5, 6], "randint": [8, 13], "random": [6, 8, 12, 13, 16], "rang": [4, 6, 8, 13, 15], "rapid": [0, 16], "rar": 6, "rarely": 6, "rath": [6, 8, 12, 16], "raw": 17, "raz\u00f5": 6, "rb": 6, "re": [0, 1, 2, 4, 5, 6, 8, 10, 12, 13, 14, 15, 16], "rea": 6, "reach": 2, "react": 16, "reactivity": 16, "read": [1, 4, 5, 6, 7, 14, 16], "readability": 7, "readabl": [5, 6, 14, 15], "readm": [1, 12], "readonly": [2, 12, 16], "ready": 2, "reagrup": 0, "real": [2, 4, 7, 8, 12], "real_identity": [6, 7], "realiz": [3, 4, 5, 6], "really": [1, 4], "realment": 6, "reaping": 16, "reason": [2, 5, 6, 14, 15], "reasons": 7, "rebuilt": 6, "rec_id": 7, "receb": [6, 8], "recent": [2, 3, 6, 12, 14], "recently": 5, "recereived": 16, "recip": 2, "reclam": 6, "recogniz": 4, "recognized": 6, "recolh": [7, 14], "recomec": 6, "recomend": 6, "recommand": 16, "recommend": [1, 5], "recommended": [6, 12], "reconstru": 6, "record": [7, 12, 13, 15, 16], "record_id": [7, 16], "recorded": 12, "records": [6, 7, 12, 13, 14, 16], "recorrent": 6, "recovered": 12, "recup": 6, "recuper": [4, 6], "recurs": [2, 8, 17], "recursively": 8, "recycl": 6, "rec\u00e9m": [4, 6, 11], "red": [0, 3, 4, 6, 8, 10, 12, 17], "redefini\u00e7\u00e3": 6, "redesign": 0, "redirecion": [4, 13, 14], "redirect": [4, 5, 12, 13, 14, 16], "redirected": [5, 16], "redirection": [5, 12, 15], "redirects": [5, 13], "reduc": [0, 16], "reduced": 0, "redundant": 6, "reduz": 5, "reescrev": 6, "reescrit": 6, "ref": [3, 5, 6, 10, 12, 17], "refer": [6, 7], "referenc": [1, 5, 6, 7, 8, 10, 12, 14, 16], "referenced": [6, 7], "referenced_by": 7, "referencing": 6, "referim": 6, "referred": [6, 7], "refers": 7, "reflected": 1, "reflet": 6, "reforc": 6, "refresh": 14, "regex": [7, 10, 12], "regexlib": 12, "regist": [0, 5, 6, 8, 13, 14, 15, 16], "register_plugin": 13, "register_task": 16, "register_vue_component": 16, "registered": [5, 13], "registers": 5, "registr": [3, 4, 12, 13, 14], "registration": [4, 12], "registration_stamp": 12, "regr": [4, 5], "regul": [0, 2, 4, 6, 7, 8, 11, 12, 14, 15, 16], "reimplementation": 16, "reinic": 6, "reinstal": 2, "reinstall": 2, "reinstat": 6, "rejected": 12, "rejects": 12, "rel": [8, 14], "relacion": 6, "relat": 6, "related": [5, 6], "relational": 6, "relations": 17, "relationships": 6, "relativ": [4, 15], "rela\u00e7\u00e3": 10, "rela\u00e7\u00f5": 6, "releas": 2, "released": 0, "relev": 6, "reload": [2, 3, 4, 5, 12], "reloaded": [3, 4, 16], "reloading": [2, 4, 5], "reloads": [4, 5], "rely": [0, 4, 6], "rem": 5, "remain": [6, 12], "remains": 0, "rememb": [5, 6], "remembered": 5, "remote_addr": [5, 13], "remov": [2, 4, 6, 10, 12, 13], "removal": 12, "removed": [0, 6, 10, 12], "removing": 6, "remo\u00e7\u00e3": 6, "renam": 1, "rend": [5, 6, 12, 14, 15, 16], "rendered": [5, 7, 8, 12, 14, 15, 16], "rendering": [8, 10], "renderiz": 10, "renders": 12, "reno": 8, "renom": 7, "reopening": 5, "repackaging": 0, "repeated": 12, "repeti\u00e7\u00e3": 6, "replac": [6, 8, 10, 14, 16], "replaced": [8, 10, 12, 16], "replacing": 12, "replicat": [1, 5], "report": 8, "reported": 4, "repository": [1, 2, 3], "reposit\u00f3ri": 2, "repr_row": 6, "represent": [8, 10, 12], "representation": [6, 10], "representational_state_transf": 7, "represented": 12, "representing_field": 12, "represents": [0, 6], "requ": [0, 5, 6, 12, 13, 14, 15, 16], "request": [0, 1, 2, 5, 6, 7, 12, 13, 14, 15, 16], "request_reset_password": 13, "requests": [1, 4, 5, 15], "requir": [2, 5, 6, 12, 13], "required": [4, 5, 6, 7, 12, 16], "requirement": 12, "requirements": [0, 2, 12], "requires_": 15, "requires_login": 15, "requires_membership": 5, "requiring": [2, 15], "requisit": [6, 17], "res": 16, "reserv": 11, "reserved": [6, 12], "reset": 6, "reset_password": 13, "resgat": 6, "resourc": [6, 13], "respect": [6, 12, 14], "respectively": [6, 12], "respons": [4, 5, 6, 8, 15, 16, 17], "responsibility": 6, "responsibl": [14, 16], "respost": [5, 8], "ressalv": 6, "restabelec": 6, "restap": [0, 3, 17], "restart": [2, 4, 5, 6, 14], "restaur": 6, "restful": [7, 13], "restrict": [5, 7, 12, 16], "restri\u00e7\u00e3": 6, "restri\u00e7\u00f5": [0, 6], "restructuredtext": 1, "result": [1, 4, 6, 7, 8, 12, 14, 16], "resulting": [8, 12, 16], "results": [6, 8, 12, 14], "ret": 6, "retain": 6, "retorn": [5, 8, 10], "retribu": 10, "retriev": [5, 6, 16], "retrieval": 6, "retrieved": 15, "return": [4, 5, 6, 7, 10, 12, 13, 14, 16], "returned": [5, 6, 7, 8, 10, 12, 16], "returning": 5, "returns": [5, 6, 7, 10, 12, 13, 15, 16], "reutiliz": [2, 6], "revers": [5, 6], "revers\u00e3": 4, "revert": 6, "rfc": 12, "rid": 6, "riding": 8, "right": [5, 6, 8], "rights": 2, "road": 16, "robust": 16, "rocket": 15, "rocket3": [2, 15], "rocketserv": 2, "rodap": 10, "rol": [5, 10], "roll": 6, "rollback": 16, "rolls": 5, "root": [6, 8, 13, 14], "rosc": 5, "rot": [3, 14], "rotul": 6, "rout": [2, 5, 14, 15, 16], "routing": [0, 2, 4, 15], "rov": 6, "row": [12, 14, 16], "rows": [10, 12, 14, 15], "rows1": 6, "rows2": 6, "rows3": 6, "rows_list": 6, "rows_per_pag": 14, "rpc": 6, "rst": 1, "rul": [8, 12, 14], "run": [1, 3, 4, 6, 8, 13, 16], "run_in_transaction": 6, "running": [1, 2, 5, 16], "runs": [2, 4, 13, 15, 16], "r\u00e1di": 10, "r\u00e1p": [0, 6], "r\u00f3tul": [6, 10, 14], "s": [0, 1, 2, 4, 5, 7, 8, 10, 11, 12, 13, 14, 16], "s3": 6, "s_": [12, 16], "s_autocomplet": 16, "s_autocomplete_results": 16, "s_down_key": 16, "s_search": 16, "sab": [1, 2, 6, 8], "saf": [1, 6, 12, 14, 15], "safar": 16, "safely": [1, 14], "safety": 16, "said": 7, "sair": 13, "sak": 6, "salt": [1, 12], "salv": [4, 6, 11], "sam": [0, 2, 5, 6, 7, 8, 12, 13, 15, 16], "same_sit": 5, "saml": 13, "saml2": 0, "sampl": 13, "san": 4, "sandbox": 16, "sanitiz": [5, 10, 12, 15], "sanitized": 12, "sant": 1, "sap": 6, "sapdb": 6, "sapdbadapt": 6, "sass": 4, "sass_compil": 4, "sav": [1, 5, 6, 11, 12], "saved": [2, 5, 6, 12], "say": 13, "sa\u00edd": [2, 4, 6, 8, 10], "scaffold": [2, 4, 16], "scaffold_zip": 2, "scaffolding": [2, 4, 5, 6, 8, 12, 15, 16], "scal": [5, 8], "scan": 6, "schaf": 1, "schdul": 16, "schedul": 17, "scheduled": 16, "scheduled_for": 16, "schem": [6, 12], "school": 13, "scor": 16, "score_input": 16, "scratch": 4, "script": [2, 5, 8, 12, 16], "scripting": 10, "scripts": [2, 8, 10], "sdk": 2, "seamlessly": 8, "search": [0, 6, 12, 13, 14, 17], "search_button_text": 14, "search_form": 14, "search_queri": 14, "search_text": 14, "search_valu": 16, "searchabl": 6, "searched": [10, 14], "searching": [6, 10], "second": [6, 10, 12, 13, 15], "seconds": [5, 12], "secret": [5, 13], "secs": 16, "section": [2, 4, 6, 8, 12, 13], "sections": 6, "secur": [0, 12], "securely": 2, "security": [0, 7, 13], "see": [0, 1, 3, 4, 5, 6, 8, 10, 12, 13, 14, 16], "seem": 6, "seen": [0, 5, 7, 10, 12, 14, 16], "seg": 4, "segment": 4, "segred": 13, "segu": [2, 4, 5, 6, 8], "seguint": [2, 4, 5, 6, 8, 10, 11, 12, 13, 14], "segund": 6, "segur": [0, 5], "seguranc": [2, 5, 6, 10], "seis": 6, "sej": [4, 6], "seleccion": 6, "selecion": [3, 6], "select": [4, 7, 11, 12, 13, 14, 15, 16, 17], "selected": [3, 4, 7, 10, 12, 16], "selected_elements": 16, "selectedindex": 16, "selecting": 6, "selection": 12, "selections": 12, "selector": [10, 16], "selector1": 10, "selector2": 10, "selectorn": 10, "selectwidget": 12, "selec\u00e7\u00e3": 6, "sele\u00e7\u00e3": [6, 10], "self": [2, 5, 6, 10, 12, 14, 16], "semantic": [12, 13], "semelh": [0, 4, 5, 6, 10], "sempr": [6, 8], "send": [2, 6, 12, 13], "send_two_factor_email": 13, "sends": 13, "senh": [0, 2, 3, 5, 6, 13], "sens": [0, 12], "sensitiv": [5, 12], "sens\u00edvel": 6, "sent": [5, 6, 13, 16], "sen\u00e3": 6, "separ": [6, 14], "separat": [6, 12, 13, 16], "separated": [2, 5, 6, 14, 16], "separating": [8, 12], "separator": 12, "sequenc": [5, 6], "sequencial": 6, "sequ\u00eanc": 6, "seq\u00fcenc": 6, "seq\u00fc\u00eanc": 6, "ser": [0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 11, 13, 14], "seri": 1, "serializ": [4, 6, 8, 10], "serializabl": [0, 5, 6], "serialized": [5, 6, 10, 12], "serv": [0, 2, 3, 4, 7, 8, 13, 15, 16, 17], "served": [2, 6], "server_addr": 6, "servers": [2, 6], "serversid": 16, "servidor": [0, 4, 5, 6], "serving": 16, "ser\u00e3": [4, 6, 10], "session": [0, 2, 4, 6, 10, 12, 13, 14, 15, 16, 17], "session_app1": 5, "session_secret_key": 5, "sessions": [0, 6, 15], "sess\u00e3": [4, 17], "sess\u00f5": 5, "set": [0, 2, 5, 7, 8, 10, 11, 14, 15, 16], "set_attribut": 6, "set_encoding": 6, "set_head": 6, "set_password": 3, "setinterval": 16, "sets": [2, 5, 6, 12], "setting": [2, 4, 5, 6, 12, 14], "settings": [1, 4, 5, 6, 10, 13, 15, 16], "setup": [1, 3, 4, 13, 16], "setvirtualfields": 6, "severity": 6, "se\u00e7\u00e3": 6, "se\u00e7\u00f5": 6, "sf": 16, "sftp": 6, "sh": 16, "sha512": [8, 12], "shar": [5, 6, 15], "shared": 5, "shell": 10, "ships": 8, "sho": 6, "shopping": 5, "short": [12, 16], "shortcut": [6, 8, 12], "should": [1, 2, 4, 5, 6, 7, 8, 10, 12, 13, 14, 15, 16], "show": [2, 5, 6], "show_id": 14, "showed": 13, "showing": 14, "shown": [2, 6, 12, 13], "shows": [4, 8, 12, 13], "shutil": 6, "si": [6, 14], "sid": [6, 16, 17], "sideb": 8, "sidebar_enabled": 8, "sidebar_menu": 10, "sidec": 16, "sign": [5, 8, 13], "signatur": [5, 6, 7, 10, 12], "signed": [2, 5, 12], "signed_url": 5, "signif": [5, 6, 7], "signific": [6, 8], "significant": 8, "signing": 5, "signing_inf": 12, "signs": 5, "sim": 6, "simbol": 2, "simb\u00f3l": 4, "simil": [0, 12, 15], "similar": [6, 10], "similariti": 15, "simpl": [1, 2, 4, 5, 6, 7, 8, 10, 12, 14, 16, 17], "simple_query": 16, "simples": [4, 6, 11], "simplest": 2, "simplicity": [6, 16], "simplific": 6, "simplified": [0, 4, 8], "simply": [2, 4, 5, 6, 8, 12, 16], "simultan": 6, "simult\u00e2n": 6, "sinal": 6, "sinc": [0, 4, 5, 7, 8, 14, 15], "singl": [2, 5, 6, 7, 8, 12, 13, 14], "singleton": [5, 15], "sintax": [4, 6, 10, 13, 17], "sint\u00e1t": 5, "sistem": [0, 2, 5, 6], "sit": [1, 2, 4, 5, 6, 10, 14, 16], "situa\u00e7\u00e3": 6, "siz": [5, 8, 12], "skip": 16, "slash": [1, 4, 5, 13], "sleep": 16, "sleep_tim": 16, "slick": 0, "slow": [6, 16], "slug": 12, "small": [5, 12], "snippets": 6, "so": [2, 5, 6, 8, 10, 12, 13, 14, 15, 16], "soap": 10, "sob": [4, 6], "sobr": [0, 8], "sobrecarg": 6, "sockets": 16, "solicit": [0, 6], "solt": 6, "solution": [0, 2, 16], "solu\u00e7\u00e3": [1, 6], "som": [0, 1, 2, 4, 5, 6, 7, 8, 10, 12, 13, 15, 16], "some_condition": 8, "some_form": 12, "some_valu": 6, "somefield": 6, "somefil": 6, "soment": [2, 4, 6, 8], "somepath": 5, "sometabl": 6, "something": [6, 7, 8, 10, 12, 16], "sometim": [6, 8, 10, 12], "somevalu": 6, "somewhat": 12, "somewher": 6, "soon": [8, 16], "sophisticated": 15, "sort": 12, "sorted": 14, "sorting": 12, "sourc": [1, 2, 3, 4, 6, 12, 16], "source1": 12, "south": 1, "sp": 6, "spac": [6, 8, 12, 14], "span": [4, 15], "spatialit": 6, "speaking": 5, "special": [0, 5, 6, 8, 13, 15, 17], "specialization": 6, "specials": 12, "specific": [2, 5, 6, 8, 10, 12, 13, 15, 16], "specifically": [5, 6, 12, 16], "specifications": 7, "specified": [5, 6, 8, 10, 12, 13, 14, 15, 16], "specify": [2, 4, 5, 6, 7, 12, 13, 14, 16], "specifying": 10, "speed": [7, 8], "sphinx": 1, "spiderman": [7, 14], "spin": [0, 4], "spirit": 7, "split": [6, 7, 8, 12], "split_emails": 12, "sql": 17, "sql_mod": 6, "sqladapt": 6, "sqlcustomtyp": 6, "sqlform": [0, 12, 15], "sqlforms": 12, "sqlit": [1, 5, 7, 13, 14, 16], "sqlite3": 6, "sqliteadapt": 6, "squar": 8, "src": [5, 6, 8, 10, 12, 16], "ss": 12, "ssl": 2, "ssl_cert": 2, "ssl_key": 2, "sslcert": 6, "sslkey": 6, "sslmod": 6, "sslrootcert": 6, "sso_id": [5, 13], "stabl": 2, "stand": 12, "standard": [1, 2, 3, 6, 7, 13, 14, 15, 16, 17], "standards": [12, 14], "stands": 10, "start": [1, 2, 3, 4, 5, 6, 10, 12, 13, 14, 16], "start_impersonating": 13, "started": 16, "starting": [2, 4, 6, 12], "starts": [0, 3, 5, 8, 15], "startup": [6, 15], "stat": [5, 7, 15, 16], "stated": 5, "stateful": 5, "stateless": [5, 16], "statement": 8, "statements": [8, 12], "static": [1, 4, 8, 10, 15], "static_dev": 4, "status": 7, "stderr": [2, 16], "stdout": [2, 16], "steil": [0, 1, 14], "step": [13, 15], "step1": 5, "step2": 5, "step3": 5, "step_completed": 5, "stepping": 16, "steps": 2, "still": [5, 6, 10, 12, 14, 15], "ston": 14, "stop": [2, 13], "stop_impersonating": 13, "stor": [5, 6, 12, 13], "storag": [5, 6, 7, 14], "stored": [0, 5, 6, 12, 13, 15, 16], "stored_it": 6, "stored_item_archiv": 6, "storing": 5, "story": 0, "str": [2, 5, 6, 10, 12, 15, 16], "stre": [5, 6], "streaming": [4, 15], "strength": 7, "strict": 12, "strictly": [4, 16], "string": [4, 5, 6, 7, 10, 11, 12, 14], "stringi": 6, "stringlistproperty": 6, "strings": [10, 12, 14], "strip": 12, "stripped": [2, 15], "strong": [0, 10, 13], "strongly": [1, 5, 12, 14], "structur": [1, 4, 6, 13, 14, 15, 17], "stuck": 2, "students": 2, "studi": 1, "study": 1, "stuff": [12, 14], "style": [4, 6, 8, 12, 16, 17], "styles": 14, "stylesheet": [8, 14], "styling": 14, "sub": 6, "subcl": 6, "subclassing": 12, "subconjunt": [0, 6], "subfold": 6, "subfolders": [5, 6], "subheadings": 10, "subject": [6, 7, 13], "sublinh": 6, "submet": 12, "submission": [12, 16], "submit": [1, 5, 6, 10, 12, 14], "submitted": 16, "submitting": 13, "subm\u00f3dul": 0, "subnet": 12, "subnets": 12, "subpast": 4, "subqueri": 16, "subset": 12, "subse\u00e7\u00e3": 6, "substitu": [0, 2, 6, 8, 10], "substitui\u00e7\u00f5": 14, "substitutions": 8, "substitu\u00edd": 6, "substring": [6, 12], "succeeded": 0, "success": [5, 7, 16], "successful": [0, 13], "successfully": 13, "suced": 6, "sucess": [4, 6], "such": [6, 10, 12, 14, 15], "sud": [2, 13], "suffered": 0, "suffers": 13, "suficient": [6, 14], "suger": [1, 6], "sugest\u00f5": 17, "suggest": [1, 12], "sugiz": 0, "sup": 7, "super": 6, "superher": [6, 7, 12, 14, 16], "superhero": 7, "superior": 11, "superman": [6, 7, 12, 14], "superpotent": 7, "superpow": [6, 7], "superseeded": 6, "supond": [2, 6], "suponh": 6, "supor": 6, "suport": [0, 11, 17], "supplied": 10, "support": [1, 2, 6, 12, 15], "supported": [11, 12, 13], "supporting": 16, "supports": [4, 5, 8, 10, 12, 16], "suppress": 2, "suprim": 10, "sur": [5, 12, 13, 16], "surely": [3, 4], "surrounding": 12, "susan": 6, "sutil": 6, "sv": 6, "switch": [2, 5, 6], "sybas": 6, "sybaseadapt": 6, "symbol": 12, "symbols": 12, "sync": [2, 6], "synops": 12, "syntactic": 12, "syntax": [0, 1, 4, 5, 6, 7, 8, 10, 12, 15, 16], "system": [0, 2, 5, 6, 10, 13, 16], "systems": 16, "sysus": 6, "s\u00e3": [0, 1, 3, 4, 5, 6, 8, 10, 11, 13, 14], "s\u00e9ri": 6, "t": [0, 2, 4, 5, 6, 8, 10, 11, 12, 13, 14, 15], "t_fold": 5, "tab": [3, 5, 12], "tabel": [5, 10, 13, 14, 15], "tabl": [5, 7, 12, 13, 14, 15, 16, 17], "table1": 6, "table_hash": 6, "table_nam": 6, "tablenam": [6, 7, 12, 16], "tag": [0, 6, 7, 8, 13, 15, 16], "tag_input": 16, "tagg": 10, "tagged_db": 13, "tagged_nam": 13, "tagging": [10, 13], "tags": [0, 5, 6, 8, 10, 12, 15, 16, 17], "tags_input": 16, "tags_inputs": 16, "tail": 6, "tais": 6, "tak": [2, 3, 5, 6, 8, 12, 13, 14, 16], "taken": 12, "tal": 6, "talvez": [2, 5], "tamanh": 6, "tampering": [5, 6], "tant": [6, 16], "tantissim": 11, "tar": 12, "tard": [4, 6], "taref": [1, 5, 6, 13], "target": [10, 16], "task": 16, "task_run": 16, "tasks": [6, 16], "tast": 6, "tbody": 6, "tcp": 3, "td": 6, "teach": 13, "technically": 16, "tecl": [6, 11], "tell": [4, 13, 16], "telling": [2, 13], "tells": [5, 16], "temp": [2, 8], "templat": [0, 4, 10, 12, 13, 15, 16, 17], "temporarily": 5, "tempor\u00e1ri": 6, "ten": 12, "tenancy": 6, "tenh": [1, 5, 6], "tent": [5, 6], "ter": [2, 4, 5, 6, 10], "teradat": 6, "teradataadapt": 6, "terceir": 6, "tered": 12, "term": 6, "termin": 10, "terminal": 4, "terminat": [8, 16], "terms": 12, "terr": 6, "ter\u00e3": 6, "test": [2, 6, 8, 10, 12, 14], "tested": [0, 2, 10, 13], "testing": [4, 6], "text": [2, 5, 6, 8, 10, 14, 16], "textar": 12, "textareawidget": 12, "textual": 10, "th": 6, "than": [0, 5, 6, 8, 10, 12, 13, 14, 16], "thank": 10, "thanks": 0, "that": [0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 11, 12, 13, 14, 15, 16], "that_templat": 8, "the": [0, 3, 8, 10, 11, 13, 15, 17], "thead": 6, "them": [0, 1, 2, 4, 5, 6, 7, 8, 12, 13, 14, 15], "themselv": [6, 8], "then": [2, 4, 5, 6, 8, 10, 12, 13, 14, 15, 16], "ther": [1, 2, 5, 6, 8, 12, 13, 14, 15, 16], "therefor": [4, 5, 8, 12, 15], "thes": [2, 4, 5, 6, 8, 10, 12, 14, 16], "they": [2, 4, 5, 6, 7, 8, 12, 13, 15, 16], "thing": [5, 6, 12, 15], "thing_id": 12, "thing_tags_default": 6, "things": [2, 5, 6, 12], "think": [5, 8, 14, 16], "third": [0, 5, 12], "this": [0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 12, 13, 14, 15, 16], "this_templat": 8, "thisisatest": 10, "thisisthekey": 12, "thos": [5, 6, 8, 10, 13, 15, 16], "though": 8, "thought": [0, 6, 13], "thre": [0, 5, 6], "thread": [6, 15, 16], "threaded": [2, 15], "threads": [5, 6], "threadsafevariabl": 5, "through": [2, 12], "throughout": 5, "thumbnail": 12, "ti": 5, "ticket": 6, "tickets_only": 2, "til": 6, "tim": [0, 4, 5, 6, 8, 14, 15, 16], "timed": 6, "timedelt": 12, "timeoffset": 10, "timeout": [5, 16], "timeouts": 16, "timestamp": [5, 7, 16], "tint": 4, "tip": [4, 14], "tips": [2, 14], "tir": 6, "titl": [8, 12, 16], "tiv": 6, "tmp": [5, 6], "to": [0, 1, 2, 3, 4, 5, 7, 8, 10, 11, 12, 13, 14, 15, 16], "tod": [1, 2, 3, 4, 5, 7, 8, 10, 11, 13, 14, 16], "today": [0, 12, 16], "togeth": [0, 8], "token": [5, 12], "tom": 6, "too": [2, 5, 6, 12, 16], "took": 6, "tool": 0, "tools": [6, 13, 16], "top": [8, 12, 13], "topics": [14, 17], "torn": [1, 2, 5, 6, 10, 14], "total": [1, 6, 7], "total_pric": 6, "touch": 8, "toy": 6, "tr": 6, "trabalh": [2, 4, 6, 7], "traceback": 6, "tracebacks": 5, "track": [1, 15], "trad": 6, "tradicion": 6, "tradicional": 6, "traditional": 2, "tradutor": 4, "traduz": [1, 6, 8, 11], "tradu\u00e7\u00e3": [5, 17], "tradu\u00e7\u00f5": [5, 11], "trailing": [2, 12], "training": 1, "transaction": [5, 6], "transactions": 6, "transational": 16, "transa\u00e7\u00f5": 6, "transform": [4, 5, 6, 12, 16], "transformed": [5, 6], "transforms": 5, "transitions": 16, "translat": 16, "translated": [5, 8, 12], "translation": [12, 15], "translations": [5, 11, 16], "translator": [2, 11, 17], "transmit": 3, "transparent": [6, 8, 12], "transparently": 8, "trapped": 16, "trat": [4, 6], "tre": [8, 12], "treated": [6, 15], "tri": [6, 15], "trickery": 8, "tricks": 2, "tried": 0, "trigg": [6, 16], "triggers": 5, "trivial": [5, 6], "tru": [1, 5, 6, 7, 8, 10, 12, 13, 14, 15, 16], "trunc": 6, "truncat": 6, "truth": 16, "try": [2, 5, 6, 8, 12, 13, 16], "trying": [1, 12, 13], "tr\u00e1s": 6, "tr\u00eas": 6, "ttl": 5, "tud": [5, 6], "tupl": [6, 8, 10], "turn": [12, 13, 14, 16], "turned": 0, "turns": [6, 16], "tutorial": [1, 2, 4, 14, 16], "tutorials": 1, "twic": [5, 6], "twitt": [0, 5, 13], "two": [1, 2, 4, 5, 6, 8, 12, 14, 15, 16], "two_factor": 13, "two_factor_filt": 13, "txt": [0, 2, 4, 6], "type": [2, 5, 7, 8, 10, 13, 16], "types": 12, "typical": [5, 6, 12], "typically": [4, 8], "typs": 12, "t\u00eam": [2, 4, 6, 13], "t\u00edpic": 6, "t\u00edtul": [3, 10, 14], "t\u00f3pic": 6, "u": [2, 6, 10], "ubuntu": 13, "uc": 1, "ui": 13, "uid": 6, "ul": [8, 12, 13, 16], "un": [8, 10, 11, 16], "unauthenticated": [5, 6, 10], "unauthorized": 6, "unchanged": 12, "under": [2, 3, 4, 5, 6, 12], "underlying": 15, "underscor": [6, 10, 12], "understand": [0, 2, 4, 6, 7, 8], "understanding": 17, "undocumented": 16, "unfortunat": 6, "unfortunately": 14, "unicod": [6, 12], "unicodedecodeerror": 6, "unid": 6, "uniform": 6, "uniqu": [6, 7, 12], "unit_pric": 6, "unit\u00e1ri": 6, "universal": [4, 6, 10], "uni\u00e3": 6, "unknown": 4, "unless": [3, 5, 6, 8, 12, 16], "unlik": [0, 2, 7, 8, 15, 16], "unnamed": 6, "unneded": 2, "unordered": 10, "unpkg": 16, "unquoted": 10, "uns": 5, "unsaf": [5, 10, 12], "untested": [2, 13], "until": [0, 5, 6, 8, 12], "un\u00e1ri": 6, "up": [1, 2, 5, 6, 8, 13, 16], "updat": [2, 5, 12, 14, 15, 16], "update_form": 12, "update_languag": 11, "update_naiv": 6, "update_thing": 12, "updated": [5, 6, 12], "upgrad": [2, 6], "upgraded": 2, "upload": [4, 6], "upload_fold": [6, 12], "upload_help": 16, "uploaded": [6, 12, 15], "uploadfield": 6, "uploadfold": 6, "uploadfs": 6, "uploads": 6, "uploadseparat": 6, "upon": [2, 13, 15], "upper": [4, 5, 12], "upper_cas": 5, "uppercas": [5, 12], "uri": 13, "uris": 6, "url": [4, 5, 7, 8, 12, 13, 14, 15, 16], "url_prefix": 2, "url_sign": 5, "url_to_post_t": 16, "urls": [2, 12, 15], "urlsign": 17, "us": [2, 12], "usa": [0, 4, 5, 6, 8], "usabl": 14, "usad": [0, 4, 6, 10, 11, 13, 14], "usag": [2, 3, 4, 5, 6, 10, 12, 13, 14], "usam": 6, "usand": [4, 5, 8, 10, 13, 17], "usar": [2, 4, 5, 6, 8, 10, 14], "use": [0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 12, 13, 14, 15, 16], "use_schedul": 16, "used": [2, 4, 5, 6, 7, 8, 10, 12, 13, 14, 15, 16], "useful": [2, 4, 8, 10, 12, 14, 16], "usefull": 12, "useless": [12, 15], "user": [2, 4, 5, 6, 7, 8, 10, 12, 14, 15, 16], "user_email": 15, "user_id": [5, 6, 13, 15], "user_nam": 6, "user_outside_network": 13, "user_password": 6, "usernam": [5, 6, 13], "users": [0, 1, 4, 5, 13, 15], "uses": [0, 1, 2, 4, 5, 6, 7, 8, 10, 12, 13, 14, 15, 16], "using": [0, 1, 3, 4, 6, 7, 12, 15, 17], "uso": [2, 5, 14], "usos": 6, "usou": [5, 6], "usr": 1, "usual": [2, 8, 10, 12], "usually": [1, 5, 7, 12], "usu\u00e1ri": [1, 2, 3, 4, 5, 6, 13, 15], "us\u00e1": [2, 6, 8], "utcnow": [5, 6], "utf": 6, "utf8": 6, "utf8mb4": 6, "utility": [2, 12], "utiliz": [2, 3, 4, 5, 6, 10, 13, 14], "utilizing": 14, "utils": [2, 4, 5, 8, 10, 12, 13, 14, 15, 17], "uuid": [5, 6], "uuid4": [5, 6], "uuids": 6, "v": [5, 10, 12, 16], "v3": 1, "vai": [1, 4, 6, 8], "val": 14, "val1_row1": 6, "val1_row2": 6, "val2_row1": 6, "val2_row2": 6, "valid": [4, 6, 10, 15, 17], "validad": 6, "validat": [6, 12], "validate_js": 4, "validated": 12, "validation": [4, 6, 7, 8, 14], "validator": [6, 12], "validators": [2, 15], "validity": 12, "valios": 1, "valor": [5, 10, 11, 12, 14], "valq7711": [0, 4], "vals": 16, "valu": [2, 4, 5, 6, 7, 8, 10, 11, 12, 14, 16], "value1": 6, "value2": 6, "value_field": 12, "valued": 12, "vam": [1, 6, 10], "vantag": 6, "vantagens": 6, "var": 16, "varch": 6, "vari": 6, "variabl": [5, 6, 10, 12, 14, 16], "various": 5, "vari\u00e1vel": [4, 6, 10, 11], "varredur": 6, "vars": [6, 10, 12, 15], "vaz": 6, "vazi": [2, 6], "ve": [2, 3, 5, 8, 10, 12, 14, 16], "vej": [2, 3], "veloc": 6, "vem": [0, 4, 6], "vendor": 16, "vendor_typ": 16, "vendors": 16, "venv": 2, "ver": [2, 6, 13], "verd": 4, "verdad": 14, "verdadeir": [6, 12, 14], "verif": 6, "verific": [5, 6, 13], "verification": 13, "verified": [5, 12], "verify": 5, "verify_email": 13, "verifying": 13, "vermelh": 4, "vers": 5, "version": [1, 3, 7, 8, 12, 16], "versions": [2, 5, 12], "vers\u00f5": 6, "vertic": 6, "verticaadapt": 6, "very": [0, 4, 8, 10, 12, 13, 15, 16], "vez": [2, 4, 5, 8, 10, 13, 14], "ve\u00edcul": 5, "via": [5, 6, 8, 10, 16], "vias": 6, "vic": 5, "vid": [1, 2, 16], "view": [1, 5, 6], "viewport": 8, "views": 6, "vincul": 6, "vind": 2, "vir": 13, "virtual": [1, 17], "virtualenv": [1, 2], "virtualfields": 6, "visit": [3, 5, 12], "visit_log": 5, "visited": [5, 8], "visiting": [5, 13], "visitor": 6, "visitors": [10, 12], "visits": 6, "vist": [5, 6, 10], "visual": 1, "visualiz": 6, "vis\u00e3": 6, "vis\u00edvel": 4, "vital": 13, "voc": [1, 2, 3, 4, 5, 6, 8, 10, 13, 14], "volt": [5, 6], "vou": 2, "vscod": 2, "vue": [0, 4, 16], "vulner": 8, "v\u00e1l": 4, "v\u00e1r": [2, 4, 5, 6], "v\u00e1ri": [4, 5, 6, 11], "v\u00e3": 6, "v\u00ea": 6, "v\u00edrgul": 6, "v\u00f4o": 7, "w": [2, 4, 5, 6], "w2p_even": 6, "w2p_odd": 6, "waitress": 2, "want": [2, 4, 5, 6, 8, 12, 16], "wants": 5, "warning": [2, 5], "was": [0, 5, 6, 12, 13], "watch": [2, 3, 17], "watched": 4, "way": [2, 3, 5, 6, 8, 10, 12, 13, 15], "wayn": [7, 14], "ways": [0, 2, 4, 6, 13, 14, 16], "wb": 6, "we": [0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 12, 13, 14, 15, 16], "web": [0, 1, 2, 5, 6, 8, 13, 14, 15, 16, 17], "web2py": [0, 1, 2, 3, 4, 6, 12, 13, 14, 17], "websit": [6, 16], "websocket": 16, "welcom": [4, 5, 8, 15, 16], "well": [0, 5, 6, 8, 12, 13, 16], "wer": [0, 4], "what": [4, 5, 6, 8, 12, 13, 15, 16], "whatev": [10, 16], "when": [0, 2, 3, 4, 5, 6, 7, 8, 10, 12, 13, 14, 15, 16], "whenev": 4, "wher": [1, 2, 4, 6, 8, 12, 13, 15, 16], "wheth": [5, 6, 12, 13, 15], "which": [0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 12, 13, 14, 15, 16], "whichev": 16, "whil": [5, 6, 7, 12, 13, 15], "whit": [10, 16], "whitelist": 13, "who": [0, 13], "whol": [4, 12], "whos": [6, 8, 12], "why": [5, 8, 15], "widget": [6, 12], "widgets": [16, 17], "width": [8, 12], "wik": [6, 7], "wikiped": [6, 7], "wild": 6, "wildcard": 4, "will": [1, 2, 3, 4, 5, 6, 7, 8, 10, 12, 13, 14, 15, 16], "window": [5, 8, 12], "windows": [1, 2, 4, 6], "wish": 16, "wishing": 12, "wit": 2, "with": [0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 14, 16], "with_al": 6, "withh": 5, "within": [0, 1, 5, 6, 8, 10, 12, 16], "without": [6, 8, 10, 16, 17], "wolf": 0, "wood": 6, "words": [5, 14], "work": [0, 2, 4, 5, 6, 8, 10, 12, 16], "worked": 0, "workers": 2, "workflow": [5, 17], "working": [2, 12], "workload": 6, "workplac": 1, "works": [2, 6, 8, 12, 13, 14, 15, 16], "workspacefold": 2, "world": [4, 5, 6, 8, 10, 12], "worry": 4, "worth": 8, "would": [0, 5, 6, 10, 12, 16], "wouldn": 6, "wrap": [12, 16], "wrapp": 16, "wrapped": 5, "wrappers": 15, "writ": [2, 4, 5, 6, 8], "writabl": [5, 6, 12, 15], "writing": [4, 6, 15], "written": [1, 8, 12, 14], "wrong": [0, 5, 6], "wsgi": 5, "wsgiref": 2, "wsgirefthreadingserv": 2, "wsgith": 2, "www": [2, 8, 10, 14], "x": [2, 6, 8, 10, 12, 14, 16], "xml": [5, 8, 12, 15, 16], "xmlescap": 10, "xmlns": 10, "xss": [6, 8, 10], "xyz": [10, 12], "y": [2, 10, 12], "yaml": 2, "yatl": [0, 4, 5, 6, 12, 14, 16, 17], "yb": 10, "year": [12, 16], "yes": [2, 6, 16], "yes_or_n": 6, "yet": [0, 2, 4, 5, 8, 12, 16], "yml": 2, "you": [0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 12, 13, 14, 15, 16], "your": [1, 2, 3, 4, 5, 6, 8, 10, 12, 13, 14, 15, 16], "your_app": 12, "your_full_path_to_py4web": 1, "your_nam": [1, 16], "yourapp": 6, "yourappnam": 2, "youremail": 13, "yourself": [1, 12], "youtub": [2, 6], "yyyy": 12, "z": [10, 12], "zanferrar": 0, "zap": 13, "zap_id": 13, "zapp": 13, "zapped": 13, "zer": [6, 8, 12, 14], "zip": [0, 2, 6, 12], "zip_cod": 16, "zxjdbc": 6, "\u00c0s": [6, 10], "\u00e1rvor": 4, "\u00e2mbit": 4, "\u00e9": [1, 2, 3, 4, 5, 6, 7, 8, 10, 11, 12, 13, 14, 15, 17], "\u00e9poc": 6, "\u00edndic": 4, "\u00f3bvi": [6, 8], "\u00f3ptim": 4, "\u00faltim": [5, 6, 13], "\u00fanic": [0, 2, 6, 10], "\u00fate": [1, 6], "\u00fatil": 6}, "titles": ["O que \u00e9 py4web?", "Ajuda, recursos e dicas", "Instala\u00e7\u00e3o e coloca\u00e7\u00e3o em funcionamento", "O Dashboard", "Creating an app", "Fixures", "The Database Abstraction Layer (DAL)", "The RestAPI", "Linguagem de template YATL", "<no title>", "Helpers YATL", "Internacionaliza\u00e7\u00e3o", "Foruml\u00e1rios", "Authentication and authorization", "Rede", "De web2py para py4web", "Advanced topics and examples", "py4web: o manual de refer\u00eancia"], "titleterms": {"A": [3, 6, 10, 12], "As": 1, "Comando": 6, "Como": 1, "De": 15, "Do": 4, "EM": 10, "Em": 4, "Este": 1, "Mais": 6, "O": [0, 1, 3, 4, 5, 6], "OS": 15, "Os": [6, 14], "Um": [1, 6], "_lastsql": 6, "_scaffold": 4, "about": 5, "abstraction": 6, "accessing": 15, "acknowledgments": 0, "actions": [7, 13], "adapt": 6, "adicion": 6, "advanced": [12, 16], "agrup": 6, "ajud": 1, "aka": 2, "alias": 6, "alon": 6, "amostr": 14, "an": 4, "and": [6, 7, 8, 12, 13, 14, 15, 16], "antig": 6, "any_of": 12, "anywher": 5, "aplic": 6, "app": [2, 4], "args": 15, "arquiv": 11, "as_dict": 6, "as_list": 6, "assinatur": 6, "asynci": 16, "atalh": 6, "atribut": 6, "atualiz": [6, 11], "aut": 6, "autentic": 13, "auth": [5, 13, 15], "authentication": 13, "authorization": 13, "autocomplet": 16, "avanc": 6, "avg": 6, "a\u00e7\u00e3": 14, "banc": 6, "bas": 6, "basic": [12, 14], "beautify": 10, "belongs": 6, "bin\u00e1ri": 2, "block": 8, "body": 10, "bot\u00e3": 14, "bot\u00f5": 14, "built": 10, "b\u00e1sic": 8, "cach": 6, "caching": 5, "cad": 6, "call": 2, "callabl": 14, "calling": 15, "camp": [6, 14], "caracter\u00edst": 6, "cas": 6, "cascad": 6, "cat": 10, "caveats": 5, "celery": 16, "cham": 6, "chang": 4, "chav": 6, "checkbox": 12, "children": 10, "class": 14, "cleanup": 12, "client": 5, "coalesc": 6, "coalesce_zer": 6, "coloc": 2, "columns": 14, "comando": 2, "combin": 6, "commit": 6, "complexity": 12, "comput": 6, "computed": 6, "comuns": 6, "condition": 5, "conex\u00e3": 6, "conex\u00f5": 6, "configur": [2, 6], "constructor": 12, "construtor": 6, "consult": 6, "cont": 6, "contains": 6, "conte\u00fad": 17, "contribu": 1, "control": 6, "convenient": 5, "conversion": 15, "cooki": 5, "copi": 6, "copying": 4, "corr": 2, "count": [6, 15], "creating": 4, "crud": 14, "crypt": 12, "csv": 6, "custom": [12, 14], "customizing": 14, "dad": 6, "dal": [5, 6], "dashboard": 3, "dat": 12, "databas": [5, 6, 12], "datastor": 6, "day": 6, "db": 6, "decor": 5, "def": 8, "default": 8, "defeit": 6, "defin": 6, "define_tabl": 6, "deix": 6, "delet": 6, "deployment": 2, "depur": 1, "design": [2, 12], "development": 8, "dic": 1, "dicion\u00e1ri": 6, "dictionari": 12, "din\u00e2m": 4, "discord": [1, 13], "distinct": 6, "distint": 6, "distribu\u00edd": 6, "div": 10, "dock": 2, "dom": 10, "drop": 6, "elif": 8, "else": 8, "endswith": 6, "engin": 2, "envi": 6, "environment": 2, "equality": 12, "estil": 6, "est\u00e1t": 4, "etiquet": 13, "exampl": [7, 12, 14, 15, 16], "excet": 8, "exclud": 6, "exclus\u00e3": 6, "execu": 6, "executesql": 6, "experiment": 6, "experimental": 6, "export": 6, "express\u00f5": 6, "extend": 8, "extending": 8, "facebook": 13, "factor": 13, "fake_migrat": 6, "falh": 6, "faz": 6, "featur": 14, "fich": 6, "field": [6, 12], "fields": 6, "fil": [4, 12, 15], "filter_in": 6, "filter_out": 6, "filtering": 14, "filtr": 6, "finally": 8, "find": [6, 10], "first": 6, "fixa\u00e7\u00e3": 6, "fixtur": 5, "fixur": 5, "flash": [5, 15], "font": [1, 2], "form": [10, 12, 15, 16], "format": [6, 12, 16], "forms": 12, "formul\u00e1ri": 12, "foruml\u00e1ri": 12, "from": 2, "funcion": 2, "functions": [8, 12], "gae": 2, "gcloud": 2, "generating": 6, "get": 7, "github": 1, "global": 2, "googl": [1, 2, 6, 13], "grid": [14, 15, 16], "groupby": 6, "grup": 1, "h1": 10, "h2": 10, "h3": 10, "h4": 10, "h5": 10, "h6": 10, "having": 6, "head": 10, "hell": 15, "helpers": 10, "heranc": 6, "hour": 6, "html": [6, 10], "htmx": 16, "https": 2, "i": 10, "id": 6, "if": 8, "ilik": 6, "img": 10, "impersonation": 13, "implant": 2, "import": 6, "in": [5, 8, 10, 16], "includ": 8, "inferior": 6, "information": 8, "inject": [5, 10], "inner": 6, "input": 10, "inser": 6, "insert": 6, "inser\u00e7\u00e3": 6, "insid": 13, "instal": 2, "installations": 2, "installing": 2, "interfac": 13, "internacionaliz": 11, "introduction": 6, "is_alphanumeric": 12, "is_dat": 12, "is_date_in_rang": 12, "is_datetim": 12, "is_datetime_in_rang": 12, "is_decimal_in_rang": 12, "is_email": 12, "is_empty_or": 12, "is_equal_t": 12, "is_expr": 12, "is_fil": 12, "is_float_in_rang": 12, "is_imag": 12, "is_in_db": 12, "is_in_set": 12, "is_int_in_rang": 12, "is_ipaddress": 12, "is_ipv4": 12, "is_ipv6": 12, "is_json": 12, "is_length": 12, "is_list_of": 12, "is_list_of_emails": 12, "is_low": 12, "is_match": 12, "is_not_empty": 12, "is_not_in_db": 12, "is_null_or": 12, "is_saf": 12, "is_slug": 12, "is_strong": 12, "is_tim": 12, "is_upload_filenam": 12, "is_upp": 12, "is_url": 12, "isempty": 6, "iter": 6, "join": 6, "joins": 6, "js": 16, "junt": 6, "key": 14, "label": 10, "last": 6, "lay": 6, "layout": 8, "ldap": 13, "left": 6, "leg": 6, "len": 6, "less": 6, "li": 10, "lik": 6, "limitby": 6, "linguag": 8, "linh": 2, "list": 6, "local": [1, 2, 6], "low": 6, "l\u00f3gic": 6, "manipulation": 12, "manual": [1, 17], "many": 6, "marca\u00e7\u00e3": 6, "max": 6, "melhor": 2, "memcach": 5, "memoiz": 5, "mem\u00f3r": 6, "mesm": 6, "methods": [6, 15], "microsoft": 6, "migrat": 6, "migra\u00e7\u00e3": 6, "migra\u00e7\u00f5": 6, "min": 6, "minimal": 12, "minut": 6, "mobil": 8, "model": [4, 6], "modern": 1, "modific": 6, "month": 6, "mssql": 6, "muit": 6, "multipl": [5, 13], "mysql": 6, "new_app": 2, "nom": 6, "nosql": 6, "not": 6, "nov": 6, "oauth2": 13, "object": [14, 16], "objects": 13, "objet": 4, "obten\u00e7\u00e3": 6, "ol": 10, "on": 2, "on_defin": 6, "oper": 6, "option": 10, "options": 12, "op\u00e7\u00e3": 2, "op\u00e7\u00f5": 2, "orden": 6, "orderby": 6, "orderby_on_limitby": 6, "or\u00e1cul": 6, "other": 12, "out": 6, "outr": 6, "overview": 10, "p": 10, "padr\u00e3": 6, "pag": 8, "palavr": 6, "pam": 13, "par": [6, 8, 15], "paramet": 12, "parameters": 14, "part": [2, 6], "par\u00e2metr": 6, "past": 6, "pegadinh": 6, "permiss\u00f5": 13, "personaliz": [5, 6, 10, 14], "pip": 2, "plataform": 2, "plugins": 13, "plural": 6, "pluraliz": 11, "podman": 2, "polic": 7, "polymodel": 6, "pool": 6, "practical": 7, "pre": 10, "preguic": 6, "primarykey": 6, "primeir": 2, "prim\u00e1r": 6, "principal": 3, "princ\u00edpi": 4, "proced": 2, "pr\u00e9": [1, 2], "py4web": [0, 1, 6, 15, 16, 17], "pycharm": 1, "python": 1, "pythonanywher": 2, "p\u00e1gin": [3, 4], "q": 16, "quebr": 6, "query": 6, "quick": 6, "quoting": 6, "rang": 12, "raw": 6, "real": 6, "record": 6, "recurs": [1, 6], "red": [5, 14], "redefin": 6, "redirect": 15, "referent": [6, 14, 17], "regexp": 6, "registr": 6, "relation": 6, "relations": 6, "rela\u00e7\u00e3": 6, "remot": 6, "renderiz": 6, "replic": 6, "represent": 6, "request": 4, "requisit": [1, 2], "reserv": 6, "respons": 7, "restap": 7, "resum": 6, "retorn": [4, 6], "return": [8, 15], "returning": 15, "rnam": 6, "rollback": 6, "rot": 4, "row": 6, "rows": 6, "run": 2, "s": 6, "schedul": 16, "script": 10, "searching": 14, "seconds": 6, "security": 12, "segur": 6, "select": [6, 10], "selects": 6, "selet": 6, "sequence_nam": 6, "serv": [1, 5, 6, 10], "session": 5, "sessions": 5, "sess\u00e3": 3, "set": [6, 12], "set_password": 2, "setting": 15, "settings": 14, "setup": 2, "sharing": 5, "shell": [2, 6], "sid": [5, 10], "sidec": 12, "simpl": 15, "sincroniz": 6, "singul": 6, "sintax": 8, "sobr": 6, "sort": 6, "sorted": 12, "span": 10, "special": [2, 12], "sql": 6, "sqlit": 6, "stand": 6, "standard": [8, 12], "startswith": 6, "string": 16, "strings": 6, "structur": [8, 12], "style": [10, 14], "substrings": 6, "sugest\u00f5": 1, "sum": 6, "sup": 8, "suport": [2, 6], "supported": 6, "t": 16, "tabel": [6, 17], "tabl": [6, 10], "table_class": 6, "tag": 10, "tagging": 12, "tags": 13, "tbody": 10, "td": 10, "temp": 6, "templat": [5, 8, 14], "temporiz": 6, "tend": 6, "tent": 8, "tentat": 6, "text": 12, "textar": 10, "th": 10, "the": [1, 2, 4, 5, 6, 7, 12, 14, 16], "thead": 10, "tim": 12, "tip": 6, "titl": 10, "to": 6, "tod": 6, "topics": 16, "tour": 6, "tr": 10, "trabalh": 1, "tradu\u00e7\u00e3": 11, "transa\u00e7\u00e3": 6, "translator": 5, "trigger_nam": 6, "tt": 10, "tupl": 12, "tutori": 1, "two": 13, "two_factor_required": 13, "two_factor_send": 13, "two_factor_tri": 13, "type": [6, 12], "types": 6, "ubuntu": 2, "ul": 10, "understanding": 2, "up": 15, "updat": 6, "update_or_insert": 6, "update_record": 6, "upload": 12, "upper": 6, "uri": 6, "url": 10, "urlsign": 5, "usag": 16, "usand": [6, 14], "user": 13, "using": [2, 5, 8, 10, 13, 14, 16], "uso": 6, "utils": 16, "valid": 12, "validate_and_insert": 6, "validate_and_updat": 6, "validation": 12, "validators": [6, 12], "valor": [4, 6], "variabl": [8, 15], "velh": 6, "version": [2, 6], "vez": 6, "view": 15, "virtu": 6, "virtual": [2, 6], "vscod": 1, "v\u00edd": 1, "watch": 4, "web": [3, 4], "web2py": 15, "whil": 8, "widget": 16, "widgets": 12, "with": [12, 13, 15], "without": [2, 12], "workflow": 8, "world": 15, "wsgi": 2, "xml": [6, 10], "yatl": [8, 10], "year": 6, "\u00e9": 0, "\u00edndic": [6, 17]}}) \ No newline at end of file +Search.setIndex({"alltitles": {"A auto-refer\u00eancia e aliases": [[6, "self-reference-and-aliases"]], "A minimal form example without a database": [[12, "a-minimal-form-example-without-a-database"]], "A obten\u00e7\u00e3o de um `` row``": [[6, "fetching-a-row"]], "A p\u00e1gina Web principal": [[3, "the-main-web-page"]], "ANY_OF": [[12, "any-of"]], "Acknowledgments": [[0, "acknowledgments"]], "Adicionando atributos para campos e tabelas": [[6, "adding-attributes-to-fields-and-tables"]], "Advanced form design": [[12, "advanced-form-design"]], "Advanced topics and examples": [[16, "advanced-topics-and-examples"]], "Agrupamento e contando": [[6, "grouping-and-counting"]], "Ajuda, recursos e dicas": [[1, "help-resources-and-hints"]], "Aplicativos de modelo-less": [[6, "model-less-applications"]], "As fontes no GitHub": [[1, "the-sources-on-github"]], "Assinatura da DAL": [[6, "dal-signature"]], "Atalhos": [[6, "shortcuts"]], "Atualizar os arquivos de tradu\u00e7\u00e3o": [[11, "update-the-translation-files"]], "Authentication and authorization": [[13, "authentication-and-authorization"]], "Authentication using Auth": [[13, "authentication-using-auth"]], "Authorization using Tags": [[13, "authorization-using-tags"]], "Autocomplete Widget using htmx": [[16, "autocomplete-widget-using-htmx"]], "A\u00e7\u00e3o personalizada Bot\u00f5es": [[14, "custom-action-buttons"]], "Bancos de dados legados e tabelas com chave": [[6, "legacy-databases-and-keyed-tables"]], "Bancos de dados replicados": [[6, "replicated-databases"]], "Basic form example": [[12, "basic-form-example"]], "Basic grid example": [[14, "basic-grid-example"]], "Bot\u00e3o Classe A\u00e7\u00e3o Amostra": [[14, "sample-action-button-class"]], "Built-in helpers": [[10, "built-in-helpers"]], "CLEANUP": [[12, "cleanup"]], "CRUD settings": [[14, "crud-settings"]], "CRYPT": [[12, "crypt"]], "CSV (todas as tabelas ao mesmo tempo)": [[6, "csv-all-tables-at-once"]], "CSV (uma tabela de cada vez)": [[6, "csv-one-table-at-a-time"]], "CSV e sincroniza\u00e7\u00e3o de banco de dados remoto": [[6, "csv-and-remote-database-synchronization"]], "Caching e Memoize": [[5, "caching-and-memoize"]], "Campos computados": [[6, "computed-fields"]], "Campos virtuais": [[6, "virtual-fields"]], "Campos virtuais novo estilo (experimental)": [[6, "new-style-virtual-fields-experimental"]], "Campos virtuais velho antigo": [[6, "old-style-virtual-fields"]], "Caracter\u00edsticas avan\u00e7adas": [[6, "advanced-features"]], "Cascades no banco de dados": [[6, "database-cascades"]], "Caveats about fixtures": [[5, "caveats-about-fixtures"]], "Celery": [[16, "celery"]], "Checkbox validation": [[12, "checkbox-validation"]], "Client-side session in cookies": [[5, "client-side-session-in-cookies"]], "Combinando Rows": [[6, "combining-rows"]], "Como contribuir": [[1, "how-to-contribute"]], "Complexity and security validators": [[12, "complexity-and-security-validators"]], "Computed and Virtual fields": [[6, "computed-and-virtual-fields"]], "Configura\u00e7\u00f5es de quoting e case e do banco de dados": [[6, "database-quoting-and-case-settings"]], "Configura\u00e7\u00f5es padr\u00e3o de migra\u00e7\u00e3o": [[6, "default-migration-settings"]], "Construtor DAL": [[6, "dal-constructor"]], "Construtor Field": [[6, "field-constructor"]], "Construtor Table": [[6, "table-constructor"]], "Conte\u00fado:": [[17, null]], "Copiar dados de um para outro db": [[6, "copy-data-from-one-db-into-another"]], "Copying the _scaffold app": [[4, "copying-the-scaffold-app"]], "Creating an app": [[4, "creating-an-app"]], "Custom columns": [[14, "custom-columns"]], "Custom forms": [[12, "custom-forms"]], "Custom widgets": [[12, "custom-widgets"]], "Customizing style": [[14, "customizing-style"]], "DAL introduction": [[6, "dal-introduction"]], "Database validators": [[12, "database-validators"]], "Date and time validators": [[12, "date-and-time-validators"]], "De web2py para py4web": [[15, "from-web2py-to-py4web"]], "Decoradores de conveni\u00eancia": [[5, "convenience-decorators"]], "Default page layout": [[8, "default-page-layout"]], "Deployment on Docker/Podman": [[2, "deployment-on-docker-podman"]], "Deployment on GCloud (aka GAE - Google App Engine)": [[2, "deployment-on-gcloud-aka-gae-google-app-engine"]], "Deployment on Ubuntu": [[2, "deployment-on-ubuntu"]], "Depura\u00e7\u00e3o py4web com PyCharm": [[1, "debugging-py4web-with-pycharm"]], "Depura\u00e7\u00e3o py4web com VScode": [[1, "debugging-py4web-with-vscode"]], "Dicas e sugest\u00f5es": [[1, "hints-and-tips"]], "Dictionaries and tuples with IS_IN_SET": [[12, "dictionaries-and-tuples-with-is-in-set"]], "Do princ\u00edpio": [[4, "from-scratch"]], "Em valores de retorno": [[4, "on-return-values"]], "Este manual": [[1, "this-manual"]], "Etiquetas e permiss\u00f5es": [[13, "tags-and-permissions"]], "Experimentar com o shell py4web": [[6, "experiment-with-the-py4web-shell"]], "Exportar e importar dados": [[6, "exporting-and-importing-data"]], "Express\u00f5es": [[6, "expressions"]], "Extending using variables": [[8, "extending-using-variables"]], "Falhas de conex\u00e3o (par\u00e2metro tentativas)": [[6, "connection-failures-attempts-parameter"]], "Fazendo uma conex\u00e3o segura": [[6, "making-a-secure-connection"]], "Field types and validators": [[6, "field-types-and-validators"]], "File upload field": [[12, "file-upload-field"]], "Fixa\u00e7\u00e3o migra\u00e7\u00f5es quebrados": [[6, "fixing-broken-migrations"]], "Fixtures personalizados": [[5, "custom-fixtures"]], "Fixures": [[5, "fixtures"]], "Form structure manipulation": [[12, "form-structure-manipulation"]], "Foruml\u00e1rios": [[12, "forms"]], "Generating raw SQL": [[6, "generating-raw-sql"]], "Google NoSQL (Datastore)": [[6, "google-nosql-datastore"]], "Google SQL": [[6, "google-sql"]], "Grids with checkboxes": [[14, "grids-with-checkboxes"]], "HTML e XML (uma tabela de cada vez)": [[6, "html-and-xml-one-table-at-a-time"]], "HTTPS": [[2, "https"]], "Helpers YATL": [[10, "yatl-helpers"]], "Helpers overview": [[10, "helpers-overview"]], "Helpers personalizados": [[10, "custom-helpers"]], "Heran\u00e7a de tabela": [[6, "table-inheritance"]], "IS_ALPHANUMERIC": [[12, "is-alphanumeric"]], "IS_DATE": [[12, "is-date"]], "IS_DATETIME": [[12, "is-datetime"]], "IS_DATETIME_IN_RANGE": [[12, "is-datetime-in-range"]], "IS_DATE_IN_RANGE": [[12, "is-date-in-range"]], "IS_DECIMAL_IN_RANGE": [[12, "is-decimal-in-range"]], "IS_EMAIL": [[12, "is-email"]], "IS_EMPTY_OR": [[12, "is-empty-or"]], "IS_EQUAL_TO": [[12, "is-equal-to"]], "IS_EXPR": [[12, "is-expr"]], "IS_FILE": [[12, "is-file"]], "IS_FLOAT_IN_RANGE": [[12, "is-float-in-range"]], "IS_IMAGE": [[12, "is-image"]], "IS_INT_IN_RANGE": [[12, "is-int-in-range"]], "IS_IN_DB": [[12, "is-in-db"]], "IS_IN_DB and Tagging": [[12, "is-in-db-and-tagging"]], "IS_IN_SET": [[12, "is-in-set"]], "IS_IN_SET and Tagging": [[12, "is-in-set-and-tagging"]], "IS_IPADDRESS": [[12, "is-ipaddress"]], "IS_IPV4": [[12, "is-ipv4"]], "IS_IPV6": [[12, "is-ipv6"]], "IS_JSON": [[12, "is-json"]], "IS_LENGTH": [[12, "is-length"]], "IS_LIST_OF": [[12, "is-list-of"]], "IS_LIST_OF_EMAILS": [[12, "is-list-of-emails"]], "IS_LOWER": [[12, "is-lower"]], "IS_MATCH": [[12, "is-match"]], "IS_NOT_EMPTY": [[12, "is-not-empty"]], "IS_NOT_IN_DB": [[12, "is-not-in-db"]], "IS_NULL_OR": [[12, "is-null-or"]], "IS_SAFE": [[12, "is-safe"]], "IS_SLUG": [[12, "is-slug"]], "IS_STRONG": [[12, "is-strong"]], "IS_TIME": [[12, "is-time"]], "IS_UPLOAD_FILENAME": [[12, "is-upload-filename"]], "IS_UPPER": [[12, "is-upper"]], "IS_URL": [[12, "is-url"]], "Implanta\u00e7\u00e3o em PythonAnywhere.com": [[2, "deployment-on-pythonanywhere-com"]], "Information workflow": [[8, "information-workflow"]], "Inner join": [[6, "inner-join"]], "Inserir e atualizar a partir de um dicion\u00e1rio": [[6, "inserting-and-updating-from-a-dictionary"]], "Instalando a partir de bin\u00e1rios": [[2, "installing-from-binaries"]], "Instalando a partir de fonte (localmente)": [[2, "installing-from-source-locally"]], "Instala\u00e7\u00e3o de fonte (globalmente)": [[2, "installing-from-source-globally"]], "Instala\u00e7\u00e3o e coloca\u00e7\u00e3o em funcionamento": [[2, "installation-and-startup"]], "Installing from pip, using a virtual environment": [[2, "installing-from-pip-using-a-virtual-environment"]], "Installing from pip, without virtual environment": [[2, "installing-from-pip-without-virtual-environment"]], "Interface de autentica\u00e7\u00e3o": [[13, "auth-ui"]], "Internacionaliza\u00e7\u00e3o": [[11, "internationalization"]], "Joins and Relations": [[6, "joins-and-relations"]], "Key features": [[14, "key-features"]], "LDAP": [[13, "ldap"]], "Left outer join": [[6, "left-outer-join"]], "Linguagem de template YATL": [[8, "yatl-template-language"]], "Local de pasta do banco de dados": [[6, "database-folder-location"]], "MSSQL (Microsoft SQL Server)": [[6, "mssql-microsoft-sql-server"]], "Mais sobre envios": [[6, "more-on-uploads"]], "Many to many relation": [[6, "many-to-many-relation"]], "Marca\u00e7\u00e3o de registros": [[6, "tagging-records"]], "Melhoramento": [[2, "upgrading"]], "Migra\u00e7\u00e3o resumo controle": [[6, "migration-control-summary"]], "Migra\u00e7\u00f5es": [[6, "migrations"]], "Mobile development": [[8, "mobile-development"]], "Modelos": [[4, "templates"]], "Multiple Tags objects": [[13, "multiple-tags-objects"]], "Multiple fixtures": [[5, "multiple-fixtures"]], "MySQL": [[6, "mysql"]], "Nota sobre novo DAL e adaptadores": [[6, "note-on-new-dal-and-adapters"]], "O Dashboard": [[3, "the-dashboard"]], "O fixture DAL": [[5, "the-dal-fixture"]], "O fixture flash": [[5, "the-flash-fixture"]], "O grupo Google": [[1, "the-google-group"]], "O objeto `` request``": [[4, "the-request-object"]], "O pool de conex\u00f5es": [[6, "connection-pooling"]], "O que \u00e9 py4web?": [[0, "what-is-py4web"]], "OAuth2 with Discord": [[13, "oauth2-with-discord"]], "OAuth2 with Facebook": [[13, "oauth2-with-facebook"]], "OAuth2 with Google": [[13, "oauth2-with-google"]], "Operadores l\u00f3gicos": [[6, "logical-operators"]], "Op\u00e7\u00e3o `` comando call``": [[2, "call-command-option"]], "Op\u00e7\u00e3o `` comando new_app``": [[2, "new-app-command-option"]], "Op\u00e7\u00e3o `` comando run``": [[2, "run-command-option"]], "Op\u00e7\u00e3o `` comando set_password``": [[2, "set-password-command-option"]], "Op\u00e7\u00e3o `` comando setup``": [[2, "setup-command-option"]], "Op\u00e7\u00e3o `` comando shell``": [[2, "shell-command-option"]], "Op\u00e7\u00e3o `` comando version``": [[2, "version-command-option"]], "Op\u00e7\u00f5es de linha de comando": [[2, "command-line-options"]], "Or\u00e1culo": [[6, "oracle"]], "Os campos de refer\u00eancia": [[14, "reference-fields"]], "Os valores por defeito com `` `` coalesce`` e coalesce_zero``": [[6, "default-values-with-coalesce-and-coalesce-zero"]], "Other validators": [[12, "other-validators"]], "Outros operadores": [[6, "other-operators"]], "Outros par\u00e2metros do construtor DAL": [[6, "other-dal-constructor-parameters"]], "PAM": [[13, "pam"]], "Page layout standard structure": [[8, "page-layout-standard-structure"]], "Palavras-chave reservadas": [[6, "reserved-keywords"]], "Pegadinhas": [[6, "gotchas"]], "Personalizados `` tipos Field``": [[6, "custom-field-types"]], "Plataformas e pr\u00e9-requisitos suportados": [[2, "supported-platforms-and-prerequisites"]], "Plugins de Autentica\u00e7\u00e3o": [[13, "auth-plugins"]], "Pluralizar": [[11, "pluralize"]], "Primeira corrida": [[2, "first-run"]], "Procedimentos de configura\u00e7\u00e3o": [[2, "setup-procedures"]], "Pr\u00e9-requisitos": [[1, "prerequisites"]], "P\u00e1ginas est\u00e1ticas": [[4, "static-web-pages"]], "P\u00e1ginas web din\u00e2micas": [[4, "dynamic-web-pages"]], "Range, set and equality validators": [[12, "range-set-and-equality-validators"]], "Raw SQL": [[6, "raw-sql"]], "Recursivas `` s SELECT``": [[6, "recursive-selects"]], "Recursos": [[1, "resources"]], "Rede": [[14, "grid"]], "Renderizando Rows com represent": [[6, "rendering-rows-using-represent"]], "Representa\u00e7\u00e3o de dados": [[6, "data-representation"]], "RestAPI GET": [[7, "restapi-get"]], "RestAPI policies and actions": [[7, "restapi-policies-and-actions"]], "RestAPI practical examples": [[7, "restapi-practical-examples"]], "Rotas": [[4, "routes"]], "SQLite": [[6, "sqlite"]], "Searching and filtering": [[14, "searching-and-filtering"]], "Selects com cache": [[6, "caching-selects"]], "Sending messages using a background task": [[16, "sending-messages-using-a-background-task"]], "Server-side DOM": [[10, "server-side-dom"]], "Server-side session anywhere": [[5, "server-side-session-anywhere"]], "Server-side session in Redis": [[5, "server-side-session-in-redis"]], "Server-side session in database": [[5, "server-side-session-in-database"]], "Server-side session in memcache": [[5, "server-side-session-in-memcache"]], "Sess\u00e3o no Dashboard": [[3, "login-into-the-dashboard"]], "Sharing sessions": [[5, "sharing-sessions"]], "Simple conversion examples": [[15, "simple-conversion-examples"]], "Sintaxe b\u00e1sica": [[8, "basic-syntax"]], "Sorted options": [[12, "sorted-options"]], "Special installations": [[2, "special-installations"]], "Special type validators": [[12, "special-type-validators"]], "Standard widgets": [[12, "standard-widgets"]], "Strings de conex\u00e3o (o par\u00e2metro uri)": [[6, "connection-strings-the-uri-parameter"]], "Substrings": [[6, "substrings"]], "Supported databases": [[6, "supported-databases"]], "Tabelas pregui\u00e7osos": [[6, "lazy-tables"]], "Table methods": [[6, "table-methods"]], "Template Functions": [[8, "template-functions"]], "Temporiza\u00e7\u00e3o de consultas": [[6, "timing-queries"]], "Text format validators": [[12, "text-format-validators"]], "The Auth fixture": [[5, "the-auth-fixture"]], "The Condition fixture": [[5, "the-condition-fixture"]], "The DAL: a quick tour": [[6, "the-dal-a-quick-tour"]], "The Database Abstraction Layer (DAL)": [[6, "the-database-abstraction-layer-dal"]], "The Discord server": [[1, "the-discord-server"]], "The Form constructor": [[12, "the-form-constructor"]], "The Grid object": [[14, "the-grid-object"]], "The Inject fixture": [[5, "the-inject-fixture"]], "The Q object": [[16, "the-q-object"]], "The RestAPI": [[7, "the-restapi"]], "The RestAPI response": [[7, "the-restapi-response"]], "The Session fixture": [[5, "the-session-fixture"]], "The T object": [[16, "the-t-object"]], "The Template fixture": [[5, "the-template-fixture"]], "The Translator fixture": [[5, "the-translator-fixture"]], "The URLsigner fixture": [[5, "the-urlsigner-fixture"]], "The _scaffold app": [[4, "the-scaffold-app"]], "The scheduler": [[16, "the-scheduler"]], "The sidecar parameter": [[12, "the-sidecar-parameter"]], "Transa\u00e7\u00e3o distribu\u00edda": [[6, "distributed-transaction"]], "Tutoriais e v\u00eddeo": [[1, "tutorials-and-video"]], "Two Factor Authentication": [[13, "two-factor-authentication"]], "Um local de trabalho python moderna": [[1, "a-modern-python-workplace"]], "Um para muitos rela\u00e7\u00e3o": [[6, "one-to-many-relation"]], "Understanding the design": [[2, "understanding-the-design"]], "Usando DAL sem definir tabelas": [[6, "using-dal-without-define-tables"]], "Usando o DAL \u201cstand-alone\u201d": [[6, "using-the-dal-stand-alone"]], "Usando templates": [[14, "using-templates"]], "Usando um seleto para uso de mem\u00f3ria inferior \u00e0 base de iterador": [[6, "using-an-iterator-based-select-for-lower-memory-use"]], "User Impersonation": [[13, "user-impersonation"]], "Using Auth inside actions": [[13, "using-auth-inside-actions"]], "Using Fixtures": [[5, "using-fixtures"]], "Using Inject": [[10, "using-inject"]], "Using callable parameters": [[14, "using-callable-parameters"]], "Using the dashboard app with databases": [[6, "using-the-dashboard-app-with-databases"]], "Validation functions": [[12, "validation-functions"]], "Valida\u00e7\u00e3o de formul\u00e1rio": [[12, "form-validation"]], "WSGI": [[2, "wsgi"]], "Watch for files change": [[4, "watch-for-files-change"]], "Widgets": [[12, "widgets"]], "`` A``": [[10, "a"]], "`` BEAUTIFY``": [[10, "beautify"]], "`` BODY``": [[10, "body"]], "`` Belongs``": [[6, "belongs"]], "`` CAT``": [[10, "cat"]], "`` Comando SELECT``": [[6, "select-command"]], "`` Count``, `` isempty``, `` DELETE``, `` update``": [[6, "count-isempty-delete-update"]], "`` Def \u2026 return``": [[8, "def-return"]], "`` Div``": [[10, "div"]], "`` Drop``": [[6, "drop"]], "`` EM``": [[10, "em"]], "`` Find``, `` exclude``, `` sort``": [[6, "find-exclude-sort"]], "`` Form``": [[10, "form"]], "`` Format``: representa\u00e7\u00e3o da ficha": [[6, "format-record-representation"]], "`` H1``, `` h2``, `` H3``, `` H4``, `` H5``, `` H6``": [[10, "h1-h2-h3-h4-h5-h6"]], "`` HEAD``": [[10, "head"]], "`` HTML``": [[10, "html"]], "`` IMG``": [[10, "img"]], "`` INPUT``": [[10, "input"]], "`` I``": [[10, "i"]], "`` Id``: Notas sobre a chave prim\u00e1ria": [[6, "id-notes-about-the-primary-key"]], "`` If \u2026 elif \u2026 else``": [[8, "if-elif-else"]], "`` Insert``": [[6, "insert"]], "`` LI``": [[10, "li"]], "`` Label``": [[10, "label"]], "`` Like``, `` ilike``, `` regexp``, `` startswith``, `` endswith``, `` contains``, `` upper``, `` lower``": [[6, "like-ilike-regexp-startswith-endswith-contains-upper-lower"]], "`` Lista: `` e `` contains``": [[6, "list-type-and-contains"]], "`` Migrate``, `` fake_migrate``": [[6, "migrate-fake-migrate"]], "`` OL``": [[10, "ol"]], "`` OPTION``": [[10, "option"]], "`` On_define``": [[6, "on-define"]], "`` Orderby``, `` groupby``, `` limitby``, `` distinct``, `` having``, `` orderby_on_limitby``, `` join``, `` left``, `` cache``": [[6, "orderby-groupby-limitby-distinct-having-orderby-on-limitby-join-left-cache"]], "`` PRE``": [[10, "pre"]], "`` P``": [[10, "p"]], "`` Para \u2026 in``": [[8, "for-in"]], "`` Primarykey``: Suporte para tabelas legadas": [[6, "primarykey-support-for-legacy-tables"]], "`` Query``, `` Set``, `` Rows``": [[6, "query-set-rows"]], "`` Redefine``": [[6, "redefine"]], "`` Rname``: nome real": [[6, "rname-real-name"]], "`` SCRIPT``": [[10, "script"]], "`` SELECT``": [[10, "select"]], "`` SPAN``": [[10, "span"]], "`` STYLE``": [[10, "style"]], "`` Sequence_name``": [[6, "sequence-name"]], "`` Sum``, `` avg``, `` min``, `` `` max`` e len``": [[6, "sum-avg-min-max-and-len"]], "`` TABLE``, `` TR``, `` TD``": [[10, "table-tr-td"]], "`` TAG``": [[10, "tag"]], "`` TBODY``": [[10, "tbody"]], "`` TEXTAREA``": [[10, "textarea"]], "`` THEAD``": [[10, "thead"]], "`` TH``": [[10, "th"]], "`` TITLE``": [[10, "title"]], "`` TT``": [[10, "tt"]], "`` Table_class``": [[6, "table-class"]], "`` Tentar \u2026 exceto \u2026 else \u2026 finally``": [[8, "try-except-else-finally"]], "`` Trigger_name``": [[6, "trigger-name"]], "`` UL``": [[10, "ul"]], "`` URL``": [[10, "url"]], "`` Update_or_insert``": [[6, "update-or-insert"]], "`` Update_record``": [[6, "update-record"]], "`` Validate_and_insert``, `` validate_and_update``": [[6, "validate-and-insert-validate-and-update"]], "`` While``": [[8, "while"]], "`` XML``": [[10, "xml"]], "`` Year``, `` month``, `` day``, `` hour``, `` minutes``, `` seconds``": [[6, "year-month-day-hour-minutes-seconds"]], "`` _Lastsql``": [[6, "lastsql"]], "`` `` As_dict`` e as_list``": [[6, "as-dict-and-as-list"]], "`` `` Filter_in`` e filter_out``": [[6, "filter-in-and-filter-out"]], "`` `` First`` e last``": [[6, "first-and-last"]], "`` `` Plural`` e singular``": [[6, "plural-and-singular"]], "`` `` commit`` e rollback``": [[6, "commit-and-rollback"]], "`` case``": [[6, "case"]], "`` executesql``": [[6, "executesql"]], "`` polymodel``": [[6, "polymodel"]], "assinatura define_table": [[6, "define-table-signature"]], "block and super": [[8, "block-and-super"]], "cache, em cache": [[6, "cache-cacheable"]], "children": [[10, "children"]], "distinto": [[6, "distinct"]], "extend and include": [[8, "extend-and-include"]], "filtros comuns": [[6, "common-filters"]], "find": [[10, "find"]], "groupby, tendo": [[6, "groupby-having"]], "htmx": [[16, "htmx"]], "htmx usage in Form": [[16, "htmx-usage-in-form"]], "htmx usage in Grid": [[16, "htmx-usage-in-grid"]], "juntar-se, deixou": [[6, "join-left"]], "limitby": [[6, "limitby"]], "modifica\u00e7\u00e3o da tabela e campo em tempo de execu\u00e7\u00e3o": [[6, "run-time-field-and-table-modification"]], "ordenar por": [[6, "orderby"]], "orderby_on_limitby": [[6, "orderby-on-limitby"]], "py4web and asyncio": [[16, "py4web-and-asyncio"]], "py4web model": [[6, "py4web-model"]], "py4web: o manual de refer\u00eancia": [[17, "py4web-the-reference-manual"]], "retornos de chamada no registro de inser\u00e7\u00e3o, exclus\u00e3o e atualiza\u00e7\u00e3o": [[6, "callbacks-on-record-insert-delete-and-update"]], "string.format": [[16, "string-format"]], "two_factor_required": [[13, "two-factor-required"]], "two_factor_send": [[13, "two-factor-send"]], "two_factor_tries": [[13, "two-factor-tries"]], "utils.js": [[16, "utils-js"]], "versionamento recorde": [[6, "record-versioning"]], "\u00cdndices": [[6, "indexes"]], "\u00cdndices e tabelas": [[17, "indices-and-tables"]], "\u201cAccessing OS files\u201d example": [[15, "accessing-os-files-example"]], "\u201cForm and flash\u201d example": [[15, "form-and-flash-example"]], "\u201cHello world\u201d example": [[15, "hello-world-example"]], "\u201cRedirect with variables\u201d example": [[15, "redirect-with-variables-example"]], "\u201cReturn calling methods\u201d example": [[15, "return-calling-methods-example"]], "\u201cReturning args\u201d example": [[15, "returning-args-example"]], "\u201cReturning variables\u201d example": [[15, "returning-variables-example"]], "\u201cSetting up a counter\u201d example": [[15, "setting-up-a-counter-example"]], "\u201cView\u201d example": [[15, "view-example"]], "\u201cauth\u201d example": [[15, "auth-example"]], "\u201cgrid\u201d example": [[15, "grid-example"]]}, "docnames": ["chapter-01", "chapter-02", "chapter-03", "chapter-04", "chapter-05", "chapter-06", "chapter-07", "chapter-08", "chapter-09", "chapter-1", "chapter-10", "chapter-11", "chapter-12", "chapter-13", "chapter-14", "chapter-15", "chapter-16", "index"], "envversion": {"sphinx": 61, "sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2}, "filenames": ["chapter-01.rst", "chapter-02.rst", "chapter-03.rst", "chapter-04.rst", "chapter-05.rst", "chapter-06.rst", "chapter-07.rst", "chapter-08.rst", "chapter-09.rst", "chapter-1.rst", "chapter-10.rst", "chapter-11.rst", "chapter-12.rst", "chapter-13.rst", "chapter-14.rst", "chapter-15.rst", "chapter-16.rst", "index.rst"], "indexentries": {}, "objects": {}, "objnames": {}, "objtypes": {}, "terms": {"0": [2, 3, 5, 6, 7, 8, 10, 11, 12, 13, 14, 15, 16], "00": 7, "01": 7, "02": [6, 12], "03": [2, 6, 7], "04": 2, "04t07": 7, "05": 7, "08": 12, "0x4e86": 12, "0x7fa533ff7640": 10, "1": [2, 3, 5, 6, 7, 8, 10, 11, 12, 14, 15, 16], "10": [2, 6, 7, 8, 10, 11, 12, 13, 16], "100": [2, 6, 7, 8, 12, 16], "1000": [5, 6, 12, 16], "1000ms": 16, "100px": 16, "1024": 12, "1048576": 12, "10px": 14, "11": [6, 12], "111111": 16, "11211": 5, "12": 12, "120": 6, "123": [10, 12], "123218": 7, "123456": 12, "125": 6, "127": [2, 3, 5, 12, 14], "13": [6, 12], "132635": 7, "14": [8, 12, 14], "15": [6, 12, 13, 14], "16": 12, "168": 12, "169": 12, "16px": 8, "172": [6, 12], "174": 6, "178974": 7, "19": [6, 7, 12], "192": [6, 12], "1963": 12, "198": 6, "199": 12, "19t05": 7, "1e100": 6, "1kb": 12, "1l": 6, "1mb": 12, "1pkogiy59xj8co8": 8, "2": [5, 6, 7, 8, 10, 11, 12, 13, 15, 16], "20": [2, 7, 11, 12], "200": [7, 12, 15, 16], "2001": 12, "2002": 12, "2005": 6, "2007": 0, "2008": 12, "2009": 12, "200ms": 16, "200x200": 12, "2010": 6, "2012": 6, "2013": 6, "2015": 0, "2018": 6, "2019": 7, "201988": 7, "2020": 1, "20201112": 3, "2021": 7, "2022": 5, "207": 6, "217": 6, "22": 13, "227": 6, "239": 6, "2396": 12, "24": 12, "254": 12, "255": 12, "256": 6, "2616": 12, "28": 12, "2em": 16, "2px": 16, "3": [0, 2, 4, 5, 6, 7, 8, 10, 12, 13, 14, 15, 16], "30": [2, 6, 8, 12], "301": 15, "309903": 7, "31": [6, 7, 12], "32": [6, 12], "322494": 7, "33": [6, 12], "34": 7, "3490": 12, "3492": 12, "35": 6, "355181": 7, "3600": [5, 6], "366288": 7, "38": 7, "3em": 16, "4": [2, 5, 6, 7, 8, 12, 14], "40": [2, 10, 16], "400": [5, 15], "404": [5, 13], "405515": 7, "43": 6, "45": [8, 12], "451907": 7, "453020": 7, "456": 12, "466030": 7, "4e": 12, "5": [5, 6, 7, 8, 11, 12, 13, 14, 16], "50": [2, 7], "500": 16, "500ms": 16, "512": 6, "53": 12, "54": 8, "559918": 7, "58": 8, "59": 12, "6": [5, 6, 7, 12, 13, 15, 16], "60": [5, 6], "63": [6, 12], "6379": 5, "64": [6, 8, 16], "65": 6, "6to4": 12, "7": [2, 7, 8, 12, 15], "70": 7, "74": 6, "75": 7, "768": 6, "8": [2, 6, 7, 12], "80": [7, 12], "8000": [2, 3, 4, 12, 14], "86": 12, "8601": 7, "8em": [8, 16], "9": [6, 7, 12, 14, 15], "90": [6, 7], "91": 6, "95": 6, "97": 6, "974953": 7, "99": 6, "A": [1, 2, 4, 5, 7, 8, 11, 13, 14, 15, 16, 17], "AS": 6, "Ao": [4, 6, 8, 14], "As": [3, 4, 5, 6, 7, 8, 10, 11, 12, 13, 14, 16], "COMO": 6, "Com": 6, "Comando": 17, "Como": [6, 17], "Da": 6, "De": [0, 1, 4, 6, 17], "Do": [6, 8, 12, 14, 17], "E": [1, 6, 13], "Ela": [1, 6, 8], "Ele": [2, 3, 5, 6, 10], "Eles": [0, 4, 6], "Em": [2, 5, 6, 8, 10], "Essas": 0, "Esse": 4, "Esses": [5, 6], "Esta": [0, 1, 2, 4, 6], "Estas": 10, "Este": [2, 6, 8, 10, 14, 15], "Estes": 6, "For": [1, 2, 4, 5, 6, 7, 8, 10, 12, 13, 14, 15, 16], "Fora": 0, "H\u00e1": [1, 5, 6, 14], "Isso": [2, 4, 6], "Isto": [0, 2, 3, 4, 5, 6, 10, 14], "Mas": [1, 4, 6], "NO": 6, "Na": 0, "Nem": 6, "No": [2, 5, 6, 8, 14], "Nos": 6, "N\u00f3s": [0, 1, 5], "O": [2, 8, 10, 12, 13, 17], "OU": 14, "Os": [0, 3, 4, 8, 10, 13, 17], "Por": [2, 3, 4, 5, 6, 10], "SE": 6, "Se": [1, 2, 3, 4, 6, 8, 10, 14], "Seu": 6, "Tamb\u00e9m": 6, "Um": 5, "Uma": [4, 6, 8, 10], "_": [2, 5, 12, 16], "__": [1, 2, 4], "__dict__": 5, "__file__": [5, 7, 14], "__init": 2, "__init__": [2, 4, 5, 6, 7, 14, 15, 16], "__prerequisite__": 5, "__prerequisites__": 5, "__str__": [5, 8, 10], "_action": [10, 14], "_adapt": 6, "_after_delet": 6, "_after_insert": 6, "_after_updat": 6, "_alt": 10, "_and": 12, "_antes_": 6, "_autocomplet": 16, "_autocomplete_search_fields": 16, "_before_delet": 6, "_before_insert": 6, "_before_updat": 6, "_bgcolor": 10, "_c": 10, "_checked": 10, "_class": [5, 10, 12, 16], "_cols": 10, "_common_filt": 6, "_count": 6, "_dashboard": [2, 3], "_dat": 10, "_db": 6, "_dbnam": 6, "_default": [2, 4], "_delet": 6, "_disabled": 10, "_documentation": [1, 3], "_enable_record_versioning": 6, "_extr": 6, "_format": 6, "_href": [5, 8, 10, 12, 14], "_hx": 16, "_id": [6, 10, 12, 16], "_insert": 6, "_listify": 6, "_method": [10, 14], "_nam": [6, 10, 12, 14, 16], "_next_url": 13, "_nonreserved": 6, "_onclick": 12, "_placehold": [12, 16], "_rows": 10, "_scaffold": [5, 8, 10, 12, 13, 14, 15, 17], "_search": 16, "_select": 6, "_selected": 10, "_sesson": 5, "_src": 10, "_style": [12, 16], "_tabl": [6, 12, 16], "_tablenam": 6, "_tag_": 13, "_timings": 6, "_titl": [12, 16], "_type": [6, 10, 12, 14, 16], "_u": 10, "_updat": 6, "_ur": 6, "_valu": [10, 12, 14, 16], "_xmlns": 10, "aaabaaeaaqeaaaeaiaawaaaafgaaacgaaaabaaaaagaaaaeaiaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaapaaaaa": 8, "ab": [10, 12], "aba": 3, "abaix": 6, "abas": 3, "abbreviated": 12, "abc": [10, 12], "abert": [1, 3, 6], "ability": 15, "able": [5, 6, 12], "abort": [4, 6], "about": [6, 7, 13, 14, 15, 16, 17], "abov": [4, 5, 6, 7, 8, 12, 14, 16], "abracadabr": 2, "abrir": 2, "absent": 2, "absolut": [2, 6, 15], "abspath": 4, "abstraction": [5, 15, 17], "abstra\u00e7\u00e3": 6, "acab": 6, "accdesc": 6, "accept": [4, 5, 12, 16], "acceptanc": 12, "accepted": [1, 2, 6, 12, 15, 16], "accepting": 10, "accepts": 12, "access": [2, 4, 5, 6, 10, 13, 15, 16], "accessed": [6, 10, 12], "accessibl": 4, "accessing": [5, 6], "accnum": 6, "accomplish": [5, 6], "accomplished": [6, 13, 15], "according": 8, "accordingly": 8, "account": 6, "acctype": 6, "aceit": [6, 11, 12], "aceler": 6, "acert": 2, "acess": [0, 2, 4, 5, 6], "acess\u00f3ri": 4, "achieved": [5, 15], "acim": [6, 7, 8, 13], "acion": 6, "acknowledgments": 17, "acompanh": 6, "acontec": 6, "acord": 6, "acrescent": 6, "across": [6, 8], "act": 6, "action": [4, 5, 6, 7, 10, 12, 13, 14, 15, 16], "action_button": 14, "action_token": [5, 13], "actions": [4, 5, 6, 14, 15, 17], "activ": [6, 13], "activat": [2, 13], "activated": 13, "activating": 2, "activiti": 6, "acts": 12, "actu": 6, "actual": [5, 6, 8, 13, 14], "actualiz": 6, "actually": [6, 8], "ac\u00e7\u00e3": [4, 5, 6, 7], "ad": 13, "adapt": 13, "adapter_args": 6, "adapters": [6, 16], "add": [1, 2, 4, 5, 6, 7, 8, 10, 11, 12, 13, 14, 15, 16], "added": [0, 2, 5, 12, 13, 16], "adding": [6, 12, 14], "addition": [6, 8], "additional": [4, 5, 6, 7, 8, 12, 14], "additional_cl": 14, "additional_styl": 14, "address": [2, 12, 13], "adds": 16, "adi": 6, "adiant": 13, "adicion": [2, 5, 11, 12, 13, 14], "adicional": [2, 5, 6], "adi\u00e7\u00e3": 6, "admin": 15, "administr": [0, 6], "administrativ": 2, "administrator": 2, "adquir": 6, "advanc": [2, 13, 14], "advanced": [14, 17], "advantag": [2, 6, 8, 16], "advisabl": 6, "advised": 14, "affecting": 6, "after": [5, 6, 8, 12, 13, 14, 16], "after_connection": 6, "after_delet": 6, "after_insert": 6, "after_updat": 6, "aftermath": 6, "again": [2, 4, 5, 6, 12, 16], "against": [6, 7, 10, 12, 14], "age": 6, "aggregat": 6, "agir": [6, 10], "agn\u00f3st": 4, "agor": [2, 4, 5, 6, 8], "agrad": 10, "agreg": 6, "aid": 6, "aims": 0, "aind": [2, 6, 13], "ajax": [8, 14, 16], "ajud": [0, 2, 4, 6, 15, 17], "ajust": 6, "aka": 1, "alcanc": 6, "alchemy": 6, "aleat\u00f3r": 6, "alert": [5, 8, 10, 12, 15], "alerts": [5, 8, 15], "alex": 6, "alfar": [0, 1], "alg": 12, "algo": [5, 6, 7, 8], "algorithm": [5, 12], "algum": [4, 6, 10], "alguns": [0, 2, 4, 5, 6, 7, 8, 10], "ali": [6, 12], "aliment": 6, "aliv": 16, "all": [0, 1, 2, 4, 5, 6, 7, 8, 10, 12, 13, 14, 15, 16], "allocated": 12, "allow": [6, 7, 8, 10, 12, 13, 14, 16], "allowed": [6, 7, 12, 13], "allowed_actions": 13, "allowed_attribut": 10, "allowed_overrid": 12, "allowed_patterns": 7, "allowed_schem": 12, "allowing": [1, 12, 16], "allows": [2, 3, 4, 5, 6, 7, 8, 12, 13, 14, 16], "almost": 5, "along": [2, 4, 10, 12, 16], "alphabetically": 12, "alphanumeric": 12, "already": [2, 4, 5, 10, 12, 13, 14], "also": [0, 1, 2, 4, 5, 6, 8, 10, 12, 13, 14, 15, 16], "alt": 10, "alter": [0, 2, 4, 5, 6, 11], "altering": 6, "altern": 6, "alternat": [5, 16], "alternativ": [2, 6, 8, 12], "although": [2, 8, 12], "alvo": 6, "always": [0, 2, 4, 5, 6, 12, 16], "al\u00e9m": [4, 6, 14], "am": [12, 16], "amazon": 6, "ambas": 6, "ambient": 2, "ambigu": [4, 6], "ambos": [4, 5, 6], "among": [6, 12], "amount": 6, "ampli": 1, "an": [0, 1, 2, 3, 5, 6, 8, 10, 12, 13, 14, 15, 16, 17], "analis": [4, 6, 11], "analogy": 15, "ancestor": 10, "anchor": 16, "and": [0, 1, 2, 3, 4, 5, 10, 17], "andaim": 4, "andrew": 1, "anex": 6, "angle": 8, "angul": 16, "angularjs": 0, "aninh": [6, 10], "anonymous": [6, 8, 12], "anoth": [4, 5, 6, 8, 12, 13], "anotherpath": 5, "ansi": 6, "answer": 1, "anteced": 4, "anterior": [2, 6], "antes": [1, 6, 8, 10, 13, 14], "antig": 15, "any": [2, 3, 4, 5, 6, 7, 8, 10, 12, 13, 14, 15, 16], "anyhow": 2, "anyobj": 6, "anything": 4, "anyway": 6, "anywher": [8, 15], "an\u00e1lis": 6, "apag": 12, "aparec": 6, "aparent": 6, "apen": [2, 5, 6, 7], "api": [0, 6, 7, 10, 12, 13, 16], "api_key": 16, "api_version": 7, "apis": [0, 6, 13, 15], "aplic": [0, 2, 3, 4, 5, 14, 15], "apoi": 6, "apont": 6, "app": [0, 1, 3, 5, 7, 8, 10, 11, 12, 13, 14, 15, 16, 17], "app1": 5, "app1_session": 5, "app2": 5, "app_fold": 15, "app_nam": [2, 4, 5, 6], "app_watch_handl": 4, "appadmin": [0, 6], "appe": [6, 12], "append": [6, 10, 12, 14, 16], "append_id": 14, "appended": [5, 6], "apple": 12, "appli": [6, 12, 16], "application": [2, 5, 6, 8, 12, 13, 15, 16], "applications": [0, 2, 3, 4, 6, 12, 13, 14], "applied": [5, 6, 12, 14, 16], "apply": [0, 5, 12, 13, 14], "applying": [6, 14], "appnam": [2, 5, 13, 15], "appname_session": 5, "approach": [6, 15], "appropriat": [6, 12], "appropriately": 6, "approv": 13, "apps": [0, 1, 2, 3, 4, 5, 6, 8, 13, 15], "apps_fold": 2, "aprend": 1, "apresent": 8, "apropri": 6, "aproxim": 6, "apt": 13, "ap\u00f3s": [2, 6, 14], "aqu": [2, 3, 4, 5, 6, 7, 8, 10, 11, 12, 13, 14], "aquel": [6, 13], "arbitrary": [4, 13], "arbitr\u00e1ri": 6, "archive_db": 6, "archive_nam": 6, "are": [0, 1, 2, 4, 5, 6, 7, 8, 10, 12, 13, 14, 15, 16], "aren": 6, "args": [1, 2, 6], "argument": [2, 4, 5, 6, 8, 10, 12, 13, 16], "arguments": [2, 5, 6, 8, 10, 12, 13, 15, 16], "arithmetic": 12, "armazen": [0, 2, 5, 6, 10], "around": [1, 15], "arquiv": [0, 2, 3, 4, 5, 6, 13, 17], "arrang": 12, "array": 16, "arriv": [0, 6], "as_ordered_dict": 6, "asci": 12, "asid": 16, "ask": 16, "asked": 2, "asking": 5, "aspas": 6, "assert": [6, 16], "assets": 2, "assigned": [6, 12, 13, 15], "assigning": [15, 16], "assignment": 8, "assigns": 16, "assim": [6, 8], "assinatur": [4, 5], "assist": 4, "assistent": 10, "assoc": [6, 11], "associated": [6, 12, 13], "assum": [2, 5, 6, 7, 11, 12, 16], "assumed": 15, "assuming": [5, 6], "async": 16, "asynchronously": 16, "asynci": 17, "at": [0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 12, 13, 14, 15, 16], "atend": [2, 6], "ativ": [2, 6], "atrav\u00e9s": [6, 8, 10, 13], "atribut": [5, 10], "atribu\u00edd": 6, "attached": [6, 13], "attaching": 15, "attacks": [5, 10], "attempted": 12, "attempting": 6, "attempts": [6, 13], "attention": 6, "attribut": [4, 5, 6, 10, 12, 14, 15, 16], "attributes_plugin": 16, "attributespluginhtmx": 16, "attrs": [12, 14, 16], "atual": [2, 6], "atualiz": [2, 17], "aug": 12, "august": 12, "aul": 14, "aut": 10, "autentic": 6, "auth": [0, 2, 4, 6, 8, 10, 16, 17], "auth_group": 13, "auth_groups": 13, "auth_plugins": 13, "auth_us": [5, 6, 13, 16], "auth_user_tag_groups": [6, 13], "auth_user_tagged_groups": 13, "authenticat": 13, "authenticated": [5, 6], "authentication": [5, 14, 17], "authoriz": [6, 7], "authorization": [5, 6, 17], "authorized": 13, "auto_import": 6, "auto_process": [14, 16], "autocomplete_query": 16, "autodelet": 6, "autogenerated": 6, "automat": [2, 4, 6, 8, 10, 13, 14], "automatic": [4, 6, 8, 15], "automatically": [2, 3, 4, 5, 6, 12, 13, 14, 15, 16], "autoriz": 6, "auxili": [5, 6, 8, 10], "availabl": [1, 2, 6, 8, 10, 13, 15, 16], "avali": [6, 8], "avanc": 17, "avis": [5, 6, 13], "avoid": [1, 2, 5, 6, 12], "avoided": 8, "avoiding": 5, "avoids": 6, "awar": 6, "awesom": [8, 14], "axel": 0, "axolotl": 0, "azul": 4, "a\u00e7\u00e3": [4, 5, 6, 13, 17], "a\u00e7\u00f5": 5, "a\u00e7\u00fac": 5, "b": [5, 6, 8, 10, 12, 15, 16], "back": [5, 6, 12], "backend": 6, "backends": 6, "background": [2, 4, 12, 17], "backported": 6, "backslash": 4, "backup": [2, 6, 12], "backward": 12, "backwards": [0, 12], "bad_days": 6, "bails": 6, "banan": 12, "banc": [0, 1, 3, 4, 5, 13], "bar": [8, 14], "barc": 6, "barr": 4, "barri": 0, "bas": [0, 2, 4, 8, 14, 16], "base64": [6, 8, 16], "base_dn": 13, "baseadapt": 6, "based": [0, 2, 3, 4, 5, 7, 8, 12, 13, 14, 15, 16], "bash": 2, "basic": [2, 5, 17], "basically": 16, "bast": 2, "bat": 2, "batman": [7, 12, 14], "battl": 0, "be": [0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 12, 13, 14, 15, 16], "beasley": 0, "becaus": [0, 2, 4, 5, 6, 8, 10, 12, 14, 16], "becom": [12, 16], "bed": 11, "been": [0, 2, 5, 6, 8, 12], "befor": [2, 5, 6, 8, 12, 13, 14], "before_delet": 6, "before_insert": 6, "before_updat": 6, "begin": [12, 14], "beginners": 2, "beginning": [8, 12, 13], "behavior": [5, 6, 12, 15, 16], "behaviour": [2, 6, 14], "being": [5, 6, 7, 8, 12, 16], "believ": [0, 5], "belong": [13, 15], "belonging": 6, "belongs": 13, "below": [5, 6, 7, 12, 14], "bem": [0, 4, 5, 6, 13], "benefits": 16, "benef\u00edci": 6, "best": [2, 5, 6], "bett": [0, 1, 2, 4, 6, 14, 15, 16], "between": [5, 10, 12, 15], "beyond": 12, "bgcolor": 10, "bibliotec": [0, 4, 11], "big": 15, "bigint": 6, "bigint_id": 6, "bilhet": [0, 3, 6], "bilh\u00e9t": 0, "bin": [1, 2], "binari": 2, "binary": 6, "bind": 16, "bin\u00e1ri": 6, "birthplac": 6, "bit": 12, "bitbucket": 1, "black": [8, 12], "blank": [12, 14], "blanks": 12, "blink": 16, "blob": [1, 6], "bloc": [8, 10], "block": [13, 16], "blockquot": 10, "blocks": 8, "blog": [1, 6, 10], "blog_post": 6, "bloqu": 13, "blu": [4, 6, 12, 15], "bmp": 12, "boas": 2, "boat": 6, "bob": 6, "body": [4, 8, 13, 14, 16], "boilerplat": 5, "bold": 10, "bom": 2, "bonit": 6, "book": 6, "boolean": [6, 14], "booleans": 6, "boost": [6, 8], "bootstrap": 14, "bord": 16, "botar": 0, "both": [1, 2, 5, 6, 8, 12, 15], "bottl": [0, 4, 5, 8, 15], "bottle_app": 2, "bottleneck": 16, "bottlepy": [4, 5], "bottom": 12, "bottons": 14, "bot\u00e3": 3, "bot\u00f5": [3, 17], "boundari": 12, "boundary": 12, "box": [0, 6, 12], "br": [8, 10], "bracket": 8, "brackets": [8, 12], "branch": [1, 2], "break": [2, 6], "breaking": 6, "breaks": 12, "breez": 1, "brev": 4, "briefly": 2, "broken": [0, 6, 12], "brows": [1, 2, 3, 5, 7, 8, 14, 16], "browsers": 16, "browsing": 3, "bruc": [7, 14], "brut": 6, "bsd": 1, "buff": 6, "bug": 6, "bugs": 1, "build": [1, 2, 4, 5, 10, 14, 16], "building": [4, 12, 16], "built": [0, 1, 4, 6, 8, 12, 16, 17], "bulk_insert": 6, "bulletproof": 6, "bulm": [12, 14, 16], "bunch": 2, "busc": [3, 6, 14], "busing": 16, "but": [0, 1, 2, 4, 5, 6, 7, 8, 10, 12, 13, 14, 15, 16], "button": [3, 4, 5, 12, 14, 16], "buttons": [10, 12, 14, 16], "by": [0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 12, 13, 14, 15, 16], "bypass": [12, 13], "bypassed": 13, "byte": 12, "bytecod": 8, "bytes": 6, "b\u00e1sic": [0, 1, 6, 17], "c": [1, 2, 3, 5, 6, 8, 10, 12, 15], "ca": 12, "cabec": [10, 14], "cabe\u00e7alh": [4, 10], "cach": [0, 2, 4, 5, 12], "cache_db_select": 6, "cacheabl": 6, "cached": 5, "cache\u00e1vel": 6, "caching": [6, 17], "cachorr": 11, "cad": [2, 4, 5, 8, 11, 14], "caiu": 6, "caix": [0, 6, 10], "calcul": 6, "calend": 14, "call": [0, 5, 6, 8, 12, 13, 16], "callabl": [10, 12], "callback": [6, 12, 13, 16], "callback_url": 13, "called": [1, 2, 5, 6, 7, 8, 10, 12, 14, 15, 16], "calling": [5, 6, 8], "calls": [2, 6, 8, 16], "cam": [6, 11], "caminh": [2, 4, 6, 14], "camp": [5, 7, 10, 12, 17], "can": [0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 11, 12, 13, 14, 15, 16], "cancel": [12, 16], "cancel_attrs": 16, "cannot": [2, 5, 6, 8, 12, 16], "capabiliti": [14, 16], "capac": 0, "capaz": [1, 2], "capitaliz": 16, "captur": 16, "cap\u00edtul": [2, 4, 5, 15], "car": 6, "caract": [6, 10], "caracter": 4, "caracter\u00edst": 17, "card": 6, "careful": [5, 6, 8, 15, 16], "carg": 6, "carl": 6, "carreg": [0, 6], "carroll": 0, "carry": 15, "cart": 5, "car\u00e1ct": [4, 6], "cas": [0, 1, 2, 3, 4, 5, 8, 10, 12, 13, 14, 15, 16], "cascading": 6, "cascat": 6, "case_sensitiv": 6, "cassi": 0, "caus": [6, 12], "caveat": [6, 8, 15], "caveats": 17, "cd": 2, "cdnjs": [8, 14], "celery": 17, "cent": [5, 6, 8], "century": 12, "ceo": [7, 14], "cerc": 6, "cert": [1, 2, 6, 14], "certain": [6, 8, 12, 14], "certez": 6, "certificat": 2, "certifiqu": [6, 11], "cf": 4, "cgi": 12, "cha": 6, "challeng": 13, "cham": [2, 4, 5, 7, 8, 11, 14], "chang": [1, 2, 3, 5, 6, 7, 8, 12, 13, 14, 15, 16, 17], "change_email": 13, "change_password": [8, 13], "changed": [2, 3, 4, 5, 6, 8, 12, 15, 16], "changed_fil": 4, "changing": 6, "channel": 1, "chapt": [3, 4, 5, 6, 8, 10, 12, 13, 14], "chapters": [1, 5], "char": 6, "charact": [6, 12], "characters": [6, 12], "charg": [2, 15], "chars": 13, "chat": 2, "chats": 1, "chav": [4, 8, 10, 11, 14], "chec": 11, "checbox": 14, "check": [3, 4, 5, 6, 12, 13, 14, 16], "check_": 16, "check_reserved": 6, "checkbox": [8, 10, 17], "checkboxwidget": 12, "checked": [10, 12], "checking": [1, 12, 13, 15], "checks": [2, 6, 8, 12, 13], "cherry": 12, "chicag": 6, "children": 14, "choic": [1, 12, 14], "choos": [6, 12, 13], "choosen": 6, "chrom": [3, 16], "cient": 6, "cinc": 6, "circul": 6, "circumstanc": 5, "cit": [6, 10, 12], "cit0801": 7, "cit0802": 7, "cit1601": 16, "clar": 6, "clark": [7, 14], "clash": 12, "class": [5, 6, 8, 10, 12, 13, 15, 16], "class_inner_exceptions": 16, "class_styl": 14, "classific": [6, 14], "claud": 6, "claus": 6, "cle": 12, "clean": [5, 10], "cleanup": 0, "clearly": 16, "clev": 12, "cli": [1, 2], "clic": 14, "click": [3, 10, 12, 14, 16], "clickabl": 14, "clicked": [14, 16], "clicks": [6, 16], "client": [0, 7, 12, 13, 16], "client_id": 13, "client_ip": 5, "client_secret": 13, "clients": 5, "clientsid": 16, "cliqu": [3, 14], "clock": 12, "clon": [2, 4, 6, 16], "cloned": 2, "clos": [6, 10], "closed": [6, 8], "closing": [5, 6], "cloudflar": [8, 14], "cl\u00e1usul": [6, 8], "cmd": 2, "cn": 13, "co": [6, 12], "coa": 6, "cod": [1, 2, 4, 5, 6, 7, 8, 10, 12, 13, 14, 15, 16], "codific": 6, "coding": 1, "cois": 6, "colegial": 13, "collapsibl": 10, "collection": [0, 15], "collections": 2, "collects": 2, "colnam": 6, "coloc": 17, "colon": 8, "color": [4, 6, 8, 10, 12, 16], "colors": [4, 6], "cols": 10, "colspan": 10, "column": [6, 14], "columns": [6, 17], "colun": [6, 14], "comand": 6, "comando": [3, 4, 6, 10, 17], "combin": [4, 5, 10, 14], "combined": [5, 6, 12], "come": [0, 5], "comec": [1, 2, 4, 6], "comes": [0, 5, 8, 12, 13, 14, 15, 16], "comet": 6, "coming": 5, "comm": [2, 16], "command": [2, 4, 6, 8], "commands": [2, 4, 6, 8, 10], "comment": [6, 10], "commit": [5, 7, 14, 16], "commits": [5, 6], "committed": [6, 15], "common": [2, 4, 5, 8, 12, 13, 15, 16], "common_filt": 6, "common_filters": 6, "commonality": 8, "communicat": 5, "communication": 6, "communications": 5, "community": [0, 6], "compact": 6, "company": 14, "compar": [6, 15], "compared": 0, "comparison": 12, "compartilh": [5, 6], "compat": 6, "compatibility": 12, "compatibl": [0, 1, 10, 12], "competitor": 0, "compil": [4, 8, 10, 12], "compilation": 8, "compiled": [4, 8, 10, 12], "compiled_css": 4, "compiling": 8, "complet": [0, 2, 6, 10, 12, 14, 16], "completed": [0, 6], "completely": [6, 8, 13], "complex": [1, 2, 4, 5, 6, 8, 10, 13, 15, 16], "complexiti": 16, "complexity": 16, "compliant": 16, "complicated": 5, "component": [0, 4, 5, 8, 10, 12, 13, 16], "component_1": 16, "components": [0, 3, 10, 12, 16], "comport": [4, 6, 10, 14], "compos": 2, "composing": 5, "compost": [6, 10], "compreend": [1, 14], "compressed": 4, "comprim": 3, "compriment": 6, "compris": 3, "compromet": [4, 6], "compromis": 0, "comput": 1, "computed": 17, "computing": 16, "comp\u00f5": 6, "comum": [5, 6], "comunic": 6, "comuns": 3, "concaten": 6, "concatenat": 10, "concatenating": 10, "conceived": 6, "concept": [0, 13], "conch": 2, "concorrent": 0, "concurrency": [6, 16], "concurrent": 16, "concurrently": [2, 12, 16], "cond": 5, "condicion": 8, "condicional": 6, "condition": [6, 12, 13, 17], "conditions": [6, 12], "condi\u00e7\u00e3": 6, "condi\u00e7\u00f5": 6, "conect": [6, 13], "conex\u00e3": 4, "conf": 6, "confiabil": 1, "config": [2, 4], "configur": [3, 13, 14, 15, 16, 17], "configuration": 1, "configurations": 2, "configured": [5, 12, 15], "confirm": [2, 12, 14], "confirmation": 16, "confirmations": 16, "confirms": 13, "conflicts": 6, "conflit": [0, 2, 4, 6], "conform": [6, 13], "confund": 6, "confus": 6, "conhec": [1, 6], "conjunt": [6, 10, 11, 14], "conn": 5, "connect": [3, 6], "connecting": 6, "connection": [5, 6, 12], "connectionpool": 6, "connections": [5, 6, 15], "cons": 6, "conseg": 6, "consegu": 6, "consequenc": [6, 12, 16], "consequently": 12, "consid": [5, 8, 10, 12, 14, 16], "consider": [6, 8, 10], "considered": [5, 6, 8, 15], "consist": [6, 15], "consistency": 8, "consistent": 5, "consists": [6, 14], "consol": [2, 10, 13, 16], "constant": 12, "constraining": 15, "constru": [6, 10, 14], "constructing": 6, "construction": 4, "constructor": [6, 13, 17], "constructors": [6, 12], "construtor": [5, 10, 12, 17], "constru\u00e7\u00e3": [6, 10, 14], "constru\u00edd": [6, 14], "constr\u00f3": 6, "consult": [1, 7, 13, 14], "consulta1": 6, "cont": [2, 5, 10, 11, 13], "contador": [5, 6], "contag": 6, "contain": [2, 4, 5, 6, 8, 10, 12, 13, 16], "contained": [10, 12, 14], "containing": [0, 2, 5, 12, 13, 14, 16], "contains": [3, 5, 7, 8, 11, 12, 14, 15, 16], "contect": 8, "contenh": 5, "content": [2, 4, 5, 6, 8, 10, 12, 14, 15, 16], "content_typ": 16, "contents": [8, 10, 16], "context": [3, 5, 6, 8], "contextlib": 6, "contexts": 5, "conte\u00fad": [4, 6, 10], "continu": [0, 6, 8, 16], "contr": 6, "contribu": 17, "contributed": 0, "control": [2, 8, 12, 13, 14, 16], "controll": [5, 6, 8, 10, 12, 13, 14, 15, 16], "controllers": [4, 6, 8, 10, 12, 15, 16], "controls": 12, "contr\u00e1ri": [0, 4, 6, 8], "cont\u00e9m": [2, 4, 5, 6], "cont\u00eain": 6, "cont\u00eam": [6, 11], "convenienc": 5, "convenient": [6, 17], "convention": [8, 12, 15], "conventions": [4, 6], "conven\u00e7\u00e3": 4, "conversion": [12, 17], "convers\u00e3": 6, "convert": [4, 6, 10], "converted": [1, 6, 12], "converting": 6, "converts": 12, "cooki": [0, 4, 6, 12, 16], "copi": 2, "copied": 2, "copy": [1, 2, 3, 4, 6, 14], "copyfileobj": 6, "copying": [2, 8, 10, 17], "cor": [1, 2, 4, 5], "cord": [4, 6, 11], "corey": 1, "corn": 14, "cornerston": 0, "corp": [8, 10], "corr": 17, "correct": 13, "correctly": 12, "corrent": 6, "correspond": [2, 4, 6, 11], "correspondent": [4, 6, 10], "corresponding": [3, 6, 13, 14, 15], "corresponds": [2, 6, 10], "corret": 6, "corrig": 1, "corromp": 6, "corrupted": 6, "corruption": 6, "costum": 6, "cot": 6, "cota\u00e7\u00e3": 6, "couchdb": 6, "couchdbadapt": 6, "could": [1, 2, 4, 6, 8, 10, 12, 13, 15], "count": [5, 7, 13, 14, 16], "coupl": 16, "cours": [1, 8], "cp": 2, "creat": [0, 1, 2, 4, 5, 6, 8, 12, 13, 14, 16], "create_form": 12, "create_thing": 12, "created": [0, 2, 4, 5, 6, 8, 12, 13, 16], "created_by": 6, "created_on": 6, "creating": [1, 2, 5, 6, 13, 15, 16, 17], "creation": 6, "creativ": 12, "creativity": 13, "credential_decod": 6, "cresc": 6, "cri": [2, 3, 4, 5, 6, 8, 10, 13, 14], "cria\u00e7\u00e3": [2, 6, 14], "crit": 12, "critical": 2, "crit\u00e9ri": 6, "cross": [5, 10], "crossorigin": 8, "crt": [2, 6], "crud": [3, 12, 16], "cruz": [1, 6], "crypt": 2, "cs": 5, "csrf": [5, 12], "csrf_protection": 12, "csrf_session": 12, "css": [1, 4, 5, 8, 10, 12, 13, 14, 16], "csv": 15, "ct": 5, "ctrl": [2, 3], "cubrid": 6, "cubridadapt": 6, "cubriddb": 6, "cuj": 6, "current": [5, 6, 10, 13, 14, 15, 16], "current_record": 6, "currently": [2, 5, 8], "curs": 1, "cursor": [6, 16], "curt": 6, "custom": [0, 4, 5, 6, 8, 10, 15, 16, 17], "custom_check": 12, "custom_qualifi": 6, "customiz": [8, 12, 14], "customizabl": [12, 14], "customization": 12, "customizing": 17, "cx_oracl": 6, "c\u00edclic": 6, "c\u00f3dig": [4, 6, 8, 10], "c\u00f3p": 6, "d": [2, 7, 10, 12], "dad": [0, 1, 3, 4, 5, 13, 17], "daemon": 2, "daemons": 16, "dal": [2, 4, 7, 12, 13, 14, 16, 17], "dals": 6, "dan": 0, "danc": 13, "dand": 4, "dangerous": 15, "daquel": 6, "dar": 6, "dash": 12, "dashboard": [2, 4, 5, 8, 12, 16, 17], "dashboard_mod": 2, "dat": [0, 2, 5, 6, 7, 8, 10, 13, 14, 15, 16], "data_label": 16, "databas": [0, 1, 3, 7, 13, 14, 15, 16, 17], "datalist": 16, "datetim": [4, 5, 6, 7, 12, 16], "datetimewidget": 12, "day": 12, "days": 12, "db": [2, 3, 4, 5, 7, 10, 12, 13, 14, 15, 16], "db1": 6, "db2": 6, "db2adapt": 6, "db2ibm": 6, "db2pyodbc": 6, "db_a": 6, "db_b": 6, "db_codec": 6, "db_fold": [5, 7, 14], "db_nam": 6, "db_uid": 6, "dbadmin": 4, "dbi": 12, "dbo": 6, "dbset": 12, "dbstor": 5, "dc": 13, "dd": 12, "deal": [6, 16], "dealfar": 0, "debounc": 16, "debug": [1, 2, 5, 6, 8], "debugg": 1, "debugged": 8, "debuggers": 15, "debugging": [1, 4], "decid": [6, 12, 14], "decim": 4, "decimal": [6, 12], "decimals": 12, "decl": [4, 6], "declar": [0, 4, 5, 6, 8], "declared": 5, "decod": 6, "decode_credentials": 6, "decoded": 6, "decomp\u00f5": 6, "decor": [1, 4, 17], "decorated": 15, "decorator": [4, 5, 6, 15], "decorators": [5, 15], "dedic": [1, 4, 15], "dedicated": [1, 5, 10], "def": [4, 5, 6, 7, 10, 12, 13, 14, 15, 16], "default": [2, 3, 4, 5, 6, 7, 10, 12, 13, 14, 15, 16], "defaults": [5, 6, 12, 14, 15], "deferred": [6, 16], "defin": [0, 4, 5, 8, 10, 12, 14, 16], "define_tabl": [5, 7, 12, 13, 14, 15], "defined": [2, 4, 5, 6, 8, 12, 13, 14, 15, 16], "defining": 14, "definit": 12, "definition": [6, 7, 12, 14], "definitions": [6, 7, 15], "defini\u00e7\u00e3": 6, "defini\u00e7\u00f5": 6, "deform": 11, "deix": 13, "del": [5, 6, 10], "delay": 16, "delaying": 16, "deleg": 6, "delet": [2, 4, 7, 12, 14, 16], "deletabl": [12, 14], "delete_record": 6, "deleted": 6, "deleting": [6, 14], "deletion": 6, "deletions": 6, "delimit": [0, 6, 8], "delimiters": [5, 15], "deliv": 16, "delt": 16, "dem": [1, 2, 16], "demand": 6, "denormaliz": 7, "denormalization": 6, "dentr": [0, 2, 4, 6, 14], "deny": 7, "depend": [4, 5, 6], "dependenc": [0, 2, 5, 15], "dependent": [2, 3, 4, 5], "depending": [6, 8, 12, 14], "depends": [5, 6, 15], "deploy": 2, "deployment": 1, "deployment_tools": 2, "depo": [2, 3, 6], "deprecated": [12, 16], "depur": [6, 8], "deriv": 6, "derived": [6, 12], "desat": 6, "desativ": 6, "desc": 14, "descart": 6, "descendant": 10, "descobert": [2, 11], "descompact": 2, "descrev": 6, "describ": [3, 12], "described": [2, 4, 5, 6, 12], "description": [6, 7, 12, 13], "descriptiv": 12, "descrit": [2, 4, 6, 14], "desd": [5, 6], "desej": [1, 2, 5, 6, 13, 14], "desempenh": 6, "desencad": 3, "desenvolv": 0, "desenvolvedor": [1, 8, 13, 14], "desfaz": 6, "design": [0, 13, 16, 17], "designed": [0, 4, 6, 8, 12, 16], "desir": 8, "desired": [5, 12], "desloc": 6, "desnormaliz": 7, "despej": 6, "dess": [0, 5, 6, 13], "dest": [4, 6, 12], "detail": [6, 10, 14, 16], "detail_fields": 12, "detailed": [2, 14], "details": [0, 1, 5, 6, 7, 8, 12, 14], "detalh": [6, 14], "determin": [4, 5, 6, 11, 12, 13, 14], "determined": [8, 12], "determining": 5, "deterministic": 5, "dev": [1, 2, 3, 4, 5, 6, 8, 10, 13, 14], "develop": [5, 6, 8, 13, 14, 15], "developers": [0, 1, 6, 13, 16], "developing": 4, "development": [0, 1, 4, 6], "development_tools": 2, "devic": 8, "devolv": [6, 8], "di": [0, 5], "diagr": 7, "dialect": 6, "dialects": 6, "dialet": 6, "dic": 17, "dicion\u00e1ri": [10, 11, 12], "dict": [4, 5, 6, 11, 12, 14, 15, 16], "dictionari": 6, "dictionary": [4, 5, 6, 10, 12, 15], "did": [0, 4, 16], "dif": 6, "diferenc": 6, "diferent": [2, 5, 6, 11, 14], "diff": 6, "differenc": [6, 12, 15], "different": [0, 2, 5, 6, 8, 12, 13, 15, 16], "differs": [6, 14], "difficult": [2, 16], "dif\u00edcil": 1, "dig": 6, "digit": [12, 13], "dimensions": 12, "dinam": 10, "din\u00e2m": [6, 17], "dir": [2, 12, 16], "direct": 6, "directiv": [2, 8, 12], "directly": [2, 4, 6, 7, 10, 12, 13, 14, 16], "directory": 13, "direit": [3, 6], "diret": [1, 5, 6, 8], "diret\u00f3ri": 4, "dirnam": [5, 7, 14], "disabl": [6, 14], "disabled": [7, 10, 12], "disallow": 12, "discord_client_id": 13, "discord_client_secret": 13, "discount": 6, "discounted_total": 6, "discounted_total_pric": 6, "discounted_unit_pric": 6, "discovered": 13, "discriminator": 13, "discuss": 3, "discussed": [6, 8, 10, 12], "discussion": 6, "discuss\u00e3": 1, "discuss\u00f5": 1, "discut": 6, "disk": 5, "dismissal": 15, "dismissibl": 5, "dispar": 6, "display": [5, 12, 13, 14, 16], "displayed": [3, 6, 10, 12, 14, 16], "displaying": [5, 12, 14], "displays": [13, 14], "dispon": 6, "dispon\u00edv": 1, "disposit": [4, 5, 13], "diss": [4, 6, 14], "distinct": [8, 12], "distinction": 6, "distin\u00e7\u00e3": 6, "distribu": 6, "distribut": 6, "distributed_transaction_commit": 6, "distribution": 6, "ditched": 0, "div": [4, 5, 8, 12, 14, 15, 16], "divisibl": [8, 12], "division": [8, 10], "divis\u00e3": 8, "divmod": 6, "diz": [4, 6, 13, 14], "djang": [0, 1, 6, 15], "do_connect": 6, "dobr": 6, "dobrag": 6, "doc": 1, "dockerfil": 2, "docs": [1, 2, 4, 16], "doctor": 6, "doctyp": [8, 14], "document": [6, 8, 10, 12, 16], "documentation": [3, 12, 16], "documentations": 5, "documented": [5, 12], "does": [0, 2, 5, 6, 8, 12, 13, 14, 15, 16], "doesn": 5, "dog": [11, 12, 16], "doh": 12, "doing": [6, 12, 16], "dois": [0, 5, 6, 8], "dom": [8, 17], "domain": [12, 13], "don": [2, 4, 5, 6, 8, 12, 13, 14, 15], "dot": 12, "doubl": [2, 6, 8], "doubt": 14, "down": [12, 16], "download": [2, 12], "download_url": 12, "downs": 6, "downsid": [6, 15], "dramat": 6, "driv": 6, "driven": 0, "driver_args": 6, "drivers": 6, "drop": 12, "dropdown": [12, 14, 16], "dropdowns": 16, "dropping": 6, "dsn": 6, "duas": [5, 6], "due": [6, 7, 12], "dummy": [6, 8], "dummyrespons": 8, "dump": 5, "dumpfil": 6, "dumps": [6, 16], "duplicat": 6, "durability": 7, "during": [6, 14], "dynamic": [4, 8, 13], "dynamically": [6, 7, 8, 12], "d\u00e1": [0, 2, 14], "d\u00edgit": [4, 6], "ea": 6, "each": [2, 5, 6, 7, 8, 10, 12, 13, 14, 15, 16], "earli": 16, "early": 5, "easi": [7, 8], "easiest": 6, "easily": [6, 8, 10, 12, 14], "easy": [5, 8, 12], "ebook": 1, "echo": 4, "ecosyst": 16, "edge": 16, "edif\u00edci": 5, "edit": [0, 2, 3, 4, 8, 12, 13, 14, 15, 16], "edit_sidec": 16, "editabl": [14, 15], "editing": [8, 10, 12, 13, 14], "editor": [1, 8], "editors": 8, "edi\u00e7\u00e3": 0, "edi\u00e7\u00f5": 3, "education": 2, "efeit": 6, "efet": 6, "effect": [3, 5, 6, 12], "efficient": [0, 5], "efficiently": [1, 15], "efforts": 1, "efg": 10, "eficient": 6, "eith": [6, 12], "el": 10, "element": [6, 8, 10, 12, 14, 16], "elements": [6, 10, 12, 16], "elev": 6, "elimin": [6, 14], "else": [2, 5, 6, 12, 13, 14, 15, 16], "elsected": 14, "elt": 16, "el\u00e9tr": [4, 5, 13], "emacs": 8, "email": [2, 8, 12, 13, 15, 16], "emails": [12, 16], "emails_onvalidation": 12, "embed": 10, "embedded": [5, 8, 12], "embedding": 8, "ember": 12, "embor": 6, "emerging": 16, "emit": [3, 6], "employ": 5, "employe": 14, "empreg": 14, "empres": 14, "empty": [2, 4, 12, 16], "empty_regex": 12, "en": [5, 7, 16], "enabl": [1, 5, 6, 7, 10, 13, 15, 16], "enable_record_versioning": 6, "enabled": [5, 7, 13, 15], "encaix": 4, "encapsulat": [8, 10], "encerr": 8, "enclosed": 6, "enclosing": 8, "encod": 6, "encoded": [5, 6, 12, 16], "encoding": 6, "encontr": [4, 6, 8, 11, 13], "encrypted": [2, 5], "encryption": 0, "end": [4, 6, 8, 12, 13, 14, 16], "enderec": 6, "ending": 8, "endpoint": [13, 16], "ends": [6, 8, 15], "enforc": [5, 12], "enforced": [6, 12, 15], "enfrent": [1, 6], "engin": [6, 12], "engineering": 2, "english": 5, "enough": [12, 13], "enquant": [0, 6, 8], "enqueu": 16, "enqueue_run": 16, "enqueueing": 16, "ensin": 13, "ensur": 12, "entant": [6, 8, 10, 14], "entend": 6, "enter": [4, 12, 13], "entered": 10, "entering": 5, "enterpris": [1, 13], "entidad": 6, "entir": [8, 15, 16], "entity_quoting": 6, "entrad": [4, 6, 10, 11], "entri": [7, 12, 14], "entropy": 12, "entry": [0, 6, 15], "ent\u00e3": [2, 4, 6, 13], "env": [1, 15], "envelop": 16, "envi": [10, 14], "environ": [5, 15], "environment": [0, 1, 4, 5, 6], "environments": 1, "envolt": 11, "envolv": 6, "eo": 6, "epub": 1, "eq": 7, "equal": [7, 12, 13, 16], "equals": [10, 13], "equip": 5, "equivalent": [4, 5, 6, 10, 12, 15], "equivalently": 10, "errad": 6, "errlog": 5, "erro": [2, 3, 6], "error": [2, 3, 5, 6, 7, 8, 10, 12, 16], "error_messag": 12, "errorlog": 2, "errors": [1, 5, 6, 7, 12, 15], "escap": [6, 8, 10], "escaped": [6, 8, 10], "escaping": [6, 8], "escolh": [1, 4, 6], "escond": 6, "escrav": 6, "escrev": [6, 8, 10], "escrit": [6, 8], "espac": [6, 11, 14], "espec": [5, 6, 10], "especial": [2, 4, 6, 11], "especializ": 6, "especially": [0, 2, 5, 12, 13], "especif": [4, 6], "especific": [4, 5, 6], "especifiqu": 14, "espec\u00edf": [1, 2, 6], "esper": [4, 5, 6], "esprim": 4, "esquec": 6, "esquem": 6, "esquerd": [6, 14], "estabelec": 6, "establish": 6, "established": 6, "establishing": 15, "estad": [5, 6], "estam": 6, "estar": [4, 6, 10], "estend": [0, 5, 6], "estil": 14, "estiv": 6, "estrangeir": [1, 14], "estreit": 6, "estrutur": [4, 5, 6, 11], "est\u00e1t": [10, 17], "est\u00e3": [5, 6, 7, 10, 13], "etap": 6, "etc": [4, 5, 6, 7, 11, 15], "etiquet": [6, 10], "eval": 16, "evaluat": [5, 12, 16], "evaluated": [6, 7], "even": [1, 4, 5, 6, 8, 10, 12, 14, 15, 16], "event": 6, "event_tim": 6, "events": [2, 16], "eventually": 5, "ever": 6, "every": [0, 5, 6, 13, 14, 15, 16], "everyon": [0, 1], "everything": [2, 15, 16], "evit": [0, 2, 6, 8, 12], "evolution": 0, "ex": 6, "exact": [8, 15], "exactly": 5, "exampl": [1, 2, 4, 5, 6, 8, 10, 11, 13, 17], "exat": [6, 8], "excellent": [1, 14], "except": [2, 5, 6, 8, 10, 12, 13, 16], "exception": [5, 6, 12, 13, 16], "exceptions": [4, 5, 16], "excep\u00e7\u00e3": 8, "excerpt": 8, "excet": [5, 6], "exce\u00e7\u00e3": [4, 5, 6, 8], "exce\u00e7\u00f5": 4, "exclu": 6, "exclud": 12, "exclus": 6, "exclusiv": [12, 13], "exclusively": [0, 5, 6], "exclus\u00e3": 14, "exclu\u00edd": [2, 6], "exe": 2, "execu": [2, 4], "execut": [0, 2, 3, 6, 12], "executabl": [6, 10], "executed": [2, 5, 6, 8, 15, 16], "executing": 16, "execution": [1, 16], "exempl": [2, 3, 4, 5, 6, 7, 8, 10, 11, 12, 13], "exercis": 5, "exerc\u00edci": 13, "exib": [3, 6, 8, 10, 14], "exibi\u00e7\u00e3": [13, 14], "exig": [1, 2, 6, 13], "exist": [1, 2, 4, 5, 6, 8, 12, 16], "existenc": 13, "existent": [2, 6, 13, 14], "existing": [2, 5, 6, 12], "exists": [5, 6], "exit": 2, "exiting": 5, "exp": [4, 6], "expand": 3, "expect": [6, 12], "expected": 15, "expects": [2, 10], "experienc": [1, 13], "experienced": 0, "experiment": [1, 12], "experimental": [2, 5], "experimenting": 1, "expir": 5, "expiration": [5, 6], "explain": 12, "explained": [5, 6, 12, 14], "explanatory": 6, "explic": [4, 6], "explicit": [0, 2, 4, 5, 6, 8, 12], "explicitly": [0, 2, 5, 6, 8, 10, 12, 16], "explict": 6, "exploring": 3, "expl\u00edcit": [6, 13], "expor": [4, 13], "export": 17, "export_to_csv_fil": 6, "exporting": 6, "expos": [4, 5], "exposed": 6, "expost": 7, "express": 12, "expressed": 12, "expression": [4, 6, 8, 11, 12, 14], "expressions": [10, 12, 16], "express\u00e3": [6, 7, 11, 14], "express\u00f5": 11, "exp\u00f5": [0, 3, 4, 6, 13], "extend": [5, 6, 12, 13, 15, 16], "extended": 8, "extends": [6, 8, 16], "extensibl": 15, "extension": [12, 15], "extensions": 12, "extensively": [3, 6], "extens\u00e3": 6, "extern": 2, "external": 6, "extra": [5, 6, 12, 13], "extra_fields": 5, "extract": [6, 12], "extracted": 6, "extracts": 16, "extras": 6, "extra\u00edd": 6, "extrem": 6, "f": [6, 13, 14, 15, 16], "fa": 14, "facebook": [0, 5], "facil": [4, 5, 6], "facilitat": 4, "fact": [4, 5, 15], "factori": [5, 10], "fail": [6, 8, 12, 16], "failed": 6, "fails": [3, 12], "failur": [6, 12, 16], "fak": 6, "fake_migrate_all": 6, "falh": 4, "fall": 12, "fals": [2, 5, 6, 7, 8, 10, 12, 13, 14, 15, 16], "falt": 6, "famous": [1, 6], "fancy": 16, "far": [14, 16], "fas": 6, "fast": [0, 4, 6, 8, 15, 16], "fat": 6, "fath": 6, "father_id": 6, "favorite_color": 5, "faz": [2, 5, 8, 10, 12, 13], "fb00": 12, "fdb": 6, "fe80": 12, "feasibl": [2, 12], "featur": [0, 4, 6, 7, 8, 15, 17], "february": 5, "fech": [6, 8, 10], "fechament": 10, "feit": 6, "fetch": [6, 15, 16], "fetchon": 6, "few": [8, 13, 16], "fez": [2, 6], "ff00": 12, "fic": 6, "ficheir": 6, "fict\u00edc": 6, "fict\u00edci": 6, "fid": 6, "field": [2, 4, 5, 7, 13, 14, 15, 16, 17], "field1": 6, "field2": 6, "field3": 6, "field_id": 14, "fieldnam": [6, 16], "fields": [5, 7, 12, 13, 14, 15, 17], "fieldstorag": 12, "fifth": 14, "fil": [0, 1, 2, 3, 5, 6, 8, 10, 11, 13, 14, 16, 17], "file_content": [6, 16], "file_nam": [6, 16], "file_path": 15, "fileir": 6, "filenam": [2, 4, 5, 6, 12], "filep": 4, "filepaths": 4, "filesyst": [4, 5, 6], "fileuploadwidget": 12, "fill": [12, 16], "filled": 12, "filt": [2, 4, 7, 12, 14], "filter_in": 12, "filter_out": 14, "filtered": 13, "filters": [4, 12], "filtr": [13, 14], "filtrag": [4, 14], "fim": [1, 2, 5, 6], "fin": [2, 13, 14], "final": [1, 2, 5, 6, 11], "finally": [4, 14], "find": [1, 2, 4, 12, 13, 14], "find_by_tag": 13, "find_match": 11, "findall": 12, "finding": 14, "finds": [6, 16], "fins": 6, "firebird": 6, "firebird_embedded": 6, "firebirdadapt": 6, "firebirdembedded": 6, "firebirdembeddedadapt": 6, "firefox": [3, 16], "firfox": 16, "first": [0, 2, 3, 5, 7, 8, 10, 12, 13, 14, 15, 16], "first_nam": [4, 5, 13, 14], "first_only": 10, "first_row": 6, "first_row_dict": 6, "fist": 12, "fits": 12, "fix": [5, 6], "fixed": [6, 15], "fixtur": [0, 2, 6, 10, 13, 15, 17], "fixur": 17, "fiz": 1, "fk_field": 16, "fk_tabl": 16, "fkdaog": 8, "flag": 12, "flash": [8, 12, 16, 17], "flask": [0, 15], "flexibil": [0, 14], "flexibility": 16, "flexibl": [6, 13], "flex\u00edv": 0, "flex\u00edvel": 6, "flight": 7, "float": [4, 12], "floating": 12, "flow": 13, "flux": 6, "fn": 2, "focus": 16, "fold": [1, 2, 3, 4, 5, 6, 7, 11, 12, 14, 15], "folders": 2, "follow": [2, 4, 7, 13, 14, 15], "followed": [2, 5, 12], "following": [1, 2, 4, 5, 6, 8, 10, 12, 13, 14, 15, 16], "follows": [5, 6, 12], "font": [6, 8, 12, 14], "foo": 14, "foot": 8, "footers": 8, "footing": 13, "forbid": 12, "forbidden": 12, "forc": [2, 5, 6, 7, 12, 13], "forcing": 12, "foreground": 12, "foreign": 14, "foreign_key_checks": 6, "forgery": 5, "forget": 14, "form": [0, 4, 5, 6, 7, 11, 13, 14, 17], "form_basic": 12, "form_custom_widgets": 12, "form_exampl": 12, "form_minimal": 12, "form_nam": 12, "form_widgets": 12, "format": [4, 5, 7, 10, 11, 13, 14], "formats": 12, "formatt": 16, "forma\u00e7\u00e3": 6, "formdat": 7, "forms": [6, 10, 14, 15, 16], "formstyl": [12, 14, 16], "formstylebootstrap4": 12, "formstylebulm": [12, 14, 16], "formstyledefault": [12, 14], "formstylefactory": 16, "formul\u00e1ri": [6, 13, 14, 17], "fornec": [0, 2, 3, 4, 5, 6, 10, 13, 14], "forum": 3, "foruml\u00e1ri": [6, 10, 17], "forward": 1, "found": [2, 6, 12], "four": [2, 6], "fourth": 12, "fp": 5, "fr": 11, "fracass": 6, "framework": [0, 2, 12, 13, 14, 15, 16], "frameworks": [0, 2, 5, 6, 15, 16], "fras": 6, "fre": [1, 5, 13], "freetext": 16, "frent": 8, "frequently": 12, "frequ\u00eanc": 1, "friendly": [0, 5, 8], "from": [0, 1, 3, 4, 5, 6, 7, 8, 10, 11, 12, 13, 14, 15, 16], "from_addr": 16, "from_address": 13, "from_adds": 16, "from_email": 16, "front": [12, 16], "frontends": 16, "fronts": 0, "fsstorag": 5, "ftps": 12, "fug": [6, 8], "full": [2, 4, 6, 8, 12, 16], "fullnam": 6, "fully": [4, 5, 6, 12], "func": [2, 5], "funcion": [6, 17], "funcional": [0, 5, 6], "function": [2, 4, 5, 6, 7, 8, 10, 12, 14, 15, 16], "functional": 16, "functionaliti": 2, "functionality": [0, 8, 15], "functions": [2, 5, 10, 16], "functools": 16, "fund": 4, "fun\u00e7\u00e3": [4, 6, 8, 10], "fun\u00e7\u00f5": [4, 8], "futur": [5, 15, 16], "f\u00e1bric": 6, "f\u00e1cil": [0, 6, 8, 10, 13], "f\u00edsic": 13, "g": [1, 2, 6, 10, 12], "gain": 2, "gananc": 4, "garant": [6, 8], "garraf": 4, "gavgavian": 1, "gend": 6, "general": [5, 6, 12, 13], "generaliz": 6, "generally": [2, 5, 6, 8], "generat": [2, 6, 8, 10, 12, 13, 14, 15, 16], "generated": [1, 5, 6, 8, 12, 14, 16], "generation": 1, "generator": 10, "generic": [2, 4, 5, 6, 12], "generically": 6, "genindex": 17, "gen\u00e9r": 6, "ger": [6, 8, 10, 13, 14], "gerador": 6, "geral": [0, 2, 6, 7, 10], "german": 11, "gest\u00e3": [0, 1], "get": [1, 2, 4, 5, 6, 8, 12, 13, 14, 15, 16, 17], "get_cooki": 16, "get_us": [4, 5, 13, 15], "get_vars": [7, 15], "gets": [8, 13], "getvalu": 6, "gevent": [1, 2], "geventwebsocketserv": 2, "geventws": 2, "gia": 5, "gib": 6, "gif": 12, "git": [1, 2], "github": [2, 3, 4, 6, 14], "gitlat": 1, "giv": [4, 5, 6, 8, 13], "given": [2, 5, 6, 8, 12, 16], "giving": 5, "global": [0, 6, 15, 16], "globally": [2, 6], "globals": [5, 6, 8, 13, 15], "go": [2, 4, 14], "goes": [6, 12], "going": [4, 16], "good": [3, 12], "googl": [0, 3, 5, 8, 12, 14], "googledatastor": 6, "googledatastoreadapt": 6, "googlemysql": 6, "googlepostgr": 6, "googlesql": 6, "googlesqladapt": 6, "gost": 6, "got": 6, "gotch": 6, "gott": 8, "grac": 6, "grad": 0, "grand": 6, "granul": 6, "granulary": 12, "graphically": 6, "graphql": 7, "grau": 6, "grav": 6, "grava\u00e7\u00f5": 12, "gravidad": 6, "grav\u00e1vel": 6, "great": 16, "green": [4, 6, 12, 15], "grelh": 14, "grid": [0, 17], "grid_class_styl": 14, "grid_tutorial": 14, "gridactionbutton": 14, "gridclassstyl": 14, "gridclassstylebulm": 14, "grids": 17, "group": [1, 3, 5, 13, 15], "group_nam": [5, 13], "groupby": 12, "grouping": 2, "groups": [0, 1, 3, 5, 13, 15], "growing": [0, 16], "grup": [6, 13], "gt": [7, 10], "guarant": 5, "guaranteed": [6, 15, 16], "gui": 3, "guid": 2, "guidelin": 13, "gunicorn": 2, "gunicorngevent": 2, "gz": 12, "h": [2, 12], "h1": [4, 8], "h2": [8, 12], "habilit": 6, "had": 6, "hamburg": 8, "hand": [2, 16], "handl": [2, 4, 5, 6, 15, 16], "handled": [4, 5, 12, 16], "handlers": 4, "handling": 14, "handy": 6, "hanging": 1, "happen": 5, "happens": 6, "hard": 15, "hardcod": 5, "harmoniz": 4, "has": [0, 2, 4, 5, 6, 8, 12, 13, 14, 15, 16], "has_membership": 13, "hash": [2, 6, 12], "hashed": 12, "hav": [0, 1, 2, 5, 6, 7, 8, 10, 12, 13, 14, 15, 16], "head": [4, 5, 6, 8, 14, 16], "headers": [4, 8, 16], "heading": 12, "headings": [10, 14], "height": [12, 14, 16], "hell": [4, 5, 6, 8, 10, 12, 13, 16], "help": [1, 2, 5, 6, 7, 8, 10, 12, 14, 15], "helpers": [4, 6, 8, 12, 14, 15, 16, 17], "helps": [6, 8, 12], "henc": [0, 2, 5, 6, 12], "her": [0, 1, 2, 4, 5, 6, 7, 8, 10, 12, 13, 14, 16], "herd": 6, "her\u00f3": 7, "hesitat": 6, "hex": 12, "hh": 12, "hi": 16, "hid": 14, "hidden": [12, 16], "hidden_div": 16, "hidden_input": 16, "hierarchical": [6, 13], "high": [12, 13], "highest": 12, "highlighting": [1, 8], "highly": [1, 14], "hints": 14, "his": 12, "historical": 0, "history": 12, "hist\u00f3r": [5, 6], "hmac": 12, "ho": 5, "hold": 16, "holds": 6, "hom": 8, "hom\u00f3log": 4, "hor": 6, "hosped": 1, "host": [2, 5, 12, 13], "hosted": 1, "hour": 12, "hous": 15, "housekeeping": 6, "houv": 6, "how": [0, 2, 4, 5, 6, 7, 8, 12, 13, 14, 15, 16], "howev": [6, 8, 12, 16], "href": [8, 10, 13, 14], "hs256": 5, "html": [1, 2, 4, 5, 7, 8, 11, 12, 13, 14, 15, 16], "html5": 8, "htmx": [14, 17], "htmx_form": 16, "htmx_form_dem": 16, "htmx_grid": 16, "htmx_list": 16, "htmxautocompletewidget": 16, "http": [0, 2, 3, 4, 5, 6, 7, 8, 10, 11, 12, 13, 14, 15], "https": [1, 3, 4, 5, 7, 8, 12, 13, 14, 16], "httrespons": 5, "hulk": 12, "hundreds": 16, "hx": 16, "hypertext": 16, "hyphen": 10, "h\u00e1bit": 2, "h\u00edfens": 10, "i": [2, 4, 5, 6, 7, 8, 12, 13, 16], "i18n": 11, "ibm_db_dbi": 6, "icon": [8, 14], "icons": 14, "id": [2, 5, 7, 8, 10, 12, 13, 14, 15, 16], "id1": 6, "id2": 6, "id_field_nam": 14, "id_valu": 14, "ide": [0, 1, 2, 3, 6], "ident": 7, "identical": 15, "identifi": 6, "identific": [6, 10], "identify": 4, "identifying": [5, 12], "identity": [6, 7, 15], "ides": 15, "idiom": 11, "idn": 12, "ids": [6, 14], "ie": 12, "ietf": 12, "if": [0, 1, 2, 3, 4, 5, 6, 7, 10, 12, 13, 14, 15, 16], "ifram": 12, "ignor": [5, 6, 8, 12, 14], "ignore_attribute_plugin": 14, "ignore_common_filters": [6, 12], "ignore_field_cas": 6, "ignored": [4, 8, 10, 14, 16], "igual": [6, 7], "iip": 6, "illustrat": 6, "ilustr": [6, 8], "imag": [6, 8, 10, 12], "image_fil": 6, "imagin": [5, 6, 8, 16], "imaging": 12, "imap": 6, "imapadapt": 6, "imaplib": 6, "imediat": 14, "img": [4, 12], "immediat": 2, "immediately": 6, "immensely": 0, "imped": [6, 10], "impersonat": 13, "impersonating": 13, "implement": [5, 6, 8, 13], "implementation": [4, 8, 12, 15], "implementations": 16, "implemented": 6, "implements": [5, 6], "impli": 7, "implications": 5, "implicit": 6, "implicitly": 12, "implictly": 6, "impl\u00edcit": 6, "impor": 6, "import": [0, 1, 2, 4, 5, 7, 8, 10, 11, 12, 13, 14, 15, 16, 17], "import_and_sync": 6, "import_from_csv_fil": 6, "important": [0, 2, 4, 5, 6, 12, 13], "imported": [2, 12, 13, 15], "importing": 6, "impos": 8, "impot": 12, "imprim": 6, "improved": 12, "improvement": 14, "improving": [12, 13], "in": [0, 1, 2, 3, 4, 6, 7, 11, 12, 13, 14, 15, 17], "inalter": 6, "inclu": [0, 4, 6, 8, 10, 14], "includ": [4, 6, 7, 10, 14, 16], "include_action_button_text": 14, "include_paths": 4, "included": [6, 8, 12, 14], "including": [5, 12, 14, 15, 16], "inclusion": 0, "inclusiv": [0, 12], "inclus\u00e3": 10, "inclu\u00edd": [6, 10], "incoming": 2, "incomum": 6, "incorpor": 6, "incorret": 8, "increased": 5, "increment": 6, "indeed": [0, 5], "indent": 8, "indentation": 8, "indented": 8, "independent": [0, 5, 6, 13], "indesej": [2, 6], "index": [1, 2, 4, 5, 6, 7, 8, 10, 12, 13, 14, 15, 16], "indic": [4, 6], "indicat": [12, 15], "indicator": 16, "individu": [0, 2, 5, 6], "individual": [5, 6, 7, 8, 12], "indo": 6, "inefficient": 5, "ineficient": 6, "infinit": 6, "info": [2, 4, 5, 13], "inform": [1, 4, 5, 6, 12], "information": [5, 6, 7, 12, 13, 15, 17], "informed": 6, "informix": 6, "informixadapt": 6, "informixdb": 6, "informixs": 6, "ingredient": 4, "ingres": 6, "ingresadapt": 6, "ingresdb": 6, "ingresu": 6, "ingresunicod": 6, "ingresunicodeadapt": 6, "inic": [2, 4], "inicializ": [4, 5], "init": [4, 14], "initial": [8, 12], "initializ": 2, "initialized": 0, "inject": [12, 14, 17], "injected": [5, 8, 10, 12], "injecting": 10, "injection": 6, "injections": 10, "inje\u00e7\u00e3": 6, "inlin": 16, "inner": [5, 16], "input": [2, 5, 6, 8, 12, 14, 16], "inputs": [12, 16], "insegur": 10, "insensitiv": 12, "inser": [3, 8], "insert": [5, 7, 8, 12, 13, 14, 16], "inserted": 8, "inserting": 12, "inserts": 12, "inser\u00e7\u00f5": 6, "insid": [1, 2, 4, 5, 6, 8, 10, 12, 14, 15, 16], "insir": 6, "insist": 10, "inspector": 8, "inspired": 7, "instal": [3, 6, 13, 17], "install": [2, 6, 13, 16], "installation": [2, 6], "installations": 17, "installed": [0, 1, 2, 3, 4, 5, 6], "installs": 2, "instanc": [5, 6, 10, 12, 14, 16], "instanci": 6, "instantiat": [6, 13, 15], "instantiated": 6, "instantiation": [13, 14], "instead": [1, 4, 5, 6, 8, 10, 12, 13, 14, 15, 16], "instructions": [2, 12], "instru\u00e7\u00e3": 6, "instru\u00e7\u00f5": 6, "inst\u00e2nc": [6, 14], "int": [4, 6, 12, 13, 15], "int2ip": 6, "integ": [2, 6, 7, 10, 12, 16], "integers": 12, "integr": 0, "integrated": 1, "integration": 16, "integrity": [8, 16], "inteir": [4, 6], "intended": [6, 16], "intentionally": 12, "interaction": 5, "interag": 0, "interchangeably": 13, "interfac": [0, 3, 5, 6, 14, 15, 16], "interior": 8, "intermedi\u00e1r": 6, "intern": [5, 6], "internacionaliz": [0, 4, 17], "internal": [0, 1, 8, 13], "internally": [4, 5, 6, 14], "internationaliz": 12, "internationalization": [5, 12, 15], "internationalized": 12, "interpret": [0, 6], "interpreted": 10, "interpreting": 7, "interromp": 6, "intersec\u00e7\u00e3": 6, "into": [0, 2, 4, 5, 6, 8, 10, 12, 15, 16], "introdu": 2, "introduc": 0, "introduction": [1, 17], "introduz": 8, "intuitively": 12, "invalid": [2, 6, 12], "invalidated": 5, "invalidating": 12, "invers": 6, "invert": [6, 12], "invisibl": 6, "involv": [6, 14, 15], "involved": [6, 8], "inv\u00e9s": 6, "in\u00edci": 6, "in\u00fatil": 6, "io": [2, 6], "ip": [2, 6, 12], "ip2int": 6, "ip_list": 13, "ipaddr": 6, "ipaddress": 13, "iptabl": 2, "ipv4": [6, 12], "ipv4address": 13, "ipv4network": 13, "ipv6": 12, "irem": [4, 5], "ir\u00e1": [2, 3, 4, 6, 8, 13, 14], "is": [0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 12, 13, 14, 15, 16], "is_6to4": 12, "is_activ": 6, "is_automatic": 12, "is_dat": 6, "is_datetim": 6, "is_decimal_in_rang": 6, "is_empty_or": 6, "is_float_in_rang": 6, "is_impersonating": 13, "is_in_db": [6, 14], "is_in_set": 6, "is_int_in_rang": 6, "is_json": 6, "is_length": 6, "is_link_local": 12, "is_localhost": 12, "is_multicast": 12, "is_not_empty": 6, "is_null_or": 14, "is_privat": 12, "is_public": 6, "is_reserved": 12, "is_routeabl": 12, "is_tered": 12, "is_tim": 6, "isdir": [7, 14], "isn": [12, 14], "iso": 7, "isolation": 16, "issu": [0, 6], "it": [0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 11, 12, 13, 14, 15, 16], "italian": [5, 11], "item": [6, 8, 10], "itemize1": 8, "itemize2": 8, "items": [6, 7, 8, 12], "itens": 6, "iter": 8, "iterabl": [6, 12], "iterations": 12, "iterators": 6, "iterselect": 6, "its": [0, 1, 2, 3, 4, 5, 6, 8, 10, 12, 13, 14, 15, 16], "itself": [2, 6, 12, 16], "it\u00e1l": 10, "iv": 6, "janel": 2, "javascript": [1, 4, 7, 10, 16], "jdbc": 6, "jdbcpostgr": 6, "jdbcpostgresqladapt": 6, "jdbcsqlit": 6, "jdbcsqliteadapt": 6, "jetbrains": 1, "jim": [0, 1, 14], "jinja2": 5, "job": [7, 12, 14], "jog": [6, 11], "john": [0, 6], "join": [4, 5, 7, 12, 14, 15], "joined": 14, "joins": [14, 17], "jonathan": 6, "jorn": 1, "journalist": [7, 14], "jpeg": 12, "jpg": 12, "jpsteil": 14, "jquery": [10, 12, 16], "js": [0, 4, 5, 8, 11, 15, 17], "jsl": 16, "json": [0, 1, 2, 4, 5, 6, 7, 11, 12, 15, 16], "junt": [10, 14], "jun\u00e7\u00e3": [6, 13], "jun\u00e7\u00f5": 6, "just": [1, 2, 4, 5, 6, 7, 8, 12, 14, 16], "jwt": 5, "jython": 6, "k": [5, 8, 15], "kargs": 10, "kbd": 2, "kbytes": 5, "keep": [1, 2, 4, 5, 6, 7, 8, 10, 12, 15], "keep_valu": 12, "keeps": [5, 14], "kell": 0, "ken": 6, "kent": [7, 14], "kevin": 0, "key": [2, 4, 5, 6, 7, 10, 12, 13, 16, 17], "keycod": 16, "keyed": 6, "keys": [6, 7], "keyup": 16, "keyword": [6, 8, 10], "keywords": 6, "kfield": 16, "killed": 16, "kind": 4, "kindness": 0, "kinterbasdb": 6, "know": [5, 14], "known": [6, 8], "known_expressions": 11, "knows": 5, "ktabl": 16, "kwargs": [6, 16], "ky8iq0g4b3cyey6wyhn3yt9pw0xpsrivlkmxe40ptknxrlnz9": 8, "l": [2, 12], "la": [4, 6], "label": [6, 7, 8, 12, 16], "labeling": 15, "labels": 12, "lac": 6, "lacking": 12, "lacks": 15, "lad": [1, 5, 6], "lambd": [5, 6, 10, 12, 13, 14, 16], "lang": 5, "languag": [1, 4, 5, 8, 11, 15, 16], "larg": [0, 12], "last": [1, 5, 8, 12, 13, 14, 16], "last_insert_id": 6, "last_nam": [5, 13, 14], "last_row": 6, "lastdot": 12, "lastrowid": 6, "lat": [1, 2, 4, 5, 6, 8, 10, 12, 14], "latest": [2, 6, 15], "latin1": 6, "latt": [6, 12, 15], "launch": [1, 2], "lax": 5, "lay": [5, 15, 17], "layers": 5, "layout": [12, 13, 14, 15, 16, 17], "layouts": [8, 14], "lazily": 16, "lazy": [2, 4, 6], "lazy_tabl": 6, "lazy_total_pric": 6, "ldap": [0, 5], "ldap_plugin": 13, "ldap_setting": 13, "ldap_settings": 13, "ldapplugin": 13, "lead": [14, 16], "learn": [1, 6], "least": [1, 2, 12, 15, 16], "leav": [5, 6], "left": [8, 12, 14, 16], "legacy": 6, "leg\u00edvel": 6, "leitur": 6, "lembr": [3, 6, 8, 12], "len": [12, 16], "length": [6, 12], "ler": [1, 6], "less": [7, 12, 15, 16], "let": [7, 12, 16], "lets": 2, "letters": 12, "letting": 6, "lev": [6, 10], "levant": 6, "level": [2, 6, 7, 12, 13], "leverag": 0, "li": [8, 12, 13, 16], "lib": 2, "libldap2": 13, "librari": 13, "library": [2, 6, 11, 12, 15, 16], "libs": [8, 10, 14], "libsasl2": 13, "libsass": 4, "licens": 1, "lid": [1, 4, 5, 6, 14], "lif": 16, "lifespan": 12, "lifetim": 5, "lig": [2, 5, 6, 10], "liga\u00e7\u00e3": [4, 5, 6], "liga\u00e7\u00f5": [6, 10], "light": [6, 15], "lik": [0, 1, 2, 3, 4, 5, 7, 8, 10, 11, 12, 13, 14, 15, 16], "limit": [5, 6, 7, 12, 13], "limitation": 8, "limited": [0, 2, 5, 15, 16], "limiting": 16, "limits": 12, "limp": 1, "lin": [2, 4, 5, 6, 7, 8, 10, 12, 13, 14, 16], "linguag": [0, 4, 5, 17], "linguagens": 4, "linh": [5, 6, 8, 10, 14, 17], "link": [4, 7, 8, 10, 12, 13, 14], "linked": 7, "links": [2, 6, 14, 16], "linting": 1, "linux": 2, "list": [0, 1, 2, 4, 5, 7, 8, 10, 12, 13, 14, 16], "list_of_fields": 6, "listabl": 6, "listagens": 10, "listed": [5, 12, 16], "listen": 2, "listening": [2, 3], "listproperty": 6, "lists": [6, 14], "liststringproperty": 6, "listwidget": 12, "littl": [1, 5, 6], "liv": [6, 16], "livr": [1, 6], "lix": 6, "ll": [1, 2, 3, 5, 6, 8, 12, 14, 16], "lo": [1, 2, 3, 4, 6, 7, 8, 10], "load": [3, 5, 16], "loaded": [4, 8, 14, 16], "loading": 16, "loads": [6, 16], "loazkjy": 8, "loc": 5, "local": [3, 5, 8, 12, 13, 14], "localhost": [2, 4, 5, 6, 12], "localiz": 4, "locally": 2, "locals": [5, 12, 14, 15], "locat": 15, "location": [2, 4, 6, 8, 15], "locked": 6, "locking": 5, "locks": 16, "log": [0, 2, 4, 5, 6, 8, 10, 13, 15, 16], "logerrors": 5, "logfil": 6, "logged": [5, 8, 13, 15], "logging": [2, 13], "logging_level": 2, "logic": [2, 5, 6, 13, 14, 15, 16], "logical": 12, "login": [0, 2, 3, 4, 5, 6, 8, 12, 13, 15], "logout": [0, 8, 13], "logs": [2, 5, 6], "loj": 6, "long": [0, 2, 6, 12, 16], "longhash_tablenam": 6, "longtext": 6, "look": [5, 6, 7, 12, 13], "looking": 3, "looks": [2, 6, 12], "lookup": [5, 7], "lookups": 12, "loop": [6, 8, 16], "looping": 6, "loops": 16, "los": [2, 4, 6, 12], "lost": [5, 15], "lot": [4, 6], "lots": 1, "loved": 0, "low": [0, 12], "lowercas": 12, "lowest": 12, "lru": 5, "lt": 10, "lts": 2, "luc": [0, 1], "lug": [1, 5, 6], "lumin\u00e1r": 4, "l\u00e1": [2, 4], "l\u00edngu": 1, "m": [0, 2, 6, 10, 12], "mac": [2, 6], "macac": 5, "machin": 2, "macneiln": 2, "mad": [8, 12, 14], "magically": 0, "mai": 5, "mail": [2, 3, 5, 12, 13, 16], "mailing": 6, "mailt": 12, "main": [1, 2, 3, 4, 6, 8, 14, 15, 16], "maintain": [6, 8, 16], "maintainability": 6, "maintainabl": 14, "maintenanc": 16, "maior": [6, 7], "mai\u00fascul": 6, "major": 6, "mak": [0, 1, 2, 5, 6, 8, 10, 12, 13, 14, 15, 16], "makefil": 2, "making": [6, 8], "man": 16, "manag": [2, 3, 4, 5, 6, 13, 14, 16], "managed": 0, "management": 12, "managing": 6, "mandatory": [5, 8], "maneir": [6, 14], "manipul": 6, "manipulat": 12, "manipulated": 12, "mann": [5, 15], "manual": [2, 3, 4, 6], "manually": [2, 4, 6, 10, 13, 14], "many": [0, 1, 2, 4, 5, 7, 8, 12, 14, 15, 16], "map": [4, 6, 10, 11], "map_non": 6, "mapping": [2, 6, 12, 15], "maps": [6, 10], "marc": [1, 6, 10, 13], "marca\u00e7\u00e3": [10, 13], "margin": [8, 16], "marked": 6, "massim": [0, 6], "mast": [1, 2, 14], "match": [2, 5, 6, 8, 10, 11, 12, 16], "matched": [4, 7, 10, 12], "matching": [7, 10, 12], "matem\u00e1t": 6, "material": 6, "math": 16, "matriz": 10, "matters": 15, "max": [11, 12, 16], "max_concurrent_runs": 16, "maximum": [5, 12], "maxip": 12, "maxlen": 12, "maxsiz": 12, "may": [2, 4, 5, 6, 8, 10, 12, 15, 16], "md": 1, "md5": 12, "mean": 15, "meaning": [6, 12, 13], "meanings": 12, "means": [1, 2, 3, 5, 6, 8, 12, 13, 15, 16], "mecan": [6, 8], "mechanism": [0, 5, 6, 8, 10, 13, 15, 16], "med": 1, "mediant": 8, "mei": 6, "melhor": [0, 1, 6, 11, 14, 17], "memb": [12, 13], "membership": [0, 5, 12, 13, 15], "memberships": 5, "membr": 13, "memcach": [0, 6], "memoiz": 17, "memory": [5, 6], "men": [1, 2, 5, 6], "menor": 6, "mensag": 14, "mensagens": [5, 6], "ment": 1, "mention": 5, "mentioned": [13, 16], "menu": [8, 12, 13], "menus": [8, 12], "mes": [6, 10], "mescl": 6, "mesm": [0, 1, 2, 4, 5, 8, 10, 11, 14], "messag": [2, 4, 5, 7, 8, 12, 14, 15, 17], "messed": 1, "mestr": 6, "met": [6, 8, 10], "metad": 6, "metadat": 6, "metatag": 10, "method": [4, 5, 6, 7, 8, 10, 12, 13, 14, 15, 16], "methods": [5, 7, 10, 12, 13, 14, 17], "mfa": 13, "micah": 0, "microsoft": [1, 13], "mid": 6, "middlewar": 5, "might": [7, 12], "migr": 6, "migrate_enabled": 6, "migrated": 6, "migrating": [6, 15], "migration": 6, "migrations": 6, "migra\u00e7\u00f5": 17, "min": [8, 12, 14], "min_length": 12, "mind": [4, 6, 7, 8, 12], "mindful": 6, "minimal": [5, 14, 17], "minimalist": [8, 15], "minimalist_pag": 8, "minimum": 12, "minip": 12, "minor": [8, 12, 15], "minsiz": 12, "minut": 12, "min\u00fascul": 6, "missing": [2, 13, 14], "mistak": 2, "mix": 8, "mkdir": [2, 4, 7, 14], "mm": 12, "mobili\u00e1ri": 5, "mod": [2, 4, 5, 6, 12, 13], "model": [0, 3, 7, 10, 12, 15, 16], "models": [4, 6, 7, 14, 15], "modern": [6, 13, 16], "modifi": 14, "modific": [2, 4], "modification": 12, "modifications": 2, "modified": [4, 12, 15], "modified_by": 6, "modified_on": 6, "modifiers": 7, "modify": [12, 14, 16], "modifying": [2, 6, 8], "modindex": 17, "modul": [0, 1, 2, 4, 6, 8, 10, 12, 13, 14, 15], "moment": [2, 6], "mong": 6, "mongodb": 6, "mongodbadapt": 6, "monoespac": 10, "monolithic": 0, "mont": 13, "month": 12, "mor": [0, 2, 4, 5, 6, 7, 8, 10, 12, 14, 15, 16], "moreov": 16, "most": [0, 4, 5, 6, 12, 13, 14, 15, 16], "mostr": [1, 4, 6, 14], "moth": 6, "mother_id": 6, "motor": 6, "mov": 6, "mssql1": 6, "mssql1n": 6, "mssql2": 6, "mssql2adapt": 6, "mssql3": 6, "mssql3adapt": 6, "mssql3n": 6, "mssql4": 6, "mssql4adapt": 6, "mssql4n": 6, "mssqladapt": 6, "mssqln": 6, "mtabl": 0, "much": [0, 1, 5, 6, 8, 12, 14, 15, 16], "mud": [4, 5, 6], "mudanc": 6, "muit": [0, 1, 4, 5], "mult": [1, 2, 6, 15], "multicast": 12, "multipl": [1, 2, 6, 8, 10, 12, 15, 16, 17], "multiprocess": 5, "multiselect": 12, "multius": 13, "must": [1, 2, 3, 4, 5, 6, 8, 10, 12, 13, 15, 16], "my": [5, 8, 10, 12, 13, 16], "my_app": 4, "my_id": 16, "my_password_fil": 2, "my_task": 16, "my_url_path": 15, "my_var": [5, 10], "myapp": [2, 4], "myclass": 10, "mycomponent": 16, "mycustomwidget": 12, "mydb": 6, "myerrors": 5, "myfield": 6, "myfil": 6, "myfixtur": 5, "myfunction": 2, "myidx": 6, "myobj": 6, "myobjnam": 6, "myord": 6, "myquery": 6, "myrecord": 6, "mysaltvalu": 12, "mysendgridsend": 16, "myset": 6, "mysideb": 8, "mysqladapt": 6, "mysqldb": 6, "mysqldv": 6, "mystyle": 12, "mytabl": 6, "myvalu": 6, "myvirtualfields": 6, "myvirtualfields1": 6, "myvirtualfields2": 6, "m\u00e1quin": [6, 10], "m\u00e1x": 6, "m\u00e1xim": 6, "m\u00e9d": 6, "m\u00e9di": 13, "m\u00e9tod": [4, 5, 6, 8, 14], "m\u00ednim": [5, 6], "m\u00f3dul": [0, 2, 5, 6], "m\u00faltipl": [0, 6], "n": [5, 6, 11, 16], "nad": [2, 4, 6], "nam": [2, 4, 5, 6, 7, 8, 10, 12, 13, 14, 15, 16], "named": 10, "nameonly": 6, "naming": 6, "nasc": 6, "natal": 6, "nativ": 6, "native_json": 12, "nav": 8, "navb": [8, 13], "naveg": 14, "navigat": 16, "navigation": [8, 16], "ndb": 6, "ne6fz": 8, "necess": [1, 2, 4, 6, 8], "necessary": [6, 8, 10], "necessit": 6, "necess\u00e1r": [1, 6], "necess\u00e1ri": [2, 4, 6], "need": [0, 1, 2, 5, 6, 8, 10, 12, 13, 14, 15, 16], "needed": [2, 4, 5, 6, 10, 12, 13, 16], "needs": [0, 4, 5, 6, 13, 15, 16], "neg": 6, "negated": 6, "negativ": [6, 12], "nega\u00e7\u00e3": 6, "neith": 12, "nel": 6, "nenhum": [6, 13], "ness": 6, "nest": [1, 6, 8, 10], "nested": [6, 8], "nested_select": 6, "network": [12, 13], "networks": [6, 12, 13], "nev": [6, 8, 12, 15, 16], "new": [0, 2, 4, 5, 6, 7, 8, 10, 11, 12, 13, 14, 15, 16], "new_app": [8, 10], "new_password": 16, "new_sidec": 16, "newlin": [6, 12], "newly": 6, "next": [1, 5, 6, 8, 12, 16], "nginx": 2, "nic": [0, 16], "nicozanf": 2, "nid": 6, "niss": 6, "no_backslash_escap": 6, "no_tabl": [12, 16], "nod": [4, 16], "nom": [2, 4, 5, 7, 10, 12, 13, 14], "nomeaplic": 13, "non": [2, 4, 5, 6, 7, 10, 12, 14, 15, 16], "nor": [2, 12], "norm": 6, "normal": [4, 5, 6, 8, 12, 14, 16], "normaliz": 6, "normalized": 6, "normally": [2, 6, 8, 10, 12, 14], "northwind": 1, "nosqladapt": 6, "noss": [1, 4, 5, 6], "not": [0, 1, 2, 4, 5, 7, 8, 10, 12, 13, 14, 15, 16], "not_authorized": 13, "notation": 10, "nota\u00e7\u00e3": [6, 10], "noted": 8, "nothing": [2, 5, 6, 12, 16], "notic": [2, 4, 5, 6, 8, 10, 12, 13, 14, 15, 16], "notnull": 6, "notset": 2, "nov": [0, 1, 2, 3, 4, 14], "novaaplicaca": 4, "now": [0, 4, 5, 6, 12, 14, 16], "nowadays": 1, "nul": 6, "null": [6, 7, 12, 16], "numb": [2, 5, 6, 8, 12, 16], "number_workers": 2, "numbers": 12, "numerical": 12, "num\u00e9r": 6, "nunc": [5, 6], "n\u00e3": [0, 1, 2, 3, 4, 5, 6, 8, 10, 13, 14], "n\u00edvel": [6, 11], "n\u00famer": [4, 6, 11, 14], "oauth": 13, "oauth2": [0, 5], "oauth2discord": 13, "oauth2facebook": 13, "oauth2googl": 13, "obj": [6, 8], "object": [0, 4, 5, 6, 7, 8, 10, 12, 13, 15, 17], "objects": [0, 4, 5, 6, 10, 12, 14, 15, 16], "objet": [0, 5, 6, 8, 10, 11], "obras": 6, "obrigat\u00f3ri": 6, "observ": [4, 6, 8], "obsolet": 6, "obtain": [2, 13, 16], "obtained": 6, "obter": [4, 6], "obtid": [2, 6], "obvi": 6, "obvious": [7, 8, 13], "obviously": 12, "ocasional": 6, "occasionally": 12, "occur": [2, 12, 16], "occurring": 2, "occurs": 12, "ocorr": [4, 6, 8], "ocult": [6, 12], "odd": [6, 8], "of": [0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 12, 13, 14, 15, 16], "off": [0, 2, 4, 14, 16], "official": [0, 12, 16], "offs": 6, "offset": [6, 7], "oficial": 6, "often": [6, 13, 16], "ok": [10, 15], "old": [2, 5, 12, 15], "older": 12, "olhand": 6, "ol\u00e1": 8, "ombott": [0, 4, 15], "omit": 2, "omitted": 2, "on": [0, 1, 3, 4, 5, 6, 7, 8, 12, 13, 14, 15, 16], "on_delete_action": 6, "on_error": 5, "on_fals": 5, "on_request": 5, "on_success": 5, "once": [1, 2, 5, 6, 12, 13, 16], "onclick": 16, "onde": [2, 6, 7, 8, 12], "ondelet": 6, "one": [0, 2, 4, 5, 6, 7, 8, 12, 13, 14, 16], "ones": [2, 5, 7, 12, 15], "onion": 5, "onkeydown": 16, "onlin": [1, 6], "onload": 16, "only": [1, 2, 3, 4, 5, 6, 7, 8, 10, 12, 13, 14, 15, 16], "onvalidation": 12, "opacity": 16, "opcion": [6, 10], "opcional": [4, 6, 10, 12], "open": [1, 2, 4, 5, 6, 10], "opening": 5, "oper": [0, 3, 11, 17], "operat": 12, "operation": [6, 13], "operationalerror": 12, "operations": [5, 6], "operator": [5, 6, 12], "oposi\u00e7\u00e3": 10, "opost": 6, "opposed": 5, "opposit": 5, "oprow": 6, "optimized": 6, "option": [2, 3, 5, 6, 12, 13, 16], "optional": [2, 5, 6, 7, 8, 12, 13, 14, 15, 16], "optionally": [0, 2], "options": [2, 6, 7, 10, 13, 15, 16], "opt\u00e1m": 6, "op\u00e7\u00e3": [3, 4, 6, 8, 10], "op\u00e7\u00f5": [6, 17], "or": [0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 12, 13, 14, 15, 16], "oracl": 6, "oracleadapt": 6, "ordem": 6, "order": [1, 2, 4, 5, 6, 7, 10, 12, 14, 15], "order_it": 6, "orderby": [12, 13, 14, 16], "ordered": 10, "ordereddict": 6, "org": [2, 4, 7, 10, 16], "organiz": 6, "organized": 4, "orig": [2, 11], "origin": 6, "original": [6, 8, 10, 12], "orm": 6, "other": [0, 1, 2, 4, 5, 6, 7, 8, 10, 13, 14, 15, 16], "other_pag": [12, 16], "otherfield": 6, "others": [0, 6, 15], "othertabl": 6, "otherwis": [5, 6, 8, 12, 13, 14], "otimiz": 6, "oufil": 6, "our": [0, 1, 2, 5, 6, 10, 12, 16], "out": [0, 1, 2, 5, 8, 12, 16], "outlined": [4, 5], "output": [1, 2, 5, 8, 12, 16], "output_styl": 4, "outr": [1, 2, 4, 5, 10, 11, 13, 14, 17], "outsid": [0, 5, 6, 12, 14, 15, 16], "ov": 6, "over": [8, 14, 16], "overkill": 13, "overrid": [4, 6, 8, 13, 14, 15, 16], "override_cl": 14, "override_styl": 14, "overriding": 16, "overview": 17, "overwritten": [5, 15], "own": [4, 5, 6, 8, 12, 13, 14, 15, 16], "owner": [6, 12], "owner_id": 6, "owner_id1": 6, "owner_id2": 6, "owners": 12, "ownership": 6, "owns": 6, "p": [2, 8, 12], "p10n": 11, "packag": [0, 6, 10], "padded": [8, 15], "padding": 16, "padroniz": 6, "padr\u00e3": [0, 2, 4, 5, 8, 10, 14], "padr\u00f5": [4, 6, 10], "pag": [1, 3, 4, 5, 6, 10, 12, 13, 14, 15, 16, 17], "page_head": 8, "page_left_menu": 8, "page_scripts": 8, "pagin": [6, 14], "pai": 6, "painel": [0, 2, 3], "paint": [4, 12], "painting": 4, "pairs": 10, "palavr": [8, 10, 11], "pam": [0, 5], "pam_plugin": 13, "pamplugin": 13, "papel": 2, "par": [0, 1, 2, 3, 4, 5, 10, 11, 12, 13, 14, 16, 17], "paragraph": [5, 10, 12, 14], "paramet": [1, 2, 4, 5, 6, 13, 14, 16], "parameters": [2, 6], "params": 16, "parec": [5, 6], "parent": [2, 6, 8, 16], "park": [7, 14], "pars": [5, 6, 12, 13], "parsed": 6, "parsemodul": 4, "part": [4, 10, 15], "partial": [4, 6, 15], "particip": 6, "participat": 1, "particul": [0, 1, 6, 12, 14, 15, 16], "particular": 6, "particularly": 6, "parts": 12, "party": [0, 5], "par\u00e1graf": [1, 10], "par\u00e2metr": [5, 14], "par\u00eantes": 6, "pass": [4, 5, 6, 8, 10, 12, 13, 14, 15, 16], "passed": [2, 4, 5, 6, 10, 12, 13, 14, 16], "passing": [5, 6, 10, 12], "passphras": 5, "password": [2, 6, 8, 12, 13, 15, 16], "password_fil": 2, "passwords": 12, "passwordwidget": 12, "past": [2, 4], "path": [2, 4, 5, 6, 7, 11, 12, 14, 15, 16], "path_t": 2, "pattern": 7, "patterns": 7, "paus": 2, "payment": 6, "payroll": 5, "pbkdf2": 12, "pc": 3, "pdf": [1, 12], "pdkdf2": 2, "pec": [5, 6], "ped": [2, 4, 5, 6, 14], "pedac": 8, "peg": 6, "pegadinh": 17, "pel": [1, 4, 5, 6, 8, 10, 11, 13], "pens": 6, "per": [5, 7, 14], "perahps": 5, "percentual": 6, "perd": [1, 2, 6], "perfect": 0, "perfectly": 14, "perfil": [0, 13], "perform": [5, 6, 12, 13], "performanc": [0, 5, 6, 15], "performing": 6, "performs": 12, "pergunt": 6, "period": 16, "periodic": 16, "permanec": 6, "permission": [5, 13], "permissions": [0, 5, 6, 13, 15], "permiss\u00e3": [5, 6, 13], "permit": [0, 3, 5, 6, 8, 10, 13, 14], "permitted_tags": 10, "persist": 5, "persistent": [6, 13], "person": [6, 7, 12, 14], "personag": 6, "personagens": [4, 6], "personal": 2, "personaliz": [0, 2, 17], "persons": 12, "persons_and_things": 6, "perspectiv": 0, "pertenc": 6, "pertencent": 6, "pesquis": [2, 3, 6, 14], "pesso": 6, "pet": [6, 7, 14], "philip": 6, "phon": [12, 16], "photograph": [7, 14], "physics": 13, "pick": [5, 13], "picked": 4, "picks": 5, "piec": [0, 12], "pierr": 0, "pip": [0, 1, 6], "pirsch": 0, "piscin": [4, 6], "piu": 5, "pixels": 12, "plac": [1, 5, 6, 8, 12, 14, 16], "placehold": [12, 16], "placeholders": 6, "placing": 14, "plain": 16, "plan": [1, 16], "plataform": 17, "platform": [0, 1], "play": 16, "playing": 0, "pleas": [5, 6], "plug": 5, "plugin": [5, 12, 13, 14, 16], "plugins": [12, 16], "plural": 11, "pluraliz": [0, 4, 5, 14, 16, 17], "pluralization": 15, "plus": [6, 8, 13, 14], "pm": 12, "png": [10, 12], "pod": [0, 1, 2, 4, 5, 6, 7, 8, 10, 11, 13, 14], "point": [4, 5, 6, 12, 15, 16], "pointing": [2, 3, 8], "points": [6, 7, 12, 14], "polic": 17, "policy": 7, "pollut": 5, "pol\u00edt": 0, "pont": 6, "pool": 5, "pool_connection": 6, "pool_siz": [5, 6], "pooling": 6, "poor": 16, "pop": 16, "popul": [0, 6], "porqu": [2, 4, 5, 6, 8, 11], "port": [0, 2, 3, 5, 6, 15], "portability": 6, "portabl": 6, "portant": [2, 4, 5, 6, 10], "ports": 2, "por\u00e7\u00f5": 14, "posicion": 10, "position": 5, "positional": 10, "posi\u00e7\u00e3": [5, 10], "possibil": 6, "possibl": [4, 5, 6, 8, 12, 14, 15, 16], "possibly": 6, "poss\u00edv": 6, "poss\u00edvel": [4, 6], "post": [4, 6, 7, 10, 12, 13, 14, 15, 16], "post_action_buttons": 14, "post_text": 6, "post_vars": [7, 15], "post_writabl": 7, "posted": 7, "postel": 11, "posterior": 5, "postfix": 15, "postgr": 6, "postgreboolean": 6, "postgrenew": 6, "postgrepsyc": 6, "postgrepsycoboolean": 6, "postgrepsyconew": 6, "postgres2": 6, "postgres3": 6, "postgres_nonreserved": 6, "postgresql": [2, 6], "postgresqladapt": 6, "postprocessing": 15, "posts": 6, "potentially": 2, "pouc": [5, 6], "pow": [2, 6, 16], "powerful": [7, 13, 15], "powers": 7, "pprint": 6, "pr": 1, "practic": [8, 12], "practical": [6, 12, 15, 17], "pre": [2, 4, 5, 14], "pre_action_buttons": 14, "precau\u00e7\u00e3": 2, "preced": [5, 6, 8], "preceded": [6, 12], "precedent": 6, "preceding": 7, "precious": 14, "precis": [1, 2, 4, 5, 6, 14], "predefin": 8, "predefined": [12, 16], "predetermined": 15, "preench": 6, "preenchiment": 6, "pref": [2, 16], "prefer": 10, "preferenc": 5, "preferred": [5, 6], "prefix": [2, 4, 6, 7, 8, 12, 15], "preguic": 15, "prelimin": 1, "preocup": 6, "prepend": [12, 16], "prepend_schem": 12, "prepended": [12, 15], "prepending": 12, "prepends": 4, "preprocessing": 15, "prerequisit": [2, 5], "presenc": [5, 6], "present": [2, 6, 8, 12, 13], "preserv": [0, 5], "preserved": 5, "press": [4, 14], "pression": 3, "prest": 10, "pretend": 6, "pretty": [6, 15], "prevent": [6, 10, 12, 16], "prevented": 6, "preventing": 5, "prevents": [2, 5, 16], "previ": [6, 12], "previous": [5, 8, 10, 12, 16], "previously": [5, 6, 12], "prim": [5, 12], "primarily": 14, "primary": [6, 8, 13], "primeir": [6, 8, 13, 17], "princip": 0, "principal": [1, 5, 6, 17], "princ\u00edpi": [6, 17], "print": [4, 6, 10, 11, 13, 14, 15, 16], "printed": 4, "privat": [5, 12], "probability": 12, "probl": [0, 6, 8, 14], "problem": [1, 6], "problems": [6, 13, 16], "proc": [13, 16], "proced": 17, "procedur": 2, "process": [2, 4, 5, 6, 8, 10, 12, 13, 14, 15, 16], "processed": [5, 6, 8, 12], "processing": [5, 6, 8, 12, 16], "procur": [1, 6], "produc": [6, 10, 12, 13], "product": [6, 16], "product_record": 16, "production": [2, 4], "products": 6, "produz": [2, 5, 6, 8, 10], "produ\u00e7\u00e3": 0, "professor": 13, "profil": [8, 13, 15], "progr": [1, 2, 3, 10], "program": [1, 3, 6, 8], "programmatically": 10, "programming": [1, 6, 8, 16], "programs": [1, 2, 12], "project": [0, 2, 4, 5, 6], "project_nam": 2, "projet": [0, 2], "prompt": [2, 4, 6], "pront": 6, "prop": [5, 6, 14], "properly": 4, "properti": [6, 12], "propriedad": 6, "propriet\u00e1r": 6, "propriet\u00e1ri": 6, "protocol": 3, "prototyp": 16, "provavel": [4, 5, 6], "proveit": 6, "provid": [0, 4, 5, 6, 8, 10, 12, 13, 14, 15, 16], "provided": [5, 6, 8, 10, 12, 14], "providing": [0, 14, 15], "provoc": 6, "prudent": 6, "pr\u00e1tic": [0, 6, 7], "pr\u00e9": [10, 14, 17], "pr\u00f3pr": [13, 14], "pr\u00f3pri": [6, 14], "pr\u00f3xim": [2, 6], "pseud": 6, "psycopg2": 6, "public": [4, 6], "pud": 2, "pull": 1, "punycod": 12, "pur": 6, "purpos": [0, 6, 10, 12, 13, 15], "put": [5, 7, 12, 16], "put_writabl": 7, "putting": 4, "pux": 6, "pwd": 6, "py": [1, 2, 4, 5, 6, 7, 10, 11, 12, 13, 14, 15, 16], "py4web": [2, 3, 4, 5, 7, 8, 10, 12, 13, 14], "py4web_filesyst": 6, "py4web_wsg": 2, "pyc": 8, "pydal": [0, 2, 3, 5, 6, 7, 12, 13, 14, 15, 16], "pyfilesyst": 6, "pyinstall": 2, "pymong": 6, "pymysql": 6, "pyodbc": 6, "pypi": 2, "pypyodbc": 6, "pysqlite2": 6, "pytds": 6, "python": [0, 2, 4, 5, 6, 8, 10, 11, 12, 13, 14, 15, 16], "python2": [2, 15], "python3": [1, 2], "pyweb": 15, "p\u00e1gin": [8, 10, 14, 17], "p\u00f3s": 14, "p\u00fablic": 6, "q": [2, 6, 14], "qua": [0, 6], "quadr": [0, 1, 6], "quaisqu": [6, 12], "qualified": 6, "qualqu": [1, 2, 4, 5, 6, 7, 8, 13], "quand": [1, 4, 6, 8, 14], "quant": 6, "quantity": 6, "quebr": 0, "qued": 14, "queir": 5, "quer": [2, 4, 5, 6, 10], "queri": [6, 7, 14, 15, 16], "queried": 7, "query": [4, 5, 7, 10, 12, 14, 15, 16], "query1": 6, "query2": 6, "queryselector": 16, "queryselectorall": 16, "querystring": 14, "questions": [1, 2], "quest\u00e3": 6, "quick": [1, 12], "quickly": [2, 12, 14], "quickstart": 16, "quiet": 2, "quirk": 5, "quis": [4, 6], "quit": [1, 2, 5, 7, 8, 12, 14], "quot": [2, 10], "quote_minimal": 6, "quote_nonnumeric": 6, "quotech": 6, "r": [2, 6, 12], "rac": 12, "radi": [10, 12], "radiowidget": 12, "radius": 16, "rais": [5, 12, 13, 15], "raised": 5, "ram": [5, 6], "randint": [8, 13], "random": [6, 8, 12, 13, 16], "rang": [4, 6, 8, 13, 15], "rapid": [0, 16], "rar": 6, "rarely": 6, "rath": [6, 8, 12, 16], "raw": 17, "raz\u00f5": 6, "rb": 6, "re": [0, 1, 2, 4, 5, 6, 8, 10, 12, 13, 14, 15, 16], "rea": 6, "reach": 2, "react": 16, "reactivity": 16, "read": [1, 4, 5, 6, 7, 14, 16], "readability": 7, "readabl": [5, 6, 14, 15], "readm": [1, 12], "readonly": [2, 12, 16], "ready": 2, "reagrup": 0, "real": [2, 4, 7, 8, 12], "real_identity": [6, 7], "realiz": [3, 4, 6], "really": [1, 4], "realment": 6, "reaping": 16, "reason": [2, 5, 6, 14, 15], "reasons": [2, 7], "rebuilt": 6, "rec_id": 7, "receb": [6, 8], "recent": [2, 3, 6, 12, 14], "recently": 5, "recereived": 16, "recip": 2, "reclam": 6, "recogniz": 4, "recognized": 6, "recolh": [7, 14], "recomec": 6, "recomend": 6, "recommend": [1, 5, 16], "recommended": [6, 12], "reconstru": 6, "record": [7, 12, 13, 15, 16], "record_id": [7, 16], "recorded": 12, "records": [6, 7, 12, 13, 14, 16], "recorrent": 6, "recovered": 12, "recreat": 6, "recreated": 6, "recup": 6, "recuper": [4, 6], "recurs": [2, 8, 17], "recursively": 8, "recycl": 6, "rec\u00e9m": [4, 6, 11], "red": [0, 3, 4, 6, 8, 10, 12, 17], "redefin": 5, "redefini\u00e7\u00e3": 6, "redesign": 0, "redirecion": [4, 13, 14], "redirect": [4, 5, 12, 13, 14, 16], "redirected": [5, 16], "redirection": [5, 12, 15], "redirects": [5, 13], "reduc": [0, 5, 16], "reduced": 0, "redundant": 6, "reescrev": 6, "reescrit": 6, "ref": [3, 5, 6, 10, 12, 13, 17], "refer": [6, 7], "referenc": [1, 5, 6, 7, 8, 10, 12, 14, 16], "referenced": [6, 7], "referenced_by": 7, "referencing": 6, "referim": 6, "referred": [6, 7], "refers": 7, "reflected": 1, "reflet": 6, "reforc": 6, "refresh": 14, "regex": [7, 10, 12], "regexlib": 12, "regist": [0, 5, 6, 8, 13, 14, 15, 16], "register_plugin": 13, "register_task": 16, "register_vue_component": 16, "registered": [5, 13], "registers": 5, "registr": [3, 4, 12, 13, 14], "registration": [4, 12], "registration_stamp": 12, "regr": [4, 5], "regul": [0, 2, 4, 6, 7, 8, 11, 12, 14, 15, 16], "reimplementation": 16, "reinic": 6, "reinstal": 2, "reinstall": 2, "reinstat": 6, "rejected": 12, "rejects": 12, "rel": [8, 14], "relacion": 6, "relat": 6, "related": [5, 6], "relational": 6, "relations": 17, "relationships": 6, "relativ": [4, 15], "rela\u00e7\u00e3": 10, "rela\u00e7\u00f5": 6, "releas": 2, "released": 0, "relev": 6, "reload": [2, 3, 4, 5, 12], "reloaded": [3, 4, 16], "reloading": [2, 4, 5], "reloads": [4, 5], "rely": [0, 4, 6], "rem": 5, "remain": [6, 12], "remains": 0, "rememb": [5, 6], "remembered": 5, "remote_addr": [5, 13], "remov": [2, 4, 6, 10, 12, 13], "removal": 12, "removed": [0, 6, 10, 12], "removing": 6, "remo\u00e7\u00e3": 6, "renam": 1, "rend": [5, 6, 12, 14, 15, 16], "rendered": [5, 7, 8, 12, 14, 15, 16], "rendering": [8, 10], "renderiz": 10, "renders": 12, "reno": 8, "renom": 7, "reopening": 5, "repackaging": 0, "repeated": 12, "repeti\u00e7\u00e3": 6, "replac": [6, 8, 10, 14, 16], "replaced": [8, 10, 12, 16], "replacing": 12, "replicat": [1, 5], "report": 8, "reported": 4, "repository": [1, 2, 3], "reposit\u00f3ri": 2, "repr_row": 6, "represent": [8, 10, 12], "representation": [6, 10, 16], "representational_state_transf": 7, "represented": [12, 16], "representing_field": 12, "represents": [0, 6], "requ": [0, 5, 6, 12, 13, 14, 15, 16], "request": [0, 1, 2, 5, 6, 7, 12, 13, 14, 15, 16], "request_body": 16, "request_reset_password": 13, "requests": [1, 4, 5, 15], "requir": [2, 5, 6, 12, 13], "required": [4, 5, 6, 7, 12, 16], "requirement": [12, 16], "requirements": [0, 2, 12], "requires_": 15, "requires_login": 15, "requires_membership": [5, 13], "requiring": [2, 15], "requisit": [6, 17], "res": 16, "reserv": 11, "reserved": [6, 12], "reset": 6, "reset_password": 13, "resgat": 6, "resourc": [6, 13], "respect": [6, 12, 14], "respectively": [6, 12], "respons": [4, 5, 6, 8, 15, 16, 17], "responsibility": 6, "responsibl": [14, 16], "respost": [5, 8], "ressalv": 6, "restabelec": 6, "restap": [0, 3, 17], "restart": [2, 4, 5, 6, 14], "restarting": 6, "restaur": 6, "restful": [7, 13], "restrict": [5, 7, 12, 16], "restri\u00e7\u00e3": 6, "restri\u00e7\u00f5": [0, 6], "restructuredtext": 1, "result": [1, 4, 6, 7, 8, 12, 14, 16], "resulting": [8, 12, 16], "results": [6, 8, 12, 14], "ret": 6, "retain": 6, "retorn": [5, 8, 10], "retribu": 10, "retriev": [5, 6, 16], "retrieval": 6, "retrieved": 15, "return": [4, 5, 6, 7, 10, 12, 13, 14, 16], "returned": [5, 6, 7, 8, 10, 12, 16], "returning": 5, "returns": [5, 6, 7, 10, 12, 13, 15, 16], "reutiliz": [2, 6], "revers": [5, 6], "revers\u00e3": 4, "revert": 6, "rfc": 12, "rid": 6, "riding": 8, "right": [5, 6, 8], "rights": 2, "road": 16, "robust": 16, "rocket": 15, "rocket3": [2, 15], "rocketserv": 2, "rodap": 10, "rol": [5, 10], "roll": 6, "rollback": 16, "rolls": 5, "root": [6, 8, 13, 14], "ror": 6, "rosc": 5, "rot": [3, 14], "rotul": 6, "rout": [2, 5, 14, 15, 16], "routing": [0, 2, 4, 15], "rov": 6, "row": [12, 14, 16], "rows": [10, 12, 14, 15], "rows1": 6, "rows2": 6, "rows3": 6, "rows_list": 6, "rows_per_pag": 14, "rpc": 6, "rst": 1, "rul": [8, 12, 14], "run": [1, 3, 4, 6, 8, 13, 16], "run_in_transaction": 6, "running": [1, 2, 5, 16], "runs": [2, 4, 13, 15, 16], "r\u00e1di": 10, "r\u00e1p": [0, 6], "r\u00f3tul": [6, 10, 14], "s": [0, 1, 2, 4, 5, 7, 8, 10, 11, 12, 13, 14, 16], "s3": 6, "s_": [12, 16], "s_autocomplet": 16, "s_autocomplete_results": 16, "s_down_key": 16, "s_search": 16, "sab": [1, 2, 6, 8], "saf": [1, 6, 12, 14, 15], "safar": 16, "safely": [1, 14], "safety": 16, "said": 7, "sair": 13, "sak": 6, "salt": [1, 12], "salv": [4, 6, 11], "sam": [0, 2, 5, 6, 7, 8, 12, 13, 15, 16], "same_sit": 5, "saml": 13, "saml2": 0, "sampl": 13, "san": 4, "sandbox": 16, "sanitiz": [5, 10, 12, 15], "sanitized": 12, "sant": 1, "sap": 6, "sapdb": 6, "sapdbadapt": 6, "sass": 4, "sass_compil": 4, "sav": [1, 5, 6, 11, 12], "saved": [2, 5, 6, 12], "say": 13, "sa\u00edd": [2, 4, 6, 8, 10], "scaffold": [2, 4, 16], "scaffold_zip": 2, "scaffolding": [2, 4, 5, 6, 8, 12, 15, 16], "scal": [5, 8], "scan": 6, "schaf": 1, "schedul": 17, "scheduled": 16, "scheduled_for": 16, "schem": [6, 12], "scheuled_for": 16, "school": 13, "scor": 16, "score_input": 16, "scratch": 4, "script": [2, 5, 8, 12, 16], "scripting": 10, "scripts": [2, 8, 10], "sdk": 2, "seamlessly": 8, "search": [0, 12, 13, 14, 17], "search_button_text": 14, "search_form": 14, "search_queri": 14, "search_text": 14, "search_valu": 16, "searchabl": 6, "searched": [10, 14], "searching": [6, 10], "second": [6, 10, 12, 13, 15], "seconds": [5, 12], "secret": [5, 13], "secs": 16, "section": [2, 4, 6, 8, 12, 13], "sections": 6, "secur": [0, 12], "securely": 2, "security": [0, 2, 6, 7, 13], "see": [0, 1, 3, 4, 5, 6, 8, 10, 12, 13, 14, 16], "seem": 6, "seen": [0, 5, 7, 10, 12, 13, 14, 16], "seg": 4, "segment": 4, "segred": 13, "segu": [2, 4, 5, 6, 8], "seguint": [2, 4, 5, 6, 8, 10, 11, 12, 13, 14], "segund": 6, "segur": [0, 5], "seguranc": [2, 5, 6, 10], "seis": 6, "sej": [4, 6], "seleccion": 6, "selecion": [3, 6], "select": [4, 5, 7, 11, 12, 13, 14, 15, 16, 17], "selected": [3, 4, 7, 10, 12, 14, 16], "selected_elements": 16, "selected_id": 14, "selectedindex": 16, "selecting": 6, "selection": [12, 14], "selections": 12, "selector": [10, 16], "selector1": 10, "selector2": 10, "selectorn": 10, "selectwidget": 12, "selec\u00e7\u00e3": 6, "sele\u00e7\u00e3": [6, 10], "self": [2, 5, 6, 10, 12, 14, 16], "semantic": [12, 13], "semelh": [0, 4, 5, 6, 10], "sempr": [6, 8], "send": [2, 6, 12, 13, 16], "send_two_factor_email": 13, "sendgrid": 16, "sendgrid_api_key": 16, "sendgridapiclient": 16, "sending": 17, "sendmail": 16, "sendmail_task": 16, "sends": 13, "senh": [0, 2, 3, 5, 6, 13], "sens": [0, 6, 12], "sensitiv": [5, 12], "sens\u00edvel": 6, "sent": [5, 6, 13, 16], "sen\u00e3": 6, "separ": [6, 14], "separat": [6, 12, 13, 16], "separated": [2, 5, 6, 14, 16], "separating": [8, 12], "separator": 12, "sequenc": [5, 6], "sequencial": 6, "sequ\u00eanc": 6, "seq\u00fcenc": 6, "seq\u00fc\u00eanc": 6, "ser": [0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 11, 13, 14], "seri": 1, "serializ": [4, 6, 8, 10], "serializabl": [0, 5, 6], "serialized": [5, 6, 10, 12], "serv": [0, 2, 3, 4, 7, 8, 13, 15, 16, 17], "served": [2, 6], "server_addr": 6, "servers": [2, 6], "serversid": 16, "servidor": [0, 4, 5, 6], "serving": 16, "ser\u00e3": [4, 6, 10], "session": [0, 2, 4, 6, 10, 12, 13, 14, 15, 16, 17], "session_app1": 5, "session_secret_key": 5, "sessions": [0, 6, 15], "sess\u00e3": [4, 17], "sess\u00f5": 5, "set": [0, 2, 5, 7, 8, 10, 11, 14, 15, 16], "set_attribut": 6, "set_encoding": 6, "set_head": 6, "set_password": 3, "setinterval": 16, "sets": [2, 5, 6, 12], "setting": [2, 4, 5, 6, 12, 14], "settings": [1, 4, 5, 6, 10, 13, 15, 16], "setup": [1, 3, 4, 13, 16], "setvirtualfields": 6, "severity": 6, "se\u00e7\u00e3": 6, "se\u00e7\u00f5": 6, "sf": 16, "sftp": 6, "sg": 16, "sh": 16, "sha512": [8, 12], "shar": [5, 6, 15], "shared": 5, "shell": 10, "ships": 8, "sho": 6, "shopping": 5, "short": [12, 16], "shortcut": [6, 8, 12], "should": [1, 2, 4, 5, 6, 7, 8, 10, 12, 13, 14, 15, 16], "show": [2, 5, 6], "show_id": 14, "showcas": 6, "showed": 13, "showing": 14, "shown": [2, 6, 12, 13], "shows": [4, 8, 12, 13], "shutil": 6, "si": [6, 14], "sid": [6, 16, 17], "sideb": 8, "sidebar_enabled": 8, "sidebar_menu": 10, "sidec": 16, "sign": [5, 8, 13], "signatur": [5, 6, 7, 10, 12, 16], "signed": [2, 5, 12], "signed_url": 5, "signif": [5, 6, 7], "signific": [6, 8], "significant": 8, "signing": 5, "signing_inf": 12, "signs": 5, "sim": 6, "simbol": 2, "simb\u00f3l": 4, "simil": [0, 12, 15], "similar": [6, 10], "similariti": 15, "simpl": [1, 2, 4, 5, 6, 7, 8, 10, 12, 13, 14, 16, 17], "simple_query": 16, "simples": [4, 6, 11], "simplest": 2, "simplicity": [6, 16], "simplific": 6, "simplified": [0, 4, 8], "simply": [2, 4, 5, 6, 8, 12, 16], "simultan": 6, "simult\u00e2n": 6, "sinal": 6, "sinc": [0, 4, 5, 7, 8, 14, 15], "singl": [2, 5, 6, 7, 8, 12, 13, 14], "singleton": [5, 15], "sintax": [4, 6, 10, 13, 17], "sint\u00e1t": 5, "sistem": [0, 2, 5, 6], "sit": [1, 2, 4, 5, 6, 10, 14, 16], "situa\u00e7\u00e3": 6, "siz": [5, 8, 12], "skip": [5, 16], "slash": [1, 4, 5, 13], "sleep": 16, "sleep_tim": 16, "slick": 0, "slow": [6, 16], "slug": 12, "small": [5, 12], "sms": 16, "smtplib": 16, "snippets": 6, "so": [2, 5, 6, 8, 10, 12, 13, 14, 15, 16], "soap": 10, "sob": [4, 6], "sobr": [0, 8], "sobrecarg": 6, "sockets": 16, "solicit": [0, 6], "solt": 6, "solution": [0, 2, 16], "solu\u00e7\u00e3": [1, 6], "som": [0, 1, 2, 4, 5, 6, 7, 8, 10, 12, 13, 15, 16], "some_condition": 8, "some_form": 12, "some_valu": 6, "somefield": 6, "somefil": 6, "soment": [2, 4, 6, 8], "somepath": 5, "sometabl": 6, "something": [6, 7, 8, 10, 12, 14, 16], "sometim": [5, 6, 8, 10, 12], "somevalu": 6, "somewhat": 12, "somewher": [5, 6], "soon": [8, 16], "sophisticated": 15, "sort": 12, "sorted": 14, "sorting": 12, "sourc": [1, 2, 3, 4, 6, 12, 16], "source1": 12, "south": 1, "sp": 6, "spac": [6, 8, 12, 14], "span": [4, 15], "spatialit": 6, "speaking": 5, "special": [0, 5, 6, 8, 13, 15, 17], "specialization": 6, "specials": 12, "specific": [2, 5, 6, 8, 10, 12, 13, 15, 16], "specifically": [5, 6, 12, 16], "specifications": 7, "specified": [5, 6, 8, 10, 12, 13, 14, 15, 16], "specify": [2, 4, 5, 6, 7, 12, 13, 14, 16], "specifying": 10, "speed": [7, 8], "sphinx": 1, "spiderman": [7, 14], "spin": [0, 4], "spirit": 7, "split": [6, 7, 8, 12], "split_emails": 12, "sql": 17, "sql_mod": 6, "sqladapt": 6, "sqlcustomtyp": 6, "sqlform": [0, 12, 15], "sqlforms": 12, "sqlit": [1, 5, 7, 13, 14, 16], "sqlite3": 6, "sqliteadapt": 6, "squar": 8, "src": [5, 6, 8, 10, 12, 16], "ss": 12, "ssl": 2, "ssl_cert": 2, "ssl_key": 2, "sslcert": 6, "sslkey": 6, "sslmod": 6, "sslrootcert": 6, "sso_id": [5, 13], "stabl": 2, "stand": 12, "standard": [1, 2, 3, 6, 7, 13, 14, 15, 16, 17], "standards": [12, 14], "stands": 10, "start": [1, 2, 3, 4, 5, 6, 10, 12, 13, 14, 16], "start_impersonating": 13, "started": 16, "starting": [2, 4, 12], "starts": [0, 3, 5, 8, 15], "startup": [6, 15], "stat": [5, 7, 15, 16], "stated": 5, "stateful": 5, "stateless": [5, 16], "statement": 8, "statements": [8, 12], "static": [1, 4, 8, 10, 15], "static_dev": 4, "status": [7, 16], "status_cod": 16, "stderr": [2, 16], "stdout": [2, 16], "steil": [0, 1, 14], "step": [13, 15], "step1": 5, "step2": 5, "step3": 5, "step_completed": 5, "stepping": 16, "steps": 2, "still": [5, 6, 10, 12, 14, 15], "ston": 14, "stop": [2, 13], "stop_impersonating": 13, "stor": [5, 6, 12, 13, 16], "storag": [5, 6, 7, 14], "stored": [0, 5, 6, 12, 13, 15, 16], "stored_it": 6, "stored_item_archiv": 6, "storing": 5, "story": 0, "str": [2, 5, 6, 10, 12, 15, 16], "stre": [5, 6], "streaming": [4, 15], "strength": 7, "strict": 12, "strictly": [4, 6, 16], "string": [4, 5, 6, 7, 10, 11, 12, 14], "stringi": 6, "stringlistproperty": 6, "strings": [10, 12, 14], "strip": 12, "stripped": [2, 15], "strong": [0, 10, 13], "strongly": [1, 5, 12, 14], "structur": [1, 4, 6, 13, 14, 15, 16, 17], "stuck": 2, "students": 2, "studi": 1, "study": 1, "stuff": [12, 14], "style": [4, 6, 8, 12, 16, 17], "styles": 14, "stylesheet": [8, 14], "styling": 14, "sub": 6, "subcl": 6, "subclassing": 12, "subconjunt": [0, 6], "subfold": 6, "subfolders": [5, 6], "subheadings": 10, "subject": [6, 7, 13, 16], "sublinh": 6, "submet": 12, "submission": [12, 16], "submit": [1, 5, 6, 10, 12, 14], "submitted": [14, 16], "submitting": 13, "subm\u00f3dul": 0, "subnet": 12, "subnets": 12, "subpast": 4, "subqueri": 16, "subset": 12, "subse\u00e7\u00e3": 6, "substitu": [0, 2, 6, 8, 10], "substitui\u00e7\u00f5": 14, "substitutions": 8, "substitu\u00edd": 6, "substring": [6, 12], "succeeded": 0, "success": [5, 7, 16], "successful": [0, 13], "successfully": 13, "suced": 6, "sucess": [4, 6], "such": [6, 10, 12, 14, 15], "sud": [2, 13], "suffered": 0, "suffers": 13, "suficient": [6, 14], "suger": [1, 6], "sugest\u00f5": 17, "suggest": [1, 12], "sugiz": 0, "sup": 7, "super": 6, "superher": [6, 7, 12, 14, 16], "superhero": 7, "superior": 11, "superman": [6, 7, 12, 14], "superpotent": 7, "superpow": [6, 7], "superseeded": 6, "supond": [2, 6], "suponh": 6, "supor": 6, "suport": [0, 11, 17], "supplied": 10, "support": [1, 2, 6, 12, 14, 15], "supported": [11, 12, 13], "supporting": 16, "supports": [4, 5, 8, 10, 12, 16], "suppress": 2, "suprim": 10, "sur": [5, 12, 13, 16], "surely": [3, 4], "surrounding": 12, "susan": 6, "sutil": 6, "sv": 6, "switch": [2, 5, 6], "sybas": 6, "sybaseadapt": 6, "symbol": 12, "symbols": 12, "sync": [2, 6], "synops": 12, "syntactic": 12, "syntax": [0, 1, 4, 5, 6, 7, 8, 10, 12, 13, 15, 16], "system": [0, 2, 5, 6, 10, 13, 16], "systems": 16, "sysus": 6, "s\u00e3": [0, 1, 3, 4, 5, 6, 8, 10, 11, 13, 14], "s\u00e9ri": 6, "t": [0, 2, 4, 5, 6, 8, 10, 11, 12, 13, 14, 15], "t_fold": 5, "tab": [3, 5, 12], "tabel": [5, 10, 13, 14, 15], "tabl": [5, 7, 12, 13, 14, 15, 16, 17], "table1": 6, "table_hash": 6, "table_nam": 6, "tablenam": [6, 7, 12, 16], "tag": [0, 5, 6, 7, 8, 13, 15, 16], "tag_input": 16, "tagg": 10, "tagged_db": 13, "tagging": [6, 10, 13], "tags": [0, 5, 6, 8, 10, 12, 15, 16, 17], "tags_input": 16, "tags_inputs": 16, "tail": 6, "tail_nam": 13, "tais": 6, "tak": [2, 3, 5, 6, 8, 12, 13, 14, 16], "taken": 12, "tal": 6, "talvez": [2, 5], "tamanh": 6, "tampering": [5, 6], "tant": [6, 16], "tantissim": 11, "tap": 16, "tar": 12, "tard": [4, 6], "taref": [1, 6, 13], "target": [10, 16], "task": 17, "task_run": 16, "tasks": [5, 6, 16], "tast": 6, "tbody": 6, "tcp": 3, "td": 6, "teach": 13, "technically": 16, "tecl": [6, 11], "tell": [4, 13, 16], "telling": [2, 13], "tells": [5, 16], "temp": [2, 8], "templat": [0, 4, 10, 12, 13, 15, 16, 17], "temporarily": 5, "tempor\u00e1ri": 6, "ten": 12, "tenancy": 6, "tenh": [1, 5, 6], "tent": [5, 6], "ter": [2, 4, 5, 6, 10], "teradat": 6, "teradataadapt": 6, "terceir": 6, "tered": 12, "term": 6, "termin": 10, "terminal": 4, "terminat": [8, 16], "terms": 12, "terr": 6, "ter\u00e3": 6, "test": [2, 6, 8, 10, 12, 14], "tested": [0, 2, 10, 13], "testing": [4, 6], "text": [2, 5, 6, 8, 10, 14, 16], "textar": 12, "textareawidget": 12, "textual": 10, "th": 6, "than": [0, 5, 6, 8, 10, 12, 13, 14, 16], "thank": 10, "thanks": 0, "that": [0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 11, 12, 13, 14, 15, 16], "that_templat": 8, "the": [0, 3, 8, 10, 11, 13, 15, 17], "thead": 6, "them": [0, 1, 2, 4, 5, 6, 7, 8, 12, 13, 14, 15, 16], "themselv": [6, 8], "then": [2, 4, 5, 6, 8, 10, 12, 13, 14, 15, 16], "ther": [1, 2, 5, 6, 8, 12, 13, 14, 15, 16], "therefor": [4, 5, 8, 12, 15], "thes": [2, 4, 5, 6, 8, 10, 12, 14, 16], "they": [2, 4, 5, 6, 7, 8, 12, 13, 15, 16], "thing": [5, 6, 12, 14, 15], "thing_id": 12, "thing_tags_default": 6, "things": [2, 5, 6, 12], "think": [5, 8, 14, 16], "third": [0, 5, 12], "this": [0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 12, 13, 14, 15, 16], "this_templat": 8, "thisisatest": 10, "thisisthekey": 12, "thos": [5, 6, 8, 10, 13, 15, 16], "though": 8, "thought": [0, 6, 13], "thre": [0, 5, 6], "thread": [6, 15, 16], "threaded": [2, 15], "threads": [5, 6], "threadsafevariabl": 5, "through": [2, 12], "throughout": 5, "thumbnail": 12, "ti": 5, "ticket": 6, "tickets_only": 2, "til": 6, "tim": [0, 4, 5, 6, 8, 14, 15, 16], "timed": 6, "timedelt": 12, "timeoffset": 10, "timeout": [5, 16], "timeouts": 16, "timestamp": [5, 7, 16], "tint": 4, "tip": [4, 14], "tips": [2, 14], "tir": 6, "titl": [8, 12, 16], "tiv": 6, "tmp": [5, 6], "to": [0, 1, 2, 3, 4, 5, 7, 8, 10, 11, 12, 13, 14, 15, 16], "to_addr": 16, "to_addrs": 16, "tod": [1, 2, 3, 4, 5, 7, 8, 10, 11, 13, 14, 16], "today": [0, 12, 16], "todeclar": 5, "togeth": [0, 8], "token": [5, 12], "tom": 6, "too": [2, 5, 6, 12, 16], "took": 6, "tool": 0, "tools": [6, 13, 16], "top": [8, 12, 13], "topics": [14, 17], "torn": [1, 2, 5, 6, 10, 14], "total": [1, 6, 7], "total_pric": 6, "touch": 8, "toy": 6, "tr": 6, "trabalh": [2, 4, 6, 7], "traceback": 6, "tracebacks": 5, "track": [1, 15], "trad": 6, "tradicion": 6, "tradicional": 6, "traditional": 2, "tradutor": 4, "traduz": [1, 6, 8, 11], "tradu\u00e7\u00e3": [5, 17], "tradu\u00e7\u00f5": [5, 11], "trailing": [2, 12], "training": 1, "transaction": [5, 6], "transactional": 16, "transactions": 6, "transa\u00e7\u00f5": 6, "transform": [4, 5, 6, 12, 16], "transformed": [5, 6], "transforms": 5, "transitions": 16, "translat": 16, "translated": [5, 8, 12], "translation": [5, 12, 15], "translations": [5, 11, 16], "translator": [2, 11, 17], "transmit": 3, "transparent": [6, 8, 12], "transparently": 8, "trapped": 16, "trat": [4, 6], "tre": [8, 12], "treated": [6, 15], "tri": [6, 15], "trickery": 8, "tricks": 2, "tried": 0, "trigg": [6, 16], "triggers": 5, "trivial": [5, 6], "tru": [1, 5, 6, 7, 8, 10, 12, 13, 14, 15, 16], "trunc": 6, "truncat": 6, "truth": 16, "try": [2, 5, 6, 8, 12, 13, 16], "trying": [1, 12, 13], "tr\u00e1s": 6, "tr\u00eas": 6, "ttl": 5, "tud": [5, 6], "tupl": [6, 8, 10], "turn": [12, 13, 14, 16], "turned": 0, "turns": [6, 16], "tutorial": [1, 2, 4, 14, 16], "tutorials": 1, "twic": [5, 6], "twili": 16, "twitt": [0, 5, 13], "two": [1, 2, 4, 5, 6, 8, 12, 14, 15, 16], "two_factor": 13, "two_factor_filt": 13, "txt": [0, 2, 4, 6], "type": [2, 5, 7, 8, 10, 13, 16], "types": 12, "typical": [5, 6, 12], "typically": [4, 8], "t\u00eam": [2, 4, 6, 13], "t\u00edpic": 6, "t\u00edtul": [3, 10, 14], "t\u00f3pic": 6, "u": [2, 6, 10], "ubuntu": 13, "uc": 1, "ui": [5, 13], "uid": 6, "ul": [8, 12, 13, 16], "un": [8, 10, 11, 16], "unauthenticated": [5, 6, 10], "unauthorized": 6, "unchanged": 12, "undefined": 5, "under": [2, 3, 4, 5, 6, 12], "underlying": 15, "underscor": [6, 10, 12], "understand": [0, 2, 4, 6, 7, 8], "understanding": 17, "undocumented": 16, "unfortunat": 6, "unfortunately": 14, "unicod": [6, 12], "unicodedecodeerror": 6, "unid": 6, "uniform": 6, "uniqu": [6, 7, 12], "unit_pric": 6, "unit\u00e1ri": 6, "universal": [4, 6, 10], "uni\u00e3": 6, "unknown": 4, "unless": [3, 5, 6, 8, 12, 16], "unlik": [0, 2, 7, 8, 15, 16], "unnamed": 6, "unneded": 2, "unordered": 10, "unpkg": 16, "unquoted": 10, "uns": 5, "unsaf": [5, 10, 12], "untested": [2, 13], "until": [0, 5, 6, 8, 12], "un\u00e1ri": 6, "up": [1, 2, 5, 6, 8, 13, 16], "updat": [2, 5, 12, 14, 15, 16], "update_form": 12, "update_languag": 11, "update_naiv": 6, "update_thing": 12, "updated": [5, 6, 12], "updating": 5, "upgrad": [2, 6], "upgraded": 2, "upload": [4, 6], "upload_fold": [6, 12], "upload_help": 16, "uploaded": [6, 12, 15], "uploadfield": 6, "uploadfold": 6, "uploadfs": 6, "uploads": 6, "uploadseparat": 6, "upon": [2, 13, 15], "upper": [4, 5, 12], "upper_cas": 5, "uppercas": [5, 12], "uri": 13, "uris": 6, "url": [4, 5, 7, 8, 12, 13, 14, 15, 16], "url_prefix": 2, "url_sign": 5, "url_to_post_t": 16, "urls": [2, 12, 15], "urlsign": 17, "us": [2, 12], "usa": [0, 4, 5, 6, 8], "usabl": 14, "usad": [0, 4, 6, 10, 11, 13, 14], "usag": [2, 3, 4, 5, 6, 10, 12, 13, 14], "usam": 6, "usand": [4, 5, 8, 10, 13, 17], "usar": [2, 4, 5, 6, 8, 10, 14], "use": [0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 12, 13, 14, 15, 16], "use_schedul": 16, "used": [2, 4, 5, 6, 7, 8, 10, 12, 13, 14, 15, 16], "useful": [2, 4, 8, 10, 12, 14, 16], "usefull": 12, "useless": [12, 15], "user": [2, 4, 5, 6, 7, 8, 10, 12, 14, 15, 16], "user_email": 15, "user_id": [5, 6, 13, 15], "user_nam": 6, "user_outside_network": 13, "user_password": 6, "user_token": 6, "usernam": [5, 6, 13], "users": [0, 1, 4, 5, 13, 15], "uses": [0, 1, 2, 4, 5, 6, 7, 8, 10, 12, 13, 14, 15, 16], "using": [0, 1, 3, 4, 7, 12, 15, 17], "uso": [2, 5, 14], "usos": 6, "usou": [5, 6], "usr": 1, "usual": [2, 8, 10, 12], "usually": [1, 5, 7, 12], "usu\u00e1ri": [1, 2, 3, 4, 5, 6, 13, 15], "us\u00e1": [2, 6, 8], "utcnow": [5, 6], "utf": 6, "utf8": 6, "utf8mb4": 6, "utility": [2, 12], "utiliz": [2, 3, 4, 5, 6, 10, 13, 14], "utilizing": 14, "utils": [2, 4, 5, 8, 10, 12, 13, 14, 15, 17], "uuid": [5, 6], "uuid4": [5, 6], "uuids": 6, "v": [5, 10, 12, 16], "v3": 1, "vai": [1, 4, 6, 8], "val": 14, "val1_row1": 6, "val1_row2": 6, "val2_row1": 6, "val2_row2": 6, "valid": [4, 6, 10, 15, 17], "validat": [6, 12], "validate_js": 4, "validated": 12, "validation": [4, 6, 7, 8, 14], "validator": [6, 12], "validators": [2, 15], "validity": 12, "valios": 1, "valor": [5, 10, 11, 12, 14], "valq7711": [0, 4], "vals": 16, "valu": [2, 4, 5, 6, 7, 8, 10, 11, 12, 13, 14, 16], "value1": 6, "value2": 6, "value_field": 12, "valued": 12, "vam": [1, 6, 10], "vantag": 6, "vantagens": 6, "var": 16, "varch": 6, "vari": 6, "variabl": [5, 6, 10, 12, 14, 16], "various": 5, "vari\u00e1vel": [4, 6, 10, 11], "varredur": 6, "vars": [6, 10, 12, 15], "vaz": 6, "vazi": [2, 6], "ve": [2, 3, 5, 8, 10, 12, 13, 14, 16], "vej": [2, 3], "veloc": 6, "vem": [0, 4, 6], "vendor": 16, "vendor_typ": 16, "vendors": 16, "venv": 2, "ver": [2, 6, 13], "verd": 4, "verdad": 14, "verdadeir": [6, 12, 14], "verif": 6, "verific": [5, 6, 13], "verification": 13, "verified": [5, 12, 16], "verify": 5, "verify_email": 13, "verifying": 13, "vermelh": 4, "vers": 5, "version": [1, 3, 7, 8, 12, 16], "versions": [2, 5, 12], "vers\u00f5": 6, "vertic": 6, "verticaadapt": 6, "very": [0, 4, 8, 10, 12, 13, 15, 16], "vez": [2, 4, 5, 8, 10, 13, 14], "ve\u00edcul": 5, "via": [5, 6, 8, 10, 16], "vias": 6, "vic": 5, "vid": [1, 2, 16], "view": [1, 5, 6], "viewing": 6, "viewport": 8, "views": 6, "vincul": 6, "vind": 2, "vir": 13, "virtual": [1, 17], "virtualenv": [1, 2], "virtualfields": 6, "visit": [3, 5, 12], "visit_log": 5, "visited": [5, 8], "visiting": [5, 13], "visitor": 6, "visitors": [10, 12], "visits": 6, "vist": [5, 6, 10], "visual": 1, "visualiz": 6, "vis\u00e3": 6, "vis\u00edvel": 4, "vital": 13, "voc": [1, 2, 3, 4, 5, 6, 8, 10, 13, 14], "volt": [5, 6], "vou": 2, "vscod": 2, "vue": [0, 4, 16], "vulner": 8, "v\u00e1l": 4, "v\u00e1r": [2, 4, 5, 6], "v\u00e1ri": [4, 5, 6, 11], "v\u00e3": 6, "v\u00ea": 6, "v\u00edrgul": 6, "v\u00f4o": 7, "w": [2, 4, 5, 6], "w2p_even": 6, "w2p_odd": 6, "waitress": 2, "want": [2, 4, 5, 6, 8, 12, 16], "wanting": 16, "wants": 5, "warning": [2, 5], "was": [0, 5, 6, 12, 13, 14], "watch": [2, 3, 17], "watched": 4, "way": [2, 3, 5, 6, 8, 10, 12, 13, 15], "wayn": [7, 14], "ways": [0, 2, 4, 6, 13, 14, 16], "wb": 6, "we": [0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 12, 13, 14, 15, 16], "web": [0, 1, 2, 5, 6, 8, 13, 14, 15, 16, 17], "web2py": [0, 1, 2, 3, 4, 6, 12, 13, 14, 17], "websit": [6, 16], "websocket": 16, "welcom": [4, 5, 8, 15, 16], "well": [0, 5, 6, 8, 12, 13, 16], "wer": [0, 4], "what": [4, 5, 6, 8, 12, 13, 15, 16], "whatev": [10, 16], "when": [0, 2, 3, 4, 5, 6, 7, 8, 10, 12, 13, 14, 15, 16], "whenev": 4, "wher": [1, 2, 4, 6, 8, 12, 13, 15, 16], "wheth": [5, 6, 12, 13, 15], "which": [0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 12, 13, 14, 15, 16], "whichev": 16, "whil": [5, 6, 7, 12, 13, 14, 15], "whit": [10, 16], "whitelist": 13, "who": [0, 13], "whol": [4, 12], "whos": [6, 8, 12], "why": [5, 8, 15], "widget": [6, 12], "widgets": [16, 17], "width": [8, 12], "wik": [6, 7], "wikiped": [6, 7], "wild": 6, "wildcard": 4, "will": [1, 2, 3, 4, 5, 6, 7, 8, 10, 12, 13, 14, 15, 16], "window": [5, 8, 12], "windows": [1, 2, 4, 6], "wish": 16, "wishing": 12, "wit": 2, "with": [0, 1, 2, 3, 4, 5, 7, 8, 10, 16, 17], "with_al": 6, "within": [0, 1, 5, 6, 8, 10, 12, 16], "without": [6, 8, 10, 16, 17], "wolf": 0, "wood": 6, "words": [5, 14], "work": [0, 2, 4, 5, 6, 8, 10, 12, 16], "worked": [0, 16], "workers": 2, "workflow": [5, 17], "working": [2, 12], "workload": 6, "workplac": 1, "works": [2, 6, 8, 12, 13, 14, 15, 16], "workspacefold": 2, "world": [4, 5, 6, 8, 10, 12, 16], "worry": 4, "worth": 8, "would": [0, 5, 6, 10, 12, 16], "wouldn": 6, "wrap": [12, 14, 16], "wrapp": 16, "wrapped": 5, "wrappers": 15, "writ": [2, 4, 5, 6, 8], "writabl": [5, 6, 12, 15], "writing": [4, 6, 15], "written": [1, 8, 12, 14], "wrong": [0, 5, 6], "wsgi": 5, "wsgiref": 2, "wsgirefthreadingserv": 2, "wsgith": 2, "www": [2, 8, 10, 14, 16], "x": [2, 6, 8, 10, 12, 14, 16], "xml": [5, 8, 12, 15, 16], "xmlescap": 10, "xmlns": 10, "xss": [6, 8, 10], "xyz": [10, 12], "y": [2, 10, 12], "yaml": 2, "yatl": [0, 4, 5, 6, 12, 14, 16, 17], "yb": 10, "year": [12, 16], "yes": [2, 6, 16], "yes_or_n": 6, "yet": [0, 2, 4, 5, 8, 12, 16], "yml": 2, "you": [0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 12, 13, 14, 15, 16], "your": [1, 2, 3, 4, 5, 6, 8, 10, 12, 13, 14, 15, 16], "your_app": 12, "your_full_path_to_py4web": 1, "your_nam": [1, 16], "yourapp": 6, "yourappnam": 2, "youremail": 13, "yourself": [1, 12], "youtub": [2, 6], "yyyy": 12, "z": [10, 12], "zanferrar": 0, "zap": 13, "zap_id": 13, "zapp": 13, "zapped": 13, "zer": [6, 8, 12, 14], "zip": [0, 2, 6, 12], "zip_cod": 16, "zxjdbc": 6, "\u00c0s": [6, 10], "\u00e1rvor": 4, "\u00e2mbit": 4, "\u00e9": [1, 2, 3, 4, 5, 6, 7, 8, 10, 11, 12, 13, 14, 15, 17], "\u00e9poc": 6, "\u00edndic": 4, "\u00f3bvi": [6, 8], "\u00f3ptim": 4, "\u00faltim": [5, 6, 13], "\u00fanic": [0, 2, 6, 10], "\u00fate": [1, 6], "\u00fatil": 6}, "titles": ["O que \u00e9 py4web?", "Ajuda, recursos e dicas", "Instala\u00e7\u00e3o e coloca\u00e7\u00e3o em funcionamento", "O Dashboard", "Creating an app", "Fixures", "The Database Abstraction Layer (DAL)", "The RestAPI", "Linguagem de template YATL", "<no title>", "Helpers YATL", "Internacionaliza\u00e7\u00e3o", "Foruml\u00e1rios", "Authentication and authorization", "Rede", "De web2py para py4web", "Advanced topics and examples", "py4web: o manual de refer\u00eancia"], "titleterms": {"A": [3, 6, 10, 12], "As": 1, "Comando": 6, "Como": 1, "De": 15, "Do": 4, "EM": 10, "Em": 4, "Este": 1, "Mais": 6, "O": [0, 1, 3, 4, 5, 6], "OS": 15, "Os": [6, 14], "Um": [1, 6], "_lastsql": 6, "_scaffold": 4, "about": 5, "abstraction": 6, "accessing": 15, "acknowledgments": 0, "actions": [7, 13], "adapt": 6, "adicion": 6, "advanced": [12, 16], "agrup": 6, "ajud": 1, "aka": 2, "alias": 6, "alon": 6, "amostr": 14, "an": 4, "and": [6, 7, 8, 12, 13, 14, 15, 16], "antig": 6, "any_of": 12, "anywher": 5, "aplic": 6, "app": [2, 4, 6], "args": 15, "arquiv": 11, "as_dict": 6, "as_list": 6, "assinatur": 6, "asynci": 16, "atalh": 6, "atribut": 6, "atualiz": [6, 11], "aut": 6, "autentic": 13, "auth": [5, 13, 15], "authentication": 13, "authorization": 13, "autocomplet": 16, "avanc": 6, "avg": 6, "a\u00e7\u00e3": 14, "background": 16, "banc": 6, "bas": 6, "basic": [12, 14], "beautify": 10, "belongs": 6, "bin\u00e1ri": 2, "block": 8, "body": 10, "bot\u00e3": 14, "bot\u00f5": 14, "built": 10, "b\u00e1sic": 8, "cach": 6, "caching": 5, "cad": 6, "call": 2, "callabl": 14, "calling": 15, "camp": [6, 14], "caracter\u00edst": 6, "cas": 6, "cascad": 6, "cat": 10, "caveats": 5, "celery": 16, "cham": 6, "chang": 4, "chav": 6, "checkbox": [12, 14], "children": 10, "class": 14, "cleanup": 12, "client": 5, "coalesc": 6, "coalesce_zer": 6, "coloc": 2, "columns": 14, "comando": 2, "combin": 6, "commit": 6, "complexity": 12, "comput": 6, "computed": 6, "comuns": 6, "condition": 5, "conex\u00e3": 6, "conex\u00f5": 6, "configur": [2, 6], "constructor": 12, "construtor": 6, "consult": 6, "cont": 6, "contains": 6, "conte\u00fad": 17, "contribu": 1, "control": 6, "convenient": 5, "conversion": 15, "cooki": 5, "copi": 6, "copying": 4, "corr": 2, "count": [6, 15], "creating": 4, "crud": 14, "crypt": 12, "csv": 6, "custom": [12, 14], "customizing": 14, "dad": 6, "dal": [5, 6], "dashboard": [3, 6], "dat": 12, "databas": [5, 6, 12], "datastor": 6, "day": 6, "db": 6, "decor": 5, "def": 8, "default": 8, "defeit": 6, "defin": 6, "define_tabl": 6, "deix": 6, "delet": 6, "deployment": 2, "depur": 1, "design": [2, 12], "development": 8, "dic": 1, "dicion\u00e1ri": 6, "dictionari": 12, "din\u00e2m": 4, "discord": [1, 13], "distinct": 6, "distint": 6, "distribu\u00edd": 6, "div": 10, "dock": 2, "dom": 10, "drop": 6, "elif": 8, "else": 8, "endswith": 6, "engin": 2, "envi": 6, "environment": 2, "equality": 12, "estil": 6, "est\u00e1t": 4, "etiquet": 13, "exampl": [7, 12, 14, 15, 16], "excet": 8, "exclud": 6, "exclus\u00e3": 6, "execu": 6, "executesql": 6, "experiment": 6, "experimental": 6, "export": 6, "express\u00f5": 6, "extend": 8, "extending": 8, "facebook": 13, "factor": 13, "fake_migrat": 6, "falh": 6, "faz": 6, "featur": 14, "fich": 6, "field": [6, 12], "fields": 6, "fil": [4, 12, 15], "filter_in": 6, "filter_out": 6, "filtering": 14, "filtr": 6, "finally": 8, "find": [6, 10], "first": 6, "fixa\u00e7\u00e3": 6, "fixtur": 5, "fixur": 5, "flash": [5, 15], "font": [1, 2], "form": [10, 12, 15, 16], "format": [6, 12, 16], "forms": 12, "formul\u00e1ri": 12, "foruml\u00e1ri": 12, "from": 2, "funcion": 2, "functions": [8, 12], "gae": 2, "gcloud": 2, "generating": 6, "get": 7, "github": 1, "global": 2, "googl": [1, 2, 6, 13], "grid": [14, 15, 16], "grids": 14, "groupby": 6, "grup": 1, "h1": 10, "h2": 10, "h3": 10, "h4": 10, "h5": 10, "h6": 10, "having": 6, "head": 10, "hell": 15, "helpers": 10, "heranc": 6, "hour": 6, "html": [6, 10], "htmx": 16, "https": 2, "i": 10, "id": 6, "if": 8, "ilik": 6, "img": 10, "impersonation": 13, "implant": 2, "import": 6, "in": [5, 8, 10, 16], "includ": 8, "inferior": 6, "information": 8, "inject": [5, 10], "inner": 6, "input": 10, "inser": 6, "insert": 6, "inser\u00e7\u00e3": 6, "insid": 13, "instal": 2, "installations": 2, "installing": 2, "interfac": 13, "internacionaliz": 11, "introduction": 6, "is_alphanumeric": 12, "is_dat": 12, "is_date_in_rang": 12, "is_datetim": 12, "is_datetime_in_rang": 12, "is_decimal_in_rang": 12, "is_email": 12, "is_empty_or": 12, "is_equal_t": 12, "is_expr": 12, "is_fil": 12, "is_float_in_rang": 12, "is_imag": 12, "is_in_db": 12, "is_in_set": 12, "is_int_in_rang": 12, "is_ipaddress": 12, "is_ipv4": 12, "is_ipv6": 12, "is_json": 12, "is_length": 12, "is_list_of": 12, "is_list_of_emails": 12, "is_low": 12, "is_match": 12, "is_not_empty": 12, "is_not_in_db": 12, "is_null_or": 12, "is_saf": 12, "is_slug": 12, "is_strong": 12, "is_tim": 12, "is_upload_filenam": 12, "is_upp": 12, "is_url": 12, "isempty": 6, "iter": 6, "join": 6, "joins": 6, "js": 16, "junt": 6, "key": 14, "label": 10, "last": 6, "lay": 6, "layout": 8, "ldap": 13, "left": 6, "leg": 6, "len": 6, "less": 6, "li": 10, "lik": 6, "limitby": 6, "linguag": 8, "linh": 2, "list": 6, "local": [1, 2, 6], "low": 6, "l\u00f3gic": 6, "manipulation": 12, "manual": [1, 17], "many": 6, "marca\u00e7\u00e3": 6, "max": 6, "melhor": 2, "memcach": 5, "memoiz": 5, "mem\u00f3r": 6, "mesm": 6, "messag": 16, "methods": [6, 15], "microsoft": 6, "migrat": 6, "migra\u00e7\u00e3": 6, "migra\u00e7\u00f5": 6, "min": 6, "minimal": 12, "minut": 6, "mobil": 8, "model": [4, 6], "modern": 1, "modific": 6, "month": 6, "mssql": 6, "muit": 6, "multipl": [5, 13], "mysql": 6, "new_app": 2, "nom": 6, "nosql": 6, "not": 6, "nov": 6, "oauth2": 13, "object": [14, 16], "objects": 13, "objet": 4, "obten\u00e7\u00e3": 6, "ol": 10, "on": 2, "on_defin": 6, "oper": 6, "option": 10, "options": 12, "op\u00e7\u00e3": 2, "op\u00e7\u00f5": 2, "orden": 6, "orderby": 6, "orderby_on_limitby": 6, "or\u00e1cul": 6, "other": 12, "out": 6, "outr": 6, "overview": 10, "p": 10, "padr\u00e3": 6, "pag": 8, "palavr": 6, "pam": 13, "par": [6, 8, 15], "paramet": 12, "parameters": 14, "part": [2, 6], "par\u00e2metr": 6, "past": 6, "pegadinh": 6, "permiss\u00f5": 13, "personaliz": [5, 6, 10, 14], "pip": 2, "plataform": 2, "plugins": 13, "plural": 6, "pluraliz": 11, "podman": 2, "polic": 7, "polymodel": 6, "pool": 6, "practical": 7, "pre": 10, "preguic": 6, "primarykey": 6, "primeir": 2, "prim\u00e1r": 6, "principal": 3, "princ\u00edpi": 4, "proced": 2, "pr\u00e9": [1, 2], "py4web": [0, 1, 6, 15, 16, 17], "pycharm": 1, "python": 1, "pythonanywher": 2, "p\u00e1gin": [3, 4], "q": 16, "quebr": 6, "query": 6, "quick": 6, "quoting": 6, "rang": 12, "raw": 6, "real": 6, "record": 6, "recurs": [1, 6], "red": [5, 14], "redefin": 6, "redirect": 15, "referent": [6, 14, 17], "regexp": 6, "registr": 6, "relation": 6, "relations": 6, "rela\u00e7\u00e3": 6, "remot": 6, "renderiz": 6, "replic": 6, "represent": 6, "request": 4, "requisit": [1, 2], "reserv": 6, "respons": 7, "restap": 7, "resum": 6, "retorn": [4, 6], "return": [8, 15], "returning": 15, "rnam": 6, "rollback": 6, "rot": 4, "row": 6, "rows": 6, "run": 2, "s": 6, "schedul": 16, "script": 10, "searching": 14, "seconds": 6, "security": 12, "segur": 6, "select": [6, 10], "selects": 6, "selet": 6, "sending": 16, "sequence_nam": 6, "serv": [1, 5, 6, 10], "session": 5, "sessions": 5, "sess\u00e3": 3, "set": [6, 12], "set_password": 2, "setting": 15, "settings": 14, "setup": 2, "sharing": 5, "shell": [2, 6], "sid": [5, 10], "sidec": 12, "simpl": 15, "sincroniz": 6, "singul": 6, "sintax": 8, "sobr": 6, "sort": 6, "sorted": 12, "span": 10, "special": [2, 12], "sql": 6, "sqlit": 6, "stand": 6, "standard": [8, 12], "startswith": 6, "string": 16, "strings": 6, "structur": [8, 12], "style": [10, 14], "substrings": 6, "sugest\u00f5": 1, "sum": 6, "sup": 8, "suport": [2, 6], "supported": 6, "t": 16, "tabel": [6, 17], "tabl": [6, 10], "table_class": 6, "tag": 10, "tagging": 12, "tags": 13, "task": 16, "tbody": 10, "td": 10, "temp": 6, "templat": [5, 8, 14], "temporiz": 6, "tend": 6, "tent": 8, "tentat": 6, "text": 12, "textar": 10, "th": 10, "the": [1, 2, 4, 5, 6, 7, 12, 14, 16], "thead": 10, "tim": 12, "tip": 6, "titl": 10, "to": 6, "tod": 6, "topics": 16, "tour": 6, "tr": 10, "trabalh": 1, "tradu\u00e7\u00e3": 11, "transa\u00e7\u00e3": 6, "translator": 5, "trigger_nam": 6, "tt": 10, "tupl": 12, "tutori": 1, "two": 13, "two_factor_required": 13, "two_factor_send": 13, "two_factor_tri": 13, "type": [6, 12], "types": 6, "ubuntu": 2, "ul": 10, "understanding": 2, "up": 15, "updat": 6, "update_or_insert": 6, "update_record": 6, "upload": 12, "upper": 6, "uri": 6, "url": 10, "urlsign": 5, "usag": 16, "usand": [6, 14], "user": 13, "using": [2, 5, 6, 8, 10, 13, 14, 16], "uso": 6, "utils": 16, "valid": 12, "validate_and_insert": 6, "validate_and_updat": 6, "validation": 12, "validators": [6, 12], "valor": [4, 6], "variabl": [8, 15], "velh": 6, "version": [2, 6], "vez": 6, "view": 15, "virtu": 6, "virtual": [2, 6], "vscod": 1, "v\u00edd": 1, "watch": 4, "web": [3, 4], "web2py": 15, "whil": 8, "widget": 16, "widgets": 12, "with": [6, 12, 13, 14, 15], "without": [2, 12], "workflow": 8, "world": 15, "wsgi": 2, "xml": [6, 10], "yatl": [8, 10], "year": 6, "\u00e9": 0, "\u00edndic": [6, 17]}}) \ No newline at end of file diff --git a/docs/chapter-16.rst b/docs/chapter-16.rst index afb589dd9..58b61f1da 100644 --- a/docs/chapter-16.rst +++ b/docs/chapter-16.rst @@ -89,18 +89,20 @@ That means you need a new task: import sendgrid from sendgrid.helpers.mail import Mail, Email, To, Content - def sendmail_task(data): + def sendmail_task(from_addr, to_addrs, subject, body): + "" + # build the messages using sendgrid API + from_email = Email(from_addr) # Must be your verified sender + content_type = "text/plain" if body[:6] != "" else "text/html" + content = Content(content_type, body) + mail = Mail(from_email, To(to_addrs), subject, content) + # ask sendgrid to deliver it sg = sendgrid.SendGridAPIClient(api_key=settings.SENDGRID_API_KEY) - from_email = Email(data["from") # Change to your verified sender - to_email = To(data["to"]) # Change to your recipient - subject = data["subject"] - content_type = "text/plain" if data["body"][:6] != "" else "text/html" - content = Content(content_type, data["body"]) - mail = Mail(from_email, to_email, subject, content) - mail_json = mail.get() - response = sg.client.mail.send.post(request_body=mail_json) + response = sg.client.mail.send.post(request_body=mail.get()) + # check if worked assert response.status_code == "200" + # register the above task with the scheduler scheduler.register_task("sendmail", sendmail_task) @@ -109,35 +111,39 @@ To schedule sending a new email do: .. code:: python email = { - "to": "me@example.com", - "from": ["me@example.com"], - "subjet": "Hello Wordl", + "from_addr": "me@example.com", + "to_addrs": ["me@example.com"], + "subject": "Hello World", "body": "I am alive!", } scheduler.enqueue_run(name="sendmail", inputs=email, scheduled_for=None) +The key:value in the email representation must match the arguments of the task. The ``scheuled_for`` argument is optional and allows you to specify when the email should be sent. -You can use the Dashboard to see the status of your ``task_runs`` for task ``sendmail``. +You can use the Dashboard to see the status of your ``task_run``s for the task called ``sendmail``. You can also tell auth to tap into above mechanism for sending emails: .. code:: python - class SendGridSender: + class MySendGridSender: def __init__(self, from_addr): self.from_addr = from_adds def send(self, to_addr, subject, body): email = { - "to": to_addrs, - "from": [self.from_addr], - "subjet": subject, + "from_addr": self.from_addr, + "to_addrs": [to_addr], + "subject": subject, "body": body, } scheduler.enqueue_run(name="sendmail", inputs=email) - auth.sender = SendGridSender(from_addr="me@example.com") + auth.sender = MySendGridSender(from_addr="me@example.com") -And, with the above, Auth will not send emails using smtplib. Instead it will send them with SendGrid using the scheduler. +With the above, Auth will not send emails using smtplib. Instead it will send them with SendGrid using the scheduler. +Notice the only requirement here is that ``auth.sender`` must be an object with a ``send`` method with the same signature as in the example. + +Notice, it it also possible to send SMS messages instead of emails but this requires 1) store the phone number in ``auth_user`` and 2) override the ``Auth.send`` method. Celery diff --git a/docs/locales/pt/LC_MESSAGES/chapter-07.mo b/docs/locales/pt/LC_MESSAGES/chapter-07.mo index 6c25918421613fae2ef4bc4d218f850a41971814..95c31493e57eaaa4160864241f2e3d72bca27657 100644 GIT binary patch delta 10002 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 K>5A#M=Kld&zJK}v delta 10006 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 P-kU?Bj14z*^qT(zj=zBK