arthexis 0.1.20__tar.gz → 0.1.22__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.

Potentially problematic release.


This version of arthexis might be problematic. Click here for more details.

Files changed (255) hide show
  1. {arthexis-0.1.20 → arthexis-0.1.22}/PKG-INFO +10 -11
  2. {arthexis-0.1.20 → arthexis-0.1.22}/arthexis.egg-info/PKG-INFO +10 -11
  3. {arthexis-0.1.20 → arthexis-0.1.22}/arthexis.egg-info/SOURCES.txt +2 -10
  4. {arthexis-0.1.20 → arthexis-0.1.22}/arthexis.egg-info/requires.txt +9 -10
  5. {arthexis-0.1.20 → arthexis-0.1.22}/config/asgi.py +1 -15
  6. {arthexis-0.1.20 → arthexis-0.1.22}/config/settings.py +4 -26
  7. {arthexis-0.1.20 → arthexis-0.1.22}/config/urls.py +5 -1
  8. {arthexis-0.1.20 → arthexis-0.1.22}/core/admin.py +140 -252
  9. {arthexis-0.1.20 → arthexis-0.1.22}/core/apps.py +0 -6
  10. arthexis-0.1.22/core/environment.py +60 -0
  11. {arthexis-0.1.20 → arthexis-0.1.22}/core/models.py +425 -77
  12. {arthexis-0.1.20 → arthexis-0.1.22}/core/system.py +76 -0
  13. {arthexis-0.1.20 → arthexis-0.1.22}/core/tests.py +153 -15
  14. {arthexis-0.1.20 → arthexis-0.1.22}/core/views.py +35 -97
  15. {arthexis-0.1.20 → arthexis-0.1.22}/nodes/admin.py +165 -32
  16. {arthexis-0.1.20 → arthexis-0.1.22}/nodes/apps.py +11 -0
  17. {arthexis-0.1.20 → arthexis-0.1.22}/nodes/models.py +26 -6
  18. {arthexis-0.1.20 → arthexis-0.1.22}/nodes/tests.py +263 -1
  19. {arthexis-0.1.20 → arthexis-0.1.22}/nodes/views.py +61 -1
  20. {arthexis-0.1.20 → arthexis-0.1.22}/ocpp/admin.py +68 -7
  21. {arthexis-0.1.20 → arthexis-0.1.22}/ocpp/consumers.py +1 -0
  22. {arthexis-0.1.20 → arthexis-0.1.22}/ocpp/models.py +71 -1
  23. {arthexis-0.1.20 → arthexis-0.1.22}/ocpp/tasks.py +99 -1
  24. {arthexis-0.1.20 → arthexis-0.1.22}/ocpp/tests.py +310 -2
  25. {arthexis-0.1.20 → arthexis-0.1.22}/ocpp/views.py +365 -5
  26. {arthexis-0.1.20 → arthexis-0.1.22}/pages/admin.py +112 -15
  27. arthexis-0.1.22/pages/apps.py +45 -0
  28. {arthexis-0.1.20 → arthexis-0.1.22}/pages/context_processors.py +0 -12
  29. {arthexis-0.1.20 → arthexis-0.1.22}/pages/forms.py +31 -8
  30. {arthexis-0.1.20 → arthexis-0.1.22}/pages/models.py +42 -2
  31. {arthexis-0.1.20 → arthexis-0.1.22}/pages/tests.py +361 -63
  32. {arthexis-0.1.20 → arthexis-0.1.22}/pages/urls.py +5 -1
  33. {arthexis-0.1.20 → arthexis-0.1.22}/pages/views.py +264 -16
  34. {arthexis-0.1.20 → arthexis-0.1.22}/pyproject.toml +2 -2
  35. {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_admin_system_stop.py +18 -3
  36. {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_email_profiles.py +0 -3
  37. arthexis-0.1.22/tests/test_fixture_presence.py +53 -0
  38. {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_install_script.py +20 -11
  39. {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_network_setup_interactive.py +10 -0
  40. {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_odoo_product.py +36 -0
  41. {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_profile_inline_deletion.py +2 -44
  42. arthexis-0.1.22/tests/test_readme_assets.py +87 -0
  43. {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_release_progress.py +17 -112
  44. {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_release_progress_pre_release_integration.py +10 -33
  45. {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_rfid_admin_scan_csrf.py +4 -0
  46. arthexis-0.1.22/tests/test_settings_mcp_port.py +35 -0
  47. {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_shell_scripts.py +5 -0
  48. {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_switch_role_script.py +0 -17
  49. arthexis-0.1.22/tests/test_uninstall_script.py +9 -0
  50. {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_user_data_admin.py +1 -5
  51. {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_version_endpoint.py +15 -0
  52. arthexis-0.1.20/core/environment.py +0 -278
  53. arthexis-0.1.20/core/workgroup_urls.py +0 -17
  54. arthexis-0.1.20/core/workgroup_views.py +0 -94
  55. arthexis-0.1.20/pages/apps.py +0 -13
  56. arthexis-0.1.20/tests/test_assistant_data_api.py +0 -32
  57. arthexis-0.1.20/tests/test_assistant_profile_admin.py +0 -168
  58. arthexis-0.1.20/tests/test_assistant_profile_api.py +0 -49
  59. arthexis-0.1.20/tests/test_fixture_presence.py +0 -21
  60. arthexis-0.1.20/tests/test_mcp_asgi.py +0 -55
  61. arthexis-0.1.20/tests/test_mcp_auto_start.py +0 -170
  62. arthexis-0.1.20/tests/test_mcp_process.py +0 -43
  63. arthexis-0.1.20/tests/test_mcp_sigil_server.py +0 -182
  64. arthexis-0.1.20/tests/test_mcp_sigil_server_command.py +0 -42
  65. arthexis-0.1.20/tests/test_uninstall_script.py +0 -20
  66. {arthexis-0.1.20 → arthexis-0.1.22}/LICENSE +0 -0
  67. {arthexis-0.1.20 → arthexis-0.1.22}/README.md +0 -0
  68. {arthexis-0.1.20 → arthexis-0.1.22}/arthexis.egg-info/dependency_links.txt +0 -0
  69. {arthexis-0.1.20 → arthexis-0.1.22}/arthexis.egg-info/top_level.txt +0 -0
  70. {arthexis-0.1.20 → arthexis-0.1.22}/config/__init__.py +0 -0
  71. {arthexis-0.1.20 → arthexis-0.1.22}/config/active_app.py +0 -0
  72. {arthexis-0.1.20 → arthexis-0.1.22}/config/auth_app.py +0 -0
  73. {arthexis-0.1.20 → arthexis-0.1.22}/config/celery.py +0 -0
  74. {arthexis-0.1.20 → arthexis-0.1.22}/config/context_processors.py +0 -0
  75. {arthexis-0.1.20 → arthexis-0.1.22}/config/horologia_app.py +0 -0
  76. {arthexis-0.1.20 → arthexis-0.1.22}/config/loadenv.py +0 -0
  77. {arthexis-0.1.20 → arthexis-0.1.22}/config/logging.py +0 -0
  78. {arthexis-0.1.20 → arthexis-0.1.22}/config/middleware.py +0 -0
  79. {arthexis-0.1.20 → arthexis-0.1.22}/config/offline.py +0 -0
  80. {arthexis-0.1.20 → arthexis-0.1.22}/config/settings_helpers.py +0 -0
  81. {arthexis-0.1.20 → arthexis-0.1.22}/config/wsgi.py +0 -0
  82. {arthexis-0.1.20 → arthexis-0.1.22}/core/__init__.py +0 -0
  83. {arthexis-0.1.20 → arthexis-0.1.22}/core/admin_history.py +0 -0
  84. {arthexis-0.1.20 → arthexis-0.1.22}/core/admindocs.py +0 -0
  85. {arthexis-0.1.20 → arthexis-0.1.22}/core/auto_upgrade.py +0 -0
  86. {arthexis-0.1.20 → arthexis-0.1.22}/core/backends.py +0 -0
  87. {arthexis-0.1.20 → arthexis-0.1.22}/core/changelog.py +0 -0
  88. {arthexis-0.1.20 → arthexis-0.1.22}/core/entity.py +0 -0
  89. {arthexis-0.1.20 → arthexis-0.1.22}/core/fields.py +0 -0
  90. {arthexis-0.1.20 → arthexis-0.1.22}/core/form_fields.py +0 -0
  91. {arthexis-0.1.20 → arthexis-0.1.22}/core/github_helper.py +0 -0
  92. {arthexis-0.1.20 → arthexis-0.1.22}/core/github_issues.py +0 -0
  93. {arthexis-0.1.20 → arthexis-0.1.22}/core/github_repos.py +0 -0
  94. {arthexis-0.1.20 → arthexis-0.1.22}/core/lcd_screen.py +0 -0
  95. {arthexis-0.1.20 → arthexis-0.1.22}/core/liveupdate.py +0 -0
  96. {arthexis-0.1.20 → arthexis-0.1.22}/core/log_paths.py +0 -0
  97. {arthexis-0.1.20 → arthexis-0.1.22}/core/mailer.py +0 -0
  98. {arthexis-0.1.20 → arthexis-0.1.22}/core/middleware.py +0 -0
  99. {arthexis-0.1.20 → arthexis-0.1.22}/core/notifications.py +0 -0
  100. {arthexis-0.1.20 → arthexis-0.1.22}/core/public_wifi.py +0 -0
  101. {arthexis-0.1.20 → arthexis-0.1.22}/core/reference_utils.py +0 -0
  102. {arthexis-0.1.20 → arthexis-0.1.22}/core/release.py +0 -0
  103. {arthexis-0.1.20 → arthexis-0.1.22}/core/rfid_import_export.py +0 -0
  104. {arthexis-0.1.20 → arthexis-0.1.22}/core/sigil_builder.py +0 -0
  105. {arthexis-0.1.20 → arthexis-0.1.22}/core/sigil_context.py +0 -0
  106. {arthexis-0.1.20 → arthexis-0.1.22}/core/sigil_resolver.py +0 -0
  107. {arthexis-0.1.20 → arthexis-0.1.22}/core/tasks.py +0 -0
  108. {arthexis-0.1.20 → arthexis-0.1.22}/core/temp_passwords.py +0 -0
  109. {arthexis-0.1.20 → arthexis-0.1.22}/core/test_system_info.py +0 -0
  110. {arthexis-0.1.20 → arthexis-0.1.22}/core/tests_liveupdate.py +0 -0
  111. {arthexis-0.1.20 → arthexis-0.1.22}/core/urls.py +0 -0
  112. {arthexis-0.1.20 → arthexis-0.1.22}/core/user_data.py +0 -0
  113. {arthexis-0.1.20 → arthexis-0.1.22}/core/widgets.py +0 -0
  114. {arthexis-0.1.20 → arthexis-0.1.22}/nodes/__init__.py +0 -0
  115. {arthexis-0.1.20 → arthexis-0.1.22}/nodes/backends.py +0 -0
  116. {arthexis-0.1.20 → arthexis-0.1.22}/nodes/dns.py +0 -0
  117. {arthexis-0.1.20 → arthexis-0.1.22}/nodes/feature_checks.py +0 -0
  118. {arthexis-0.1.20 → arthexis-0.1.22}/nodes/lcd.py +0 -0
  119. {arthexis-0.1.20 → arthexis-0.1.22}/nodes/reports.py +0 -0
  120. {arthexis-0.1.20 → arthexis-0.1.22}/nodes/rfid_sync.py +0 -0
  121. {arthexis-0.1.20 → arthexis-0.1.22}/nodes/signals.py +0 -0
  122. {arthexis-0.1.20 → arthexis-0.1.22}/nodes/tasks.py +0 -0
  123. {arthexis-0.1.20 → arthexis-0.1.22}/nodes/urls.py +0 -0
  124. {arthexis-0.1.20 → arthexis-0.1.22}/nodes/utils.py +0 -0
  125. {arthexis-0.1.20 → arthexis-0.1.22}/ocpp/__init__.py +0 -0
  126. {arthexis-0.1.20 → arthexis-0.1.22}/ocpp/apps.py +0 -0
  127. {arthexis-0.1.20 → arthexis-0.1.22}/ocpp/evcs.py +0 -0
  128. {arthexis-0.1.20 → arthexis-0.1.22}/ocpp/evcs_discovery.py +0 -0
  129. {arthexis-0.1.20 → arthexis-0.1.22}/ocpp/reference_utils.py +0 -0
  130. {arthexis-0.1.20 → arthexis-0.1.22}/ocpp/routing.py +0 -0
  131. {arthexis-0.1.20 → arthexis-0.1.22}/ocpp/simulator.py +0 -0
  132. {arthexis-0.1.20 → arthexis-0.1.22}/ocpp/status_display.py +0 -0
  133. {arthexis-0.1.20 → arthexis-0.1.22}/ocpp/store.py +0 -0
  134. {arthexis-0.1.20 → arthexis-0.1.22}/ocpp/test_export_import.py +0 -0
  135. {arthexis-0.1.20 → arthexis-0.1.22}/ocpp/test_rfid.py +0 -0
  136. {arthexis-0.1.20 → arthexis-0.1.22}/ocpp/transactions_io.py +0 -0
  137. {arthexis-0.1.20 → arthexis-0.1.22}/ocpp/urls.py +0 -0
  138. {arthexis-0.1.20 → arthexis-0.1.22}/pages/__init__.py +0 -0
  139. {arthexis-0.1.20 → arthexis-0.1.22}/pages/checks.py +0 -0
  140. {arthexis-0.1.20 → arthexis-0.1.22}/pages/defaults.py +0 -0
  141. {arthexis-0.1.20 → arthexis-0.1.22}/pages/middleware.py +0 -0
  142. {arthexis-0.1.20 → arthexis-0.1.22}/pages/module_defaults.py +0 -0
  143. {arthexis-0.1.20 → arthexis-0.1.22}/pages/site_config.py +0 -0
  144. {arthexis-0.1.20 → arthexis-0.1.22}/pages/tasks.py +0 -0
  145. {arthexis-0.1.20 → arthexis-0.1.22}/pages/utils.py +0 -0
  146. {arthexis-0.1.20 → arthexis-0.1.22}/setup.cfg +0 -0
  147. {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_acronym_capitalization.py +0 -0
  148. {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_admin_client_report.py +0 -0
  149. {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_admin_doc_commands.py +0 -0
  150. {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_admin_doc_model_groups.py +0 -0
  151. {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_admin_history.py +0 -0
  152. {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_admin_index_actions.py +0 -0
  153. {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_admin_model_graph.py +0 -0
  154. {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_admin_object_history.py +0 -0
  155. {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_admin_profile_link.py +0 -0
  156. {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_allowed_hosts_hostname.py +0 -0
  157. {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_api_login_required.py +0 -0
  158. {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_auto_upgrade_scheduler.py +0 -0
  159. {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_awg_admin.py +0 -0
  160. {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_benchmark_command.py +0 -0
  161. {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_build_pypi_command.py +0 -0
  162. {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_celery_no_debug.py +0 -0
  163. {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_changelog_builder.py +0 -0
  164. {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_check_admin_command.py +0 -0
  165. {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_check_migrations_script.py +0 -0
  166. {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_check_pypi_command.py +0 -0
  167. {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_clean_release_logs_command.py +0 -0
  168. {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_client_report_form.py +0 -0
  169. {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_client_report_generation.py +0 -0
  170. {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_client_report_schedule.py +0 -0
  171. {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_csrf_failure.py +0 -0
  172. {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_csrf_origin_subnet.py +0 -0
  173. {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_dist_cleanup.py +0 -0
  174. {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_email_collector.py +0 -0
  175. {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_email_inbox.py +0 -0
  176. {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_email_inbox_admin.py +0 -0
  177. {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_email_inbox_search_action.py +0 -0
  178. {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_email_outbox_admin.py +0 -0
  179. {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_email_transaction.py +0 -0
  180. {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_env_refresh_clean.py +0 -0
  181. {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_env_refresh_pip.py +0 -0
  182. {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_env_refresh_unlink.py +0 -0
  183. {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_experience_admin_group.py +0 -0
  184. {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_footer_no_references.py +0 -0
  185. {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_footer_presence.py +0 -0
  186. {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_footer_render.py +0 -0
  187. {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_git_checks.py +0 -0
  188. {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_github_issue_reporting.py +0 -0
  189. {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_invitation_login_view.py +0 -0
  190. {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_language_switch.py +0 -0
  191. {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_lcd_check_command.py +0 -0
  192. {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_lcd_smbus2.py +0 -0
  193. {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_localhost_admin_backend.py +0 -0
  194. {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_log_paths.py +0 -0
  195. {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_login_view_no_site.py +0 -0
  196. {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_manage_debug_flag.py +0 -0
  197. {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_manuals.py +0 -0
  198. {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_message_command.py +0 -0
  199. {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_migrations.py +0 -0
  200. {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_model_verbose_name_capitalization.py +0 -0
  201. {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_node_info_view.py +0 -0
  202. {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_notifications_fallback.py +0 -0
  203. {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_notify_command.py +0 -0
  204. {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_ocpp_session_lock.py +0 -0
  205. {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_odoo_profile.py +0 -0
  206. {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_odoo_profile_admin.py +0 -0
  207. {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_odoo_quote_report.py +0 -0
  208. {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_offline.py +0 -0
  209. {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_package_admin_next_release.py +0 -0
  210. {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_power_admin_group.py +0 -0
  211. {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_pypi_check.py +0 -0
  212. {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_pypi_token.py +0 -0
  213. {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_readme_editor.py +0 -0
  214. {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_readme_language.py +0 -0
  215. {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_reference_qr_code.py +0 -0
  216. {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_reference_transaction_uuid.py +0 -0
  217. {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_register_site_apps_command.py +0 -0
  218. {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_release_build.py +0 -0
  219. {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_release_build_flow.py +0 -0
  220. {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_release_checklist.py +0 -0
  221. {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_release_logs.py +0 -0
  222. {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_release_manager_admin.py +0 -0
  223. {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_release_packages.py +0 -0
  224. {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_release_push.py +0 -0
  225. {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_release_tasks.py +0 -0
  226. {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_render_nginx_sites.py +0 -0
  227. {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_request_invite.py +0 -0
  228. {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_rfid_admin_print_labels.py +0 -0
  229. {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_rfid_admin_reference_clear.py +0 -0
  230. {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_rfid_always_on.py +0 -0
  231. {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_rfid_backend.py +0 -0
  232. {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_rfid_background_reader.py +0 -0
  233. {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_rfid_client_report.py +0 -0
  234. {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_rfid_watch_command.py +0 -0
  235. {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_role_marker_filtering.py +0 -0
  236. {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_seed_data.py +0 -0
  237. {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_send_invite_command.py +0 -0
  238. {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_settings_helpers.py +0 -0
  239. {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_show_leads_command.py +0 -0
  240. {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_sigil_builder.py +0 -0
  241. {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_sigil_resolution.py +0 -0
  242. {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_sites_utils.py +0 -0
  243. {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_social_profile.py +0 -0
  244. {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_staff_login_net_message.py +0 -0
  245. {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_staff_required_decorator.py +0 -0
  246. {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_suite_gateway.py +0 -0
  247. {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_system_changelog_report.py +0 -0
  248. {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_temp_passwords.py +0 -0
  249. {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_totp_admin.py +0 -0
  250. {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_totp_backend.py +0 -0
  251. {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_update_fixtures_command.py +0 -0
  252. {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_upgrade_report.py +0 -0
  253. {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_urls_autodiscover.py +0 -0
  254. {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_version_file.py +0 -0
  255. {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_vscode_manage.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: arthexis
3
- Version: 0.1.20
3
+ Version: 0.1.22
4
4
  Summary: Power & Energy Infrastructure
5
5
  Author-email: "Rafael J. Guillén-Osorio" <tecnologia@gelectriic.com>
6
6
  License-Expression: GPL-3.0-only
@@ -26,14 +26,14 @@ Requires-Dist: celery==5.5.3
26
26
  Requires-Dist: certifi==2025.7.14
27
27
  Requires-Dist: cffi==2.0.0
28
28
  Requires-Dist: channels==4.1.0
29
- Requires-Dist: charset-normalizer==3.4.2
29
+ Requires-Dist: charset-normalizer==3.4.4
30
30
  Requires-Dist: click==8.2.1
31
31
  Requires-Dist: click-didyoumean==0.3.1
32
32
  Requires-Dist: click-plugins==1.1.1.2
33
33
  Requires-Dist: click-repl==0.3.0
34
34
  Requires-Dist: colorama==0.4.6
35
35
  Requires-Dist: constantly==23.10.4
36
- Requires-Dist: cron-descriptor==1.4.5
36
+ Requires-Dist: cron-descriptor==2.0.6
37
37
  Requires-Dist: cryptography==45.0.5
38
38
  Requires-Dist: daphne==4.2.1
39
39
  Requires-Dist: diff-match-patch==20241021
@@ -56,18 +56,17 @@ Requires-Dist: hyperlink==21.0.0
56
56
  Requires-Dist: idna==3.11
57
57
  Requires-Dist: incremental==24.7.2
58
58
  Requires-Dist: kombu==5.5.4
59
- Requires-Dist: libipld==3.1.1
60
- Requires-Dist: Markdown==3.8.2
59
+ Requires-Dist: libipld==3.2.0
60
+ Requires-Dist: Markdown==3.9
61
61
  Requires-Dist: mdx_truly_sane_lists==1.3
62
- Requires-Dist: mcp==1.18.0
63
62
  Requires-Dist: mfrc522==0.0.7; sys_platform == "linux"
64
63
  Requires-Dist: outcome==1.3.0.post0
65
64
  Requires-Dist: packaging==25.0
66
65
  Requires-Dist: pillow==11.3.0
67
66
  Requires-Dist: prompt_toolkit==3.0.51
68
- Requires-Dist: psutil==7.1.1
67
+ Requires-Dist: psutil==7.1.2
69
68
  Requires-Dist: psycopg==3.2.9
70
- Requires-Dist: psycopg-binary==3.2.11
69
+ Requires-Dist: psycopg-binary==3.2.12
71
70
  Requires-Dist: pyasn1==0.6.1
72
71
  Requires-Dist: pyasn1_modules==0.4.2
73
72
  Requires-Dist: pycparser==2.22
@@ -80,7 +79,7 @@ Requires-Dist: python-crontab==3.3.0
80
79
  Requires-Dist: python-dateutil==2.9.0.post0
81
80
  Requires-Dist: python-dotenv==1.1.1
82
81
  Requires-Dist: qrcode==8.2
83
- Requires-Dist: redis==5.0.8
82
+ Requires-Dist: redis==7.0.1
84
83
  Requires-Dist: reportlab==4.2.2
85
84
  Requires-Dist: requests==2.32.5
86
85
  Requires-Dist: selenium==4.34.2
@@ -104,14 +103,14 @@ Requires-Dist: typing_extensions==4.14.1
104
103
  Requires-Dist: tzdata==2025.2
105
104
  Requires-Dist: urllib3==2.5.0
106
105
  Requires-Dist: vine==5.1.0
107
- Requires-Dist: wcwidth==0.2.13
106
+ Requires-Dist: wcwidth==0.2.14
108
107
  Requires-Dist: webencodings==0.5.1
109
108
  Requires-Dist: websocket-client==1.8.0
110
109
  Requires-Dist: websockets==13.1
111
110
  Requires-Dist: whitenoise==6.11.0
112
111
  Requires-Dist: plyer==2.1.0; sys_platform == "win32"
113
112
  Requires-Dist: wsproto==1.2.0
114
- Requires-Dist: zope.interface==7.2
113
+ Requires-Dist: zope.interface==8.0.1
115
114
  Dynamic: license-file
116
115
 
117
116
  # Arthexis Constellation
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: arthexis
3
- Version: 0.1.20
3
+ Version: 0.1.22
4
4
  Summary: Power & Energy Infrastructure
5
5
  Author-email: "Rafael J. Guillén-Osorio" <tecnologia@gelectriic.com>
6
6
  License-Expression: GPL-3.0-only
@@ -26,14 +26,14 @@ Requires-Dist: celery==5.5.3
26
26
  Requires-Dist: certifi==2025.7.14
27
27
  Requires-Dist: cffi==2.0.0
28
28
  Requires-Dist: channels==4.1.0
29
- Requires-Dist: charset-normalizer==3.4.2
29
+ Requires-Dist: charset-normalizer==3.4.4
30
30
  Requires-Dist: click==8.2.1
31
31
  Requires-Dist: click-didyoumean==0.3.1
32
32
  Requires-Dist: click-plugins==1.1.1.2
33
33
  Requires-Dist: click-repl==0.3.0
34
34
  Requires-Dist: colorama==0.4.6
35
35
  Requires-Dist: constantly==23.10.4
36
- Requires-Dist: cron-descriptor==1.4.5
36
+ Requires-Dist: cron-descriptor==2.0.6
37
37
  Requires-Dist: cryptography==45.0.5
38
38
  Requires-Dist: daphne==4.2.1
39
39
  Requires-Dist: diff-match-patch==20241021
@@ -56,18 +56,17 @@ Requires-Dist: hyperlink==21.0.0
56
56
  Requires-Dist: idna==3.11
57
57
  Requires-Dist: incremental==24.7.2
58
58
  Requires-Dist: kombu==5.5.4
59
- Requires-Dist: libipld==3.1.1
60
- Requires-Dist: Markdown==3.8.2
59
+ Requires-Dist: libipld==3.2.0
60
+ Requires-Dist: Markdown==3.9
61
61
  Requires-Dist: mdx_truly_sane_lists==1.3
62
- Requires-Dist: mcp==1.18.0
63
62
  Requires-Dist: mfrc522==0.0.7; sys_platform == "linux"
64
63
  Requires-Dist: outcome==1.3.0.post0
65
64
  Requires-Dist: packaging==25.0
66
65
  Requires-Dist: pillow==11.3.0
67
66
  Requires-Dist: prompt_toolkit==3.0.51
68
- Requires-Dist: psutil==7.1.1
67
+ Requires-Dist: psutil==7.1.2
69
68
  Requires-Dist: psycopg==3.2.9
70
- Requires-Dist: psycopg-binary==3.2.11
69
+ Requires-Dist: psycopg-binary==3.2.12
71
70
  Requires-Dist: pyasn1==0.6.1
72
71
  Requires-Dist: pyasn1_modules==0.4.2
73
72
  Requires-Dist: pycparser==2.22
@@ -80,7 +79,7 @@ Requires-Dist: python-crontab==3.3.0
80
79
  Requires-Dist: python-dateutil==2.9.0.post0
81
80
  Requires-Dist: python-dotenv==1.1.1
82
81
  Requires-Dist: qrcode==8.2
83
- Requires-Dist: redis==5.0.8
82
+ Requires-Dist: redis==7.0.1
84
83
  Requires-Dist: reportlab==4.2.2
85
84
  Requires-Dist: requests==2.32.5
86
85
  Requires-Dist: selenium==4.34.2
@@ -104,14 +103,14 @@ Requires-Dist: typing_extensions==4.14.1
104
103
  Requires-Dist: tzdata==2025.2
105
104
  Requires-Dist: urllib3==2.5.0
106
105
  Requires-Dist: vine==5.1.0
107
- Requires-Dist: wcwidth==0.2.13
106
+ Requires-Dist: wcwidth==0.2.14
108
107
  Requires-Dist: webencodings==0.5.1
109
108
  Requires-Dist: websocket-client==1.8.0
110
109
  Requires-Dist: websockets==13.1
111
110
  Requires-Dist: whitenoise==6.11.0
112
111
  Requires-Dist: plyer==2.1.0; sys_platform == "win32"
113
112
  Requires-Dist: wsproto==1.2.0
114
- Requires-Dist: zope.interface==7.2
113
+ Requires-Dist: zope.interface==8.0.1
115
114
  Dynamic: license-file
116
115
 
117
116
  # Arthexis Constellation
@@ -60,8 +60,6 @@ core/urls.py
60
60
  core/user_data.py
61
61
  core/views.py
62
62
  core/widgets.py
63
- core/workgroup_urls.py
64
- core/workgroup_views.py
65
63
  nodes/__init__.py
66
64
  nodes/admin.py
67
65
  nodes/apps.py
@@ -125,9 +123,6 @@ tests/test_admin_profile_link.py
125
123
  tests/test_admin_system_stop.py
126
124
  tests/test_allowed_hosts_hostname.py
127
125
  tests/test_api_login_required.py
128
- tests/test_assistant_data_api.py
129
- tests/test_assistant_profile_admin.py
130
- tests/test_assistant_profile_api.py
131
126
  tests/test_auto_upgrade_scheduler.py
132
127
  tests/test_awg_admin.py
133
128
  tests/test_benchmark_command.py
@@ -171,11 +166,6 @@ tests/test_log_paths.py
171
166
  tests/test_login_view_no_site.py
172
167
  tests/test_manage_debug_flag.py
173
168
  tests/test_manuals.py
174
- tests/test_mcp_asgi.py
175
- tests/test_mcp_auto_start.py
176
- tests/test_mcp_process.py
177
- tests/test_mcp_sigil_server.py
178
- tests/test_mcp_sigil_server_command.py
179
169
  tests/test_message_command.py
180
170
  tests/test_migrations.py
181
171
  tests/test_model_verbose_name_capitalization.py
@@ -194,6 +184,7 @@ tests/test_power_admin_group.py
194
184
  tests/test_profile_inline_deletion.py
195
185
  tests/test_pypi_check.py
196
186
  tests/test_pypi_token.py
187
+ tests/test_readme_assets.py
197
188
  tests/test_readme_editor.py
198
189
  tests/test_readme_language.py
199
190
  tests/test_reference_qr_code.py
@@ -223,6 +214,7 @@ tests/test_role_marker_filtering.py
223
214
  tests/test_seed_data.py
224
215
  tests/test_send_invite_command.py
225
216
  tests/test_settings_helpers.py
217
+ tests/test_settings_mcp_port.py
226
218
  tests/test_shell_scripts.py
227
219
  tests/test_show_leads_command.py
228
220
  tests/test_sigil_builder.py
@@ -13,14 +13,14 @@ celery==5.5.3
13
13
  certifi==2025.7.14
14
14
  cffi==2.0.0
15
15
  channels==4.1.0
16
- charset-normalizer==3.4.2
16
+ charset-normalizer==3.4.4
17
17
  click==8.2.1
18
18
  click-didyoumean==0.3.1
19
19
  click-plugins==1.1.1.2
20
20
  click-repl==0.3.0
21
21
  colorama==0.4.6
22
22
  constantly==23.10.4
23
- cron-descriptor==1.4.5
23
+ cron-descriptor==2.0.6
24
24
  cryptography==45.0.5
25
25
  daphne==4.2.1
26
26
  diff-match-patch==20241021
@@ -42,17 +42,16 @@ hyperlink==21.0.0
42
42
  idna==3.11
43
43
  incremental==24.7.2
44
44
  kombu==5.5.4
45
- libipld==3.1.1
46
- Markdown==3.8.2
45
+ libipld==3.2.0
46
+ Markdown==3.9
47
47
  mdx_truly_sane_lists==1.3
48
- mcp==1.18.0
49
48
  outcome==1.3.0.post0
50
49
  packaging==25.0
51
50
  pillow==11.3.0
52
51
  prompt_toolkit==3.0.51
53
- psutil==7.1.1
52
+ psutil==7.1.2
54
53
  psycopg==3.2.9
55
- psycopg-binary==3.2.11
54
+ psycopg-binary==3.2.12
56
55
  pyasn1==0.6.1
57
56
  pyasn1_modules==0.4.2
58
57
  pycparser==2.22
@@ -65,7 +64,7 @@ python-crontab==3.3.0
65
64
  python-dateutil==2.9.0.post0
66
65
  python-dotenv==1.1.1
67
66
  qrcode==8.2
68
- redis==5.0.8
67
+ redis==7.0.1
69
68
  reportlab==4.2.2
70
69
  requests==2.32.5
71
70
  selenium==4.34.2
@@ -89,13 +88,13 @@ typing_extensions==4.14.1
89
88
  tzdata==2025.2
90
89
  urllib3==2.5.0
91
90
  vine==5.1.0
92
- wcwidth==0.2.13
91
+ wcwidth==0.2.14
93
92
  webencodings==0.5.1
94
93
  websocket-client==1.8.0
95
94
  websockets==13.1
96
95
  whitenoise==6.11.0
97
96
  wsproto==1.2.0
98
- zope.interface==7.2
97
+ zope.interface==8.0.1
99
98
 
100
99
  [:sys_platform == "linux"]
101
100
  gpiozero==2.0.1
@@ -9,35 +9,21 @@ https://docs.djangoproject.com/en/5.2/howto/deployment/asgi/
9
9
 
10
10
  import os
11
11
  from config.loadenv import loadenv
12
- from typing import Any, Awaitable, Callable, Dict, MutableMapping
13
12
  from channels.auth import AuthMiddlewareStack
14
13
  from channels.routing import ProtocolTypeRouter, URLRouter
15
14
  from django.core.asgi import get_asgi_application
16
15
  import ocpp.routing
17
16
 
18
- from core.mcp.asgi import application as mcp_application
19
- from core.mcp.asgi import is_mcp_scope
20
-
21
17
  loadenv()
22
18
  os.environ.setdefault("DJANGO_SETTINGS_MODULE", "config.settings")
23
19
 
24
20
  django_asgi_app = get_asgi_application()
25
21
 
26
- Scope = MutableMapping[str, Any]
27
- Receive = Callable[[], Awaitable[Dict[str, Any]]]
28
- Send = Callable[[Dict[str, Any]], Awaitable[None]]
29
-
30
22
  websocket_patterns = ocpp.routing.websocket_urlpatterns
31
23
 
32
- async def http_application(scope: Scope, receive: Receive, send: Send) -> None:
33
- if is_mcp_scope(scope):
34
- await mcp_application(scope, receive, send)
35
- else:
36
- await django_asgi_app(scope, receive, send)
37
-
38
24
  application = ProtocolTypeRouter(
39
25
  {
40
- "http": http_application,
26
+ "http": django_asgi_app,
41
27
  "websocket": AuthMiddlewareStack(URLRouter(websocket_patterns)),
42
28
  }
43
29
  )
@@ -444,32 +444,6 @@ ASGI_APPLICATION = "config.asgi.application"
444
444
  CHANNEL_LAYERS = {"default": {"BACKEND": "channels.layers.InMemoryChannelLayer"}}
445
445
 
446
446
 
447
- # MCP sigil resolver configuration
448
- def _env_int(name: str, default: int) -> int:
449
- try:
450
- return int(os.environ.get(name, default))
451
- except (TypeError, ValueError): # pragma: no cover - defensive
452
- return default
453
-
454
-
455
- def _split_env_list(name: str) -> list[str]:
456
- raw = os.environ.get(name)
457
- if not raw:
458
- return []
459
- return [item.strip() for item in raw.split(",") if item.strip()]
460
-
461
-
462
- MCP_SIGIL_SERVER = {
463
- "host": os.environ.get("MCP_SIGIL_HOST", "127.0.0.1"),
464
- "port": _env_int("MCP_SIGIL_PORT", 8800),
465
- "api_keys": _split_env_list("MCP_SIGIL_API_KEYS"),
466
- "required_scopes": ["sigils:read"],
467
- "issuer_url": os.environ.get("MCP_SIGIL_ISSUER_URL"),
468
- "resource_server_url": os.environ.get("MCP_SIGIL_RESOURCE_URL"),
469
- "mount_path": os.environ.get("MCP_SIGIL_MOUNT_PATH", "/mcp"),
470
- }
471
-
472
-
473
447
  # Custom user model
474
448
  AUTH_USER_MODEL = "core.User"
475
449
 
@@ -688,4 +662,8 @@ CELERY_BEAT_SCHEDULE = {
688
662
  "task": "core.tasks.heartbeat",
689
663
  "schedule": crontab(minute="*/5"),
690
664
  },
665
+ "ocpp_configuration_check": {
666
+ "task": "ocpp.tasks.schedule_daily_charge_point_configuration_checks",
667
+ "schedule": crontab(minute=0, hour=0),
668
+ },
691
669
  }
@@ -134,6 +134,11 @@ urlpatterns = [
134
134
  core_views.todo_done,
135
135
  name="todo-done",
136
136
  ),
137
+ path(
138
+ "admin/core/todos/<int:pk>/delete/",
139
+ core_views.todo_delete,
140
+ name="todo-delete",
141
+ ),
137
142
  path(
138
143
  "admin/core/todos/<int:pk>/snapshot/",
139
144
  core_views.todo_snapshot,
@@ -156,7 +161,6 @@ urlpatterns = [
156
161
  ),
157
162
  path("admin/", admin.site.urls),
158
163
  path("i18n/setlang/", csrf_exempt(set_language), name="set_language"),
159
- path("api/", include("core.workgroup_urls")),
160
164
  path("", include("pages.urls")),
161
165
  ]
162
166