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.
Files changed (367) hide show
  1. {piccolo-1.0a1 → piccolo-1.5.0}/PKG-INFO +21 -3
  2. {piccolo-1.0a1 → piccolo-1.5.0}/README.md +1 -1
  3. piccolo-1.5.0/piccolo/__init__.py +1 -0
  4. {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/apps/asgi/commands/new.py +5 -1
  5. piccolo-1.5.0/piccolo/apps/asgi/commands/templates/app/_esmerald_app.py.jinja +109 -0
  6. {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/apps/asgi/commands/templates/app/app.py.jinja +2 -0
  7. piccolo-1.5.0/piccolo/apps/asgi/commands/templates/app/home/_esmerald_endpoints.py.jinja +20 -0
  8. {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/apps/asgi/commands/templates/app/home/endpoints.py.jinja +2 -0
  9. {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/apps/asgi/commands/templates/app/home/templates/home.html.jinja_raw +5 -0
  10. {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/apps/asgi/commands/templates/app/requirements.txt.jinja +2 -4
  11. {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/apps/migrations/auto/diffable_table.py +4 -2
  12. {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/apps/migrations/auto/migration_manager.py +131 -41
  13. {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/apps/migrations/auto/operations.py +5 -0
  14. {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/apps/migrations/auto/schema_differ.py +34 -11
  15. {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/apps/migrations/auto/serialisation.py +3 -7
  16. {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/apps/migrations/commands/backwards.py +3 -3
  17. {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/apps/migrations/commands/base.py +3 -3
  18. {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/apps/migrations/commands/forwards.py +3 -3
  19. {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/apps/migrations/commands/new.py +2 -2
  20. {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/apps/playground/commands/run.py +1 -0
  21. {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/apps/schema/commands/generate.py +12 -8
  22. {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/apps/shell/commands/run.py +4 -7
  23. {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/apps/sql_shell/commands/run.py +13 -11
  24. piccolo-1.5.0/piccolo/apps/user/commands/list.py +71 -0
  25. {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/apps/user/piccolo_app.py +2 -0
  26. {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/apps/user/tables.py +22 -7
  27. {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/columns/base.py +14 -8
  28. {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/columns/column_types.py +205 -125
  29. {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/columns/m2m.py +1 -1
  30. {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/columns/reference.py +1 -0
  31. {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/conf/apps.py +24 -11
  32. {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/engine/base.py +15 -0
  33. {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/engine/cockroach.py +1 -1
  34. {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/engine/postgres.py +11 -7
  35. {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/engine/sqlite.py +8 -7
  36. {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/main.py +7 -4
  37. {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/query/base.py +14 -10
  38. {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/query/methods/insert.py +1 -1
  39. {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/query/methods/objects.py +9 -9
  40. {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/query/methods/select.py +5 -9
  41. {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/query/methods/update.py +3 -2
  42. {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/query/mixins.py +7 -7
  43. {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/query/proxy.py +3 -2
  44. {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/querystring.py +1 -1
  45. {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/table.py +38 -26
  46. {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/testing/model_builder.py +32 -20
  47. {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/testing/random_builder.py +10 -9
  48. piccolo-1.5.0/piccolo/utils/printing.py +57 -0
  49. {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/utils/pydantic.py +82 -94
  50. {piccolo-1.0a1 → piccolo-1.5.0}/piccolo.egg-info/PKG-INFO +21 -3
  51. {piccolo-1.0a1 → piccolo-1.5.0}/piccolo.egg-info/SOURCES.txt +6 -0
  52. {piccolo-1.0a1 → piccolo-1.5.0}/setup.py +1 -0
  53. {piccolo-1.0a1 → piccolo-1.5.0}/tests/apps/app/commands/test_new.py +3 -1
  54. {piccolo-1.0a1 → piccolo-1.5.0}/tests/apps/fixtures/commands/test_dump_load.py +0 -2
  55. {piccolo-1.0a1 → piccolo-1.5.0}/tests/apps/fixtures/commands/test_shared.py +2 -2
  56. {piccolo-1.0a1 → piccolo-1.5.0}/tests/apps/migrations/auto/integration/test_migrations.py +125 -32
  57. {piccolo-1.0a1 → piccolo-1.5.0}/tests/apps/migrations/auto/test_migration_manager.py +8 -7
  58. {piccolo-1.0a1 → piccolo-1.5.0}/tests/apps/migrations/auto/test_schema_differ.py +24 -25
  59. piccolo-1.5.0/tests/apps/user/commands/test_list.py +97 -0
  60. {piccolo-1.0a1 → piccolo-1.5.0}/tests/apps/user/test_tables.py +65 -2
  61. {piccolo-1.0a1 → piccolo-1.5.0}/tests/columns/m2m/base.py +66 -49
  62. {piccolo-1.0a1 → piccolo-1.5.0}/tests/columns/m2m/test_m2m.py +10 -31
  63. piccolo-1.5.0/tests/columns/m2m/test_m2m_schema.py +16 -0
  64. {piccolo-1.0a1 → piccolo-1.5.0}/tests/columns/test_array.py +72 -12
  65. {piccolo-1.0a1 → piccolo-1.5.0}/tests/columns/test_base.py +1 -1
  66. {piccolo-1.0a1 → piccolo-1.5.0}/tests/columns/test_boolean.py +12 -4
  67. {piccolo-1.0a1 → piccolo-1.5.0}/tests/columns/test_bytea.py +1 -1
  68. {piccolo-1.0a1 → piccolo-1.5.0}/tests/columns/test_choices.py +1 -0
  69. {piccolo-1.0a1 → piccolo-1.5.0}/tests/columns/test_date.py +2 -0
  70. {piccolo-1.0a1 → piccolo-1.5.0}/tests/columns/test_db_column_name.py +4 -1
  71. {piccolo-1.0a1 → piccolo-1.5.0}/tests/columns/test_defaults.py +8 -8
  72. {piccolo-1.0a1 → piccolo-1.5.0}/tests/columns/test_double_precision.py +1 -0
  73. {piccolo-1.0a1 → piccolo-1.5.0}/tests/columns/test_interval.py +2 -0
  74. {piccolo-1.0a1 → piccolo-1.5.0}/tests/columns/test_json.py +15 -17
  75. {piccolo-1.0a1 → piccolo-1.5.0}/tests/columns/test_jsonb.py +3 -0
  76. {piccolo-1.0a1 → piccolo-1.5.0}/tests/columns/test_numeric.py +1 -0
  77. {piccolo-1.0a1 → piccolo-1.5.0}/tests/columns/test_primary_key.py +7 -3
  78. {piccolo-1.0a1 → piccolo-1.5.0}/tests/columns/test_real.py +1 -0
  79. {piccolo-1.0a1 → piccolo-1.5.0}/tests/columns/test_reference.py +1 -0
  80. {piccolo-1.0a1 → piccolo-1.5.0}/tests/columns/test_time.py +2 -0
  81. {piccolo-1.0a1 → piccolo-1.5.0}/tests/columns/test_timestamp.py +2 -0
  82. {piccolo-1.0a1 → piccolo-1.5.0}/tests/columns/test_timestamptz.py +2 -0
  83. {piccolo-1.0a1 → piccolo-1.5.0}/tests/conf/example.py +1 -0
  84. {piccolo-1.0a1 → piccolo-1.5.0}/tests/engine/test_extra_nodes.py +4 -0
  85. {piccolo-1.0a1 → piccolo-1.5.0}/tests/engine/test_pool.py +5 -4
  86. {piccolo-1.0a1 → piccolo-1.5.0}/tests/engine/test_transaction.py +15 -2
  87. {piccolo-1.0a1 → piccolo-1.5.0}/tests/example_apps/music/tables.py +9 -0
  88. {piccolo-1.0a1 → piccolo-1.5.0}/tests/query/mixins/test_columns_delegate.py +10 -10
  89. {piccolo-1.0a1 → piccolo-1.5.0}/tests/query/test_freeze.py +3 -3
  90. {piccolo-1.0a1 → piccolo-1.5.0}/tests/query/test_slots.py +1 -1
  91. {piccolo-1.0a1 → piccolo-1.5.0}/tests/table/instance/test_get_related.py +6 -4
  92. {piccolo-1.0a1 → piccolo-1.5.0}/tests/table/instance/test_get_related_readable.py +1 -1
  93. {piccolo-1.0a1 → piccolo-1.5.0}/tests/table/instance/test_to_dict.py +5 -0
  94. {piccolo-1.0a1 → piccolo-1.5.0}/tests/table/test_alter.py +11 -12
  95. {piccolo-1.0a1 → piccolo-1.5.0}/tests/table/test_batch.py +1 -0
  96. {piccolo-1.0a1 → piccolo-1.5.0}/tests/table/test_inheritance.py +2 -0
  97. {piccolo-1.0a1 → piccolo-1.5.0}/tests/table/test_insert.py +2 -1
  98. {piccolo-1.0a1 → piccolo-1.5.0}/tests/table/test_join.py +62 -26
  99. {piccolo-1.0a1 → piccolo-1.5.0}/tests/table/test_join_on.py +4 -2
  100. {piccolo-1.0a1 → piccolo-1.5.0}/tests/table/test_metaclass.py +12 -0
  101. {piccolo-1.0a1 → piccolo-1.5.0}/tests/table/test_objects.py +12 -6
  102. {piccolo-1.0a1 → piccolo-1.5.0}/tests/table/test_output.py +3 -1
  103. {piccolo-1.0a1 → piccolo-1.5.0}/tests/table/test_refresh.py +10 -7
  104. {piccolo-1.0a1 → piccolo-1.5.0}/tests/table/test_repr.py +1 -0
  105. {piccolo-1.0a1 → piccolo-1.5.0}/tests/table/test_select.py +30 -4
  106. {piccolo-1.0a1 → piccolo-1.5.0}/tests/table/test_update.py +12 -3
  107. piccolo-1.5.0/tests/test_main.py +9 -0
  108. piccolo-1.5.0/tests/test_schema.py +183 -0
  109. {piccolo-1.0a1 → piccolo-1.5.0}/tests/testing/test_model_builder.py +61 -1
  110. {piccolo-1.0a1 → piccolo-1.5.0}/tests/utils/test_pydantic.py +114 -18
  111. piccolo-1.0a1/piccolo/__init__.py +0 -1
  112. piccolo-1.0a1/piccolo/utils/printing.py +0 -18
  113. piccolo-1.0a1/tests/columns/m2m/test_m2m_schema.py +0 -48
  114. {piccolo-1.0a1 → piccolo-1.5.0}/LICENSE +0 -0
  115. {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/apps/__init__.py +0 -0
  116. {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/apps/app/__init__.py +0 -0
  117. {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/apps/app/commands/__init__.py +0 -0
  118. {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/apps/app/commands/new.py +0 -0
  119. {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/apps/app/commands/show_all.py +0 -0
  120. {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/apps/app/commands/templates/piccolo_app.py.jinja +0 -0
  121. {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/apps/app/commands/templates/tables.py.jinja +0 -0
  122. {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/apps/app/piccolo_app.py +0 -0
  123. {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/apps/asgi/__init__.py +0 -0
  124. {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/apps/asgi/commands/__init__.py +0 -0
  125. {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/apps/asgi/commands/templates/app/README.md.jinja +0 -0
  126. {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/apps/asgi/commands/templates/app/_blacksheep_app.py.jinja +0 -0
  127. {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/apps/asgi/commands/templates/app/_fastapi_app.py.jinja +0 -0
  128. {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/apps/asgi/commands/templates/app/_litestar_app.py.jinja +0 -0
  129. {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/apps/asgi/commands/templates/app/_starlette_app.py.jinja +0 -0
  130. {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/apps/asgi/commands/templates/app/conftest.py.jinja +0 -0
  131. {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/apps/asgi/commands/templates/app/home/__init__.py.jinja +0 -0
  132. {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/apps/asgi/commands/templates/app/home/_blacksheep_endpoints.py.jinja +0 -0
  133. {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/apps/asgi/commands/templates/app/home/_litestar_endpoints.py.jinja +0 -0
  134. {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/apps/asgi/commands/templates/app/home/_starlette_endpoints.py.jinja +0 -0
  135. {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/apps/asgi/commands/templates/app/home/piccolo_app.py.jinja +0 -0
  136. {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/apps/asgi/commands/templates/app/home/piccolo_migrations/README.md +0 -0
  137. {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/apps/asgi/commands/templates/app/home/tables.py.jinja +0 -0
  138. {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/apps/asgi/commands/templates/app/home/templates/base.html.jinja_raw +0 -0
  139. {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/apps/asgi/commands/templates/app/main.py.jinja +0 -0
  140. {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/apps/asgi/commands/templates/app/piccolo_conf.py.jinja +0 -0
  141. {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/apps/asgi/commands/templates/app/piccolo_conf_test.py.jinja +0 -0
  142. {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/apps/asgi/commands/templates/app/static/favicon.ico +0 -0
  143. {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/apps/asgi/commands/templates/app/static/main.css +0 -0
  144. {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/apps/asgi/piccolo_app.py +0 -0
  145. {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/apps/fixtures/__init__.py +0 -0
  146. {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/apps/fixtures/commands/__init__.py +0 -0
  147. {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/apps/fixtures/commands/dump.py +0 -0
  148. {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/apps/fixtures/commands/load.py +0 -0
  149. {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/apps/fixtures/commands/shared.py +0 -0
  150. {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/apps/fixtures/piccolo_app.py +0 -0
  151. {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/apps/meta/__init__.py +0 -0
  152. {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/apps/meta/commands/__init__.py +0 -0
  153. {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/apps/meta/commands/version.py +0 -0
  154. {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/apps/meta/piccolo_app.py +0 -0
  155. {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/apps/migrations/__init__.py +0 -0
  156. {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/apps/migrations/auto/__init__.py +0 -0
  157. {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/apps/migrations/auto/schema_snapshot.py +0 -0
  158. {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/apps/migrations/auto/serialisation_legacy.py +0 -0
  159. {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/apps/migrations/commands/__init__.py +0 -0
  160. {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/apps/migrations/commands/check.py +0 -0
  161. {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/apps/migrations/commands/clean.py +0 -0
  162. {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/apps/migrations/commands/templates/migration.py.jinja +0 -0
  163. {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/apps/migrations/piccolo_app.py +0 -0
  164. {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/apps/migrations/tables.py +0 -0
  165. {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/apps/playground/__init__.py +0 -0
  166. {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/apps/playground/commands/__init__.py +0 -0
  167. {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/apps/playground/piccolo_app.py +0 -0
  168. {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/apps/project/__init__.py +0 -0
  169. {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/apps/project/commands/__init__.py +0 -0
  170. {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/apps/project/commands/new.py +0 -0
  171. {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/apps/project/commands/templates/piccolo_conf.py.jinja +0 -0
  172. {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/apps/project/piccolo_app.py +0 -0
  173. {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/apps/schema/__init__.py +0 -0
  174. {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/apps/schema/commands/__init__.py +0 -0
  175. {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/apps/schema/commands/exceptions.py +0 -0
  176. {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/apps/schema/commands/graph.py +0 -0
  177. {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/apps/schema/commands/templates/graphviz.dot.jinja +0 -0
  178. {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/apps/schema/piccolo_app.py +0 -0
  179. {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/apps/shell/__init__.py +0 -0
  180. {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/apps/shell/commands/__init__.py +0 -0
  181. {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/apps/shell/piccolo_app.py +0 -0
  182. {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/apps/sql_shell/__init__.py +0 -0
  183. {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/apps/sql_shell/commands/__init__.py +0 -0
  184. {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/apps/sql_shell/piccolo_app.py +0 -0
  185. {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/apps/tester/__init__.py +0 -0
  186. {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/apps/tester/commands/__init__.py +0 -0
  187. {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/apps/tester/commands/run.py +0 -0
  188. {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/apps/tester/piccolo_app.py +0 -0
  189. {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/apps/user/__init__.py +0 -0
  190. {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/apps/user/commands/__init__.py +0 -0
  191. {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/apps/user/commands/change_password.py +0 -0
  192. {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/apps/user/commands/change_permissions.py +0 -0
  193. {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/apps/user/commands/create.py +0 -0
  194. {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/apps/user/piccolo_migrations/2019-11-14T21-52-21.py +0 -0
  195. {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/apps/user/piccolo_migrations/2020-06-11T21-38-55.py +0 -0
  196. {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/apps/user/piccolo_migrations/2021-04-30T16-14-15.py +0 -0
  197. {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/apps/user/piccolo_migrations/__init__.py +0 -0
  198. {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/columns/__init__.py +0 -0
  199. {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/columns/choices.py +0 -0
  200. {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/columns/combination.py +0 -0
  201. {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/columns/defaults/__init__.py +0 -0
  202. {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/columns/defaults/base.py +0 -0
  203. {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/columns/defaults/date.py +0 -0
  204. {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/columns/defaults/interval.py +0 -0
  205. {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/columns/defaults/time.py +0 -0
  206. {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/columns/defaults/timestamp.py +0 -0
  207. {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/columns/defaults/timestamptz.py +0 -0
  208. {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/columns/defaults/uuid.py +0 -0
  209. {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/columns/indexes.py +0 -0
  210. {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/columns/operators/__init__.py +0 -0
  211. {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/columns/operators/base.py +0 -0
  212. {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/columns/operators/comparison.py +0 -0
  213. {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/columns/operators/math.py +0 -0
  214. {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/columns/operators/string.py +0 -0
  215. {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/columns/readable.py +0 -0
  216. {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/conf/__init__.py +0 -0
  217. {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/custom_types.py +0 -0
  218. {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/engine/__init__.py +0 -0
  219. {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/engine/exceptions.py +0 -0
  220. {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/engine/finder.py +0 -0
  221. {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/py.typed +0 -0
  222. {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/query/__init__.py +0 -0
  223. {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/query/methods/__init__.py +0 -0
  224. {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/query/methods/alter.py +0 -0
  225. {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/query/methods/count.py +0 -0
  226. {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/query/methods/create.py +0 -0
  227. {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/query/methods/create_index.py +0 -0
  228. {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/query/methods/delete.py +0 -0
  229. {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/query/methods/drop_index.py +0 -0
  230. {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/query/methods/exists.py +0 -0
  231. {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/query/methods/indexes.py +0 -0
  232. {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/query/methods/raw.py +0 -0
  233. {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/query/methods/refresh.py +0 -0
  234. {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/query/methods/table_exists.py +0 -0
  235. {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/schema.py +0 -0
  236. {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/table_reflection.py +0 -0
  237. {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/testing/__init__.py +0 -0
  238. {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/utils/__init__.py +0 -0
  239. {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/utils/dictionary.py +0 -0
  240. {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/utils/encoding.py +0 -0
  241. {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/utils/graphlib/__init__.py +0 -0
  242. {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/utils/graphlib/_graphlib.py +0 -0
  243. {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/utils/lazy_loader.py +0 -0
  244. {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/utils/list.py +0 -0
  245. {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/utils/naming.py +0 -0
  246. {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/utils/objects.py +0 -0
  247. {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/utils/repr.py +0 -0
  248. {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/utils/sql_values.py +0 -0
  249. {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/utils/sync.py +0 -0
  250. {piccolo-1.0a1 → piccolo-1.5.0}/piccolo/utils/warnings.py +0 -0
  251. {piccolo-1.0a1 → piccolo-1.5.0}/piccolo.egg-info/dependency_links.txt +0 -0
  252. {piccolo-1.0a1 → piccolo-1.5.0}/piccolo.egg-info/entry_points.txt +0 -0
  253. {piccolo-1.0a1 → piccolo-1.5.0}/piccolo.egg-info/requires.txt +0 -0
  254. {piccolo-1.0a1 → piccolo-1.5.0}/piccolo.egg-info/top_level.txt +0 -0
  255. {piccolo-1.0a1 → piccolo-1.5.0}/profiling/__init__.py +0 -0
  256. {piccolo-1.0a1 → piccolo-1.5.0}/profiling/run_profile.py +0 -0
  257. {piccolo-1.0a1 → piccolo-1.5.0}/pyproject.toml +0 -0
  258. {piccolo-1.0a1 → piccolo-1.5.0}/setup.cfg +0 -0
  259. {piccolo-1.0a1 → piccolo-1.5.0}/tests/apps/__init__.py +0 -0
  260. {piccolo-1.0a1 → piccolo-1.5.0}/tests/apps/app/__init__.py +0 -0
  261. {piccolo-1.0a1 → piccolo-1.5.0}/tests/apps/app/commands/__init__.py +0 -0
  262. {piccolo-1.0a1 → piccolo-1.5.0}/tests/apps/app/commands/test_show_all.py +0 -0
  263. {piccolo-1.0a1 → piccolo-1.5.0}/tests/apps/asgi/__init__.py +0 -0
  264. {piccolo-1.0a1 → piccolo-1.5.0}/tests/apps/asgi/commands/__init__.py +0 -0
  265. {piccolo-1.0a1 → piccolo-1.5.0}/tests/apps/asgi/commands/test_new.py +0 -0
  266. {piccolo-1.0a1 → piccolo-1.5.0}/tests/apps/fixtures/__init__.py +0 -0
  267. {piccolo-1.0a1 → piccolo-1.5.0}/tests/apps/fixtures/commands/__init__.py +0 -0
  268. {piccolo-1.0a1 → piccolo-1.5.0}/tests/apps/meta/__init__.py +0 -0
  269. {piccolo-1.0a1 → piccolo-1.5.0}/tests/apps/meta/commands/__init__.py +0 -0
  270. {piccolo-1.0a1 → piccolo-1.5.0}/tests/apps/meta/commands/test_version.py +0 -0
  271. {piccolo-1.0a1 → piccolo-1.5.0}/tests/apps/migrations/__init__.py +0 -0
  272. {piccolo-1.0a1 → piccolo-1.5.0}/tests/apps/migrations/auto/__init__.py +0 -0
  273. {piccolo-1.0a1 → piccolo-1.5.0}/tests/apps/migrations/auto/integration/__init__.py +0 -0
  274. {piccolo-1.0a1 → piccolo-1.5.0}/tests/apps/migrations/auto/test_diffable_table.py +0 -0
  275. {piccolo-1.0a1 → piccolo-1.5.0}/tests/apps/migrations/auto/test_schema_snapshot.py +0 -0
  276. {piccolo-1.0a1 → piccolo-1.5.0}/tests/apps/migrations/auto/test_serialisation.py +0 -0
  277. {piccolo-1.0a1 → piccolo-1.5.0}/tests/apps/migrations/commands/__init__.py +0 -0
  278. {piccolo-1.0a1 → piccolo-1.5.0}/tests/apps/migrations/commands/test_base.py +0 -0
  279. {piccolo-1.0a1 → piccolo-1.5.0}/tests/apps/migrations/commands/test_check.py +0 -0
  280. {piccolo-1.0a1 → piccolo-1.5.0}/tests/apps/migrations/commands/test_clean.py +0 -0
  281. {piccolo-1.0a1 → piccolo-1.5.0}/tests/apps/migrations/commands/test_forwards_backwards.py +0 -0
  282. {piccolo-1.0a1 → piccolo-1.5.0}/tests/apps/migrations/commands/test_migrations/2020-03-31T20-38-22.py +0 -0
  283. {piccolo-1.0a1 → piccolo-1.5.0}/tests/apps/migrations/commands/test_migrations/__init__.py +0 -0
  284. {piccolo-1.0a1 → piccolo-1.5.0}/tests/apps/migrations/commands/test_new.py +0 -0
  285. {piccolo-1.0a1 → piccolo-1.5.0}/tests/apps/migrations/test_migration.py +0 -0
  286. {piccolo-1.0a1 → piccolo-1.5.0}/tests/apps/project/__init__.py +0 -0
  287. {piccolo-1.0a1 → piccolo-1.5.0}/tests/apps/project/commands/__init__.py +0 -0
  288. {piccolo-1.0a1 → piccolo-1.5.0}/tests/apps/project/commands/test_new.py +0 -0
  289. {piccolo-1.0a1 → piccolo-1.5.0}/tests/apps/schema/__init__.py +0 -0
  290. {piccolo-1.0a1 → piccolo-1.5.0}/tests/apps/shell/__init__.py +0 -0
  291. {piccolo-1.0a1 → piccolo-1.5.0}/tests/apps/shell/commands/__init__.py +0 -0
  292. {piccolo-1.0a1 → piccolo-1.5.0}/tests/apps/shell/commands/test_run.py +0 -0
  293. {piccolo-1.0a1 → piccolo-1.5.0}/tests/apps/sql_shell/__init__.py +0 -0
  294. {piccolo-1.0a1 → piccolo-1.5.0}/tests/apps/sql_shell/commands/__init__.py +0 -0
  295. {piccolo-1.0a1 → piccolo-1.5.0}/tests/apps/sql_shell/commands/test_run.py +0 -0
  296. {piccolo-1.0a1 → piccolo-1.5.0}/tests/apps/tester/__init__.py +0 -0
  297. {piccolo-1.0a1 → piccolo-1.5.0}/tests/apps/user/__init__.py +0 -0
  298. {piccolo-1.0a1 → piccolo-1.5.0}/tests/apps/user/commands/__init__.py +0 -0
  299. {piccolo-1.0a1 → piccolo-1.5.0}/tests/apps/user/commands/test_change_password.py +0 -0
  300. {piccolo-1.0a1 → piccolo-1.5.0}/tests/apps/user/commands/test_change_permissions.py +0 -0
  301. {piccolo-1.0a1 → piccolo-1.5.0}/tests/apps/user/commands/test_create.py +0 -0
  302. {piccolo-1.0a1 → piccolo-1.5.0}/tests/columns/__init__.py +0 -0
  303. {piccolo-1.0a1 → piccolo-1.5.0}/tests/columns/m2m/__init__.py +0 -0
  304. {piccolo-1.0a1 → piccolo-1.5.0}/tests/columns/test_bigint.py +0 -0
  305. {piccolo-1.0a1 → piccolo-1.5.0}/tests/columns/test_combination.py +0 -0
  306. {piccolo-1.0a1 → piccolo-1.5.0}/tests/columns/test_readable.py +0 -0
  307. {piccolo-1.0a1 → piccolo-1.5.0}/tests/columns/test_reserved_column_names.py +0 -0
  308. {piccolo-1.0a1 → piccolo-1.5.0}/tests/columns/test_smallint.py +0 -0
  309. {piccolo-1.0a1 → piccolo-1.5.0}/tests/columns/test_uuid.py +0 -0
  310. {piccolo-1.0a1 → piccolo-1.5.0}/tests/columns/test_varchar.py +0 -0
  311. {piccolo-1.0a1 → piccolo-1.5.0}/tests/conf/__init__.py +0 -0
  312. {piccolo-1.0a1 → piccolo-1.5.0}/tests/conf/test_apps.py +0 -0
  313. {piccolo-1.0a1 → piccolo-1.5.0}/tests/engine/__init__.py +0 -0
  314. {piccolo-1.0a1 → piccolo-1.5.0}/tests/engine/test_logging.py +0 -0
  315. {piccolo-1.0a1 → piccolo-1.5.0}/tests/engine/test_nested_transaction.py +0 -0
  316. {piccolo-1.0a1 → piccolo-1.5.0}/tests/engine/test_version_parsing.py +0 -0
  317. {piccolo-1.0a1 → piccolo-1.5.0}/tests/example_apps/__init__.py +0 -0
  318. {piccolo-1.0a1 → piccolo-1.5.0}/tests/example_apps/mega/__init__.py +0 -0
  319. {piccolo-1.0a1 → piccolo-1.5.0}/tests/example_apps/mega/piccolo_app.py +0 -0
  320. {piccolo-1.0a1 → piccolo-1.5.0}/tests/example_apps/mega/piccolo_migrations/2021-09-20T21-23-25-698988.py +0 -0
  321. {piccolo-1.0a1 → piccolo-1.5.0}/tests/example_apps/mega/piccolo_migrations/__init__.py +0 -0
  322. {piccolo-1.0a1 → piccolo-1.5.0}/tests/example_apps/mega/tables.py +0 -0
  323. {piccolo-1.0a1 → piccolo-1.5.0}/tests/example_apps/music/__init__.py +0 -0
  324. {piccolo-1.0a1 → piccolo-1.5.0}/tests/example_apps/music/piccolo_app.py +0 -0
  325. {piccolo-1.0a1 → piccolo-1.5.0}/tests/example_apps/music/tables_detailed.py +0 -0
  326. {piccolo-1.0a1 → piccolo-1.5.0}/tests/query/__init__.py +0 -0
  327. {piccolo-1.0a1 → piccolo-1.5.0}/tests/query/mixins/__init__.py +0 -0
  328. {piccolo-1.0a1 → piccolo-1.5.0}/tests/query/mixins/test_order_by_delegate.py +0 -0
  329. {piccolo-1.0a1 → piccolo-1.5.0}/tests/query/test_await.py +0 -0
  330. {piccolo-1.0a1 → piccolo-1.5.0}/tests/query/test_camelcase.py +0 -0
  331. {piccolo-1.0a1 → piccolo-1.5.0}/tests/query/test_gather.py +0 -0
  332. {piccolo-1.0a1 → piccolo-1.5.0}/tests/query/test_querystring.py +0 -0
  333. {piccolo-1.0a1 → piccolo-1.5.0}/tests/table/__init__.py +0 -0
  334. {piccolo-1.0a1 → piccolo-1.5.0}/tests/table/instance/__init__.py +0 -0
  335. {piccolo-1.0a1 → piccolo-1.5.0}/tests/table/instance/test_create.py +0 -0
  336. {piccolo-1.0a1 → piccolo-1.5.0}/tests/table/instance/test_instantiate.py +0 -0
  337. {piccolo-1.0a1 → piccolo-1.5.0}/tests/table/instance/test_remove.py +0 -0
  338. {piccolo-1.0a1 → piccolo-1.5.0}/tests/table/instance/test_save.py +0 -0
  339. {piccolo-1.0a1 → piccolo-1.5.0}/tests/table/test_all_columns.py +0 -0
  340. {piccolo-1.0a1 → piccolo-1.5.0}/tests/table/test_callback.py +0 -0
  341. {piccolo-1.0a1 → piccolo-1.5.0}/tests/table/test_constructor.py +0 -0
  342. {piccolo-1.0a1 → piccolo-1.5.0}/tests/table/test_count.py +0 -0
  343. {piccolo-1.0a1 → piccolo-1.5.0}/tests/table/test_create.py +0 -0
  344. {piccolo-1.0a1 → piccolo-1.5.0}/tests/table/test_create_db_tables.py +0 -0
  345. {piccolo-1.0a1 → piccolo-1.5.0}/tests/table/test_create_table_class.py +0 -0
  346. {piccolo-1.0a1 → piccolo-1.5.0}/tests/table/test_delete.py +0 -0
  347. {piccolo-1.0a1 → piccolo-1.5.0}/tests/table/test_drop_db_tables.py +0 -0
  348. {piccolo-1.0a1 → piccolo-1.5.0}/tests/table/test_exists.py +0 -0
  349. {piccolo-1.0a1 → piccolo-1.5.0}/tests/table/test_from_dict.py +0 -0
  350. {piccolo-1.0a1 → piccolo-1.5.0}/tests/table/test_indexes.py +0 -0
  351. {piccolo-1.0a1 → piccolo-1.5.0}/tests/table/test_raw.py +0 -0
  352. {piccolo-1.0a1 → piccolo-1.5.0}/tests/table/test_ref.py +0 -0
  353. {piccolo-1.0a1 → piccolo-1.5.0}/tests/table/test_str.py +0 -0
  354. {piccolo-1.0a1 → piccolo-1.5.0}/tests/table/test_table_exists.py +0 -0
  355. {piccolo-1.0a1 → piccolo-1.5.0}/tests/testing/__init__.py +0 -0
  356. {piccolo-1.0a1 → piccolo-1.5.0}/tests/testing/test_random_builder.py +0 -0
  357. {piccolo-1.0a1 → piccolo-1.5.0}/tests/utils/__init__.py +0 -0
  358. {piccolo-1.0a1 → piccolo-1.5.0}/tests/utils/test_dictionary.py +0 -0
  359. {piccolo-1.0a1 → piccolo-1.5.0}/tests/utils/test_encoding.py +0 -0
  360. {piccolo-1.0a1 → piccolo-1.5.0}/tests/utils/test_lazy_loader.py +0 -0
  361. {piccolo-1.0a1 → piccolo-1.5.0}/tests/utils/test_list.py +0 -0
  362. {piccolo-1.0a1 → piccolo-1.5.0}/tests/utils/test_naming.py +0 -0
  363. {piccolo-1.0a1 → piccolo-1.5.0}/tests/utils/test_printing.py +0 -0
  364. {piccolo-1.0a1 → piccolo-1.5.0}/tests/utils/test_sql_values.py +0 -0
  365. {piccolo-1.0a1 → piccolo-1.5.0}/tests/utils/test_sync.py +0 -0
  366. {piccolo-1.0a1 → piccolo-1.5.0}/tests/utils/test_table_reflection.py +0 -0
  367. {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.0a1
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
- License-File: LICENSE
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
  ![Logo](https://raw.githubusercontent.com/piccolo-orm/piccolo/master/docs/logo_hero.png "Piccolo Logo")
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/) and [Litestar](https://litestar.dev/) are currently supported.
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/) and [Litestar](https://litestar.dev/) are currently supported.
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
+ )
@@ -6,4 +6,6 @@
6
6
  {% include '_blacksheep_app.py.jinja' %}
7
7
  {% elif router == 'litestar' %}
8
8
  {% include '_litestar_app.py.jinja' %}
9
+ {% elif router == 'esmerald' %}
10
+ {% include '_esmerald_app.py.jinja' %}
9
11
  {% endif %}
@@ -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)
@@ -4,4 +4,6 @@
4
4
  {% include '_blacksheep_endpoints.py.jinja' %}
5
5
  {% elif router == 'litestar' %}
6
6
  {% include '_litestar_endpoints.py.jinja' %}
7
+ {% elif router == 'esmerald' %}
8
+ {% include '_esmerald_endpoints.py.jinja' %}
7
9
  {% endif %}
@@ -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 %}
@@ -2,7 +2,5 @@
2
2
  {{ router_dependency }}
3
3
  {% endfor -%}
4
4
  {{ server }}
5
- jinja2
6
- piccolo[postgres]
7
- piccolo_admin
8
- requests
5
+ piccolo[postgres]>=1.0.0
6
+ piccolo_admin>=1.0.0
@@ -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