forge-mvc 1.0.0b1__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 (470) hide show
  1. forge_mvc-1.0.0b1/LICENSE +36 -0
  2. forge_mvc-1.0.0b1/PKG-INFO +918 -0
  3. forge_mvc-1.0.0b1/README.md +887 -0
  4. forge_mvc-1.0.0b1/core/__init__.py +2 -0
  5. forge_mvc-1.0.0b1/core/api_routes_loader.py +25 -0
  6. forge_mvc-1.0.0b1/core/application.py +66 -0
  7. forge_mvc-1.0.0b1/core/auth/__init__.py +207 -0
  8. forge_mvc-1.0.0b1/core/auth/audit.py +314 -0
  9. forge_mvc-1.0.0b1/core/auth/email.py +94 -0
  10. forge_mvc-1.0.0b1/core/auth/exceptions.py +35 -0
  11. forge_mvc-1.0.0b1/core/auth/password.py +50 -0
  12. forge_mvc-1.0.0b1/core/auth/rate_limit.py +398 -0
  13. forge_mvc-1.0.0b1/core/auth/reset.py +211 -0
  14. forge_mvc-1.0.0b1/core/auth/session.py +143 -0
  15. forge_mvc-1.0.0b1/core/auth/tokens.py +186 -0
  16. forge_mvc-1.0.0b1/core/auth/user.py +94 -0
  17. forge_mvc-1.0.0b1/core/database/__init__.py +0 -0
  18. forge_mvc-1.0.0b1/core/database/connection.py +71 -0
  19. forge_mvc-1.0.0b1/core/database/db.py +54 -0
  20. forge_mvc-1.0.0b1/core/database/sql_loader.py +74 -0
  21. forge_mvc-1.0.0b1/core/database/transaction.py +34 -0
  22. forge_mvc-1.0.0b1/core/forge.py +88 -0
  23. forge_mvc-1.0.0b1/core/forms/__init__.py +44 -0
  24. forge_mvc-1.0.0b1/core/forms/exceptions.py +9 -0
  25. forge_mvc-1.0.0b1/core/forms/fields.py +549 -0
  26. forge_mvc-1.0.0b1/core/forms/form.py +138 -0
  27. forge_mvc-1.0.0b1/core/http/__init__.py +4 -0
  28. forge_mvc-1.0.0b1/core/http/helpers.py +37 -0
  29. forge_mvc-1.0.0b1/core/http/request.py +160 -0
  30. forge_mvc-1.0.0b1/core/http/response.py +20 -0
  31. forge_mvc-1.0.0b1/core/http/router.py +200 -0
  32. forge_mvc-1.0.0b1/core/i18n/__init__.py +22 -0
  33. forge_mvc-1.0.0b1/core/i18n/exceptions.py +6 -0
  34. forge_mvc-1.0.0b1/core/i18n/translator.py +88 -0
  35. forge_mvc-1.0.0b1/core/mail/__init__.py +44 -0
  36. forge_mvc-1.0.0b1/core/mail/config.py +93 -0
  37. forge_mvc-1.0.0b1/core/mail/exceptions.py +18 -0
  38. forge_mvc-1.0.0b1/core/mail/log.py +94 -0
  39. forge_mvc-1.0.0b1/core/mail/mailer.py +101 -0
  40. forge_mvc-1.0.0b1/core/mail/message.py +101 -0
  41. forge_mvc-1.0.0b1/core/mail/smtp.py +78 -0
  42. forge_mvc-1.0.0b1/core/mail/templates.py +94 -0
  43. forge_mvc-1.0.0b1/core/mail/transports.py +178 -0
  44. forge_mvc-1.0.0b1/core/modules/__init__.py +88 -0
  45. forge_mvc-1.0.0b1/core/modules/discovery.py +43 -0
  46. forge_mvc-1.0.0b1/core/modules/files.py +225 -0
  47. forge_mvc-1.0.0b1/core/modules/manifest.py +169 -0
  48. forge_mvc-1.0.0b1/core/modules/registry.py +157 -0
  49. forge_mvc-1.0.0b1/core/modules/remove.py +232 -0
  50. forge_mvc-1.0.0b1/core/modules/routes.py +252 -0
  51. forge_mvc-1.0.0b1/core/mvc/__init__.py +0 -0
  52. forge_mvc-1.0.0b1/core/mvc/controller/__init__.py +9 -0
  53. forge_mvc-1.0.0b1/core/mvc/controller/base_controller.py +142 -0
  54. forge_mvc-1.0.0b1/core/mvc/controller/registry.py +26 -0
  55. forge_mvc-1.0.0b1/core/mvc/model/__init__.py +0 -0
  56. forge_mvc-1.0.0b1/core/mvc/model/exceptions.py +12 -0
  57. forge_mvc-1.0.0b1/core/mvc/model/validator.py +38 -0
  58. forge_mvc-1.0.0b1/core/mvc/view/__init__.py +0 -0
  59. forge_mvc-1.0.0b1/core/mvc/view/pagination.py +80 -0
  60. forge_mvc-1.0.0b1/core/runtime_error_logger.py +142 -0
  61. forge_mvc-1.0.0b1/core/runtime_error_markdown.py +184 -0
  62. forge_mvc-1.0.0b1/core/runtime_errors.py +254 -0
  63. forge_mvc-1.0.0b1/core/security/__init__.py +0 -0
  64. forge_mvc-1.0.0b1/core/security/api_auth.py +82 -0
  65. forge_mvc-1.0.0b1/core/security/csp.py +48 -0
  66. forge_mvc-1.0.0b1/core/security/decorators.py +67 -0
  67. forge_mvc-1.0.0b1/core/security/hashing.py +93 -0
  68. forge_mvc-1.0.0b1/core/security/middleware.py +64 -0
  69. forge_mvc-1.0.0b1/core/security/session.py +118 -0
  70. forge_mvc-1.0.0b1/core/sessions/__init__.py +20 -0
  71. forge_mvc-1.0.0b1/core/sessions/contract.py +59 -0
  72. forge_mvc-1.0.0b1/core/sessions/file_store.py +205 -0
  73. forge_mvc-1.0.0b1/core/sessions/keys.py +28 -0
  74. forge_mvc-1.0.0b1/core/sessions/manager.py +13 -0
  75. forge_mvc-1.0.0b1/core/sessions/mariadb_store.py +216 -0
  76. forge_mvc-1.0.0b1/core/sessions/memory_store.py +142 -0
  77. forge_mvc-1.0.0b1/core/templating/__init__.py +0 -0
  78. forge_mvc-1.0.0b1/core/templating/contracts.py +6 -0
  79. forge_mvc-1.0.0b1/core/templating/manager.py +20 -0
  80. forge_mvc-1.0.0b1/core/uploads/__init__.py +77 -0
  81. forge_mvc-1.0.0b1/core/uploads/exceptions.py +18 -0
  82. forge_mvc-1.0.0b1/core/uploads/image.py +173 -0
  83. forge_mvc-1.0.0b1/core/uploads/manager.py +140 -0
  84. forge_mvc-1.0.0b1/core/uploads/media_gallery.py +75 -0
  85. forge_mvc-1.0.0b1/core/uploads/media_repository.py +216 -0
  86. forge_mvc-1.0.0b1/core/uploads/rate_limit.py +53 -0
  87. forge_mvc-1.0.0b1/core/uploads/storage.py +170 -0
  88. forge_mvc-1.0.0b1/core/uploads/validators.py +77 -0
  89. forge_mvc-1.0.0b1/core/validation/__init__.py +25 -0
  90. forge_mvc-1.0.0b1/core/validation/decorators.py +218 -0
  91. forge_mvc-1.0.0b1/core/validation/exceptions.py +10 -0
  92. forge_mvc-1.0.0b1/forge.py +623 -0
  93. forge_mvc-1.0.0b1/forge_cli/__init__.py +1 -0
  94. forge_mvc-1.0.0b1/forge_cli/auth.py +1161 -0
  95. forge_mvc-1.0.0b1/forge_cli/deploy.py +357 -0
  96. forge_mvc-1.0.0b1/forge_cli/docs/__init__.py +1 -0
  97. forge_mvc-1.0.0b1/forge_cli/docs/quarkdown.py +107 -0
  98. forge_mvc-1.0.0b1/forge_cli/doctor.py +350 -0
  99. forge_mvc-1.0.0b1/forge_cli/entities/__init__.py +1 -0
  100. forge_mvc-1.0.0b1/forge_cli/entities/crud/__init__.py +109 -0
  101. forge_mvc-1.0.0b1/forge_cli/entities/crud/context.py +80 -0
  102. forge_mvc-1.0.0b1/forge_cli/entities/crud/controller_builder.py +837 -0
  103. forge_mvc-1.0.0b1/forge_cli/entities/crud/form_builder.py +173 -0
  104. forge_mvc-1.0.0b1/forge_cli/entities/crud/model_builder.py +254 -0
  105. forge_mvc-1.0.0b1/forge_cli/entities/crud/relations_loader.py +197 -0
  106. forge_mvc-1.0.0b1/forge_cli/entities/crud/utils.py +135 -0
  107. forge_mvc-1.0.0b1/forge_cli/entities/crud/views_builder.py +769 -0
  108. forge_mvc-1.0.0b1/forge_cli/entities/db_apply.py +182 -0
  109. forge_mvc-1.0.0b1/forge_cli/entities/db_init.py +244 -0
  110. forge_mvc-1.0.0b1/forge_cli/entities/make_crud.py +287 -0
  111. forge_mvc-1.0.0b1/forge_cli/entities/make_entity.py +825 -0
  112. forge_mvc-1.0.0b1/forge_cli/entities/make_relation.py +299 -0
  113. forge_mvc-1.0.0b1/forge_cli/entities/migrations.py +875 -0
  114. forge_mvc-1.0.0b1/forge_cli/entities/model.py +356 -0
  115. forge_mvc-1.0.0b1/forge_cli/entities/relations.py +595 -0
  116. forge_mvc-1.0.0b1/forge_cli/entities/validation.py +829 -0
  117. forge_mvc-1.0.0b1/forge_cli/errors.py +27 -0
  118. forge_mvc-1.0.0b1/forge_cli/front.py +155 -0
  119. forge_mvc-1.0.0b1/forge_cli/help.py +102 -0
  120. forge_mvc-1.0.0b1/forge_cli/i18n.py +138 -0
  121. forge_mvc-1.0.0b1/forge_cli/mail.py +466 -0
  122. forge_mvc-1.0.0b1/forge_cli/modules.py +326 -0
  123. forge_mvc-1.0.0b1/forge_cli/output.py +46 -0
  124. forge_mvc-1.0.0b1/forge_cli/project_audit.py +448 -0
  125. forge_mvc-1.0.0b1/forge_cli/project_check.py +280 -0
  126. forge_mvc-1.0.0b1/forge_cli/project_config.py +53 -0
  127. forge_mvc-1.0.0b1/forge_cli/project_profiles.py +41 -0
  128. forge_mvc-1.0.0b1/forge_cli/public_contact.py +121 -0
  129. forge_mvc-1.0.0b1/forge_cli/public_form.py +512 -0
  130. forge_mvc-1.0.0b1/forge_cli/public_list.py +821 -0
  131. forge_mvc-1.0.0b1/forge_cli/public_page.py +274 -0
  132. forge_mvc-1.0.0b1/forge_cli/public_show.py +9 -0
  133. forge_mvc-1.0.0b1/forge_cli/starters/__init__.py +105 -0
  134. forge_mvc-1.0.0b1/forge_cli/starters/_exceptions.py +2 -0
  135. forge_mvc-1.0.0b1/forge_cli/starters/builder.py +473 -0
  136. forge_mvc-1.0.0b1/forge_cli/starters/data/auth-mfa/files/mvc/controllers/auth_controller.py +152 -0
  137. forge_mvc-1.0.0b1/forge_cli/starters/data/auth-mfa/files/mvc/controllers/mfa_challenge_controller.py +118 -0
  138. forge_mvc-1.0.0b1/forge_cli/starters/data/auth-mfa/routes.py.snippet +4 -0
  139. forge_mvc-1.0.0b1/forge_cli/starters/data/auth-mfa/starter.json +15 -0
  140. forge_mvc-1.0.0b1/forge_cli/starters/data/carnet-contacts/entities/contact.json +53 -0
  141. forge_mvc-1.0.0b1/forge_cli/starters/data/carnet-contacts/entities/ville.json +31 -0
  142. forge_mvc-1.0.0b1/forge_cli/starters/data/carnet-contacts/files/mvc/controllers/contact_controller.py +158 -0
  143. forge_mvc-1.0.0b1/forge_cli/starters/data/carnet-contacts/files/mvc/controllers/ville_controller.py +13 -0
  144. forge_mvc-1.0.0b1/forge_cli/starters/data/carnet-contacts/files/mvc/forms/__init__.py +1 -0
  145. forge_mvc-1.0.0b1/forge_cli/starters/data/carnet-contacts/files/mvc/forms/contact_form.py +15 -0
  146. forge_mvc-1.0.0b1/forge_cli/starters/data/carnet-contacts/files/mvc/models/contact_model.py +76 -0
  147. forge_mvc-1.0.0b1/forge_cli/starters/data/carnet-contacts/files/mvc/models/ville_model.py +12 -0
  148. forge_mvc-1.0.0b1/forge_cli/starters/data/carnet-contacts/files/mvc/views/contact/form.html +73 -0
  149. forge_mvc-1.0.0b1/forge_cli/starters/data/carnet-contacts/files/mvc/views/contact/index.html +63 -0
  150. forge_mvc-1.0.0b1/forge_cli/starters/data/carnet-contacts/files/mvc/views/contact/show.html +37 -0
  151. forge_mvc-1.0.0b1/forge_cli/starters/data/carnet-contacts/files/mvc/views/layouts/app.html +27 -0
  152. forge_mvc-1.0.0b1/forge_cli/starters/data/carnet-contacts/files/mvc/views/ville/index.html +32 -0
  153. forge_mvc-1.0.0b1/forge_cli/starters/data/carnet-contacts/files/scripts/seed_villes.py +85 -0
  154. forge_mvc-1.0.0b1/forge_cli/starters/data/carnet-contacts/relations.json +16 -0
  155. forge_mvc-1.0.0b1/forge_cli/starters/data/carnet-contacts/routes.py.snippet +16 -0
  156. forge_mvc-1.0.0b1/forge_cli/starters/data/carnet-contacts/starter.json +38 -0
  157. forge_mvc-1.0.0b1/forge_cli/starters/data/communes-sejours/files/mvc/controllers/communes_sejours_controller.py +140 -0
  158. forge_mvc-1.0.0b1/forge_cli/starters/data/communes-sejours/files/mvc/entities/commune/commune.json +45 -0
  159. forge_mvc-1.0.0b1/forge_cli/starters/data/communes-sejours/files/mvc/entities/demande_sejour/demande_sejour.json +77 -0
  160. forge_mvc-1.0.0b1/forge_cli/starters/data/communes-sejours/files/mvc/entities/hebergement/hebergement.json +92 -0
  161. forge_mvc-1.0.0b1/forge_cli/starters/data/communes-sejours/files/mvc/entities/proprietaire/proprietaire.json +49 -0
  162. forge_mvc-1.0.0b1/forge_cli/starters/data/communes-sejours/files/mvc/entities/relations.json +38 -0
  163. forge_mvc-1.0.0b1/forge_cli/starters/data/communes-sejours/files/mvc/forms/__init__.py +1 -0
  164. forge_mvc-1.0.0b1/forge_cli/starters/data/communes-sejours/files/mvc/forms/demande_sejour_form.py +12 -0
  165. forge_mvc-1.0.0b1/forge_cli/starters/data/communes-sejours/files/mvc/mail/templates/communes_sejours/demande_proprietaire_subject.txt +1 -0
  166. forge_mvc-1.0.0b1/forge_cli/starters/data/communes-sejours/files/mvc/mail/templates/communes_sejours/demande_proprietaire_text.txt +22 -0
  167. forge_mvc-1.0.0b1/forge_cli/starters/data/communes-sejours/files/mvc/mail/templates/communes_sejours/demande_visiteur_subject.txt +1 -0
  168. forge_mvc-1.0.0b1/forge_cli/starters/data/communes-sejours/files/mvc/mail/templates/communes_sejours/demande_visiteur_text.txt +15 -0
  169. forge_mvc-1.0.0b1/forge_cli/starters/data/communes-sejours/files/mvc/views/public/communes_sejours/hebergements_index.html +41 -0
  170. forge_mvc-1.0.0b1/forge_cli/starters/data/communes-sejours/files/mvc/views/public/communes_sejours/hebergements_show.html +139 -0
  171. forge_mvc-1.0.0b1/forge_cli/starters/data/communes-sejours/files/mvc/views/public/communes_sejours/home.html +25 -0
  172. forge_mvc-1.0.0b1/forge_cli/starters/data/communes-sejours/files/seed/communes.json +20 -0
  173. forge_mvc-1.0.0b1/forge_cli/starters/data/communes-sejours/files/seed/demandes_sejour.json +38 -0
  174. forge_mvc-1.0.0b1/forge_cli/starters/data/communes-sejours/files/seed/hebergements.json +35 -0
  175. forge_mvc-1.0.0b1/forge_cli/starters/data/communes-sejours/files/seed/proprietaires.json +20 -0
  176. forge_mvc-1.0.0b1/forge_cli/starters/data/communes-sejours/files/translations/fr.json +59 -0
  177. forge_mvc-1.0.0b1/forge_cli/starters/data/communes-sejours/routes.py.snippet +9 -0
  178. forge_mvc-1.0.0b1/forge_cli/starters/data/communes-sejours/starter.json +27 -0
  179. forge_mvc-1.0.0b1/forge_cli/starters/data/contact-simple/contact.json +47 -0
  180. forge_mvc-1.0.0b1/forge_cli/starters/data/contact-simple/starter.json +32 -0
  181. forge_mvc-1.0.0b1/forge_cli/starters/data/suivi-comportement-eleves/entities/cours.json +11 -0
  182. forge_mvc-1.0.0b1/forge_cli/starters/data/suivi-comportement-eleves/entities/eleve.json +12 -0
  183. forge_mvc-1.0.0b1/forge_cli/starters/data/suivi-comportement-eleves/entities/observation_cours.json +17 -0
  184. forge_mvc-1.0.0b1/forge_cli/starters/data/suivi-comportement-eleves/entities/utilisateur.json +59 -0
  185. forge_mvc-1.0.0b1/forge_cli/starters/data/suivi-comportement-eleves/files/mvc/controllers/auth_controller.py +102 -0
  186. forge_mvc-1.0.0b1/forge_cli/starters/data/suivi-comportement-eleves/files/mvc/controllers/cours_controller.py +37 -0
  187. forge_mvc-1.0.0b1/forge_cli/starters/data/suivi-comportement-eleves/files/mvc/controllers/eleve_controller.py +37 -0
  188. forge_mvc-1.0.0b1/forge_cli/starters/data/suivi-comportement-eleves/files/mvc/controllers/observation_cours_controller.py +116 -0
  189. forge_mvc-1.0.0b1/forge_cli/starters/data/suivi-comportement-eleves/files/mvc/controllers/suivi_controller.py +16 -0
  190. forge_mvc-1.0.0b1/forge_cli/starters/data/suivi-comportement-eleves/files/mvc/models/auth_model.py +25 -0
  191. forge_mvc-1.0.0b1/forge_cli/starters/data/suivi-comportement-eleves/files/mvc/models/cours_model.py +33 -0
  192. forge_mvc-1.0.0b1/forge_cli/starters/data/suivi-comportement-eleves/files/mvc/models/eleve_model.py +26 -0
  193. forge_mvc-1.0.0b1/forge_cli/starters/data/suivi-comportement-eleves/files/mvc/models/observation_cours_model.py +112 -0
  194. forge_mvc-1.0.0b1/forge_cli/starters/data/suivi-comportement-eleves/files/mvc/views/auth/login.html +40 -0
  195. forge_mvc-1.0.0b1/forge_cli/starters/data/suivi-comportement-eleves/files/mvc/views/cours/index.html +42 -0
  196. forge_mvc-1.0.0b1/forge_cli/starters/data/suivi-comportement-eleves/files/mvc/views/cours/show.html +63 -0
  197. forge_mvc-1.0.0b1/forge_cli/starters/data/suivi-comportement-eleves/files/mvc/views/eleve/index.html +47 -0
  198. forge_mvc-1.0.0b1/forge_cli/starters/data/suivi-comportement-eleves/files/mvc/views/eleve/show.html +63 -0
  199. forge_mvc-1.0.0b1/forge_cli/starters/data/suivi-comportement-eleves/files/mvc/views/layouts/app.html +32 -0
  200. forge_mvc-1.0.0b1/forge_cli/starters/data/suivi-comportement-eleves/files/mvc/views/observations/edit.html +61 -0
  201. forge_mvc-1.0.0b1/forge_cli/starters/data/suivi-comportement-eleves/files/mvc/views/observations/new.html +73 -0
  202. forge_mvc-1.0.0b1/forge_cli/starters/data/suivi-comportement-eleves/files/mvc/views/observations/show.html +47 -0
  203. forge_mvc-1.0.0b1/forge_cli/starters/data/suivi-comportement-eleves/files/mvc/views/suivi/dashboard.html +52 -0
  204. forge_mvc-1.0.0b1/forge_cli/starters/data/suivi-comportement-eleves/files/scripts/create_auth_user.py +86 -0
  205. forge_mvc-1.0.0b1/forge_cli/starters/data/suivi-comportement-eleves/files/scripts/seed_suivi.py +132 -0
  206. forge_mvc-1.0.0b1/forge_cli/starters/data/suivi-comportement-eleves/relations.json +27 -0
  207. forge_mvc-1.0.0b1/forge_cli/starters/data/suivi-comportement-eleves/routes.py.snippet +23 -0
  208. forge_mvc-1.0.0b1/forge_cli/starters/data/suivi-comportement-eleves/starter.json +52 -0
  209. forge_mvc-1.0.0b1/forge_cli/starters/data/utilisateurs-auth/entities/utilisateur.json +59 -0
  210. forge_mvc-1.0.0b1/forge_cli/starters/data/utilisateurs-auth/files/mvc/controllers/auth_controller.py +84 -0
  211. forge_mvc-1.0.0b1/forge_cli/starters/data/utilisateurs-auth/files/mvc/controllers/dashboard_controller.py +29 -0
  212. forge_mvc-1.0.0b1/forge_cli/starters/data/utilisateurs-auth/files/mvc/models/auth_model.py +60 -0
  213. forge_mvc-1.0.0b1/forge_cli/starters/data/utilisateurs-auth/files/mvc/views/auth/login.html +40 -0
  214. forge_mvc-1.0.0b1/forge_cli/starters/data/utilisateurs-auth/files/mvc/views/dashboard/index.html +11 -0
  215. forge_mvc-1.0.0b1/forge_cli/starters/data/utilisateurs-auth/files/mvc/views/dashboard/profil.html +19 -0
  216. forge_mvc-1.0.0b1/forge_cli/starters/data/utilisateurs-auth/files/mvc/views/layouts/app.html +30 -0
  217. forge_mvc-1.0.0b1/forge_cli/starters/data/utilisateurs-auth/files/scripts/create_auth_user.py +86 -0
  218. forge_mvc-1.0.0b1/forge_cli/starters/data/utilisateurs-auth/routes.py.snippet +13 -0
  219. forge_mvc-1.0.0b1/forge_cli/starters/data/utilisateurs-auth/starter.json +29 -0
  220. forge_mvc-1.0.0b1/forge_cli/starters/file_ops.py +59 -0
  221. forge_mvc-1.0.0b1/forge_cli/starters/registry.py +45 -0
  222. forge_mvc-1.0.0b1/forge_cli/starters/relations.py +64 -0
  223. forge_mvc-1.0.0b1/forge_cli/starters/route_ops.py +140 -0
  224. forge_mvc-1.0.0b1/forge_cli/starters/scaffold.py +115 -0
  225. forge_mvc-1.0.0b1/forge_cli/sync_landing.py +116 -0
  226. forge_mvc-1.0.0b1/forge_cli/uploads.py +50 -0
  227. forge_mvc-1.0.0b1/forge_mvc.egg-info/PKG-INFO +918 -0
  228. forge_mvc-1.0.0b1/forge_mvc.egg-info/SOURCES.txt +468 -0
  229. forge_mvc-1.0.0b1/forge_mvc.egg-info/dependency_links.txt +1 -0
  230. forge_mvc-1.0.0b1/forge_mvc.egg-info/entry_points.txt +2 -0
  231. forge_mvc-1.0.0b1/forge_mvc.egg-info/requires.txt +5 -0
  232. forge_mvc-1.0.0b1/forge_mvc.egg-info/top_level.txt +4 -0
  233. forge_mvc-1.0.0b1/integrations/__init__.py +0 -0
  234. forge_mvc-1.0.0b1/integrations/jinja2/__init__.py +0 -0
  235. forge_mvc-1.0.0b1/integrations/jinja2/renderer.py +38 -0
  236. forge_mvc-1.0.0b1/pyproject.toml +95 -0
  237. forge_mvc-1.0.0b1/setup.cfg +4 -0
  238. forge_mvc-1.0.0b1/tests/test_api_auth.py +309 -0
  239. forge_mvc-1.0.0b1/tests/test_api_controller_conventions.py +365 -0
  240. forge_mvc-1.0.0b1/tests/test_api_doc.py +134 -0
  241. forge_mvc-1.0.0b1/tests/test_api_json_response.py +224 -0
  242. forge_mvc-1.0.0b1/tests/test_api_routes.py +298 -0
  243. forge_mvc-1.0.0b1/tests/test_app_stability_contract.py +105 -0
  244. forge_mvc-1.0.0b1/tests/test_application.py +210 -0
  245. forge_mvc-1.0.0b1/tests/test_auth_admin_cli.py +665 -0
  246. forge_mvc-1.0.0b1/tests/test_auth_admin_roles_cli.py +387 -0
  247. forge_mvc-1.0.0b1/tests/test_auth_admin_ux.py +518 -0
  248. forge_mvc-1.0.0b1/tests/test_auth_app.py +219 -0
  249. forge_mvc-1.0.0b1/tests/test_auth_audit.py +248 -0
  250. forge_mvc-1.0.0b1/tests/test_auth_audit_controller.py +539 -0
  251. forge_mvc-1.0.0b1/tests/test_auth_audit_propagate_001.py +132 -0
  252. forge_mvc-1.0.0b1/tests/test_auth_audit_resilience_001.py +171 -0
  253. forge_mvc-1.0.0b1/tests/test_auth_audit_table.py +100 -0
  254. forge_mvc-1.0.0b1/tests/test_auth_cli.py +218 -0
  255. forge_mvc-1.0.0b1/tests/test_auth_cli_to_login_e2e.py +164 -0
  256. forge_mvc-1.0.0b1/tests/test_auth_default_align_001.py +100 -0
  257. forge_mvc-1.0.0b1/tests/test_auth_email_verification.py +287 -0
  258. forge_mvc-1.0.0b1/tests/test_auth_hash_migration_001.py +241 -0
  259. forge_mvc-1.0.0b1/tests/test_auth_mfa_challenge.py +604 -0
  260. forge_mvc-1.0.0b1/tests/test_auth_mfa_contract.py +396 -0
  261. forge_mvc-1.0.0b1/tests/test_auth_mfa_login_challenge.py +397 -0
  262. forge_mvc-1.0.0b1/tests/test_auth_mfa_ratelimit_001.py +347 -0
  263. forge_mvc-1.0.0b1/tests/test_auth_mfa_recovery_codes.py +603 -0
  264. forge_mvc-1.0.0b1/tests/test_auth_mfa_recovery_table.py +124 -0
  265. forge_mvc-1.0.0b1/tests/test_auth_mfa_revalidation.py +619 -0
  266. forge_mvc-1.0.0b1/tests/test_auth_mfa_revalidation_identity_001.py +227 -0
  267. forge_mvc-1.0.0b1/tests/test_auth_mfa_session_persistence_001.py +350 -0
  268. forge_mvc-1.0.0b1/tests/test_auth_mfa_table.py +123 -0
  269. forge_mvc-1.0.0b1/tests/test_auth_mfa_totp.py +491 -0
  270. forge_mvc-1.0.0b1/tests/test_auth_mfa_totp_replay_001.py +339 -0
  271. forge_mvc-1.0.0b1/tests/test_auth_password.py +144 -0
  272. forge_mvc-1.0.0b1/tests/test_auth_password_reset.py +363 -0
  273. forge_mvc-1.0.0b1/tests/test_auth_password_reset_complete.py +301 -0
  274. forge_mvc-1.0.0b1/tests/test_auth_rate_limit.py +433 -0
  275. forge_mvc-1.0.0b1/tests/test_auth_rate_limit_table.py +91 -0
  276. forge_mvc-1.0.0b1/tests/test_auth_session.py +221 -0
  277. forge_mvc-1.0.0b1/tests/test_auth_session_hardening.py +381 -0
  278. forge_mvc-1.0.0b1/tests/test_auth_session_helpers.py +217 -0
  279. forge_mvc-1.0.0b1/tests/test_auth_token_table.py +132 -0
  280. forge_mvc-1.0.0b1/tests/test_auth_tokens.py +342 -0
  281. forge_mvc-1.0.0b1/tests/test_auth_user_contract.py +300 -0
  282. forge_mvc-1.0.0b1/tests/test_auth_user_jinja.py +248 -0
  283. forge_mvc-1.0.0b1/tests/test_auth_user_rbac.py +206 -0
  284. forge_mvc-1.0.0b1/tests/test_auth_user_rbac_resolver.py +239 -0
  285. forge_mvc-1.0.0b1/tests/test_auth_user_rbac_route.py +221 -0
  286. forge_mvc-1.0.0b1/tests/test_auth_user_table.py +145 -0
  287. forge_mvc-1.0.0b1/tests/test_cli_entrypoint.py +328 -0
  288. forge_mvc-1.0.0b1/tests/test_cli_errors.py +92 -0
  289. forge_mvc-1.0.0b1/tests/test_cli_help.py +165 -0
  290. forge_mvc-1.0.0b1/tests/test_cli_recovery.py +181 -0
  291. forge_mvc-1.0.0b1/tests/test_concurrency_session_001.py +388 -0
  292. forge_mvc-1.0.0b1/tests/test_crud_bulk_actions_audit.py +359 -0
  293. forge_mvc-1.0.0b1/tests/test_crud_bulk_delete.py +451 -0
  294. forge_mvc-1.0.0b1/tests/test_crud_export_audit.py +317 -0
  295. forge_mvc-1.0.0b1/tests/test_crud_export_csv.py +544 -0
  296. forge_mvc-1.0.0b1/tests/test_crud_filter_doc.py +294 -0
  297. forge_mvc-1.0.0b1/tests/test_crud_filter_whitelist_001.py +176 -0
  298. forge_mvc-1.0.0b1/tests/test_crud_filters.py +328 -0
  299. forge_mvc-1.0.0b1/tests/test_crud_filters_htmx.py +282 -0
  300. forge_mvc-1.0.0b1/tests/test_crud_htmx.py +427 -0
  301. forge_mvc-1.0.0b1/tests/test_crud_rbac_ui.py +239 -0
  302. forge_mvc-1.0.0b1/tests/test_crud_sort.py +331 -0
  303. forge_mvc-1.0.0b1/tests/test_csp_completeness_001.py +124 -0
  304. forge_mvc-1.0.0b1/tests/test_csp_harden_001.py +66 -0
  305. forge_mvc-1.0.0b1/tests/test_csp_nonce_001.py +208 -0
  306. forge_mvc-1.0.0b1/tests/test_database_helpers.py +134 -0
  307. forge_mvc-1.0.0b1/tests/test_deploy_cli.py +234 -0
  308. forge_mvc-1.0.0b1/tests/test_deploy_prod_security_doc.py +357 -0
  309. forge_mvc-1.0.0b1/tests/test_doc_15min.py +273 -0
  310. forge_mvc-1.0.0b1/tests/test_doc_app_complete.py +332 -0
  311. forge_mvc-1.0.0b1/tests/test_doc_contribute.py +323 -0
  312. forge_mvc-1.0.0b1/tests/test_doc_deploy_advanced.py +358 -0
  313. forge_mvc-1.0.0b1/tests/test_doc_module_author.py +330 -0
  314. forge_mvc-1.0.0b1/tests/test_doc_starter_author.py +311 -0
  315. forge_mvc-1.0.0b1/tests/test_doc_structure.py +262 -0
  316. forge_mvc-1.0.0b1/tests/test_docs_config.py +66 -0
  317. forge_mvc-1.0.0b1/tests/test_doctor.py +616 -0
  318. forge_mvc-1.0.0b1/tests/test_e2e_cli.py +200 -0
  319. forge_mvc-1.0.0b1/tests/test_e2e_mariadb.py +331 -0
  320. forge_mvc-1.0.0b1/tests/test_e2e_module.py +330 -0
  321. forge_mvc-1.0.0b1/tests/test_e2e_non_overwrite.py +306 -0
  322. forge_mvc-1.0.0b1/tests/test_e2e_starter.py +277 -0
  323. forge_mvc-1.0.0b1/tests/test_e2e_upload_http.py +466 -0
  324. forge_mvc-1.0.0b1/tests/test_entity_db_apply.py +325 -0
  325. forge_mvc-1.0.0b1/tests/test_entity_db_init.py +550 -0
  326. forge_mvc-1.0.0b1/tests/test_entity_form_field.py +461 -0
  327. forge_mvc-1.0.0b1/tests/test_entity_json_validation.py +318 -0
  328. forge_mvc-1.0.0b1/tests/test_entity_list_filter.py +652 -0
  329. forge_mvc-1.0.0b1/tests/test_entity_media_declaration.py +333 -0
  330. forge_mvc-1.0.0b1/tests/test_entity_model_cli.py +401 -0
  331. forge_mvc-1.0.0b1/tests/test_entity_relations.py +237 -0
  332. forge_mvc-1.0.0b1/tests/test_entity_sync_command.py +138 -0
  333. forge_mvc-1.0.0b1/tests/test_forge_new.py +428 -0
  334. forge_mvc-1.0.0b1/tests/test_forms.py +184 -0
  335. forge_mvc-1.0.0b1/tests/test_forms_advanced_fields.py +227 -0
  336. forge_mvc-1.0.0b1/tests/test_forms_date_fields.py +175 -0
  337. forge_mvc-1.0.0b1/tests/test_forms_file_field.py +202 -0
  338. forge_mvc-1.0.0b1/tests/test_forms_from_request_files.py +94 -0
  339. forge_mvc-1.0.0b1/tests/test_forms_image_field.py +199 -0
  340. forge_mvc-1.0.0b1/tests/test_forms_public_api.py +196 -0
  341. forge_mvc-1.0.0b1/tests/test_forms_relation_field.py +151 -0
  342. forge_mvc-1.0.0b1/tests/test_forms_slug_field.py +126 -0
  343. forge_mvc-1.0.0b1/tests/test_forms_textarea_field.py +145 -0
  344. forge_mvc-1.0.0b1/tests/test_front_css_contract.py +52 -0
  345. forge_mvc-1.0.0b1/tests/test_front_js_init.py +424 -0
  346. forge_mvc-1.0.0b1/tests/test_front_layout_contract.py +115 -0
  347. forge_mvc-1.0.0b1/tests/test_hashing.py +139 -0
  348. forge_mvc-1.0.0b1/tests/test_health_endpoint_001.py +264 -0
  349. forge_mvc-1.0.0b1/tests/test_http_e2e_001.py +312 -0
  350. forge_mvc-1.0.0b1/tests/test_i18n_cache_001.py +174 -0
  351. forge_mvc-1.0.0b1/tests/test_i18n_cli.py +243 -0
  352. forge_mvc-1.0.0b1/tests/test_i18n_core.py +323 -0
  353. forge_mvc-1.0.0b1/tests/test_i18n_jinja.py +85 -0
  354. forge_mvc-1.0.0b1/tests/test_json.py +111 -0
  355. forge_mvc-1.0.0b1/tests/test_landing_post_2_2_refresh.py +189 -0
  356. forge_mvc-1.0.0b1/tests/test_license_metadata.py +127 -0
  357. forge_mvc-1.0.0b1/tests/test_lts_policy.py +288 -0
  358. forge_mvc-1.0.0b1/tests/test_mail.py +237 -0
  359. forge_mvc-1.0.0b1/tests/test_mail_cli.py +366 -0
  360. forge_mvc-1.0.0b1/tests/test_mail_log.py +392 -0
  361. forge_mvc-1.0.0b1/tests/test_mail_message.py +326 -0
  362. forge_mvc-1.0.0b1/tests/test_mail_templates.py +219 -0
  363. forge_mvc-1.0.0b1/tests/test_mail_transports.py +422 -0
  364. forge_mvc-1.0.0b1/tests/test_mailer.py +216 -0
  365. forge_mvc-1.0.0b1/tests/test_make_crud.py +1558 -0
  366. forge_mvc-1.0.0b1/tests/test_make_crud_empty_states.py +255 -0
  367. forge_mvc-1.0.0b1/tests/test_make_crud_htmx_delete.py +148 -0
  368. forge_mvc-1.0.0b1/tests/test_make_crud_htmx_pagination.py +136 -0
  369. forge_mvc-1.0.0b1/tests/test_make_crud_htmx_search.py +171 -0
  370. forge_mvc-1.0.0b1/tests/test_make_crud_many_to_many.py +308 -0
  371. forge_mvc-1.0.0b1/tests/test_make_crud_media.py +1121 -0
  372. forge_mvc-1.0.0b1/tests/test_make_crud_media_alt.py +466 -0
  373. forge_mvc-1.0.0b1/tests/test_make_crud_media_context.py +285 -0
  374. forge_mvc-1.0.0b1/tests/test_make_crud_media_destroy.py +354 -0
  375. forge_mvc-1.0.0b1/tests/test_make_crud_media_gallery_add.py +441 -0
  376. forge_mvc-1.0.0b1/tests/test_make_crud_media_gallery_context.py +407 -0
  377. forge_mvc-1.0.0b1/tests/test_make_crud_media_gallery_delete.py +400 -0
  378. forge_mvc-1.0.0b1/tests/test_make_crud_media_gallery_multiupload.py +651 -0
  379. forge_mvc-1.0.0b1/tests/test_make_crud_media_gallery_order.py +426 -0
  380. forge_mvc-1.0.0b1/tests/test_make_crud_media_runtime.py +352 -0
  381. forge_mvc-1.0.0b1/tests/test_make_crud_pagination.py +183 -0
  382. forge_mvc-1.0.0b1/tests/test_make_crud_partials.py +224 -0
  383. forge_mvc-1.0.0b1/tests/test_make_crud_rbac.py +372 -0
  384. forge_mvc-1.0.0b1/tests/test_make_crud_search.py +247 -0
  385. forge_mvc-1.0.0b1/tests/test_make_crud_sort.py +203 -0
  386. forge_mvc-1.0.0b1/tests/test_make_entity_command.py +235 -0
  387. forge_mvc-1.0.0b1/tests/test_make_public_contact.py +254 -0
  388. forge_mvc-1.0.0b1/tests/test_make_public_form.py +445 -0
  389. forge_mvc-1.0.0b1/tests/test_make_public_i18n.py +243 -0
  390. forge_mvc-1.0.0b1/tests/test_make_public_list.py +228 -0
  391. forge_mvc-1.0.0b1/tests/test_make_public_list_media.py +471 -0
  392. forge_mvc-1.0.0b1/tests/test_make_public_page.py +136 -0
  393. forge_mvc-1.0.0b1/tests/test_make_public_show.py +174 -0
  394. forge_mvc-1.0.0b1/tests/test_make_relation_command.py +271 -0
  395. forge_mvc-1.0.0b1/tests/test_media_attach.py +176 -0
  396. forge_mvc-1.0.0b1/tests/test_media_delete.py +148 -0
  397. forge_mvc-1.0.0b1/tests/test_media_entity.py +90 -0
  398. forge_mvc-1.0.0b1/tests/test_media_gallery.py +344 -0
  399. forge_mvc-1.0.0b1/tests/test_media_integration.py +290 -0
  400. forge_mvc-1.0.0b1/tests/test_media_repository.py +420 -0
  401. forge_mvc-1.0.0b1/tests/test_media_route.py +168 -0
  402. forge_mvc-1.0.0b1/tests/test_middleware.py +40 -0
  403. forge_mvc-1.0.0b1/tests/test_migration_guide.py +392 -0
  404. forge_mvc-1.0.0b1/tests/test_migrations.py +1115 -0
  405. forge_mvc-1.0.0b1/tests/test_module_cli.py +682 -0
  406. forge_mvc-1.0.0b1/tests/test_module_discovery.py +233 -0
  407. forge_mvc-1.0.0b1/tests/test_module_files.py +339 -0
  408. forge_mvc-1.0.0b1/tests/test_module_install.py +197 -0
  409. forge_mvc-1.0.0b1/tests/test_module_manifest.py +442 -0
  410. forge_mvc-1.0.0b1/tests/test_module_registry.py +297 -0
  411. forge_mvc-1.0.0b1/tests/test_module_remove_001.py +369 -0
  412. forge_mvc-1.0.0b1/tests/test_module_routes.py +257 -0
  413. forge_mvc-1.0.0b1/tests/test_output.py +86 -0
  414. forge_mvc-1.0.0b1/tests/test_package_metadata.py +37 -0
  415. forge_mvc-1.0.0b1/tests/test_packaging.py +304 -0
  416. forge_mvc-1.0.0b1/tests/test_pagination.py +26 -0
  417. forge_mvc-1.0.0b1/tests/test_profile_differentiation_001.py +173 -0
  418. forge_mvc-1.0.0b1/tests/test_project_audit.py +450 -0
  419. forge_mvc-1.0.0b1/tests/test_project_check.py +465 -0
  420. forge_mvc-1.0.0b1/tests/test_project_profiles.py +399 -0
  421. forge_mvc-1.0.0b1/tests/test_public_templates.py +111 -0
  422. forge_mvc-1.0.0b1/tests/test_rbac_authorization.py +250 -0
  423. forge_mvc-1.0.0b1/tests/test_rbac_jinja.py +214 -0
  424. forge_mvc-1.0.0b1/tests/test_rbac_models.py +246 -0
  425. forge_mvc-1.0.0b1/tests/test_rbac_security.py +491 -0
  426. forge_mvc-1.0.0b1/tests/test_rbac_sql.py +144 -0
  427. forge_mvc-1.0.0b1/tests/test_relations_many_to_many.py +617 -0
  428. forge_mvc-1.0.0b1/tests/test_relations_ordered.py +371 -0
  429. forge_mvc-1.0.0b1/tests/test_request_body.py +89 -0
  430. forge_mvc-1.0.0b1/tests/test_response.py +25 -0
  431. forge_mvc-1.0.0b1/tests/test_roadmap_unified.py +179 -0
  432. forge_mvc-1.0.0b1/tests/test_router.py +117 -0
  433. forge_mvc-1.0.0b1/tests/test_runtime_errors_jsonl.py +482 -0
  434. forge_mvc-1.0.0b1/tests/test_runtime_errors_markdown.py +394 -0
  435. forge_mvc-1.0.0b1/tests/test_security_cache_headers.py +266 -0
  436. forge_mvc-1.0.0b1/tests/test_security_cookies.py +467 -0
  437. forge_mvc-1.0.0b1/tests/test_security_cookies_host_prefix.py +221 -0
  438. forge_mvc-1.0.0b1/tests/test_security_csrf_constant_time_001.py +58 -0
  439. forge_mvc-1.0.0b1/tests/test_security_csrf_http.py +736 -0
  440. forge_mvc-1.0.0b1/tests/test_security_headers.py +350 -0
  441. forge_mvc-1.0.0b1/tests/test_security_rbac_audit.py +510 -0
  442. forge_mvc-1.0.0b1/tests/test_security_upload_rate_limit.py +291 -0
  443. forge_mvc-1.0.0b1/tests/test_security_uploads_audit.py +491 -0
  444. forge_mvc-1.0.0b1/tests/test_serve_static.py +84 -0
  445. forge_mvc-1.0.0b1/tests/test_session.py +123 -0
  446. forge_mvc-1.0.0b1/tests/test_session_file_store_001.py +338 -0
  447. forge_mvc-1.0.0b1/tests/test_session_mariadb_store_001.py +434 -0
  448. forge_mvc-1.0.0b1/tests/test_session_store_contract_001.py +258 -0
  449. forge_mvc-1.0.0b1/tests/test_sessions_contract_integration_001.py +124 -0
  450. forge_mvc-1.0.0b1/tests/test_sql_loader.py +78 -0
  451. forge_mvc-1.0.0b1/tests/test_starter_cli.py +1264 -0
  452. forge_mvc-1.0.0b1/tests/test_starter_communes_sejours.py +1616 -0
  453. forge_mvc-1.0.0b1/tests/test_stats_admin.py +377 -0
  454. forge_mvc-1.0.0b1/tests/test_stats_events.py +266 -0
  455. forge_mvc-1.0.0b1/tests/test_stats_schema.py +165 -0
  456. forge_mvc-1.0.0b1/tests/test_stats_tracking.py +279 -0
  457. forge_mvc-1.0.0b1/tests/test_sync_landing.py +108 -0
  458. forge_mvc-1.0.0b1/tests/test_templating.py +302 -0
  459. forge_mvc-1.0.0b1/tests/test_tls_defaults_001.py +129 -0
  460. forge_mvc-1.0.0b1/tests/test_tpl_components.py +112 -0
  461. forge_mvc-1.0.0b1/tests/test_tpl_doc.py +146 -0
  462. forge_mvc-1.0.0b1/tests/test_tpl_flash.py +163 -0
  463. forge_mvc-1.0.0b1/tests/test_tpl_layouts.py +111 -0
  464. forge_mvc-1.0.0b1/tests/test_uploads.py +486 -0
  465. forge_mvc-1.0.0b1/tests/test_uploads_image.py +283 -0
  466. forge_mvc-1.0.0b1/tests/test_validation_decorators.py +144 -0
  467. forge_mvc-1.0.0b1/tests/test_validator.py +62 -0
  468. forge_mvc-1.0.0b1/tests/test_workflow_jinja.py +262 -0
  469. forge_mvc-1.0.0b1/tests/test_workflow_status.py +266 -0
  470. forge_mvc-1.0.0b1/tests/test_workflow_transitions.py +273 -0
@@ -0,0 +1,36 @@
1
+ Forge — Licence propriétaire / source disponible
2
+
3
+ Copyright (c) Roger Cauchon.
4
+ Tous droits réservés.
5
+
6
+ Le code source de Forge est mis à disposition uniquement pour lecture, étude,
7
+ évaluation et usage éducatif personnel.
8
+
9
+ Sauf autorisation écrite préalable de Roger Cauchon, il est interdit de :
10
+
11
+ - utiliser Forge dans un cadre professionnel, commercial ou institutionnel ;
12
+ - utiliser Forge pour une prestation client ;
13
+ - intégrer Forge dans un produit, service, SaaS, application vendue ou solution
14
+ déployée pour un tiers ;
15
+ - redistribuer Forge, modifié ou non ;
16
+ - publier une version modifiée de Forge ;
17
+ - vendre, louer, sous-licencier ou exploiter commercialement Forge ;
18
+ - supprimer ou modifier les mentions de copyright et de licence.
19
+
20
+ Les usages autorisés sans autorisation écrite préalable sont limités à :
21
+
22
+ - lire le code ;
23
+ - étudier son fonctionnement ;
24
+ - tester Forge à titre personnel ;
25
+ - l'utiliser dans un cadre éducatif personnel ou pédagogique non commercial ;
26
+ - évaluer le framework avant une éventuelle demande d'autorisation.
27
+
28
+ Toute utilisation non explicitement autorisée par cette licence nécessite une
29
+ autorisation écrite préalable de Roger Cauchon.
30
+
31
+ Cette licence pourra évoluer ultérieurement. Toute version publiée de Forge
32
+ reste soumise à la licence présente dans son dépôt au moment de sa récupération.
33
+
34
+ LE LOGICIEL EST FOURNI « TEL QUEL », SANS GARANTIE D'AUCUNE SORTE, EXPRESSE OU
35
+ IMPLICITE. EN AUCUN CAS LE DÉTENTEUR DU COPYRIGHT NE POURRA ÊTRE TENU
36
+ RESPONSABLE DE TOUT DOMMAGE DÉCOULANT DE L'UTILISATION DE CE LOGICIEL.