falco-cli 0.6.2__tar.gz → 0.6.3__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 (219) hide show
  1. {falco_cli-0.6.2 → falco_cli-0.6.3}/PKG-INFO +1 -1
  2. {falco_cli-0.6.2 → falco_cli-0.6.3}/demo/config/urls.py +3 -1
  3. {falco_cli-0.6.2 → falco_cli-0.6.3}/docs/conf.py +2 -0
  4. {falco_cli-0.6.2 → falco_cli-0.6.3}/docs/guides/tips_and_extra.rst +8 -1
  5. {falco_cli-0.6.2 → falco_cli-0.6.3}/docs/the_cli/crud.rst +19 -0
  6. {falco_cli-0.6.2 → falco_cli-0.6.3}/docs/the_cli/index.rst +1 -0
  7. falco_cli-0.6.3/docs/the_cli/usage.rst +88 -0
  8. {falco_cli-0.6.2 → falco_cli-0.6.3}/pyproject.toml +2 -0
  9. {falco_cli-0.6.2 → falco_cli-0.6.3}/src/falco/__about__.py +1 -1
  10. {falco_cli-0.6.2 → falco_cli-0.6.3}/src/falco/commands/sync_dotenv.py +0 -1
  11. {falco_cli-0.6.2 → falco_cli-0.6.3}/src/falco/utils.py +10 -4
  12. {falco_cli-0.6.2 → falco_cli-0.6.3}/.all-contributorsrc +0 -0
  13. {falco_cli-0.6.2 → falco_cli-0.6.3}/.editorconfig +0 -0
  14. {falco_cli-0.6.2 → falco_cli-0.6.3}/.github/workflows/documentation.yml +0 -0
  15. {falco_cli-0.6.2 → falco_cli-0.6.3}/.github/workflows/pre-commit-auto-update.yml +0 -0
  16. {falco_cli-0.6.2 → falco_cli-0.6.3}/.github/workflows/publish.yml +0 -0
  17. {falco_cli-0.6.2 → falco_cli-0.6.3}/.gitignore +0 -0
  18. {falco_cli-0.6.2 → falco_cli-0.6.3}/.gitmodules +0 -0
  19. {falco_cli-0.6.2 → falco_cli-0.6.3}/.pre-commit-config.yaml +0 -0
  20. {falco_cli-0.6.2 → falco_cli-0.6.3}/.vscode/settings.json +0 -0
  21. {falco_cli-0.6.2 → falco_cli-0.6.3}/CODE_OF_CONDUCT.md +0 -0
  22. {falco_cli-0.6.2 → falco_cli-0.6.3}/LICENSE +0 -0
  23. {falco_cli-0.6.2 → falco_cli-0.6.3}/README.md +0 -0
  24. {falco_cli-0.6.2 → falco_cli-0.6.3}/all-contributorsrc +0 -0
  25. {falco_cli-0.6.2 → falco_cli-0.6.3}/assets/falco-logo.svg +0 -0
  26. {falco_cli-0.6.2 → falco_cli-0.6.3}/blueprints/falco_blueprint_basic/.git +0 -0
  27. {falco_cli-0.6.2 → falco_cli-0.6.3}/blueprints/falco_blueprint_basic/.github/workflows/ci.yml +0 -0
  28. {falco_cli-0.6.2 → falco_cli-0.6.3}/blueprints/falco_blueprint_basic/.github/workflows/pre-commit-auto-update.yml +0 -0
  29. {falco_cli-0.6.2 → falco_cli-0.6.3}/blueprints/falco_blueprint_basic/LICENSE +0 -0
  30. {falco_cli-0.6.2 → falco_cli-0.6.3}/blueprints/falco_blueprint_basic/README.md +0 -0
  31. {falco_cli-0.6.2 → falco_cli-0.6.3}/blueprints/falco_blueprint_basic/cookiecutter.json +0 -0
  32. {falco_cli-0.6.2 → falco_cli-0.6.3}/blueprints/falco_blueprint_basic/{{ cookiecutter.project_name }}/.env.template +0 -0
  33. {falco_cli-0.6.2 → falco_cli-0.6.3}/blueprints/falco_blueprint_basic/{{ cookiecutter.project_name }}/.github/dependabot.yml +0 -0
  34. {falco_cli-0.6.2 → falco_cli-0.6.3}/blueprints/falco_blueprint_basic/{{ cookiecutter.project_name }}/.github/workflows/ci.yml +0 -0
  35. {falco_cli-0.6.2 → falco_cli-0.6.3}/blueprints/falco_blueprint_basic/{{ cookiecutter.project_name }}/.gitignore +0 -0
  36. {falco_cli-0.6.2 → falco_cli-0.6.3}/blueprints/falco_blueprint_basic/{{ cookiecutter.project_name }}/.pre-commit-config.yaml +0 -0
  37. {falco_cli-0.6.2 → falco_cli-0.6.3}/blueprints/falco_blueprint_basic/{{ cookiecutter.project_name }}/README.md +0 -0
  38. {falco_cli-0.6.2 → falco_cli-0.6.3}/blueprints/falco_blueprint_basic/{{ cookiecutter.project_name }}/config/__init__.py +0 -0
  39. {falco_cli-0.6.2 → falco_cli-0.6.3}/blueprints/falco_blueprint_basic/{{ cookiecutter.project_name }}/config/asgi.py +0 -0
  40. {falco_cli-0.6.2 → falco_cli-0.6.3}/blueprints/falco_blueprint_basic/{{ cookiecutter.project_name }}/config/settings.py +0 -0
  41. {falco_cli-0.6.2 → falco_cli-0.6.3}/blueprints/falco_blueprint_basic/{{ cookiecutter.project_name }}/config/urls.py +0 -0
  42. {falco_cli-0.6.2 → falco_cli-0.6.3}/blueprints/falco_blueprint_basic/{{ cookiecutter.project_name }}/config/wsgi.py +0 -0
  43. {falco_cli-0.6.2 → falco_cli-0.6.3}/blueprints/falco_blueprint_basic/{{ cookiecutter.project_name }}/deploy/Dockerfile +0 -0
  44. {falco_cli-0.6.2 → falco_cli-0.6.3}/blueprints/falco_blueprint_basic/{{ cookiecutter.project_name }}/deploy/entrypoint.sh +0 -0
  45. {falco_cli-0.6.2 → falco_cli-0.6.3}/blueprints/falco_blueprint_basic/{{ cookiecutter.project_name }}/deploy/gunicorn.conf.py +0 -0
  46. {falco_cli-0.6.2 → falco_cli-0.6.3}/blueprints/falco_blueprint_basic/{{ cookiecutter.project_name }}/manage.py +0 -0
  47. {falco_cli-0.6.2 → falco_cli-0.6.3}/blueprints/falco_blueprint_basic/{{ cookiecutter.project_name }}/playground.ipynb +0 -0
  48. {falco_cli-0.6.2 → falco_cli-0.6.3}/blueprints/falco_blueprint_basic/{{ cookiecutter.project_name }}/pyproject.toml +0 -0
  49. {falco_cli-0.6.2 → falco_cli-0.6.3}/blueprints/falco_blueprint_basic/{{ cookiecutter.project_name }}/tests/__init__.py +0 -0
  50. {falco_cli-0.6.2 → falco_cli-0.6.3}/blueprints/falco_blueprint_basic/{{ cookiecutter.project_name }}/tests/test_assert_true.py +0 -0
  51. {falco_cli-0.6.2 → falco_cli-0.6.3}/blueprints/falco_blueprint_basic/{{ cookiecutter.project_name }}/{{ cookiecutter.project_name }}/__init__.py +0 -0
  52. {falco_cli-0.6.2 → falco_cli-0.6.3}/blueprints/falco_blueprint_basic/{{ cookiecutter.project_name }}/{{ cookiecutter.project_name }}/core/__init__.py +0 -0
  53. {falco_cli-0.6.2 → falco_cli-0.6.3}/blueprints/falco_blueprint_basic/{{ cookiecutter.project_name }}/{{ cookiecutter.project_name }}/core/apps.py +0 -0
  54. {falco_cli-0.6.2 → falco_cli-0.6.3}/blueprints/falco_blueprint_basic/{{ cookiecutter.project_name }}/{{ cookiecutter.project_name }}/static/vendors/htmx/htmx.min.js +0 -0
  55. {falco_cli-0.6.2 → falco_cli-0.6.3}/blueprints/falco_blueprint_basic/{{ cookiecutter.project_name }}/{{ cookiecutter.project_name }}/templates/base.html +0 -0
  56. {falco_cli-0.6.2 → falco_cli-0.6.3}/blueprints/falco_blueprint_basic/{{ cookiecutter.project_name }}/{{ cookiecutter.project_name }}/templates/home.html +0 -0
  57. {falco_cli-0.6.2 → falco_cli-0.6.3}/blueprints/falco_blueprint_basic/{{ cookiecutter.project_name }}/{{ cookiecutter.project_name }}/users/__init__.py +0 -0
  58. {falco_cli-0.6.2 → falco_cli-0.6.3}/blueprints/falco_blueprint_basic/{{ cookiecutter.project_name }}/{{ cookiecutter.project_name }}/users/admin.py +0 -0
  59. {falco_cli-0.6.2 → falco_cli-0.6.3}/blueprints/falco_blueprint_basic/{{ cookiecutter.project_name }}/{{ cookiecutter.project_name }}/users/apps.py +0 -0
  60. {falco_cli-0.6.2 → falco_cli-0.6.3}/blueprints/falco_blueprint_basic/{{ cookiecutter.project_name }}/{{ cookiecutter.project_name }}/users/forms.py +0 -0
  61. {falco_cli-0.6.2 → falco_cli-0.6.3}/blueprints/falco_blueprint_basic/{{ cookiecutter.project_name }}/{{ cookiecutter.project_name }}/users/migrations/0001_initial.py +0 -0
  62. {falco_cli-0.6.2 → falco_cli-0.6.3}/blueprints/falco_blueprint_basic/{{ cookiecutter.project_name }}/{{ cookiecutter.project_name }}/users/migrations/__init__.py +0 -0
  63. {falco_cli-0.6.2 → falco_cli-0.6.3}/blueprints/falco_blueprint_basic/{{ cookiecutter.project_name }}/{{ cookiecutter.project_name }}/users/models.py +0 -0
  64. {falco_cli-0.6.2 → falco_cli-0.6.3}/blueprints/falco_blueprint_basic_bootstrap/.git +0 -0
  65. {falco_cli-0.6.2 → falco_cli-0.6.3}/blueprints/falco_blueprint_basic_bootstrap/.github/workflows/ci.yml +0 -0
  66. {falco_cli-0.6.2 → falco_cli-0.6.3}/blueprints/falco_blueprint_basic_bootstrap/LICENSE +0 -0
  67. {falco_cli-0.6.2 → falco_cli-0.6.3}/blueprints/falco_blueprint_basic_bootstrap/README.md +0 -0
  68. {falco_cli-0.6.2 → falco_cli-0.6.3}/blueprints/falco_blueprint_basic_bootstrap/cookiecutter.json +0 -0
  69. {falco_cli-0.6.2 → falco_cli-0.6.3}/blueprints/falco_blueprint_basic_bootstrap/{{ cookiecutter.project_name }}/.env.template +0 -0
  70. {falco_cli-0.6.2 → falco_cli-0.6.3}/blueprints/falco_blueprint_basic_bootstrap/{{ cookiecutter.project_name }}/.github/dependabot.yml +0 -0
  71. {falco_cli-0.6.2 → falco_cli-0.6.3}/blueprints/falco_blueprint_basic_bootstrap/{{ cookiecutter.project_name }}/.github/workflows/ci.yml +0 -0
  72. {falco_cli-0.6.2 → falco_cli-0.6.3}/blueprints/falco_blueprint_basic_bootstrap/{{ cookiecutter.project_name }}/.gitignore +0 -0
  73. {falco_cli-0.6.2 → falco_cli-0.6.3}/blueprints/falco_blueprint_basic_bootstrap/{{ cookiecutter.project_name }}/.pre-commit-config.yaml +0 -0
  74. {falco_cli-0.6.2 → falco_cli-0.6.3}/blueprints/falco_blueprint_basic_bootstrap/{{ cookiecutter.project_name }}/README.md +0 -0
  75. {falco_cli-0.6.2 → falco_cli-0.6.3}/blueprints/falco_blueprint_basic_bootstrap/{{ cookiecutter.project_name }}/blueprints/create.html +0 -0
  76. {falco_cli-0.6.2 → falco_cli-0.6.3}/blueprints/falco_blueprint_basic_bootstrap/{{ cookiecutter.project_name }}/blueprints/detail.html +0 -0
  77. {falco_cli-0.6.2 → falco_cli-0.6.3}/blueprints/falco_blueprint_basic_bootstrap/{{ cookiecutter.project_name }}/blueprints/list.html +0 -0
  78. {falco_cli-0.6.2 → falco_cli-0.6.3}/blueprints/falco_blueprint_basic_bootstrap/{{ cookiecutter.project_name }}/blueprints/update.html +0 -0
  79. {falco_cli-0.6.2 → falco_cli-0.6.3}/blueprints/falco_blueprint_basic_bootstrap/{{ cookiecutter.project_name }}/config/__init__.py +0 -0
  80. {falco_cli-0.6.2 → falco_cli-0.6.3}/blueprints/falco_blueprint_basic_bootstrap/{{ cookiecutter.project_name }}/config/asgi.py +0 -0
  81. {falco_cli-0.6.2 → falco_cli-0.6.3}/blueprints/falco_blueprint_basic_bootstrap/{{ cookiecutter.project_name }}/config/settings.py +0 -0
  82. {falco_cli-0.6.2 → falco_cli-0.6.3}/blueprints/falco_blueprint_basic_bootstrap/{{ cookiecutter.project_name }}/config/urls.py +0 -0
  83. {falco_cli-0.6.2 → falco_cli-0.6.3}/blueprints/falco_blueprint_basic_bootstrap/{{ cookiecutter.project_name }}/config/wsgi.py +0 -0
  84. {falco_cli-0.6.2 → falco_cli-0.6.3}/blueprints/falco_blueprint_basic_bootstrap/{{ cookiecutter.project_name }}/deploy/Dockerfile +0 -0
  85. {falco_cli-0.6.2 → falco_cli-0.6.3}/blueprints/falco_blueprint_basic_bootstrap/{{ cookiecutter.project_name }}/deploy/entrypoint.sh +0 -0
  86. {falco_cli-0.6.2 → falco_cli-0.6.3}/blueprints/falco_blueprint_basic_bootstrap/{{ cookiecutter.project_name }}/deploy/gunicorn.conf.py +0 -0
  87. {falco_cli-0.6.2 → falco_cli-0.6.3}/blueprints/falco_blueprint_basic_bootstrap/{{ cookiecutter.project_name }}/manage.py +0 -0
  88. {falco_cli-0.6.2 → falco_cli-0.6.3}/blueprints/falco_blueprint_basic_bootstrap/{{ cookiecutter.project_name }}/playground.ipynb +0 -0
  89. {falco_cli-0.6.2 → falco_cli-0.6.3}/blueprints/falco_blueprint_basic_bootstrap/{{ cookiecutter.project_name }}/pyproject.toml +0 -0
  90. {falco_cli-0.6.2 → falco_cli-0.6.3}/blueprints/falco_blueprint_basic_bootstrap/{{ cookiecutter.project_name }}/tests/__init__.py +0 -0
  91. {falco_cli-0.6.2 → falco_cli-0.6.3}/blueprints/falco_blueprint_basic_bootstrap/{{ cookiecutter.project_name }}/tests/test_assert_true.py +0 -0
  92. {falco_cli-0.6.2 → falco_cli-0.6.3}/blueprints/falco_blueprint_basic_bootstrap/{{ cookiecutter.project_name }}/{{ cookiecutter.project_name }}/__init__.py +0 -0
  93. {falco_cli-0.6.2 → falco_cli-0.6.3}/blueprints/falco_blueprint_basic_bootstrap/{{ cookiecutter.project_name }}/{{ cookiecutter.project_name }}/core/__init__.py +0 -0
  94. {falco_cli-0.6.2 → falco_cli-0.6.3}/blueprints/falco_blueprint_basic_bootstrap/{{ cookiecutter.project_name }}/{{ cookiecutter.project_name }}/core/apps.py +0 -0
  95. {falco_cli-0.6.2 → falco_cli-0.6.3}/blueprints/falco_blueprint_basic_bootstrap/{{ cookiecutter.project_name }}/{{ cookiecutter.project_name }}/static/vendors/htmx/htmx.min.js +0 -0
  96. {falco_cli-0.6.2 → falco_cli-0.6.3}/blueprints/falco_blueprint_basic_bootstrap/{{ cookiecutter.project_name }}/{{ cookiecutter.project_name }}/templates/base.html +0 -0
  97. {falco_cli-0.6.2 → falco_cli-0.6.3}/blueprints/falco_blueprint_basic_bootstrap/{{ cookiecutter.project_name }}/{{ cookiecutter.project_name }}/templates/home.html +0 -0
  98. {falco_cli-0.6.2 → falco_cli-0.6.3}/blueprints/falco_blueprint_basic_bootstrap/{{ cookiecutter.project_name }}/{{ cookiecutter.project_name }}/users/__init__.py +0 -0
  99. {falco_cli-0.6.2 → falco_cli-0.6.3}/blueprints/falco_blueprint_basic_bootstrap/{{ cookiecutter.project_name }}/{{ cookiecutter.project_name }}/users/admin.py +0 -0
  100. {falco_cli-0.6.2 → falco_cli-0.6.3}/blueprints/falco_blueprint_basic_bootstrap/{{ cookiecutter.project_name }}/{{ cookiecutter.project_name }}/users/apps.py +0 -0
  101. {falco_cli-0.6.2 → falco_cli-0.6.3}/blueprints/falco_blueprint_basic_bootstrap/{{ cookiecutter.project_name }}/{{ cookiecutter.project_name }}/users/forms.py +0 -0
  102. {falco_cli-0.6.2 → falco_cli-0.6.3}/blueprints/falco_blueprint_basic_bootstrap/{{ cookiecutter.project_name }}/{{ cookiecutter.project_name }}/users/migrations/0001_initial.py +0 -0
  103. {falco_cli-0.6.2 → falco_cli-0.6.3}/blueprints/falco_blueprint_basic_bootstrap/{{ cookiecutter.project_name }}/{{ cookiecutter.project_name }}/users/migrations/__init__.py +0 -0
  104. {falco_cli-0.6.2 → falco_cli-0.6.3}/blueprints/falco_blueprint_basic_bootstrap/{{ cookiecutter.project_name }}/{{ cookiecutter.project_name }}/users/models.py +0 -0
  105. {falco_cli-0.6.2 → falco_cli-0.6.3}/demo/config/__init__.py +0 -0
  106. {falco_cli-0.6.2 → falco_cli-0.6.3}/demo/config/asgi.py +0 -0
  107. {falco_cli-0.6.2 → falco_cli-0.6.3}/demo/config/settings.py +0 -0
  108. {falco_cli-0.6.2 → falco_cli-0.6.3}/demo/config/wsgi.py +0 -0
  109. {falco_cli-0.6.2 → falco_cli-0.6.3}/demo/demo/__init__.py +0 -0
  110. {falco_cli-0.6.2 → falco_cli-0.6.3}/demo/demo/core/__init__.py +0 -0
  111. {falco_cli-0.6.2 → falco_cli-0.6.3}/demo/demo/core/apps.py +0 -0
  112. {falco_cli-0.6.2 → falco_cli-0.6.3}/demo/demo/core/types.py +0 -0
  113. {falco_cli-0.6.2 → falco_cli-0.6.3}/demo/demo/core/utils.py +0 -0
  114. {falco_cli-0.6.2 → falco_cli-0.6.3}/demo/demo/orders/__init__.py +0 -0
  115. {falco_cli-0.6.2 → falco_cli-0.6.3}/demo/demo/orders/apps.py +0 -0
  116. {falco_cli-0.6.2 → falco_cli-0.6.3}/demo/demo/orders/migrations/0001_initial.py +0 -0
  117. {falco_cli-0.6.2 → falco_cli-0.6.3}/demo/demo/orders/migrations/__init__.py +0 -0
  118. {falco_cli-0.6.2 → falco_cli-0.6.3}/demo/demo/orders/models.py +0 -0
  119. {falco_cli-0.6.2 → falco_cli-0.6.3}/demo/demo/products/__init__.py +0 -0
  120. {falco_cli-0.6.2 → falco_cli-0.6.3}/demo/demo/products/admin.py +0 -0
  121. {falco_cli-0.6.2 → falco_cli-0.6.3}/demo/demo/products/apps.py +0 -0
  122. {falco_cli-0.6.2 → falco_cli-0.6.3}/demo/demo/products/forms.py +0 -0
  123. {falco_cli-0.6.2 → falco_cli-0.6.3}/demo/demo/products/migrations/0001_initial.py +0 -0
  124. {falco_cli-0.6.2 → falco_cli-0.6.3}/demo/demo/products/migrations/__init__.py +0 -0
  125. {falco_cli-0.6.2 → falco_cli-0.6.3}/demo/demo/products/models.py +0 -0
  126. {falco_cli-0.6.2 → falco_cli-0.6.3}/demo/demo/products/tests.py +0 -0
  127. {falco_cli-0.6.2 → falco_cli-0.6.3}/demo/demo/products/urls.py +0 -0
  128. {falco_cli-0.6.2 → falco_cli-0.6.3}/demo/demo/products/views.py +0 -0
  129. {falco_cli-0.6.2 → falco_cli-0.6.3}/demo/demo/users/__init__.py +0 -0
  130. {falco_cli-0.6.2 → falco_cli-0.6.3}/demo/demo/users/admin.py +0 -0
  131. {falco_cli-0.6.2 → falco_cli-0.6.3}/demo/demo/users/apps.py +0 -0
  132. {falco_cli-0.6.2 → falco_cli-0.6.3}/demo/demo/users/migrations/0001_initial.py +0 -0
  133. {falco_cli-0.6.2 → falco_cli-0.6.3}/demo/demo/users/migrations/__init__.py +0 -0
  134. {falco_cli-0.6.2 → falco_cli-0.6.3}/demo/demo/users/models.py +0 -0
  135. {falco_cli-0.6.2 → falco_cli-0.6.3}/demo/manage.py +0 -0
  136. {falco_cli-0.6.2 → falco_cli-0.6.3}/demo/pyproject.toml +0 -0
  137. {falco_cli-0.6.2 → falco_cli-0.6.3}/demo/requirements.txt +0 -0
  138. {falco_cli-0.6.2 → falco_cli-0.6.3}/demo/templates/base.html +0 -0
  139. {falco_cli-0.6.2 → falco_cli-0.6.3}/demo/templates/products/product_create.html +0 -0
  140. {falco_cli-0.6.2 → falco_cli-0.6.3}/demo/templates/products/product_detail.html +0 -0
  141. {falco_cli-0.6.2 → falco_cli-0.6.3}/demo/templates/products/product_list.html +0 -0
  142. {falco_cli-0.6.2 → falco_cli-0.6.3}/demo/templates/products/product_update.html +0 -0
  143. {falco_cli-0.6.2 → falco_cli-0.6.3}/docs/.rich-codex.yml +0 -0
  144. {falco_cli-0.6.2 → falco_cli-0.6.3}/docs/Makefile +0 -0
  145. {falco_cli-0.6.2 → falco_cli-0.6.3}/docs/_static/custom.css +0 -0
  146. {falco_cli-0.6.2 → falco_cli-0.6.3}/docs/_templates/partials/globaltoc-above.html +0 -0
  147. {falco_cli-0.6.2 → falco_cli-0.6.3}/docs/changelog.rst +0 -0
  148. {falco_cli-0.6.2 → falco_cli-0.6.3}/docs/codeofconduct.rst +0 -0
  149. {falco_cli-0.6.2 → falco_cli-0.6.3}/docs/contributing.rst +0 -0
  150. {falco_cli-0.6.2 → falco_cli-0.6.3}/docs/guides/avoiding_god_models.rst +0 -0
  151. {falco_cli-0.6.2 → falco_cli-0.6.3}/docs/guides/database_tips.rst +0 -0
  152. {falco_cli-0.6.2 → falco_cli-0.6.3}/docs/guides/deployment.rst +0 -0
  153. {falco_cli-0.6.2 → falco_cli-0.6.3}/docs/guides/dynamic_model_schema.rst +0 -0
  154. {falco_cli-0.6.2 → falco_cli-0.6.3}/docs/guides/index.rst +0 -0
  155. {falco_cli-0.6.2 → falco_cli-0.6.3}/docs/guides/interactive_user_interfaces.rst +0 -0
  156. {falco_cli-0.6.2 → falco_cli-0.6.3}/docs/guides/logging_and_monitoring.rst +0 -0
  157. {falco_cli-0.6.2 → falco_cli-0.6.3}/docs/guides/multitenancy.rst +0 -0
  158. {falco_cli-0.6.2 → falco_cli-0.6.3}/docs/guides/optimizing_database_access.rst +0 -0
  159. {falco_cli-0.6.2 → falco_cli-0.6.3}/docs/guides/permissions_and_authorization.rst +0 -0
  160. {falco_cli-0.6.2 → falco_cli-0.6.3}/docs/guides/realtime.rst +0 -0
  161. {falco_cli-0.6.2 → falco_cli-0.6.3}/docs/guides/running_project_in_a_container.rst +0 -0
  162. {falco_cli-0.6.2 → falco_cli-0.6.3}/docs/guides/task_queues_and_schedulers.rst +0 -0
  163. {falco_cli-0.6.2 → falco_cli-0.6.3}/docs/guides/use_sqlite_in_production.rst +0 -0
  164. {falco_cli-0.6.2 → falco_cli-0.6.3}/docs/guides/writing_async_code.rst +0 -0
  165. {falco_cli-0.6.2 → falco_cli-0.6.3}/docs/guides/writing_documentation.rst +0 -0
  166. {falco_cli-0.6.2 → falco_cli-0.6.3}/docs/guides/writing_tests.rst +0 -0
  167. {falco_cli-0.6.2 → falco_cli-0.6.3}/docs/images/deployment.png +0 -0
  168. {falco_cli-0.6.2 → falco_cli-0.6.3}/docs/images/logo_with_text.svg +0 -0
  169. {falco_cli-0.6.2 → falco_cli-0.6.3}/docs/images/project-tree.svg +0 -0
  170. {falco_cli-0.6.2 → falco_cli-0.6.3}/docs/images/task_queue.png +0 -0
  171. {falco_cli-0.6.2 → falco_cli-0.6.3}/docs/index.rst +0 -0
  172. {falco_cli-0.6.2 → falco_cli-0.6.3}/docs/install.rst +0 -0
  173. {falco_cli-0.6.2 → falco_cli-0.6.3}/docs/license.rst +0 -0
  174. {falco_cli-0.6.2 → falco_cli-0.6.3}/docs/make.bat +0 -0
  175. {falco_cli-0.6.2 → falco_cli-0.6.3}/docs/the_cli/htmx.rst +0 -0
  176. {falco_cli-0.6.2 → falco_cli-0.6.3}/docs/the_cli/migrations.rst +0 -0
  177. {falco_cli-0.6.2 → falco_cli-0.6.3}/docs/the_cli/setup_admin.rst +0 -0
  178. {falco_cli-0.6.2 → falco_cli-0.6.3}/docs/the_cli/start_app.rst +0 -0
  179. {falco_cli-0.6.2 → falco_cli-0.6.3}/docs/the_cli/start_project.rst +0 -0
  180. {falco_cli-0.6.2 → falco_cli-0.6.3}/docs/the_cli/sync_dotenv.rst +0 -0
  181. {falco_cli-0.6.2 → falco_cli-0.6.3}/docs/the_cli/work.rst +0 -0
  182. {falco_cli-0.6.2 → falco_cli-0.6.3}/scripts/project_tree.py +0 -0
  183. {falco_cli-0.6.2 → falco_cli-0.6.3}/scripts/update_readme_guides.py +0 -0
  184. {falco_cli-0.6.2 → falco_cli-0.6.3}/src/falco/__init__.py +0 -0
  185. {falco_cli-0.6.2 → falco_cli-0.6.3}/src/falco/__main__.py +0 -0
  186. {falco_cli-0.6.2 → falco_cli-0.6.3}/src/falco/commands/__init__.py +0 -0
  187. {falco_cli-0.6.2 → falco_cli-0.6.3}/src/falco/commands/checks.py +0 -0
  188. {falco_cli-0.6.2 → falco_cli-0.6.3}/src/falco/commands/crud/__init__.py +0 -0
  189. {falco_cli-0.6.2 → falco_cli-0.6.3}/src/falco/commands/crud/install_crud_utils.py +0 -0
  190. {falco_cli-0.6.2 → falco_cli-0.6.3}/src/falco/commands/crud/model_crud.py +0 -0
  191. {falco_cli-0.6.2 → falco_cli-0.6.3}/src/falco/commands/crud/utils.py +0 -0
  192. {falco_cli-0.6.2 → falco_cli-0.6.3}/src/falco/commands/htmx.py +0 -0
  193. {falco_cli-0.6.2 → falco_cli-0.6.3}/src/falco/commands/htmx_extension.py +0 -0
  194. {falco_cli-0.6.2 → falco_cli-0.6.3}/src/falco/commands/reset_migrations.py +0 -0
  195. {falco_cli-0.6.2 → falco_cli-0.6.3}/src/falco/commands/rm_migrations.py +0 -0
  196. {falco_cli-0.6.2 → falco_cli-0.6.3}/src/falco/commands/setup_admin.py +0 -0
  197. {falco_cli-0.6.2 → falco_cli-0.6.3}/src/falco/commands/start_app.py +0 -0
  198. {falco_cli-0.6.2 → falco_cli-0.6.3}/src/falco/commands/start_project.py +0 -0
  199. {falco_cli-0.6.2 → falco_cli-0.6.3}/src/falco/commands/work.py +0 -0
  200. {falco_cli-0.6.2 → falco_cli-0.6.3}/src/falco/crud/html/create.html +0 -0
  201. {falco_cli-0.6.2 → falco_cli-0.6.3}/src/falco/crud/html/detail.html +0 -0
  202. {falco_cli-0.6.2 → falco_cli-0.6.3}/src/falco/crud/html/list.html +0 -0
  203. {falco_cli-0.6.2 → falco_cli-0.6.3}/src/falco/crud/html/update.html +0 -0
  204. {falco_cli-0.6.2 → falco_cli-0.6.3}/src/falco/crud/python/forms.py.jinja +0 -0
  205. {falco_cli-0.6.2 → falco_cli-0.6.3}/src/falco/crud/python/views.py.jinja +0 -0
  206. {falco_cli-0.6.2 → falco_cli-0.6.3}/src/falco/crud/utils/types.py.jinja +0 -0
  207. {falco_cli-0.6.2 → falco_cli-0.6.3}/src/falco/crud/utils/utils.py.jinja +0 -0
  208. {falco_cli-0.6.2 → falco_cli-0.6.3}/tests/__init__.py +0 -0
  209. {falco_cli-0.6.2 → falco_cli-0.6.3}/tests/commands/test_crud.py +0 -0
  210. {falco_cli-0.6.2 → falco_cli-0.6.3}/tests/commands/test_htmx.py +0 -0
  211. {falco_cli-0.6.2 → falco_cli-0.6.3}/tests/commands/test_htmx_extension.py +0 -0
  212. {falco_cli-0.6.2 → falco_cli-0.6.3}/tests/commands/test_install_crud_utils.py +0 -0
  213. {falco_cli-0.6.2 → falco_cli-0.6.3}/tests/commands/test_reset_migrations.py +0 -0
  214. {falco_cli-0.6.2 → falco_cli-0.6.3}/tests/commands/test_rm_migrations.py +0 -0
  215. {falco_cli-0.6.2 → falco_cli-0.6.3}/tests/commands/test_setup_admin.py +0 -0
  216. {falco_cli-0.6.2 → falco_cli-0.6.3}/tests/commands/test_start_app.py +0 -0
  217. {falco_cli-0.6.2 → falco_cli-0.6.3}/tests/commands/test_start_project.py +0 -0
  218. {falco_cli-0.6.2 → falco_cli-0.6.3}/tests/commands/test_sync_dotenv.py +0 -0
  219. {falco_cli-0.6.2 → falco_cli-0.6.3}/tests/conftest.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: falco-cli
3
- Version: 0.6.2
3
+ Version: 0.6.3
4
4
  Summary: Enhance your Django developer experience: CLI and Guides for the Modern Developer.
5
5
  Project-URL: Homepage, https://falco.oluwatobi.dev/
6
6
  Project-URL: Documentation, https://falco.oluwatobi.dev/
@@ -1,5 +1,7 @@
1
1
  from django.contrib import admin
2
- from django.urls import include, path, reverse_lazy
2
+ from django.urls import include
3
+ from django.urls import path
4
+ from django.urls import reverse_lazy
3
5
  from django.views.generic.base import RedirectView
4
6
 
5
7
  urlpatterns = [
@@ -21,7 +21,9 @@ extensions = [
21
21
  "sphinx.ext.extlinks",
22
22
  "myst_parser",
23
23
  "sphinx.ext.todo",
24
+ "sphinx.ext.autodoc",
24
25
  "sphinx_design",
26
+ "jupyter_sphinx",
25
27
  "sphinx_tabs.tabs",
26
28
  "sphinx_copybutton",
27
29
  "sphinx_togglebutton",
@@ -32,7 +32,7 @@ Lifecycle not signals
32
32
  I've come to fall in love with `django-lifecycle <https://github.com/rsinger86/django-lifecycle>`_ and their approach to hooking into
33
33
  your Django objects' lifecycle. Traditionally, the way of dealing with this in Django is using `signals <https://docs.djangoproject.com/en/dev/topics/signals/>`_. Even
34
34
  though there is a lot of criticism on using signals in the community, I think they can be particularly useful in certain scenarios (e.g: implementing a plugin system). However, one scenario where they are not beneficial in my humble opinion is in
35
- organizing business logic. In such cases, I personally favor ``django-lifecycle`` because it follows the ``fat models`` approach (essentially business logic in models), a practice I find more suitable in Django.
35
+ organizing business logic. In such cases, I personally favor ``django-lifecycle`` because it follows the django ``fat models`` approach (essentially business logic in models).
36
36
 
37
37
  Here is an example of using ``django-lifecycle`` straight from their README:
38
38
 
@@ -68,6 +68,13 @@ and unlikely to change or expand, then use whatever makes sense for them, even `
68
68
  .. Avoid huge apps for large projects
69
69
  .. ----------------------------------
70
70
 
71
+ Type Hinting
72
+ ------------
73
+
74
+ These days, I hardly write Django projects without implementing some level of type hinting. However, resources on this topic specific to Django are quite rare.
75
+ A good starting point is the `FAQ section <https://github.com/typeddjango/django-stubs#faq>`_ of the django-stubs README. It provides sufficient information to
76
+ navigate through most common use cases. Since I don't overuse type hinting, I find it more than enough.
77
+
71
78
  Generate admin
72
79
  --------------
73
80
 
@@ -125,6 +125,25 @@ If it is populated, we take the first value in the list and generate the templat
125
125
  If it is not populated, we use the classic Django layout, which is ``<app_label>/templates/<app_label>``. If you want an overview
126
126
  of what the templates look like, check out the `demo project <https://github.com/Tobi-De/falco/tree/main/demo/templates/products>`_.
127
127
 
128
+ Custom Templates
129
+ ****************
130
+
131
+ The ``crud`` command supports the ability to specify your own HTML templates using the ``--blueprints`` option.
132
+ This option only takes into account HTML files and will completely override the default templates. The HTML templates
133
+ use the `jinja2 <https://jinja.palletsprojects.com/en/3.1.x/>`_ syntax. To see examples of what the templates look like,
134
+ check out the base templates `here <https://github.com/Tobi-De/falco/tree/main/src/falco/crud/html>`_. Below is an example
135
+ of the context each template will receive.
136
+
137
+ .. jupyter-execute::
138
+ :hide-code:
139
+
140
+ from falco.commands.crud.model_crud import HtmlBlueprintContext
141
+ from inspect import get_annotations
142
+ from pprint import pprint
143
+
144
+ pprint(get_annotations(HtmlBlueprintContext))
145
+
146
+
128
147
  Examples
129
148
  ^^^^^^^^
130
149
 
@@ -29,6 +29,7 @@ Additionally, these commands require acces to your virtual environment, so make
29
29
  .. toctree::
30
30
  :hidden:
31
31
 
32
+ usage
32
33
  start_project
33
34
  start_app
34
35
  crud
@@ -0,0 +1,88 @@
1
+ :image: https://raw.githubusercontent.com/Tobi-De/falco/main/assets/falco-logo.svg
2
+ :description: A demonstration of the essential workflow of the Falco CLI, from generating a new project to creating CRUD views for a model.
3
+
4
+ Usage / Example
5
+ ===============
6
+
7
+ This page shows the optimal version of the initial falco workflow, from the generation of a new project to the creation of CRUD views for it.
8
+ This is supposed to represent the initial experience of a Falco CLI user, so if you can't reproduce this exact workflow described below without
9
+ any problems, it means there's a problem and please create a `new issue <https://github.com/Tobi-De/falco/issues/new>`_ for it.
10
+
11
+ Let's create a new project called `myjourney`, and the main app for it `entries`. Is is a journaling app, the entries app represent
12
+ every entry in the journal.
13
+
14
+ 1. Generate a new falco project
15
+
16
+ .. code-block:: bash
17
+
18
+ falco start-project myjourney
19
+
20
+ 2. Cd into the project directory
21
+
22
+ .. code-block:: bash
23
+
24
+ cd myjourney
25
+
26
+ 3. Create a new virtual environment with for the project and install dependences
27
+
28
+ .. code-block:: bash
29
+
30
+ hatch shell
31
+
32
+
33
+ 4. Initialite git and install pre-commit hooks
34
+
35
+ .. code-block:: bash
36
+
37
+ git init
38
+ pre-commit install
39
+
40
+ 5. Create a new `.env` file
41
+
42
+ .. code-block:: bash
43
+
44
+ falco sync-dotenv
45
+
46
+ 6. Fill in some values for the admin user
47
+
48
+ .. code-block:: text
49
+ :caption: .env
50
+
51
+ DJANGO_SUPERUSER_EMAIL=admin@mail.com
52
+ DJANGO_SUPERUSER_PASSWORD=admin
53
+
54
+ 7. Create the admin user
55
+
56
+ .. code-block:: bash
57
+
58
+ falco setup-admin
59
+
60
+ 8. Create the new app `entries`
61
+
62
+ .. code-block:: bash
63
+
64
+ falco start-app entries
65
+
66
+ 9. Add some fiels to your ``Entry`` model
67
+
68
+ .. code-block:: python
69
+
70
+ class Entry(TimeStampedModel):
71
+ # the TimeStampedModel adds the fields `created` and `modified` so we don't need to add them
72
+ title = models.CharField(max_length=255)
73
+ content = models.TextField()
74
+ created_by = models.ForeignKey("users.User", on_delete=models.CASCADE)
75
+
76
+ 10. Run your project
77
+
78
+ .. code-block:: bash
79
+
80
+ falco work
81
+
82
+
83
+ That's like 10 commands, for the result it get us, not so bad, but could be much better, for any suggestion on how to improve (reduce the steps) this
84
+ worklow, feel free to open a discussions at https://github.com/Tobi-De/falco/discussions.
85
+
86
+ .. todo::
87
+
88
+ Add screenshorts or give of the process and the resulting running app here.
@@ -101,6 +101,8 @@ dependencies = [
101
101
  "sphinx-togglebutton",
102
102
  "sphinxcontrib-mermaid",
103
103
  "sphinx-autorun",
104
+ "jupyter-sphinx",
105
+ "ipykernel",
104
106
  "sphinx-github-changelog",
105
107
  ]
106
108
 
@@ -1,4 +1,4 @@
1
1
  # SPDX-FileCopyrightText: 2023-present Tobi DEGNON <tobidegnon@proton.me>
2
2
  #
3
3
  # SPDX-License-Identifier: MIT
4
- __version__ = "0.6.2"
4
+ __version__ = "0.6.3"
@@ -3,7 +3,6 @@ from __future__ import annotations
3
3
  import secrets
4
4
  from pathlib import Path
5
5
  from typing import Annotated
6
-
7
6
  import cappa
8
7
  from dotenv import dotenv_values
9
8
  from dotenv import set_key
@@ -34,11 +34,13 @@ class FalcoConfig(TypedDict, total=False):
34
34
  crud_utils: str
35
35
 
36
36
 
37
- def write_falco_config(pyproject_path: Path, **kwargs: Unpack[TypedDict]) -> FalcoConfig:
37
+ def write_falco_config(
38
+ pyproject_path: Path, **kwargs: Unpack[TypedDict]
39
+ ) -> FalcoConfig:
38
40
  pyproject = tomlkit.parse(pyproject_path.read_text())
39
41
  existing_config = pyproject.get("tool", {}).get("falco", {})
40
42
  existing_config.update(**kwargs)
41
- pyproject["tool"] = {"falco": existing_config}
43
+ pyproject["tool"].update({"falco": existing_config})
42
44
  pyproject_path.write_text(tomlkit.dumps(pyproject))
43
45
  return pyproject
44
46
 
@@ -56,7 +58,9 @@ def get_pyproject_file() -> Path:
56
58
  pyproject_path = Path("pyproject.toml")
57
59
  if pyproject_path.exists():
58
60
  return pyproject_path
59
- raise cappa.Exit("Could not find a pyproject.toml file in the current directory.", code=1)
61
+ raise cappa.Exit(
62
+ "Could not find a pyproject.toml file in the current directory.", code=1
63
+ )
60
64
 
61
65
 
62
66
  def get_project_name() -> str:
@@ -70,7 +74,9 @@ def get_author_info():
70
74
 
71
75
 
72
76
  @contextmanager
73
- def simple_progress(description: str, display_text="[progress.description]{task.description}"):
77
+ def simple_progress(
78
+ description: str, display_text="[progress.description]{task.description}"
79
+ ):
74
80
  progress = Progress(SpinnerColumn(), TextColumn(display_text), transient=True)
75
81
  progress.add_task(description=description, total=None)
76
82
  try:
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes