falco-cli 0.0.4__tar.gz → 0.0.6__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 (123) hide show
  1. {falco_cli-0.0.4 → falco_cli-0.0.6}/.github/workflows/documentation.yml +1 -0
  2. {falco_cli-0.0.4 → falco_cli-0.0.6}/PKG-INFO +6 -3
  3. {falco_cli-0.0.4 → falco_cli-0.0.6}/README.md +4 -1
  4. {falco_cli-0.0.4 → falco_cli-0.0.6}/docs/.rich-codex.yml +1 -1
  5. {falco_cli-0.0.4 → falco_cli-0.0.6}/docs/conf.py +1 -0
  6. {falco_cli-0.0.4 → falco_cli-0.0.6}/docs/guides/avoiding_god_models.rst +1 -3
  7. {falco_cli-0.0.4 → falco_cli-0.0.6}/docs/guides/deployment.rst +6 -10
  8. falco_cli-0.0.6/docs/images/crud.svg +134 -0
  9. falco_cli-0.0.6/docs/images/project-tree.svg +194 -0
  10. falco_cli-0.0.6/docs/index.rst +41 -0
  11. {falco_cli-0.0.4 → falco_cli-0.0.6}/docs/the_cli/start_project.rst +2 -2
  12. {falco_cli-0.0.4 → falco_cli-0.0.6}/pyproject.toml +4 -1
  13. {falco_cli-0.0.4 → falco_cli-0.0.6}/src/falco/__about__.py +1 -1
  14. {falco_cli-0.0.4 → falco_cli-0.0.6}/src/falco/__main__.py +9 -1
  15. {falco_cli-0.0.4 → falco_cli-0.0.6}/src/falco/commands/htmx.py +17 -5
  16. {falco_cli-0.0.4 → falco_cli-0.0.6}/src/falco/commands/htmx_extension.py +3 -1
  17. {falco_cli-0.0.4 → falco_cli-0.0.6}/src/falco/commands/model_crud.py +105 -52
  18. {falco_cli-0.0.4 → falco_cli-0.0.6}/src/falco/commands/rm_migrations.py +3 -1
  19. {falco_cli-0.0.4 → falco_cli-0.0.6}/src/falco/commands/sync_dotenv.py +6 -2
  20. falco_cli-0.0.4/docs/images/crud.svg +0 -122
  21. falco_cli-0.0.4/docs/images/project-tree.svg +0 -70
  22. falco_cli-0.0.4/docs/index.rst +0 -23
  23. {falco_cli-0.0.4 → falco_cli-0.0.6}/.github/dependabot.yml +0 -0
  24. {falco_cli-0.0.4 → falco_cli-0.0.6}/.github/workflows/ci.yml +0 -0
  25. {falco_cli-0.0.4 → falco_cli-0.0.6}/.github/workflows/pre-commit-auto-update.yml +0 -0
  26. {falco_cli-0.0.4 → falco_cli-0.0.6}/.gitignore +0 -0
  27. {falco_cli-0.0.4 → falco_cli-0.0.6}/.pre-commit-config.yaml +0 -0
  28. {falco_cli-0.0.4 → falco_cli-0.0.6}/CODE_OF_CONDUCT.md +0 -0
  29. {falco_cli-0.0.4 → falco_cli-0.0.6}/LICENSE +0 -0
  30. {falco_cli-0.0.4 → falco_cli-0.0.6}/assets/falco-logo.svg +0 -0
  31. {falco_cli-0.0.4 → falco_cli-0.0.6}/demo/demo/__init__.py +0 -0
  32. {falco_cli-0.0.4 → falco_cli-0.0.6}/demo/demo/asgi.py +0 -0
  33. {falco_cli-0.0.4 → falco_cli-0.0.6}/demo/demo/settings.py +0 -0
  34. {falco_cli-0.0.4 → falco_cli-0.0.6}/demo/demo/urls.py +0 -0
  35. {falco_cli-0.0.4 → falco_cli-0.0.6}/demo/demo/wsgi.py +0 -0
  36. {falco_cli-0.0.4 → falco_cli-0.0.6}/demo/manage.py +0 -0
  37. {falco_cli-0.0.4 → falco_cli-0.0.6}/demo/products/__init__.py +0 -0
  38. {falco_cli-0.0.4 → falco_cli-0.0.6}/demo/products/admin.py +0 -0
  39. {falco_cli-0.0.4 → falco_cli-0.0.6}/demo/products/apps.py +0 -0
  40. {falco_cli-0.0.4 → falco_cli-0.0.6}/demo/products/migrations/__init__.py +0 -0
  41. {falco_cli-0.0.4 → falco_cli-0.0.6}/demo/products/models.py +0 -0
  42. {falco_cli-0.0.4 → falco_cli-0.0.6}/demo/products/tests.py +0 -0
  43. {falco_cli-0.0.4 → falco_cli-0.0.6}/docs/Makefile +0 -0
  44. {falco_cli-0.0.4 → falco_cli-0.0.6}/docs/_templates/partials/globaltoc-above.html +0 -0
  45. {falco_cli-0.0.4 → falco_cli-0.0.6}/docs/codeofconduct.rst +0 -0
  46. {falco_cli-0.0.4 → falco_cli-0.0.6}/docs/contributing.rst +0 -0
  47. {falco_cli-0.0.4 → falco_cli-0.0.6}/docs/guides/database_tips.rst +0 -0
  48. {falco_cli-0.0.4 → falco_cli-0.0.6}/docs/guides/dynamic_model_schema.rst +0 -0
  49. {falco_cli-0.0.4 → falco_cli-0.0.6}/docs/guides/index.rst +0 -0
  50. {falco_cli-0.0.4 → falco_cli-0.0.6}/docs/guides/interactive_user_experience_with_htmx.rst +0 -0
  51. {falco_cli-0.0.4 → falco_cli-0.0.6}/docs/guides/logging_and_monitoring.rst +0 -0
  52. {falco_cli-0.0.4 → falco_cli-0.0.6}/docs/guides/multitenancy.rst +0 -0
  53. {falco_cli-0.0.4 → falco_cli-0.0.6}/docs/guides/optimizing_database_access.rst +0 -0
  54. {falco_cli-0.0.4 → falco_cli-0.0.6}/docs/guides/permissions_and_authorization.rst +0 -0
  55. {falco_cli-0.0.4 → falco_cli-0.0.6}/docs/guides/realtime.rst +0 -0
  56. {falco_cli-0.0.4 → falco_cli-0.0.6}/docs/guides/running_project_in_a_container.rst +0 -0
  57. {falco_cli-0.0.4 → falco_cli-0.0.6}/docs/guides/task_queues_and_schedulers.rst +0 -0
  58. {falco_cli-0.0.4 → falco_cli-0.0.6}/docs/guides/use_sqlite_in_production.rst +0 -0
  59. {falco_cli-0.0.4 → falco_cli-0.0.6}/docs/guides/writing_documentation.rst +0 -0
  60. {falco_cli-0.0.4 → falco_cli-0.0.6}/docs/guides/writing_tests.rst +0 -0
  61. {falco_cli-0.0.4 → falco_cli-0.0.6}/docs/guides/writting_async_code.rst +0 -0
  62. {falco_cli-0.0.4 → falco_cli-0.0.6}/docs/images/E1.svg +0 -0
  63. {falco_cli-0.0.4 → falco_cli-0.0.6}/docs/images/falco.svg +0 -0
  64. {falco_cli-0.0.4 → falco_cli-0.0.6}/docs/images/htmx-ext.svg +0 -0
  65. {falco_cli-0.0.4 → falco_cli-0.0.6}/docs/images/htmx.svg +0 -0
  66. {falco_cli-0.0.4 → falco_cli-0.0.6}/docs/images/logo_with_text.svg +0 -0
  67. {falco_cli-0.0.4 → falco_cli-0.0.6}/docs/images/rm-migrations.svg +0 -0
  68. {falco_cli-0.0.4 → falco_cli-0.0.6}/docs/images/start-project.svg +0 -0
  69. {falco_cli-0.0.4 → falco_cli-0.0.6}/docs/images/sync-dotenv.svg +0 -0
  70. {falco_cli-0.0.4 → falco_cli-0.0.6}/docs/images/work.svg +0 -0
  71. {falco_cli-0.0.4 → falco_cli-0.0.6}/docs/install.rst +0 -0
  72. {falco_cli-0.0.4 → falco_cli-0.0.6}/docs/license.rst +0 -0
  73. {falco_cli-0.0.4 → falco_cli-0.0.6}/docs/make.bat +0 -0
  74. {falco_cli-0.0.4 → falco_cli-0.0.6}/docs/the_cli/crud.rst +0 -0
  75. {falco_cli-0.0.4 → falco_cli-0.0.6}/docs/the_cli/htmx.rst +0 -0
  76. {falco_cli-0.0.4 → falco_cli-0.0.6}/docs/the_cli/index.rst +0 -0
  77. {falco_cli-0.0.4 → falco_cli-0.0.6}/docs/the_cli/rm_migrations.rst +0 -0
  78. {falco_cli-0.0.4 → falco_cli-0.0.6}/docs/the_cli/sync_dotenv.rst +0 -0
  79. {falco_cli-0.0.4 → falco_cli-0.0.6}/docs/the_cli/work.rst +0 -0
  80. {falco_cli-0.0.4 → falco_cli-0.0.6}/docs/tips_and_extra.rst +0 -0
  81. {falco_cli-0.0.4 → falco_cli-0.0.6}/keep_readme_up_to_date.py +0 -0
  82. {falco_cli-0.0.4 → falco_cli-0.0.6}/src/falco/__init__.py +0 -0
  83. {falco_cli-0.0.4 → falco_cli-0.0.6}/src/falco/commands/__init__.py +0 -0
  84. {falco_cli-0.0.4 → falco_cli-0.0.6}/src/falco/commands/start_project.py +0 -0
  85. {falco_cli-0.0.4 → falco_cli-0.0.6}/src/falco/commands/work.py +0 -0
  86. {falco_cli-0.0.4 → falco_cli-0.0.6}/src/falco/utils.py +0 -0
  87. {falco_cli-0.0.4 → falco_cli-0.0.6}/src/falco_blueprints/__init__.py +0 -0
  88. /falco_cli-0.0.4/src/falco_blueprints/crud/forms.py.tpl → /falco_cli-0.0.6/src/falco_blueprints/crud/forms.py.bp +0 -0
  89. /falco_cli-0.0.4/src/falco_blueprints/crud/views.py.tpl → /falco_cli-0.0.6/src/falco_blueprints/crud/views.py.bp +0 -0
  90. {falco_cli-0.0.4 → falco_cli-0.0.6}/src/falco_blueprints/project_name/.env.template +0 -0
  91. {falco_cli-0.0.4 → falco_cli-0.0.6}/src/falco_blueprints/project_name/.github/dependabot.yml +0 -0
  92. {falco_cli-0.0.4 → falco_cli-0.0.6}/src/falco_blueprints/project_name/.github/workflows/ci.yml +0 -0
  93. {falco_cli-0.0.4 → falco_cli-0.0.6}/src/falco_blueprints/project_name/.gitignore +0 -0
  94. {falco_cli-0.0.4 → falco_cli-0.0.6}/src/falco_blueprints/project_name/.pre-commit-config.yaml +0 -0
  95. {falco_cli-0.0.4 → falco_cli-0.0.6}/src/falco_blueprints/project_name/README.md +0 -0
  96. {falco_cli-0.0.4 → falco_cli-0.0.6}/src/falco_blueprints/project_name/config/__init__.py +0 -0
  97. {falco_cli-0.0.4 → falco_cli-0.0.6}/src/falco_blueprints/project_name/config/asgi.py +0 -0
  98. {falco_cli-0.0.4 → falco_cli-0.0.6}/src/falco_blueprints/project_name/config/settings.py +0 -0
  99. {falco_cli-0.0.4 → falco_cli-0.0.6}/src/falco_blueprints/project_name/config/urls.py +0 -0
  100. {falco_cli-0.0.4 → falco_cli-0.0.6}/src/falco_blueprints/project_name/config/wsgi.py +0 -0
  101. {falco_cli-0.0.4 → falco_cli-0.0.6}/src/falco_blueprints/project_name/docker/Dockerfile +0 -0
  102. {falco_cli-0.0.4 → falco_cli-0.0.6}/src/falco_blueprints/project_name/docker/__init__.py +0 -0
  103. {falco_cli-0.0.4 → falco_cli-0.0.6}/src/falco_blueprints/project_name/docker/entrypoint.sh +0 -0
  104. {falco_cli-0.0.4 → falco_cli-0.0.6}/src/falco_blueprints/project_name/manage.py +0 -0
  105. {falco_cli-0.0.4 → falco_cli-0.0.6}/src/falco_blueprints/project_name/playground.ipynb +0 -0
  106. {falco_cli-0.0.4 → falco_cli-0.0.6}/src/falco_blueprints/project_name/project_name/__init__.py +0 -0
  107. {falco_cli-0.0.4 → falco_cli-0.0.6}/src/falco_blueprints/project_name/project_name/core/__init__.py +0 -0
  108. {falco_cli-0.0.4 → falco_cli-0.0.6}/src/falco_blueprints/project_name/project_name/core/apps.py +0 -0
  109. {falco_cli-0.0.4 → falco_cli-0.0.6}/src/falco_blueprints/project_name/project_name/core/management/__init__.py +0 -0
  110. {falco_cli-0.0.4 → falco_cli-0.0.6}/src/falco_blueprints/project_name/project_name/core/management/commands/__init__.py +0 -0
  111. {falco_cli-0.0.4 → falco_cli-0.0.6}/src/falco_blueprints/project_name/project_name/core/management/commands/makesuperuser.py +0 -0
  112. {falco_cli-0.0.4 → falco_cli-0.0.6}/src/falco_blueprints/project_name/project_name/static/vendors/htmx/htmx.min.js +0 -0
  113. {falco_cli-0.0.4 → falco_cli-0.0.6}/src/falco_blueprints/project_name/project_name/templates/base.html +0 -0
  114. {falco_cli-0.0.4 → falco_cli-0.0.6}/src/falco_blueprints/project_name/project_name/templates/home.html +0 -0
  115. {falco_cli-0.0.4 → falco_cli-0.0.6}/src/falco_blueprints/project_name/project_name/users/__init__.py +0 -0
  116. {falco_cli-0.0.4 → falco_cli-0.0.6}/src/falco_blueprints/project_name/project_name/users/admin.py +0 -0
  117. {falco_cli-0.0.4 → falco_cli-0.0.6}/src/falco_blueprints/project_name/project_name/users/apps.py +0 -0
  118. {falco_cli-0.0.4 → falco_cli-0.0.6}/src/falco_blueprints/project_name/project_name/users/migrations/0001_initial.py +0 -0
  119. {falco_cli-0.0.4 → falco_cli-0.0.6}/src/falco_blueprints/project_name/project_name/users/migrations/__init__.py +0 -0
  120. {falco_cli-0.0.4 → falco_cli-0.0.6}/src/falco_blueprints/project_name/project_name/users/models.py +0 -0
  121. {falco_cli-0.0.4 → falco_cli-0.0.6}/src/falco_blueprints/project_name/pyproject.toml +0 -0
  122. {falco_cli-0.0.4 → falco_cli-0.0.6}/tests/__init__.py +0 -0
  123. {falco_cli-0.0.4 → falco_cli-0.0.6}/tests/conftest.py +0 -0
@@ -25,3 +25,4 @@ jobs:
25
25
  github_token: ${{ secrets.GITHUB_TOKEN }}
26
26
  publish_dir: _build/
27
27
  force_orphan: true
28
+ cname: falco.oluwatobi.dev
@@ -1,6 +1,7 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: falco-cli
3
- Version: 0.0.4
3
+ Version: 0.0.6
4
+ Project-URL: Homepage, https://falco.oluwatobi.dev/
4
5
  Project-URL: Documentation, https://falco.oluwatobi.dev/
5
6
  Project-URL: Issues, https://github.com/tobi-de/falco/issues
6
7
  Project-URL: Source, https://github.com/tobi-de/falco
@@ -27,7 +28,6 @@ Requires-Dist: cappa
27
28
  Requires-Dist: django<5
28
29
  Requires-Dist: honcho
29
30
  Requires-Dist: httpx
30
- Requires-Dist: hupper
31
31
  Requires-Dist: isort
32
32
  Requires-Dist: python-dotenv
33
33
  Requires-Dist: rich
@@ -53,6 +53,7 @@ Description-Content-Type: text/markdown
53
53
  > [!WARNING]
54
54
  > This is a work in progress (WIP), this is also [fuzzy-couscous](https://github.com/Tobi-De/fuzzy-couscous) new cooler brother.
55
55
 
56
+ <!-- start-docs -->
56
57
 
57
58
  Intro here....
58
59
 
@@ -101,7 +102,7 @@ If you don't find any use of the CLI, I hope you will in these guides. This is a
101
102
  - [Task Queues and Schedulers](https://falco.oluwatobi.dev/guides/task_queues_and_schedulers.html)
102
103
  - [Interactive UX (User Experience) with HTMX](https://falco.oluwatobi.dev/guides/interactive_user_experience_with_htmx.html)
103
104
  - [Running your project in a single container](https://falco.oluwatobi.dev/guides/running_project_in_a_container.html)
104
- - [The django deployment guide](https://falco.oluwatobi.dev/guides/deployment.html)
105
+ - [Deploy your app](https://falco.oluwatobi.dev/guides/deployment.html)
105
106
  - [Permissions and authorizations](https://falco.oluwatobi.dev/guides/permissions_and_authorization.html)
106
107
  - [Writing tests](https://falco.oluwatobi.dev/guides/writing_tests.html)
107
108
  - [Logging and monitoring](https://falco.oluwatobi.dev/guides/logging_and_monitoring.html)
@@ -114,3 +115,5 @@ Falco is inspired by (and borrows elements from) some excellent starter template
114
115
  - [cookiecutter-django](https://github.com/cookiecutter/cookiecutter-django)
115
116
  - [django-hatch-startproject](https://github.com/oliverandrich/django-hatch-startproject)
116
117
  - [django-unicorn](https://github.com/adamghill/django-unicorn) (Inspiration for the logo)
118
+
119
+ <!-- end-docs -->
@@ -17,6 +17,7 @@
17
17
  > [!WARNING]
18
18
  > This is a work in progress (WIP), this is also [fuzzy-couscous](https://github.com/Tobi-De/fuzzy-couscous) new cooler brother.
19
19
 
20
+ <!-- start-docs -->
20
21
 
21
22
  Intro here....
22
23
 
@@ -65,7 +66,7 @@ If you don't find any use of the CLI, I hope you will in these guides. This is a
65
66
  - [Task Queues and Schedulers](https://falco.oluwatobi.dev/guides/task_queues_and_schedulers.html)
66
67
  - [Interactive UX (User Experience) with HTMX](https://falco.oluwatobi.dev/guides/interactive_user_experience_with_htmx.html)
67
68
  - [Running your project in a single container](https://falco.oluwatobi.dev/guides/running_project_in_a_container.html)
68
- - [The django deployment guide](https://falco.oluwatobi.dev/guides/deployment.html)
69
+ - [Deploy your app](https://falco.oluwatobi.dev/guides/deployment.html)
69
70
  - [Permissions and authorizations](https://falco.oluwatobi.dev/guides/permissions_and_authorization.html)
70
71
  - [Writing tests](https://falco.oluwatobi.dev/guides/writing_tests.html)
71
72
  - [Logging and monitoring](https://falco.oluwatobi.dev/guides/logging_and_monitoring.html)
@@ -78,3 +79,5 @@ Falco is inspired by (and borrows elements from) some excellent starter template
78
79
  - [cookiecutter-django](https://github.com/cookiecutter/cookiecutter-django)
79
80
  - [django-hatch-startproject](https://github.com/oliverandrich/django-hatch-startproject)
80
81
  - [django-unicorn](https://github.com/adamghill/django-unicorn) (Inspiration for the logo)
82
+
83
+ <!-- end-docs -->
@@ -7,7 +7,7 @@ outputs:
7
7
  img_paths:
8
8
  - docs/images/start-project.svg
9
9
 
10
- - command: "tree -L 3 templates/start_project/project_name"
10
+ - command: "tree -L 3 src/falco_blueprints/project_name"
11
11
  img_paths:
12
12
  - docs/images/project-tree.svg
13
13
 
@@ -24,6 +24,7 @@ extensions = [
24
24
  "sphinx_copybutton",
25
25
  "sphinx_togglebutton",
26
26
  "sphinx_autorun",
27
+ "cappa.ext.docutils",
27
28
  ]
28
29
  extlinks = {
29
30
  "pull": ("https://github.com/tobi-de/falco/pull/%s", "pull request #%s"),
@@ -4,8 +4,6 @@ Avoiding GOD Models
4
4
  ===================
5
5
 
6
6
 
7
- ----
8
-
9
7
 
10
8
  Proxy models
11
- ------------
9
+ ------------
@@ -1,7 +1,7 @@
1
1
  :description: Smooth Deployment Strategies for django projects
2
2
 
3
- The django deployment guide
4
- ===========================
3
+ Deploy your app
4
+ ===============
5
5
 
6
6
 
7
7
  Intro
@@ -63,15 +63,11 @@ to ease your burden or a least docker as a bare minimum. Deployment is not worth
63
63
  Paas and rent a VPS
64
64
 
65
65
 
66
- Someone else computer a.k.a the cloud
67
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
66
+ Managed solutions
67
+ ^^^^^^^^^^^^^^^^^
68
68
 
69
69
  I don't have much experience with these, but are relatively similarly price and quite easy to use, so you can just use one.
70
70
 
71
-
72
- P.A.A.S
73
- *******
74
-
75
71
  * `Fly <https://fly.io/>`_
76
72
  * `Render <https://render.com/>`_
77
73
  * `AWS Elastic Beanstalk <https://aws.amazon.com/elasticbeanstalk/>`_
@@ -80,8 +76,8 @@ P.A.A.S
80
76
  * `Appliku <https://appliku.com>`_
81
77
 
82
78
 
83
- Self hosting
84
- ^^^^^^^^^^^^
79
+ Self-Managed solutions
80
+ ^^^^^^^^^^^^^^^^^^^^^^
85
81
 
86
82
  If you are new to it, the term **self-hosting** might be misguidind, usually people use self-hosting to just mean you rent a vps and to the work yourself
87
83
  instead of paying someone else to do it for you. It might be cheaper but if you want to do real **self-hosting** you technically need to by you own hardware.
@@ -0,0 +1,134 @@
1
+ <svg class="rich-terminal" viewBox="0 0 994 538.0" xmlns="http://www.w3.org/2000/svg">
2
+ <!-- Generated with Rich https://www.textualize.io -->
3
+ <style>
4
+
5
+ @font-face {
6
+ font-family: "Fira Code";
7
+ src: local("FiraCode-Regular"),
8
+ url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff2/FiraCode-Regular.woff2") format("woff2"),
9
+ url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff/FiraCode-Regular.woff") format("woff");
10
+ font-style: normal;
11
+ font-weight: 400;
12
+ }
13
+ @font-face {
14
+ font-family: "Fira Code";
15
+ src: local("FiraCode-Bold"),
16
+ url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff2/FiraCode-Bold.woff2") format("woff2"),
17
+ url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff/FiraCode-Bold.woff") format("woff");
18
+ font-style: bold;
19
+ font-weight: 700;
20
+ }
21
+
22
+ .terminal-1926350139-matrix {
23
+ font-family: Fira Code, monospace;
24
+ font-size: 20px;
25
+ line-height: 24.4px;
26
+ font-variant-east-asian: full-width;
27
+ }
28
+
29
+ .terminal-1926350139-title {
30
+ font-size: 18px;
31
+ font-weight: bold;
32
+ font-family: arial;
33
+ }
34
+
35
+ .terminal-1926350139-r1 { fill: #d9d9d9 }
36
+ </style>
37
+
38
+ <defs>
39
+ <clipPath id="terminal-1926350139-clip-terminal">
40
+ <rect x="0" y="0" width="975.0" height="487.0" />
41
+ </clipPath>
42
+ <clipPath id="terminal-1926350139-line-0">
43
+ <rect x="0" y="1.5" width="976" height="24.65"/>
44
+ </clipPath>
45
+ <clipPath id="terminal-1926350139-line-1">
46
+ <rect x="0" y="25.9" width="976" height="24.65"/>
47
+ </clipPath>
48
+ <clipPath id="terminal-1926350139-line-2">
49
+ <rect x="0" y="50.3" width="976" height="24.65"/>
50
+ </clipPath>
51
+ <clipPath id="terminal-1926350139-line-3">
52
+ <rect x="0" y="74.7" width="976" height="24.65"/>
53
+ </clipPath>
54
+ <clipPath id="terminal-1926350139-line-4">
55
+ <rect x="0" y="99.1" width="976" height="24.65"/>
56
+ </clipPath>
57
+ <clipPath id="terminal-1926350139-line-5">
58
+ <rect x="0" y="123.5" width="976" height="24.65"/>
59
+ </clipPath>
60
+ <clipPath id="terminal-1926350139-line-6">
61
+ <rect x="0" y="147.9" width="976" height="24.65"/>
62
+ </clipPath>
63
+ <clipPath id="terminal-1926350139-line-7">
64
+ <rect x="0" y="172.3" width="976" height="24.65"/>
65
+ </clipPath>
66
+ <clipPath id="terminal-1926350139-line-8">
67
+ <rect x="0" y="196.7" width="976" height="24.65"/>
68
+ </clipPath>
69
+ <clipPath id="terminal-1926350139-line-9">
70
+ <rect x="0" y="221.1" width="976" height="24.65"/>
71
+ </clipPath>
72
+ <clipPath id="terminal-1926350139-line-10">
73
+ <rect x="0" y="245.5" width="976" height="24.65"/>
74
+ </clipPath>
75
+ <clipPath id="terminal-1926350139-line-11">
76
+ <rect x="0" y="269.9" width="976" height="24.65"/>
77
+ </clipPath>
78
+ <clipPath id="terminal-1926350139-line-12">
79
+ <rect x="0" y="294.3" width="976" height="24.65"/>
80
+ </clipPath>
81
+ <clipPath id="terminal-1926350139-line-13">
82
+ <rect x="0" y="318.7" width="976" height="24.65"/>
83
+ </clipPath>
84
+ <clipPath id="terminal-1926350139-line-14">
85
+ <rect x="0" y="343.1" width="976" height="24.65"/>
86
+ </clipPath>
87
+ <clipPath id="terminal-1926350139-line-15">
88
+ <rect x="0" y="367.5" width="976" height="24.65"/>
89
+ </clipPath>
90
+ <clipPath id="terminal-1926350139-line-16">
91
+ <rect x="0" y="391.9" width="976" height="24.65"/>
92
+ </clipPath>
93
+ <clipPath id="terminal-1926350139-line-17">
94
+ <rect x="0" y="416.3" width="976" height="24.65"/>
95
+ </clipPath>
96
+ <clipPath id="terminal-1926350139-line-18">
97
+ <rect x="0" y="440.7" width="976" height="24.65"/>
98
+ </clipPath>
99
+ </defs>
100
+
101
+ <rect fill="#0c0c0c" stroke="rgba(255,255,255,0.35)" stroke-width="1" x="1" y="1" width="992" height="536" rx="8"/>
102
+ <g transform="translate(26,22)">
103
+ <circle cx="0" cy="0" r="7" fill="#ff5f57"/>
104
+ <circle cx="22" cy="0" r="7" fill="#febc2e"/>
105
+ <circle cx="44" cy="0" r="7" fill="#28c840"/>
106
+ </g>
107
+
108
+ <g transform="translate(9, 41)" clip-path="url(#terminal-1926350139-clip-terminal)">
109
+
110
+ <g class="terminal-1926350139-matrix">
111
+ <text class="terminal-1926350139-r1" x="0" y="20" textLength="231.8" clip-path="url(#terminal-1926350139-line-0)">$&#160;falco&#160;crud&#160;--help</text><text class="terminal-1926350139-r1" x="976" y="20" textLength="12.2" clip-path="url(#terminal-1926350139-line-0)">
112
+ </text><text class="terminal-1926350139-r1" x="0" y="44.4" textLength="866.2" clip-path="url(#terminal-1926350139-line-1)">Usage:&#160;falco&#160;crud&#160;[-s&#160;SETTINGS_MODULE]&#160;[-b&#160;BLUEPRINTS]&#160;[--only-python]&#160;</text><text class="terminal-1926350139-r1" x="976" y="44.4" textLength="12.2" clip-path="url(#terminal-1926350139-line-1)">
113
+ </text><text class="terminal-1926350139-r1" x="0" y="68.8" textLength="353.8" clip-path="url(#terminal-1926350139-line-2)">[--only-html]&#160;MODEL_PATH&#160;[-h]</text><text class="terminal-1926350139-r1" x="976" y="68.8" textLength="12.2" clip-path="url(#terminal-1926350139-line-2)">
114
+ </text><text class="terminal-1926350139-r1" x="976" y="93.2" textLength="12.2" clip-path="url(#terminal-1926350139-line-3)">
115
+ </text><text class="terminal-1926350139-r1" x="0" y="117.6" textLength="976" clip-path="url(#terminal-1926350139-line-4)">&#160;&#160;Generate&#160;CRUD&#160;(Create,&#160;Read,&#160;Update,&#160;Delete)&#160;views&#160;for&#160;a&#160;model.&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text class="terminal-1926350139-r1" x="976" y="117.6" textLength="12.2" clip-path="url(#terminal-1926350139-line-4)">
116
+ </text><text class="terminal-1926350139-r1" x="976" y="142" textLength="12.2" clip-path="url(#terminal-1926350139-line-5)">
117
+ </text><text class="terminal-1926350139-r1" x="0" y="166.4" textLength="976" clip-path="url(#terminal-1926350139-line-6)">&#160;&#160;Options&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text class="terminal-1926350139-r1" x="976" y="166.4" textLength="12.2" clip-path="url(#terminal-1926350139-line-6)">
118
+ </text><text class="terminal-1926350139-r1" x="0" y="190.8" textLength="976" clip-path="url(#terminal-1926350139-line-7)">&#160;&#160;&#160;&#160;[-s,&#160;--settings&#160;SETTINGS_MODULE]&#160;&#160;The&#160;django&#160;settings&#160;module&#160;to&#160;use.&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text class="terminal-1926350139-r1" x="976" y="190.8" textLength="12.2" clip-path="url(#terminal-1926350139-line-7)">
119
+ </text><text class="terminal-1926350139-r1" x="0" y="215.2" textLength="976" clip-path="url(#terminal-1926350139-line-8)">&#160;&#160;&#160;&#160;[-b,&#160;--blueprints&#160;BLUEPRINTS]&#160;&#160;&#160;&#160;&#160;The&#160;path&#160;to&#160;custom&#160;html&#160;templates&#160;that&#160;&#160;&#160;&#160;</text><text class="terminal-1926350139-r1" x="976" y="215.2" textLength="12.2" clip-path="url(#terminal-1926350139-line-8)">
120
+ </text><text class="terminal-1926350139-r1" x="0" y="239.6" textLength="976" clip-path="url(#terminal-1926350139-line-9)">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;will&#160;server&#160;as&#160;blueprints.&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text class="terminal-1926350139-r1" x="976" y="239.6" textLength="12.2" clip-path="url(#terminal-1926350139-line-9)">
121
+ </text><text class="terminal-1926350139-r1" x="0" y="264" textLength="976" clip-path="url(#terminal-1926350139-line-10)">&#160;&#160;&#160;&#160;[--only-python]&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;Generate&#160;only&#160;python.&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text class="terminal-1926350139-r1" x="976" y="264" textLength="12.2" clip-path="url(#terminal-1926350139-line-10)">
122
+ </text><text class="terminal-1926350139-r1" x="0" y="288.4" textLength="976" clip-path="url(#terminal-1926350139-line-11)">&#160;&#160;&#160;&#160;[--only-html]&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;Generate&#160;only&#160;html.&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text class="terminal-1926350139-r1" x="976" y="288.4" textLength="12.2" clip-path="url(#terminal-1926350139-line-11)">
123
+ </text><text class="terminal-1926350139-r1" x="976" y="312.8" textLength="12.2" clip-path="url(#terminal-1926350139-line-12)">
124
+ </text><text class="terminal-1926350139-r1" x="0" y="337.2" textLength="976" clip-path="url(#terminal-1926350139-line-13)">&#160;&#160;Arguments&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text class="terminal-1926350139-r1" x="976" y="337.2" textLength="12.2" clip-path="url(#terminal-1926350139-line-13)">
125
+ </text><text class="terminal-1926350139-r1" x="0" y="361.6" textLength="976" clip-path="url(#terminal-1926350139-line-14)">&#160;&#160;&#160;&#160;MODEL_PATH&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;The&#160;path&#160;(&lt;app_label&gt;.&lt;model&#160;name&gt;)&#160;of&#160;the</text><text class="terminal-1926350139-r1" x="976" y="361.6" textLength="12.2" clip-path="url(#terminal-1926350139-line-14)">
126
+ </text><text class="terminal-1926350139-r1" x="0" y="386" textLength="976" clip-path="url(#terminal-1926350139-line-15)">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;model&#160;to&#160;generate&#160;CRUD&#160;views&#160;for.&#160;Ex:&#160;&#160;&#160;&#160;&#160;</text><text class="terminal-1926350139-r1" x="976" y="386" textLength="12.2" clip-path="url(#terminal-1926350139-line-15)">
127
+ </text><text class="terminal-1926350139-r1" x="0" y="410.4" textLength="976" clip-path="url(#terminal-1926350139-line-16)">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;myapp.product&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text class="terminal-1926350139-r1" x="976" y="410.4" textLength="12.2" clip-path="url(#terminal-1926350139-line-16)">
128
+ </text><text class="terminal-1926350139-r1" x="976" y="434.8" textLength="12.2" clip-path="url(#terminal-1926350139-line-17)">
129
+ </text><text class="terminal-1926350139-r1" x="0" y="459.2" textLength="976" clip-path="url(#terminal-1926350139-line-18)">&#160;&#160;Help&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text class="terminal-1926350139-r1" x="976" y="459.2" textLength="12.2" clip-path="url(#terminal-1926350139-line-18)">
130
+ </text><text class="terminal-1926350139-r1" x="0" y="483.6" textLength="793" clip-path="url(#terminal-1926350139-line-19)">&#160;&#160;&#160;&#160;[-h,&#160;--help]&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;Show&#160;this&#160;message&#160;and&#160;exit.</text><text class="terminal-1926350139-r1" x="976" y="483.6" textLength="12.2" clip-path="url(#terminal-1926350139-line-19)">
131
+ </text>
132
+ </g>
133
+ </g>
134
+ </svg>
@@ -0,0 +1,194 @@
1
+ <svg class="rich-terminal" viewBox="0 0 994 904.0" xmlns="http://www.w3.org/2000/svg">
2
+ <!-- Generated with Rich https://www.textualize.io -->
3
+ <style>
4
+
5
+ @font-face {
6
+ font-family: "Fira Code";
7
+ src: local("FiraCode-Regular"),
8
+ url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff2/FiraCode-Regular.woff2") format("woff2"),
9
+ url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff/FiraCode-Regular.woff") format("woff");
10
+ font-style: normal;
11
+ font-weight: 400;
12
+ }
13
+ @font-face {
14
+ font-family: "Fira Code";
15
+ src: local("FiraCode-Bold"),
16
+ url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff2/FiraCode-Bold.woff2") format("woff2"),
17
+ url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff/FiraCode-Bold.woff") format("woff");
18
+ font-style: bold;
19
+ font-weight: 700;
20
+ }
21
+
22
+ .terminal-1521612260-matrix {
23
+ font-family: Fira Code, monospace;
24
+ font-size: 20px;
25
+ line-height: 24.4px;
26
+ font-variant-east-asian: full-width;
27
+ }
28
+
29
+ .terminal-1521612260-title {
30
+ font-size: 18px;
31
+ font-weight: bold;
32
+ font-family: arial;
33
+ }
34
+
35
+ .terminal-1521612260-r1 { fill: #d9d9d9 }
36
+ </style>
37
+
38
+ <defs>
39
+ <clipPath id="terminal-1521612260-clip-terminal">
40
+ <rect x="0" y="0" width="975.0" height="853.0" />
41
+ </clipPath>
42
+ <clipPath id="terminal-1521612260-line-0">
43
+ <rect x="0" y="1.5" width="976" height="24.65"/>
44
+ </clipPath>
45
+ <clipPath id="terminal-1521612260-line-1">
46
+ <rect x="0" y="25.9" width="976" height="24.65"/>
47
+ </clipPath>
48
+ <clipPath id="terminal-1521612260-line-2">
49
+ <rect x="0" y="50.3" width="976" height="24.65"/>
50
+ </clipPath>
51
+ <clipPath id="terminal-1521612260-line-3">
52
+ <rect x="0" y="74.7" width="976" height="24.65"/>
53
+ </clipPath>
54
+ <clipPath id="terminal-1521612260-line-4">
55
+ <rect x="0" y="99.1" width="976" height="24.65"/>
56
+ </clipPath>
57
+ <clipPath id="terminal-1521612260-line-5">
58
+ <rect x="0" y="123.5" width="976" height="24.65"/>
59
+ </clipPath>
60
+ <clipPath id="terminal-1521612260-line-6">
61
+ <rect x="0" y="147.9" width="976" height="24.65"/>
62
+ </clipPath>
63
+ <clipPath id="terminal-1521612260-line-7">
64
+ <rect x="0" y="172.3" width="976" height="24.65"/>
65
+ </clipPath>
66
+ <clipPath id="terminal-1521612260-line-8">
67
+ <rect x="0" y="196.7" width="976" height="24.65"/>
68
+ </clipPath>
69
+ <clipPath id="terminal-1521612260-line-9">
70
+ <rect x="0" y="221.1" width="976" height="24.65"/>
71
+ </clipPath>
72
+ <clipPath id="terminal-1521612260-line-10">
73
+ <rect x="0" y="245.5" width="976" height="24.65"/>
74
+ </clipPath>
75
+ <clipPath id="terminal-1521612260-line-11">
76
+ <rect x="0" y="269.9" width="976" height="24.65"/>
77
+ </clipPath>
78
+ <clipPath id="terminal-1521612260-line-12">
79
+ <rect x="0" y="294.3" width="976" height="24.65"/>
80
+ </clipPath>
81
+ <clipPath id="terminal-1521612260-line-13">
82
+ <rect x="0" y="318.7" width="976" height="24.65"/>
83
+ </clipPath>
84
+ <clipPath id="terminal-1521612260-line-14">
85
+ <rect x="0" y="343.1" width="976" height="24.65"/>
86
+ </clipPath>
87
+ <clipPath id="terminal-1521612260-line-15">
88
+ <rect x="0" y="367.5" width="976" height="24.65"/>
89
+ </clipPath>
90
+ <clipPath id="terminal-1521612260-line-16">
91
+ <rect x="0" y="391.9" width="976" height="24.65"/>
92
+ </clipPath>
93
+ <clipPath id="terminal-1521612260-line-17">
94
+ <rect x="0" y="416.3" width="976" height="24.65"/>
95
+ </clipPath>
96
+ <clipPath id="terminal-1521612260-line-18">
97
+ <rect x="0" y="440.7" width="976" height="24.65"/>
98
+ </clipPath>
99
+ <clipPath id="terminal-1521612260-line-19">
100
+ <rect x="0" y="465.1" width="976" height="24.65"/>
101
+ </clipPath>
102
+ <clipPath id="terminal-1521612260-line-20">
103
+ <rect x="0" y="489.5" width="976" height="24.65"/>
104
+ </clipPath>
105
+ <clipPath id="terminal-1521612260-line-21">
106
+ <rect x="0" y="513.9" width="976" height="24.65"/>
107
+ </clipPath>
108
+ <clipPath id="terminal-1521612260-line-22">
109
+ <rect x="0" y="538.3" width="976" height="24.65"/>
110
+ </clipPath>
111
+ <clipPath id="terminal-1521612260-line-23">
112
+ <rect x="0" y="562.7" width="976" height="24.65"/>
113
+ </clipPath>
114
+ <clipPath id="terminal-1521612260-line-24">
115
+ <rect x="0" y="587.1" width="976" height="24.65"/>
116
+ </clipPath>
117
+ <clipPath id="terminal-1521612260-line-25">
118
+ <rect x="0" y="611.5" width="976" height="24.65"/>
119
+ </clipPath>
120
+ <clipPath id="terminal-1521612260-line-26">
121
+ <rect x="0" y="635.9" width="976" height="24.65"/>
122
+ </clipPath>
123
+ <clipPath id="terminal-1521612260-line-27">
124
+ <rect x="0" y="660.3" width="976" height="24.65"/>
125
+ </clipPath>
126
+ <clipPath id="terminal-1521612260-line-28">
127
+ <rect x="0" y="684.7" width="976" height="24.65"/>
128
+ </clipPath>
129
+ <clipPath id="terminal-1521612260-line-29">
130
+ <rect x="0" y="709.1" width="976" height="24.65"/>
131
+ </clipPath>
132
+ <clipPath id="terminal-1521612260-line-30">
133
+ <rect x="0" y="733.5" width="976" height="24.65"/>
134
+ </clipPath>
135
+ <clipPath id="terminal-1521612260-line-31">
136
+ <rect x="0" y="757.9" width="976" height="24.65"/>
137
+ </clipPath>
138
+ <clipPath id="terminal-1521612260-line-32">
139
+ <rect x="0" y="782.3" width="976" height="24.65"/>
140
+ </clipPath>
141
+ <clipPath id="terminal-1521612260-line-33">
142
+ <rect x="0" y="806.7" width="976" height="24.65"/>
143
+ </clipPath>
144
+ </defs>
145
+
146
+ <rect fill="#0c0c0c" stroke="rgba(255,255,255,0.35)" stroke-width="1" x="1" y="1" width="992" height="902" rx="8"/>
147
+ <g transform="translate(26,22)">
148
+ <circle cx="0" cy="0" r="7" fill="#ff5f57"/>
149
+ <circle cx="22" cy="0" r="7" fill="#febc2e"/>
150
+ <circle cx="44" cy="0" r="7" fill="#28c840"/>
151
+ </g>
152
+
153
+ <g transform="translate(9, 41)" clip-path="url(#terminal-1521612260-clip-terminal)">
154
+
155
+ <g class="terminal-1521612260-matrix">
156
+ <text class="terminal-1521612260-r1" x="0" y="20" textLength="549" clip-path="url(#terminal-1521612260-line-0)">$&#160;tree&#160;-L&#160;3&#160;src/falco_blueprints/project_name</text><text class="terminal-1521612260-r1" x="976" y="20" textLength="12.2" clip-path="url(#terminal-1521612260-line-0)">
157
+ </text><text class="terminal-1521612260-r1" x="0" y="44.4" textLength="402.6" clip-path="url(#terminal-1521612260-line-1)">src/falco_blueprints/project_name</text><text class="terminal-1521612260-r1" x="976" y="44.4" textLength="12.2" clip-path="url(#terminal-1521612260-line-1)">
158
+ </text><text class="terminal-1521612260-r1" x="0" y="68.8" textLength="158.6" clip-path="url(#terminal-1521612260-line-2)">├──&#160;README.md</text><text class="terminal-1521612260-r1" x="976" y="68.8" textLength="12.2" clip-path="url(#terminal-1521612260-line-2)">
159
+ </text><text class="terminal-1521612260-r1" x="0" y="93.2" textLength="122" clip-path="url(#terminal-1521612260-line-3)">├──&#160;config</text><text class="terminal-1521612260-r1" x="976" y="93.2" textLength="12.2" clip-path="url(#terminal-1521612260-line-3)">
160
+ </text><text class="terminal-1521612260-r1" x="0" y="117.6" textLength="231.8" clip-path="url(#terminal-1521612260-line-4)">│  &#160;├──&#160;__init__.py</text><text class="terminal-1521612260-r1" x="976" y="117.6" textLength="12.2" clip-path="url(#terminal-1521612260-line-4)">
161
+ </text><text class="terminal-1521612260-r1" x="0" y="142" textLength="183" clip-path="url(#terminal-1521612260-line-5)">│  &#160;├──&#160;asgi.py</text><text class="terminal-1521612260-r1" x="976" y="142" textLength="12.2" clip-path="url(#terminal-1521612260-line-5)">
162
+ </text><text class="terminal-1521612260-r1" x="0" y="166.4" textLength="231.8" clip-path="url(#terminal-1521612260-line-6)">│  &#160;├──&#160;settings.py</text><text class="terminal-1521612260-r1" x="976" y="166.4" textLength="12.2" clip-path="url(#terminal-1521612260-line-6)">
163
+ </text><text class="terminal-1521612260-r1" x="0" y="190.8" textLength="183" clip-path="url(#terminal-1521612260-line-7)">│  &#160;├──&#160;urls.py</text><text class="terminal-1521612260-r1" x="976" y="190.8" textLength="12.2" clip-path="url(#terminal-1521612260-line-7)">
164
+ </text><text class="terminal-1521612260-r1" x="0" y="215.2" textLength="183" clip-path="url(#terminal-1521612260-line-8)">│  &#160;└──&#160;wsgi.py</text><text class="terminal-1521612260-r1" x="976" y="215.2" textLength="12.2" clip-path="url(#terminal-1521612260-line-8)">
165
+ </text><text class="terminal-1521612260-r1" x="0" y="239.6" textLength="122" clip-path="url(#terminal-1521612260-line-9)">├──&#160;docker</text><text class="terminal-1521612260-r1" x="976" y="239.6" textLength="12.2" clip-path="url(#terminal-1521612260-line-9)">
166
+ </text><text class="terminal-1521612260-r1" x="0" y="264" textLength="219.6" clip-path="url(#terminal-1521612260-line-10)">│  &#160;├──&#160;Dockerfile</text><text class="terminal-1521612260-r1" x="976" y="264" textLength="12.2" clip-path="url(#terminal-1521612260-line-10)">
167
+ </text><text class="terminal-1521612260-r1" x="0" y="288.4" textLength="231.8" clip-path="url(#terminal-1521612260-line-11)">│  &#160;├──&#160;__init__.py</text><text class="terminal-1521612260-r1" x="976" y="288.4" textLength="12.2" clip-path="url(#terminal-1521612260-line-11)">
168
+ </text><text class="terminal-1521612260-r1" x="0" y="312.8" textLength="256.2" clip-path="url(#terminal-1521612260-line-12)">│  &#160;└──&#160;entrypoint.sh</text><text class="terminal-1521612260-r1" x="976" y="312.8" textLength="12.2" clip-path="url(#terminal-1521612260-line-12)">
169
+ </text><text class="terminal-1521612260-r1" x="0" y="337.2" textLength="158.6" clip-path="url(#terminal-1521612260-line-13)">├──&#160;manage.py</text><text class="terminal-1521612260-r1" x="976" y="337.2" textLength="12.2" clip-path="url(#terminal-1521612260-line-13)">
170
+ </text><text class="terminal-1521612260-r1" x="0" y="361.6" textLength="244" clip-path="url(#terminal-1521612260-line-14)">├──&#160;playground.ipynb</text><text class="terminal-1521612260-r1" x="976" y="361.6" textLength="12.2" clip-path="url(#terminal-1521612260-line-14)">
171
+ </text><text class="terminal-1521612260-r1" x="0" y="386" textLength="195.2" clip-path="url(#terminal-1521612260-line-15)">├──&#160;project_name</text><text class="terminal-1521612260-r1" x="976" y="386" textLength="12.2" clip-path="url(#terminal-1521612260-line-15)">
172
+ </text><text class="terminal-1521612260-r1" x="0" y="410.4" textLength="231.8" clip-path="url(#terminal-1521612260-line-16)">│  &#160;├──&#160;__init__.py</text><text class="terminal-1521612260-r1" x="976" y="410.4" textLength="12.2" clip-path="url(#terminal-1521612260-line-16)">
173
+ </text><text class="terminal-1521612260-r1" x="0" y="434.8" textLength="146.4" clip-path="url(#terminal-1521612260-line-17)">│  &#160;├──&#160;core</text><text class="terminal-1521612260-r1" x="976" y="434.8" textLength="12.2" clip-path="url(#terminal-1521612260-line-17)">
174
+ </text><text class="terminal-1521612260-r1" x="0" y="459.2" textLength="280.6" clip-path="url(#terminal-1521612260-line-18)">│  &#160;│  &#160;├──&#160;__init__.py</text><text class="terminal-1521612260-r1" x="976" y="459.2" textLength="12.2" clip-path="url(#terminal-1521612260-line-18)">
175
+ </text><text class="terminal-1521612260-r1" x="0" y="483.6" textLength="231.8" clip-path="url(#terminal-1521612260-line-19)">│  &#160;│  &#160;├──&#160;apps.py</text><text class="terminal-1521612260-r1" x="976" y="483.6" textLength="12.2" clip-path="url(#terminal-1521612260-line-19)">
176
+ </text><text class="terminal-1521612260-r1" x="0" y="508" textLength="268.4" clip-path="url(#terminal-1521612260-line-20)">│  &#160;│  &#160;└──&#160;management</text><text class="terminal-1521612260-r1" x="976" y="508" textLength="12.2" clip-path="url(#terminal-1521612260-line-20)">
177
+ </text><text class="terminal-1521612260-r1" x="0" y="532.4" textLength="170.8" clip-path="url(#terminal-1521612260-line-21)">│  &#160;├──&#160;static</text><text class="terminal-1521612260-r1" x="976" y="532.4" textLength="12.2" clip-path="url(#terminal-1521612260-line-21)">
178
+ </text><text class="terminal-1521612260-r1" x="0" y="556.8" textLength="231.8" clip-path="url(#terminal-1521612260-line-22)">│  &#160;│  &#160;└──&#160;vendors</text><text class="terminal-1521612260-r1" x="976" y="556.8" textLength="12.2" clip-path="url(#terminal-1521612260-line-22)">
179
+ </text><text class="terminal-1521612260-r1" x="0" y="581.2" textLength="207.4" clip-path="url(#terminal-1521612260-line-23)">│  &#160;├──&#160;templates</text><text class="terminal-1521612260-r1" x="976" y="581.2" textLength="12.2" clip-path="url(#terminal-1521612260-line-23)">
180
+ </text><text class="terminal-1521612260-r1" x="0" y="605.6" textLength="256.2" clip-path="url(#terminal-1521612260-line-24)">│  &#160;│  &#160;├──&#160;base.html</text><text class="terminal-1521612260-r1" x="976" y="605.6" textLength="12.2" clip-path="url(#terminal-1521612260-line-24)">
181
+ </text><text class="terminal-1521612260-r1" x="0" y="630" textLength="256.2" clip-path="url(#terminal-1521612260-line-25)">│  &#160;│  &#160;└──&#160;home.html</text><text class="terminal-1521612260-r1" x="976" y="630" textLength="12.2" clip-path="url(#terminal-1521612260-line-25)">
182
+ </text><text class="terminal-1521612260-r1" x="0" y="654.4" textLength="158.6" clip-path="url(#terminal-1521612260-line-26)">│  &#160;└──&#160;users</text><text class="terminal-1521612260-r1" x="976" y="654.4" textLength="12.2" clip-path="url(#terminal-1521612260-line-26)">
183
+ </text><text class="terminal-1521612260-r1" x="0" y="678.8" textLength="280.6" clip-path="url(#terminal-1521612260-line-27)">│  &#160;&#160;&#160;&#160;&#160;├──&#160;__init__.py</text><text class="terminal-1521612260-r1" x="976" y="678.8" textLength="12.2" clip-path="url(#terminal-1521612260-line-27)">
184
+ </text><text class="terminal-1521612260-r1" x="0" y="703.2" textLength="244" clip-path="url(#terminal-1521612260-line-28)">│  &#160;&#160;&#160;&#160;&#160;├──&#160;admin.py</text><text class="terminal-1521612260-r1" x="976" y="703.2" textLength="12.2" clip-path="url(#terminal-1521612260-line-28)">
185
+ </text><text class="terminal-1521612260-r1" x="0" y="727.6" textLength="231.8" clip-path="url(#terminal-1521612260-line-29)">│  &#160;&#160;&#160;&#160;&#160;├──&#160;apps.py</text><text class="terminal-1521612260-r1" x="976" y="727.6" textLength="12.2" clip-path="url(#terminal-1521612260-line-29)">
186
+ </text><text class="terminal-1521612260-r1" x="0" y="752" textLength="268.4" clip-path="url(#terminal-1521612260-line-30)">│  &#160;&#160;&#160;&#160;&#160;├──&#160;migrations</text><text class="terminal-1521612260-r1" x="976" y="752" textLength="12.2" clip-path="url(#terminal-1521612260-line-30)">
187
+ </text><text class="terminal-1521612260-r1" x="0" y="776.4" textLength="256.2" clip-path="url(#terminal-1521612260-line-31)">│  &#160;&#160;&#160;&#160;&#160;└──&#160;models.py</text><text class="terminal-1521612260-r1" x="976" y="776.4" textLength="12.2" clip-path="url(#terminal-1521612260-line-31)">
188
+ </text><text class="terminal-1521612260-r1" x="0" y="800.8" textLength="219.6" clip-path="url(#terminal-1521612260-line-32)">└──&#160;pyproject.toml</text><text class="terminal-1521612260-r1" x="976" y="800.8" textLength="12.2" clip-path="url(#terminal-1521612260-line-32)">
189
+ </text><text class="terminal-1521612260-r1" x="976" y="825.2" textLength="12.2" clip-path="url(#terminal-1521612260-line-33)">
190
+ </text><text class="terminal-1521612260-r1" x="0" y="849.6" textLength="292.8" clip-path="url(#terminal-1521612260-line-34)">11&#160;directories,&#160;21&#160;files</text><text class="terminal-1521612260-r1" x="976" y="849.6" textLength="12.2" clip-path="url(#terminal-1521612260-line-34)">
191
+ </text>
192
+ </g>
193
+ </g>
194
+ </svg>
@@ -0,0 +1,41 @@
1
+
2
+ .. figure:: https://raw.githubusercontent.com/Tobi-De/falco/main/assets/falco-logo.svg
3
+ :width: 200
4
+ :height: 200
5
+ :align: center
6
+
7
+
8
+ .. raw:: html
9
+
10
+ <div style="display: flex; flex-wrap: wrap; gap: 10px;">
11
+ <img src="https://github.com/Tobi-De/falco/actions/workflows/documentation.yml/badge.svg">
12
+ <img src="https://github.com/Tobi-De/falco/actions/workflows/ci.yml/badge.svg">
13
+ <img src="https://badge.fury.io/py/falco-cli.svg">
14
+ <img src="https://img.shields.io/badge/%F0%9F%A5%9A-Hatch-4051b5.svg">
15
+ <img src="https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/v2.json">
16
+ <img src="https://img.shields.io/badge/license-MIT-blue.svg">
17
+ </div>
18
+
19
+
20
+ .. include:: ../README.md
21
+ :parser: myst_parser.sphinx_
22
+ :start-after: <!-- start-docs -->
23
+ :end-before: <!-- end-docs -->
24
+
25
+
26
+ .. toctree::
27
+ :caption: Getting started
28
+ :hidden:
29
+
30
+ install
31
+ the_cli/index
32
+ guides/index
33
+ tips_and_extra
34
+
35
+ .. toctree::
36
+ :caption: Development
37
+ :hidden:
38
+
39
+ contributing
40
+ codeofconduct
41
+ license
@@ -41,7 +41,7 @@ Features
41
41
  - `Sentry <https://sentry.io/welcome/>`_ for performance/error monitoring
42
42
  - Serve static files with `Whitenoise <https://whitenoise.evans.io/en/latest/>`_
43
43
  - Default integration with `pre-commit <https://github.com/pre-commit/pre-commit>`_ for identifying simple issues before submission to code review
44
- - Dependency management using `hatch <https://github.com/pypa/hatch>`_
44
+ - Dependency management using `hatch <https://github.com/pypa/hatch>`_
45
45
 
46
46
 
47
47
 
@@ -104,7 +104,7 @@ Browser reload
104
104
  --------------
105
105
 
106
106
  Debug Toolbar
107
- ------------
107
+ -------------
108
108
 
109
109
 
110
110
  Logging
@@ -29,7 +29,7 @@ classifiers = [
29
29
  ]
30
30
  dependencies = [
31
31
  "django<5",
32
- "hupper",
32
+ # "cappa @ git+https://github.com/DanCardin/cappa.git@dc90d801f247a802e82f3a888cba553d114e0569",
33
33
  "cappa",
34
34
  "rich",
35
35
  "httpx",
@@ -40,11 +40,14 @@ dependencies = [
40
40
  "black",
41
41
  "isort",
42
42
  ]
43
+ [tool.hatch.metadata]
44
+ allow-direct-references = true
43
45
 
44
46
  [project.scripts]
45
47
  falco = "falco.__main__:main"
46
48
 
47
49
  [project.urls]
50
+ Homepage = "https://falco.oluwatobi.dev/"
48
51
  Documentation = "https://falco.oluwatobi.dev/"
49
52
  Issues = "https://github.com/tobi-de/falco/issues"
50
53
  Source = "https://github.com/tobi-de/falco"
@@ -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.0.4"
4
+ __version__ = "0.0.6"
@@ -16,7 +16,15 @@ from falco.commands import Work
16
16
  """,
17
17
  )
18
18
  class Falco:
19
- subcommand: cappa.Subcommands[StartProject | ModelCRUD | Htmx | HtmxExtension | Work | SyncDotenv | RmMigrations]
19
+ subcommand: cappa.Subcommands[
20
+ StartProject
21
+ | ModelCRUD
22
+ | Htmx
23
+ | HtmxExtension
24
+ | Work
25
+ | SyncDotenv
26
+ | RmMigrations
27
+ ]
20
28
 
21
29
 
22
30
  def main():