piccolo 1.0a1__tar.gz → 1.5.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {piccolo-1.0a1 → piccolo-1.5.0}/PKG-INFO +21 -3
- {piccolo-1.0a1 → piccolo-1.5.0}/README.md +1 -1
- piccolo-1.5.0/piccolo/__init__.py +1 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/apps/asgi/commands/new.py +5 -1
- piccolo-1.5.0/piccolo/apps/asgi/commands/templates/app/_esmerald_app.py.jinja +109 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/apps/asgi/commands/templates/app/app.py.jinja +2 -0
- piccolo-1.5.0/piccolo/apps/asgi/commands/templates/app/home/_esmerald_endpoints.py.jinja +20 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/apps/asgi/commands/templates/app/home/endpoints.py.jinja +2 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/apps/asgi/commands/templates/app/home/templates/home.html.jinja_raw +5 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/apps/asgi/commands/templates/app/requirements.txt.jinja +2 -4
- {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/apps/migrations/auto/diffable_table.py +4 -2
- {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/apps/migrations/auto/migration_manager.py +131 -41
- {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/apps/migrations/auto/operations.py +5 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/apps/migrations/auto/schema_differ.py +34 -11
- {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/apps/migrations/auto/serialisation.py +3 -7
- {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/apps/migrations/commands/backwards.py +3 -3
- {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/apps/migrations/commands/base.py +3 -3
- {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/apps/migrations/commands/forwards.py +3 -3
- {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/apps/migrations/commands/new.py +2 -2
- {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/apps/playground/commands/run.py +1 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/apps/schema/commands/generate.py +12 -8
- {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/apps/shell/commands/run.py +4 -7
- {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/apps/sql_shell/commands/run.py +13 -11
- piccolo-1.5.0/piccolo/apps/user/commands/list.py +71 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/apps/user/piccolo_app.py +2 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/apps/user/tables.py +22 -7
- {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/columns/base.py +14 -8
- {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/columns/column_types.py +205 -125
- {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/columns/m2m.py +1 -1
- {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/columns/reference.py +1 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/conf/apps.py +24 -11
- {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/engine/base.py +15 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/engine/cockroach.py +1 -1
- {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/engine/postgres.py +11 -7
- {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/engine/sqlite.py +8 -7
- {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/main.py +7 -4
- {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/query/base.py +14 -10
- {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/query/methods/insert.py +1 -1
- {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/query/methods/objects.py +9 -9
- {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/query/methods/select.py +5 -9
- {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/query/methods/update.py +3 -2
- {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/query/mixins.py +7 -7
- {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/query/proxy.py +3 -2
- {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/querystring.py +1 -1
- {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/table.py +38 -26
- {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/testing/model_builder.py +32 -20
- {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/testing/random_builder.py +10 -9
- piccolo-1.5.0/piccolo/utils/printing.py +57 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/utils/pydantic.py +82 -94
- {piccolo-1.0a1 → piccolo-1.5.0}/piccolo.egg-info/PKG-INFO +21 -3
- {piccolo-1.0a1 → piccolo-1.5.0}/piccolo.egg-info/SOURCES.txt +6 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/setup.py +1 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/tests/apps/app/commands/test_new.py +3 -1
- {piccolo-1.0a1 → piccolo-1.5.0}/tests/apps/fixtures/commands/test_dump_load.py +0 -2
- {piccolo-1.0a1 → piccolo-1.5.0}/tests/apps/fixtures/commands/test_shared.py +2 -2
- {piccolo-1.0a1 → piccolo-1.5.0}/tests/apps/migrations/auto/integration/test_migrations.py +125 -32
- {piccolo-1.0a1 → piccolo-1.5.0}/tests/apps/migrations/auto/test_migration_manager.py +8 -7
- {piccolo-1.0a1 → piccolo-1.5.0}/tests/apps/migrations/auto/test_schema_differ.py +24 -25
- piccolo-1.5.0/tests/apps/user/commands/test_list.py +97 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/tests/apps/user/test_tables.py +65 -2
- {piccolo-1.0a1 → piccolo-1.5.0}/tests/columns/m2m/base.py +66 -49
- {piccolo-1.0a1 → piccolo-1.5.0}/tests/columns/m2m/test_m2m.py +10 -31
- piccolo-1.5.0/tests/columns/m2m/test_m2m_schema.py +16 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/tests/columns/test_array.py +72 -12
- {piccolo-1.0a1 → piccolo-1.5.0}/tests/columns/test_base.py +1 -1
- {piccolo-1.0a1 → piccolo-1.5.0}/tests/columns/test_boolean.py +12 -4
- {piccolo-1.0a1 → piccolo-1.5.0}/tests/columns/test_bytea.py +1 -1
- {piccolo-1.0a1 → piccolo-1.5.0}/tests/columns/test_choices.py +1 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/tests/columns/test_date.py +2 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/tests/columns/test_db_column_name.py +4 -1
- {piccolo-1.0a1 → piccolo-1.5.0}/tests/columns/test_defaults.py +8 -8
- {piccolo-1.0a1 → piccolo-1.5.0}/tests/columns/test_double_precision.py +1 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/tests/columns/test_interval.py +2 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/tests/columns/test_json.py +15 -17
- {piccolo-1.0a1 → piccolo-1.5.0}/tests/columns/test_jsonb.py +3 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/tests/columns/test_numeric.py +1 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/tests/columns/test_primary_key.py +7 -3
- {piccolo-1.0a1 → piccolo-1.5.0}/tests/columns/test_real.py +1 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/tests/columns/test_reference.py +1 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/tests/columns/test_time.py +2 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/tests/columns/test_timestamp.py +2 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/tests/columns/test_timestamptz.py +2 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/tests/conf/example.py +1 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/tests/engine/test_extra_nodes.py +4 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/tests/engine/test_pool.py +5 -4
- {piccolo-1.0a1 → piccolo-1.5.0}/tests/engine/test_transaction.py +15 -2
- {piccolo-1.0a1 → piccolo-1.5.0}/tests/example_apps/music/tables.py +9 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/tests/query/mixins/test_columns_delegate.py +10 -10
- {piccolo-1.0a1 → piccolo-1.5.0}/tests/query/test_freeze.py +3 -3
- {piccolo-1.0a1 → piccolo-1.5.0}/tests/query/test_slots.py +1 -1
- {piccolo-1.0a1 → piccolo-1.5.0}/tests/table/instance/test_get_related.py +6 -4
- {piccolo-1.0a1 → piccolo-1.5.0}/tests/table/instance/test_get_related_readable.py +1 -1
- {piccolo-1.0a1 → piccolo-1.5.0}/tests/table/instance/test_to_dict.py +5 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/tests/table/test_alter.py +11 -12
- {piccolo-1.0a1 → piccolo-1.5.0}/tests/table/test_batch.py +1 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/tests/table/test_inheritance.py +2 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/tests/table/test_insert.py +2 -1
- {piccolo-1.0a1 → piccolo-1.5.0}/tests/table/test_join.py +62 -26
- {piccolo-1.0a1 → piccolo-1.5.0}/tests/table/test_join_on.py +4 -2
- {piccolo-1.0a1 → piccolo-1.5.0}/tests/table/test_metaclass.py +12 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/tests/table/test_objects.py +12 -6
- {piccolo-1.0a1 → piccolo-1.5.0}/tests/table/test_output.py +3 -1
- {piccolo-1.0a1 → piccolo-1.5.0}/tests/table/test_refresh.py +10 -7
- {piccolo-1.0a1 → piccolo-1.5.0}/tests/table/test_repr.py +1 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/tests/table/test_select.py +30 -4
- {piccolo-1.0a1 → piccolo-1.5.0}/tests/table/test_update.py +12 -3
- piccolo-1.5.0/tests/test_main.py +9 -0
- piccolo-1.5.0/tests/test_schema.py +183 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/tests/testing/test_model_builder.py +61 -1
- {piccolo-1.0a1 → piccolo-1.5.0}/tests/utils/test_pydantic.py +114 -18
- piccolo-1.0a1/piccolo/__init__.py +0 -1
- piccolo-1.0a1/piccolo/utils/printing.py +0 -18
- piccolo-1.0a1/tests/columns/m2m/test_m2m_schema.py +0 -48
- {piccolo-1.0a1 → piccolo-1.5.0}/LICENSE +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/apps/__init__.py +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/apps/app/__init__.py +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/apps/app/commands/__init__.py +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/apps/app/commands/new.py +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/apps/app/commands/show_all.py +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/apps/app/commands/templates/piccolo_app.py.jinja +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/apps/app/commands/templates/tables.py.jinja +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/apps/app/piccolo_app.py +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/apps/asgi/__init__.py +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/apps/asgi/commands/__init__.py +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/apps/asgi/commands/templates/app/README.md.jinja +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/apps/asgi/commands/templates/app/_blacksheep_app.py.jinja +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/apps/asgi/commands/templates/app/_fastapi_app.py.jinja +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/apps/asgi/commands/templates/app/_litestar_app.py.jinja +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/apps/asgi/commands/templates/app/_starlette_app.py.jinja +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/apps/asgi/commands/templates/app/conftest.py.jinja +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/apps/asgi/commands/templates/app/home/__init__.py.jinja +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/apps/asgi/commands/templates/app/home/_blacksheep_endpoints.py.jinja +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/apps/asgi/commands/templates/app/home/_litestar_endpoints.py.jinja +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/apps/asgi/commands/templates/app/home/_starlette_endpoints.py.jinja +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/apps/asgi/commands/templates/app/home/piccolo_app.py.jinja +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/apps/asgi/commands/templates/app/home/piccolo_migrations/README.md +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/apps/asgi/commands/templates/app/home/tables.py.jinja +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/apps/asgi/commands/templates/app/home/templates/base.html.jinja_raw +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/apps/asgi/commands/templates/app/main.py.jinja +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/apps/asgi/commands/templates/app/piccolo_conf.py.jinja +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/apps/asgi/commands/templates/app/piccolo_conf_test.py.jinja +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/apps/asgi/commands/templates/app/static/favicon.ico +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/apps/asgi/commands/templates/app/static/main.css +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/apps/asgi/piccolo_app.py +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/apps/fixtures/__init__.py +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/apps/fixtures/commands/__init__.py +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/apps/fixtures/commands/dump.py +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/apps/fixtures/commands/load.py +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/apps/fixtures/commands/shared.py +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/apps/fixtures/piccolo_app.py +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/apps/meta/__init__.py +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/apps/meta/commands/__init__.py +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/apps/meta/commands/version.py +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/apps/meta/piccolo_app.py +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/apps/migrations/__init__.py +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/apps/migrations/auto/__init__.py +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/apps/migrations/auto/schema_snapshot.py +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/apps/migrations/auto/serialisation_legacy.py +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/apps/migrations/commands/__init__.py +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/apps/migrations/commands/check.py +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/apps/migrations/commands/clean.py +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/apps/migrations/commands/templates/migration.py.jinja +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/apps/migrations/piccolo_app.py +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/apps/migrations/tables.py +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/apps/playground/__init__.py +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/apps/playground/commands/__init__.py +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/apps/playground/piccolo_app.py +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/apps/project/__init__.py +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/apps/project/commands/__init__.py +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/apps/project/commands/new.py +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/apps/project/commands/templates/piccolo_conf.py.jinja +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/apps/project/piccolo_app.py +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/apps/schema/__init__.py +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/apps/schema/commands/__init__.py +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/apps/schema/commands/exceptions.py +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/apps/schema/commands/graph.py +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/apps/schema/commands/templates/graphviz.dot.jinja +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/apps/schema/piccolo_app.py +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/apps/shell/__init__.py +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/apps/shell/commands/__init__.py +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/apps/shell/piccolo_app.py +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/apps/sql_shell/__init__.py +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/apps/sql_shell/commands/__init__.py +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/apps/sql_shell/piccolo_app.py +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/apps/tester/__init__.py +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/apps/tester/commands/__init__.py +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/apps/tester/commands/run.py +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/apps/tester/piccolo_app.py +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/apps/user/__init__.py +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/apps/user/commands/__init__.py +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/apps/user/commands/change_password.py +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/apps/user/commands/change_permissions.py +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/apps/user/commands/create.py +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/apps/user/piccolo_migrations/2019-11-14T21-52-21.py +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/apps/user/piccolo_migrations/2020-06-11T21-38-55.py +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/apps/user/piccolo_migrations/2021-04-30T16-14-15.py +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/apps/user/piccolo_migrations/__init__.py +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/columns/__init__.py +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/columns/choices.py +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/columns/combination.py +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/columns/defaults/__init__.py +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/columns/defaults/base.py +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/columns/defaults/date.py +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/columns/defaults/interval.py +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/columns/defaults/time.py +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/columns/defaults/timestamp.py +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/columns/defaults/timestamptz.py +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/columns/defaults/uuid.py +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/columns/indexes.py +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/columns/operators/__init__.py +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/columns/operators/base.py +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/columns/operators/comparison.py +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/columns/operators/math.py +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/columns/operators/string.py +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/columns/readable.py +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/conf/__init__.py +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/custom_types.py +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/engine/__init__.py +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/engine/exceptions.py +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/engine/finder.py +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/py.typed +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/query/__init__.py +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/query/methods/__init__.py +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/query/methods/alter.py +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/query/methods/count.py +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/query/methods/create.py +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/query/methods/create_index.py +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/query/methods/delete.py +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/query/methods/drop_index.py +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/query/methods/exists.py +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/query/methods/indexes.py +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/query/methods/raw.py +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/query/methods/refresh.py +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/query/methods/table_exists.py +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/schema.py +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/table_reflection.py +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/testing/__init__.py +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/utils/__init__.py +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/utils/dictionary.py +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/utils/encoding.py +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/utils/graphlib/__init__.py +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/utils/graphlib/_graphlib.py +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/utils/lazy_loader.py +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/utils/list.py +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/utils/naming.py +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/utils/objects.py +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/utils/repr.py +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/utils/sql_values.py +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/utils/sync.py +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/utils/warnings.py +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/piccolo.egg-info/dependency_links.txt +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/piccolo.egg-info/entry_points.txt +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/piccolo.egg-info/requires.txt +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/piccolo.egg-info/top_level.txt +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/profiling/__init__.py +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/profiling/run_profile.py +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/pyproject.toml +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/setup.cfg +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/tests/apps/__init__.py +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/tests/apps/app/__init__.py +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/tests/apps/app/commands/__init__.py +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/tests/apps/app/commands/test_show_all.py +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/tests/apps/asgi/__init__.py +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/tests/apps/asgi/commands/__init__.py +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/tests/apps/asgi/commands/test_new.py +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/tests/apps/fixtures/__init__.py +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/tests/apps/fixtures/commands/__init__.py +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/tests/apps/meta/__init__.py +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/tests/apps/meta/commands/__init__.py +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/tests/apps/meta/commands/test_version.py +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/tests/apps/migrations/__init__.py +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/tests/apps/migrations/auto/__init__.py +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/tests/apps/migrations/auto/integration/__init__.py +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/tests/apps/migrations/auto/test_diffable_table.py +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/tests/apps/migrations/auto/test_schema_snapshot.py +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/tests/apps/migrations/auto/test_serialisation.py +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/tests/apps/migrations/commands/__init__.py +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/tests/apps/migrations/commands/test_base.py +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/tests/apps/migrations/commands/test_check.py +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/tests/apps/migrations/commands/test_clean.py +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/tests/apps/migrations/commands/test_forwards_backwards.py +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/tests/apps/migrations/commands/test_migrations/2020-03-31T20-38-22.py +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/tests/apps/migrations/commands/test_migrations/__init__.py +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/tests/apps/migrations/commands/test_new.py +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/tests/apps/migrations/test_migration.py +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/tests/apps/project/__init__.py +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/tests/apps/project/commands/__init__.py +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/tests/apps/project/commands/test_new.py +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/tests/apps/schema/__init__.py +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/tests/apps/shell/__init__.py +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/tests/apps/shell/commands/__init__.py +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/tests/apps/shell/commands/test_run.py +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/tests/apps/sql_shell/__init__.py +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/tests/apps/sql_shell/commands/__init__.py +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/tests/apps/sql_shell/commands/test_run.py +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/tests/apps/tester/__init__.py +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/tests/apps/user/__init__.py +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/tests/apps/user/commands/__init__.py +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/tests/apps/user/commands/test_change_password.py +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/tests/apps/user/commands/test_change_permissions.py +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/tests/apps/user/commands/test_create.py +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/tests/columns/__init__.py +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/tests/columns/m2m/__init__.py +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/tests/columns/test_bigint.py +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/tests/columns/test_combination.py +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/tests/columns/test_readable.py +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/tests/columns/test_reserved_column_names.py +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/tests/columns/test_smallint.py +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/tests/columns/test_uuid.py +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/tests/columns/test_varchar.py +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/tests/conf/__init__.py +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/tests/conf/test_apps.py +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/tests/engine/__init__.py +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/tests/engine/test_logging.py +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/tests/engine/test_nested_transaction.py +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/tests/engine/test_version_parsing.py +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/tests/example_apps/__init__.py +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/tests/example_apps/mega/__init__.py +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/tests/example_apps/mega/piccolo_app.py +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/tests/example_apps/mega/piccolo_migrations/2021-09-20T21-23-25-698988.py +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/tests/example_apps/mega/piccolo_migrations/__init__.py +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/tests/example_apps/mega/tables.py +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/tests/example_apps/music/__init__.py +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/tests/example_apps/music/piccolo_app.py +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/tests/example_apps/music/tables_detailed.py +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/tests/query/__init__.py +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/tests/query/mixins/__init__.py +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/tests/query/mixins/test_order_by_delegate.py +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/tests/query/test_await.py +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/tests/query/test_camelcase.py +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/tests/query/test_gather.py +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/tests/query/test_querystring.py +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/tests/table/__init__.py +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/tests/table/instance/__init__.py +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/tests/table/instance/test_create.py +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/tests/table/instance/test_instantiate.py +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/tests/table/instance/test_remove.py +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/tests/table/instance/test_save.py +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/tests/table/test_all_columns.py +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/tests/table/test_callback.py +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/tests/table/test_constructor.py +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/tests/table/test_count.py +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/tests/table/test_create.py +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/tests/table/test_create_db_tables.py +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/tests/table/test_create_table_class.py +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/tests/table/test_delete.py +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/tests/table/test_drop_db_tables.py +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/tests/table/test_exists.py +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/tests/table/test_from_dict.py +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/tests/table/test_indexes.py +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/tests/table/test_raw.py +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/tests/table/test_ref.py +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/tests/table/test_str.py +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/tests/table/test_table_exists.py +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/tests/testing/__init__.py +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/tests/testing/test_random_builder.py +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/tests/utils/__init__.py +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/tests/utils/test_dictionary.py +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/tests/utils/test_encoding.py +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/tests/utils/test_lazy_loader.py +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/tests/utils/test_list.py +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/tests/utils/test_naming.py +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/tests/utils/test_printing.py +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/tests/utils/test_sql_values.py +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/tests/utils/test_sync.py +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/tests/utils/test_table_reflection.py +0 -0
- {piccolo-1.0a1 → piccolo-1.5.0}/tests/utils/test_warnings.py +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: piccolo
|
3
|
-
Version: 1.
|
3
|
+
Version: 1.5.0
|
4
4
|
Summary: A fast, user friendly ORM and query builder which supports asyncio.
|
5
5
|
Home-page: https://github.com/piccolo-orm/piccolo
|
6
6
|
Author: Daniel Townsend
|
@@ -16,19 +16,37 @@ Classifier: Programming Language :: Python :: 3.8
|
|
16
16
|
Classifier: Programming Language :: Python :: 3.9
|
17
17
|
Classifier: Programming Language :: Python :: 3.10
|
18
18
|
Classifier: Programming Language :: Python :: 3.11
|
19
|
+
Classifier: Programming Language :: Python :: 3.12
|
19
20
|
Classifier: Programming Language :: Python :: Implementation :: CPython
|
20
21
|
Classifier: Framework :: AsyncIO
|
21
22
|
Classifier: Typing :: Typed
|
22
23
|
Classifier: Topic :: Database
|
23
24
|
Requires-Python: >=3.8.0
|
24
25
|
Description-Content-Type: text/markdown
|
26
|
+
License-File: LICENSE
|
27
|
+
Requires-Dist: black
|
28
|
+
Requires-Dist: colorama>=0.4.0
|
29
|
+
Requires-Dist: Jinja2>=2.11.0
|
30
|
+
Requires-Dist: targ>=0.3.7
|
31
|
+
Requires-Dist: inflection>=0.5.1
|
32
|
+
Requires-Dist: typing-extensions>=4.3.0
|
33
|
+
Requires-Dist: pydantic[email]==2.*
|
25
34
|
Provides-Extra: orjson
|
35
|
+
Requires-Dist: orjson>=3.5.1; extra == "orjson"
|
26
36
|
Provides-Extra: playground
|
37
|
+
Requires-Dist: ipython; extra == "playground"
|
27
38
|
Provides-Extra: postgres
|
39
|
+
Requires-Dist: asyncpg>=0.21.0; extra == "postgres"
|
28
40
|
Provides-Extra: sqlite
|
41
|
+
Requires-Dist: aiosqlite>=0.16.0; extra == "sqlite"
|
29
42
|
Provides-Extra: uvloop
|
43
|
+
Requires-Dist: uvloop>=0.12.0; sys_platform != "win32" and extra == "uvloop"
|
30
44
|
Provides-Extra: all
|
31
|
-
|
45
|
+
Requires-Dist: orjson>=3.5.1; extra == "all"
|
46
|
+
Requires-Dist: ipython; extra == "all"
|
47
|
+
Requires-Dist: asyncpg>=0.21.0; extra == "all"
|
48
|
+
Requires-Dist: aiosqlite>=0.16.0; extra == "all"
|
49
|
+
Requires-Dist: uvloop>=0.12.0; sys_platform != "win32" and extra == "all"
|
32
50
|
|
33
51
|

|
34
52
|
|
@@ -126,7 +144,7 @@ Let Piccolo scaffold you an ASGI web app, using Piccolo as the ORM:
|
|
126
144
|
piccolo asgi new
|
127
145
|
```
|
128
146
|
|
129
|
-
[Starlette](https://www.starlette.io/), [FastAPI](https://fastapi.tiangolo.com/), [BlackSheep](https://www.neoteroi.dev/blacksheep/)
|
147
|
+
[Starlette](https://www.starlette.io/), [FastAPI](https://fastapi.tiangolo.com/), [BlackSheep](https://www.neoteroi.dev/blacksheep/), [Litestar](https://litestar.dev/) and [Esmerald](https://esmerald.dev/) are currently supported.
|
130
148
|
|
131
149
|
## Are you a Django user?
|
132
150
|
|
@@ -94,7 +94,7 @@ Let Piccolo scaffold you an ASGI web app, using Piccolo as the ORM:
|
|
94
94
|
piccolo asgi new
|
95
95
|
```
|
96
96
|
|
97
|
-
[Starlette](https://www.starlette.io/), [FastAPI](https://fastapi.tiangolo.com/), [BlackSheep](https://www.neoteroi.dev/blacksheep/)
|
97
|
+
[Starlette](https://www.starlette.io/), [FastAPI](https://fastapi.tiangolo.com/), [BlackSheep](https://www.neoteroi.dev/blacksheep/), [Litestar](https://litestar.dev/) and [Esmerald](https://esmerald.dev/) are currently supported.
|
98
98
|
|
99
99
|
## Are you a Django user?
|
100
100
|
|
@@ -0,0 +1 @@
|
|
1
|
+
__VERSION__ = "1.5.0"
|
@@ -10,10 +10,14 @@ from jinja2 import Environment, FileSystemLoader
|
|
10
10
|
|
11
11
|
TEMPLATE_DIR = os.path.join(os.path.dirname(__file__), "templates/app/")
|
12
12
|
SERVERS = ["uvicorn", "Hypercorn"]
|
13
|
-
ROUTERS = ["starlette", "fastapi", "blacksheep", "litestar"]
|
14
13
|
ROUTER_DEPENDENCIES = {
|
14
|
+
"starlette": ["starlette"],
|
15
15
|
"fastapi": ["fastapi>=0.100.0"],
|
16
|
+
"blacksheep": ["blacksheep"],
|
17
|
+
"litestar": ["litestar"],
|
18
|
+
"esmerald": ["esmerald"],
|
16
19
|
}
|
20
|
+
ROUTERS = list(ROUTER_DEPENDENCIES.keys())
|
17
21
|
|
18
22
|
|
19
23
|
def print_instruction(message: str):
|
@@ -0,0 +1,109 @@
|
|
1
|
+
import typing as t
|
2
|
+
|
3
|
+
from pathlib import Path
|
4
|
+
|
5
|
+
from piccolo.utils.pydantic import create_pydantic_model
|
6
|
+
from piccolo.engine import engine_finder
|
7
|
+
from piccolo_admin.endpoints import create_admin
|
8
|
+
|
9
|
+
from esmerald import (
|
10
|
+
Esmerald,
|
11
|
+
Include,
|
12
|
+
Gateway,
|
13
|
+
JSONResponse,
|
14
|
+
APIView,
|
15
|
+
get,
|
16
|
+
post,
|
17
|
+
put,
|
18
|
+
delete
|
19
|
+
)
|
20
|
+
from esmerald.config import StaticFilesConfig
|
21
|
+
|
22
|
+
from home.endpoints import home
|
23
|
+
from home.piccolo_app import APP_CONFIG
|
24
|
+
from home.tables import Task
|
25
|
+
|
26
|
+
|
27
|
+
async def open_database_connection_pool():
|
28
|
+
try:
|
29
|
+
engine = engine_finder()
|
30
|
+
await engine.start_connection_pool()
|
31
|
+
except Exception:
|
32
|
+
print("Unable to connect to the database")
|
33
|
+
|
34
|
+
|
35
|
+
async def close_database_connection_pool():
|
36
|
+
try:
|
37
|
+
engine = engine_finder()
|
38
|
+
await engine.close_connection_pool()
|
39
|
+
except Exception:
|
40
|
+
print("Unable to connect to the database")
|
41
|
+
|
42
|
+
|
43
|
+
TaskModelIn: t.Any = create_pydantic_model(
|
44
|
+
table=Task,
|
45
|
+
model_name='TaskModelIn'
|
46
|
+
)
|
47
|
+
TaskModelOut: t.Any = create_pydantic_model(
|
48
|
+
table=Task,
|
49
|
+
include_default_columns=True,
|
50
|
+
model_name='TaskModelOut'
|
51
|
+
)
|
52
|
+
|
53
|
+
|
54
|
+
class TaskAPIView(APIView):
|
55
|
+
path: str = "/"
|
56
|
+
tags: str = ["Task"]
|
57
|
+
|
58
|
+
@get("/")
|
59
|
+
async def tasks(self) -> t.List[TaskModelOut]:
|
60
|
+
return await Task.select().order_by(Task.id)
|
61
|
+
|
62
|
+
|
63
|
+
@post('/')
|
64
|
+
async def create_task(self, payload: TaskModelIn) -> TaskModelOut:
|
65
|
+
task = Task(**payload.dict())
|
66
|
+
await task.save()
|
67
|
+
return task.to_dict()
|
68
|
+
|
69
|
+
|
70
|
+
@put('/{task_id}')
|
71
|
+
async def update_task(self, payload: TaskModelIn, task_id: int) -> TaskModelOut:
|
72
|
+
task = await Task.objects().get(Task.id == task_id)
|
73
|
+
if not task:
|
74
|
+
return JSONResponse({}, status_code=404)
|
75
|
+
|
76
|
+
for key, value in payload.dict().items():
|
77
|
+
setattr(task, key, value)
|
78
|
+
|
79
|
+
await task.save()
|
80
|
+
|
81
|
+
return task.to_dict()
|
82
|
+
|
83
|
+
|
84
|
+
@delete('/{task_id}')
|
85
|
+
async def delete_task(self, task_id: int) -> None:
|
86
|
+
task = await Task.objects().get(Task.id == task_id)
|
87
|
+
if not task:
|
88
|
+
return JSONResponse({}, status_code=404)
|
89
|
+
|
90
|
+
await task.remove()
|
91
|
+
|
92
|
+
|
93
|
+
app = Esmerald(
|
94
|
+
routes=[
|
95
|
+
Gateway("/", handler=home),
|
96
|
+
Gateway("/tasks", handler=TaskAPIView),
|
97
|
+
Include(
|
98
|
+
"/admin/",
|
99
|
+
create_admin(
|
100
|
+
tables=APP_CONFIG.table_classes,
|
101
|
+
# Required when running under HTTPS:
|
102
|
+
# allowed_hosts=['my_site.com']
|
103
|
+
),
|
104
|
+
),
|
105
|
+
],
|
106
|
+
static_files_config=StaticFilesConfig(path="/static", directory=Path("static")),
|
107
|
+
on_startup=[open_database_connection_pool],
|
108
|
+
on_shutdown=[close_database_connection_pool],
|
109
|
+
)
|
@@ -0,0 +1,20 @@
|
|
1
|
+
import os
|
2
|
+
|
3
|
+
import jinja2
|
4
|
+
from esmerald import Request, Response, get
|
5
|
+
from esmerald.responses import HTMLResponse
|
6
|
+
|
7
|
+
ENVIRONMENT = jinja2.Environment(
|
8
|
+
loader=jinja2.FileSystemLoader(
|
9
|
+
searchpath=os.path.join(os.path.dirname(__file__), "templates")
|
10
|
+
)
|
11
|
+
)
|
12
|
+
|
13
|
+
|
14
|
+
@get(path="/", include_in_schema=False)
|
15
|
+
def home(request: Request) -> HTMLResponse:
|
16
|
+
template = ENVIRONMENT.get_template("home.html.jinja")
|
17
|
+
|
18
|
+
content = template.render(title="Piccolo + ASGI",)
|
19
|
+
|
20
|
+
return HTMLResponse(content)
|
@@ -56,6 +56,11 @@
|
|
56
56
|
<li><a href="/admin/">Admin</a></li>
|
57
57
|
<li><a href="/schema/swagger">Swagger API</a></li>
|
58
58
|
</ul>
|
59
|
+
<h3>Esmerald</h3>
|
60
|
+
<ul>
|
61
|
+
<li><a href="/admin/">Admin</a></li>
|
62
|
+
<li><a href="/docs/swagger">Swagger API</a></li>
|
63
|
+
</ul>
|
59
64
|
</section>
|
60
65
|
</div>
|
61
66
|
{% endblock content %}
|
@@ -39,7 +39,6 @@ def compare_dicts(
|
|
39
39
|
output = {}
|
40
40
|
|
41
41
|
for key, value in dict_1.items():
|
42
|
-
|
43
42
|
dict_2_value = dict_2.get(key, ...)
|
44
43
|
if (
|
45
44
|
dict_2_value is not ...
|
@@ -99,7 +98,7 @@ class DiffableTable:
|
|
99
98
|
columns: t.List[Column] = field(default_factory=list)
|
100
99
|
previous_class_name: t.Optional[str] = None
|
101
100
|
|
102
|
-
def __post_init__(self):
|
101
|
+
def __post_init__(self) -> None:
|
103
102
|
self.columns_map: t.Dict[str, Column] = {
|
104
103
|
i._meta.name: i for i in self.columns
|
105
104
|
}
|
@@ -129,6 +128,7 @@ class DiffableTable:
|
|
129
128
|
column_class_name=i.column.__class__.__name__,
|
130
129
|
column_class=i.column.__class__,
|
131
130
|
params=i.column._meta.params,
|
131
|
+
schema=self.schema,
|
132
132
|
)
|
133
133
|
for i in sorted(
|
134
134
|
{ColumnComparison(column=column) for column in self.columns}
|
@@ -145,6 +145,7 @@ class DiffableTable:
|
|
145
145
|
column_name=i.column._meta.name,
|
146
146
|
db_column_name=i.column._meta.db_column_name,
|
147
147
|
tablename=value.tablename,
|
148
|
+
schema=self.schema,
|
148
149
|
)
|
149
150
|
for i in sorted(
|
150
151
|
{ColumnComparison(column=column) for column in value.columns}
|
@@ -184,6 +185,7 @@ class DiffableTable:
|
|
184
185
|
old_params=old_params,
|
185
186
|
column_class=column.__class__,
|
186
187
|
old_column_class=existing_column.__class__,
|
188
|
+
schema=self.schema,
|
187
189
|
)
|
188
190
|
)
|
189
191
|
|