arthexis 0.1.19__tar.gz → 0.1.21__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 (256) hide show
  1. {arthexis-0.1.19 → arthexis-0.1.21}/PKG-INFO +5 -6
  2. {arthexis-0.1.19 → arthexis-0.1.21}/README.md +2 -2
  3. {arthexis-0.1.19 → arthexis-0.1.21}/arthexis.egg-info/PKG-INFO +5 -6
  4. {arthexis-0.1.19 → arthexis-0.1.21}/arthexis.egg-info/SOURCES.txt +4 -10
  5. {arthexis-0.1.19 → arthexis-0.1.21}/arthexis.egg-info/requires.txt +2 -3
  6. {arthexis-0.1.19 → arthexis-0.1.21}/config/asgi.py +1 -15
  7. {arthexis-0.1.19 → arthexis-0.1.21}/config/settings.py +0 -26
  8. {arthexis-0.1.19 → arthexis-0.1.21}/config/urls.py +0 -1
  9. {arthexis-0.1.19 → arthexis-0.1.21}/core/admin.py +143 -234
  10. {arthexis-0.1.19 → arthexis-0.1.21}/core/apps.py +0 -6
  11. {arthexis-0.1.19 → arthexis-0.1.21}/core/backends.py +8 -2
  12. arthexis-0.1.21/core/environment.py +297 -0
  13. {arthexis-0.1.19 → arthexis-0.1.21}/core/models.py +132 -102
  14. {arthexis-0.1.19 → arthexis-0.1.21}/core/notifications.py +1 -1
  15. {arthexis-0.1.19 → arthexis-0.1.21}/core/reference_utils.py +10 -11
  16. {arthexis-0.1.19 → arthexis-0.1.21}/core/sigil_builder.py +2 -2
  17. {arthexis-0.1.19 → arthexis-0.1.21}/core/tasks.py +24 -1
  18. {arthexis-0.1.19 → arthexis-0.1.21}/core/tests.py +2 -7
  19. {arthexis-0.1.19 → arthexis-0.1.21}/core/views.py +70 -132
  20. {arthexis-0.1.19 → arthexis-0.1.21}/nodes/admin.py +162 -7
  21. {arthexis-0.1.19 → arthexis-0.1.21}/nodes/models.py +294 -48
  22. {arthexis-0.1.19 → arthexis-0.1.21}/nodes/rfid_sync.py +1 -1
  23. arthexis-0.1.21/nodes/tasks.py +144 -0
  24. {arthexis-0.1.19 → arthexis-0.1.21}/nodes/tests.py +581 -15
  25. {arthexis-0.1.19 → arthexis-0.1.21}/nodes/urls.py +4 -0
  26. arthexis-0.1.21/nodes/views.py +1134 -0
  27. {arthexis-0.1.19 → arthexis-0.1.21}/ocpp/admin.py +144 -4
  28. {arthexis-0.1.19 → arthexis-0.1.21}/ocpp/consumers.py +106 -9
  29. {arthexis-0.1.19 → arthexis-0.1.21}/ocpp/models.py +131 -1
  30. {arthexis-0.1.19 → arthexis-0.1.21}/ocpp/tasks.py +4 -0
  31. {arthexis-0.1.19 → arthexis-0.1.21}/ocpp/test_export_import.py +1 -0
  32. {arthexis-0.1.19 → arthexis-0.1.21}/ocpp/test_rfid.py +3 -1
  33. {arthexis-0.1.19 → arthexis-0.1.21}/ocpp/tests.py +183 -9
  34. {arthexis-0.1.19 → arthexis-0.1.21}/ocpp/transactions_io.py +9 -1
  35. {arthexis-0.1.19 → arthexis-0.1.21}/ocpp/urls.py +3 -3
  36. {arthexis-0.1.19 → arthexis-0.1.21}/ocpp/views.py +186 -31
  37. {arthexis-0.1.19 → arthexis-0.1.21}/pages/context_processors.py +15 -21
  38. {arthexis-0.1.19 → arthexis-0.1.21}/pages/defaults.py +1 -1
  39. {arthexis-0.1.19 → arthexis-0.1.21}/pages/module_defaults.py +5 -5
  40. {arthexis-0.1.19 → arthexis-0.1.21}/pages/tests.py +110 -79
  41. {arthexis-0.1.19 → arthexis-0.1.21}/pages/urls.py +1 -1
  42. {arthexis-0.1.19 → arthexis-0.1.21}/pages/views.py +108 -13
  43. {arthexis-0.1.19 → arthexis-0.1.21}/pyproject.toml +2 -2
  44. {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_admin_client_report.py +5 -0
  45. {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_allowed_hosts_hostname.py +3 -0
  46. {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_auto_upgrade_scheduler.py +4 -0
  47. {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_celery_no_debug.py +1 -0
  48. {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_client_report_form.py +14 -0
  49. {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_client_report_generation.py +5 -0
  50. {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_client_report_schedule.py +5 -0
  51. {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_email_inbox.py +1 -1
  52. {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_email_profiles.py +0 -3
  53. {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_email_transaction.py +1 -1
  54. arthexis-0.1.21/tests/test_environment_network_setup_form.py +39 -0
  55. arthexis-0.1.21/tests/test_fixture_presence.py +53 -0
  56. {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_install_script.py +23 -11
  57. {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_invitation_login_view.py +4 -0
  58. {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_network_setup_interactive.py +10 -0
  59. {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_node_info_view.py +3 -0
  60. {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_profile_inline_deletion.py +2 -44
  61. arthexis-0.1.21/tests/test_readme_editor.py +58 -0
  62. {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_release_build_flow.py +1 -0
  63. {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_release_logs.py +8 -1
  64. {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_release_progress.py +54 -112
  65. {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_release_progress_pre_release_integration.py +10 -33
  66. {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_release_push.py +62 -0
  67. {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_release_tasks.py +118 -4
  68. {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_render_nginx_sites.py +5 -0
  69. {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_rfid_admin_print_labels.py +84 -1
  70. {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_rfid_admin_scan_csrf.py +4 -0
  71. {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_rfid_always_on.py +3 -0
  72. {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_rfid_backend.py +46 -1
  73. {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_seed_data.py +3 -1
  74. {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_settings_helpers.py +21 -0
  75. arthexis-0.1.21/tests/test_settings_mcp_port.py +35 -0
  76. {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_sigil_resolution.py +5 -0
  77. arthexis-0.1.21/tests/test_suite_gateway.py +127 -0
  78. {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_switch_role_script.py +0 -17
  79. arthexis-0.1.21/tests/test_uninstall_script.py +9 -0
  80. {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_urls_autodiscover.py +1 -1
  81. {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_user_data_admin.py +1 -5
  82. arthexis-0.1.19/core/environment.py +0 -61
  83. arthexis-0.1.19/core/workgroup_urls.py +0 -17
  84. arthexis-0.1.19/core/workgroup_views.py +0 -94
  85. arthexis-0.1.19/nodes/tasks.py +0 -46
  86. arthexis-0.1.19/nodes/views.py +0 -670
  87. arthexis-0.1.19/tests/test_assistant_data_api.py +0 -32
  88. arthexis-0.1.19/tests/test_assistant_profile_admin.py +0 -168
  89. arthexis-0.1.19/tests/test_assistant_profile_api.py +0 -49
  90. arthexis-0.1.19/tests/test_fixture_presence.py +0 -21
  91. arthexis-0.1.19/tests/test_mcp_asgi.py +0 -55
  92. arthexis-0.1.19/tests/test_mcp_auto_start.py +0 -170
  93. arthexis-0.1.19/tests/test_mcp_process.py +0 -43
  94. arthexis-0.1.19/tests/test_mcp_sigil_server.py +0 -182
  95. arthexis-0.1.19/tests/test_mcp_sigil_server_command.py +0 -42
  96. arthexis-0.1.19/tests/test_uninstall_script.py +0 -20
  97. {arthexis-0.1.19 → arthexis-0.1.21}/LICENSE +0 -0
  98. {arthexis-0.1.19 → arthexis-0.1.21}/arthexis.egg-info/dependency_links.txt +0 -0
  99. {arthexis-0.1.19 → arthexis-0.1.21}/arthexis.egg-info/top_level.txt +0 -0
  100. {arthexis-0.1.19 → arthexis-0.1.21}/config/__init__.py +0 -0
  101. {arthexis-0.1.19 → arthexis-0.1.21}/config/active_app.py +0 -0
  102. {arthexis-0.1.19 → arthexis-0.1.21}/config/auth_app.py +0 -0
  103. {arthexis-0.1.19 → arthexis-0.1.21}/config/celery.py +0 -0
  104. {arthexis-0.1.19 → arthexis-0.1.21}/config/context_processors.py +0 -0
  105. {arthexis-0.1.19 → arthexis-0.1.21}/config/horologia_app.py +0 -0
  106. {arthexis-0.1.19 → arthexis-0.1.21}/config/loadenv.py +0 -0
  107. {arthexis-0.1.19 → arthexis-0.1.21}/config/logging.py +0 -0
  108. {arthexis-0.1.19 → arthexis-0.1.21}/config/middleware.py +0 -0
  109. {arthexis-0.1.19 → arthexis-0.1.21}/config/offline.py +0 -0
  110. {arthexis-0.1.19 → arthexis-0.1.21}/config/settings_helpers.py +0 -0
  111. {arthexis-0.1.19 → arthexis-0.1.21}/config/wsgi.py +0 -0
  112. {arthexis-0.1.19 → arthexis-0.1.21}/core/__init__.py +0 -0
  113. {arthexis-0.1.19 → arthexis-0.1.21}/core/admin_history.py +0 -0
  114. {arthexis-0.1.19 → arthexis-0.1.21}/core/admindocs.py +0 -0
  115. {arthexis-0.1.19 → arthexis-0.1.21}/core/auto_upgrade.py +0 -0
  116. {arthexis-0.1.19 → arthexis-0.1.21}/core/changelog.py +0 -0
  117. {arthexis-0.1.19 → arthexis-0.1.21}/core/entity.py +0 -0
  118. {arthexis-0.1.19 → arthexis-0.1.21}/core/fields.py +0 -0
  119. {arthexis-0.1.19 → arthexis-0.1.21}/core/form_fields.py +0 -0
  120. {arthexis-0.1.19 → arthexis-0.1.21}/core/github_helper.py +0 -0
  121. {arthexis-0.1.19 → arthexis-0.1.21}/core/github_issues.py +0 -0
  122. {arthexis-0.1.19 → arthexis-0.1.21}/core/github_repos.py +0 -0
  123. {arthexis-0.1.19 → arthexis-0.1.21}/core/lcd_screen.py +0 -0
  124. {arthexis-0.1.19 → arthexis-0.1.21}/core/liveupdate.py +0 -0
  125. {arthexis-0.1.19 → arthexis-0.1.21}/core/log_paths.py +0 -0
  126. {arthexis-0.1.19 → arthexis-0.1.21}/core/mailer.py +0 -0
  127. {arthexis-0.1.19 → arthexis-0.1.21}/core/middleware.py +0 -0
  128. {arthexis-0.1.19 → arthexis-0.1.21}/core/public_wifi.py +0 -0
  129. {arthexis-0.1.19 → arthexis-0.1.21}/core/release.py +0 -0
  130. {arthexis-0.1.19 → arthexis-0.1.21}/core/rfid_import_export.py +0 -0
  131. {arthexis-0.1.19 → arthexis-0.1.21}/core/sigil_context.py +0 -0
  132. {arthexis-0.1.19 → arthexis-0.1.21}/core/sigil_resolver.py +0 -0
  133. {arthexis-0.1.19 → arthexis-0.1.21}/core/system.py +0 -0
  134. {arthexis-0.1.19 → arthexis-0.1.21}/core/temp_passwords.py +0 -0
  135. {arthexis-0.1.19 → arthexis-0.1.21}/core/test_system_info.py +0 -0
  136. {arthexis-0.1.19 → arthexis-0.1.21}/core/tests_liveupdate.py +0 -0
  137. {arthexis-0.1.19 → arthexis-0.1.21}/core/urls.py +0 -0
  138. {arthexis-0.1.19 → arthexis-0.1.21}/core/user_data.py +0 -0
  139. {arthexis-0.1.19 → arthexis-0.1.21}/core/widgets.py +0 -0
  140. {arthexis-0.1.19 → arthexis-0.1.21}/nodes/__init__.py +0 -0
  141. {arthexis-0.1.19 → arthexis-0.1.21}/nodes/apps.py +0 -0
  142. {arthexis-0.1.19 → arthexis-0.1.21}/nodes/backends.py +0 -0
  143. {arthexis-0.1.19 → arthexis-0.1.21}/nodes/dns.py +0 -0
  144. {arthexis-0.1.19 → arthexis-0.1.21}/nodes/feature_checks.py +0 -0
  145. {arthexis-0.1.19 → arthexis-0.1.21}/nodes/lcd.py +0 -0
  146. {arthexis-0.1.19 → arthexis-0.1.21}/nodes/reports.py +0 -0
  147. {arthexis-0.1.19 → arthexis-0.1.21}/nodes/signals.py +0 -0
  148. {arthexis-0.1.19 → arthexis-0.1.21}/nodes/utils.py +0 -0
  149. {arthexis-0.1.19 → arthexis-0.1.21}/ocpp/__init__.py +0 -0
  150. {arthexis-0.1.19 → arthexis-0.1.21}/ocpp/apps.py +0 -0
  151. {arthexis-0.1.19 → arthexis-0.1.21}/ocpp/evcs.py +0 -0
  152. {arthexis-0.1.19 → arthexis-0.1.21}/ocpp/evcs_discovery.py +0 -0
  153. {arthexis-0.1.19 → arthexis-0.1.21}/ocpp/reference_utils.py +0 -0
  154. {arthexis-0.1.19 → arthexis-0.1.21}/ocpp/routing.py +0 -0
  155. {arthexis-0.1.19 → arthexis-0.1.21}/ocpp/simulator.py +0 -0
  156. {arthexis-0.1.19 → arthexis-0.1.21}/ocpp/status_display.py +0 -0
  157. {arthexis-0.1.19 → arthexis-0.1.21}/ocpp/store.py +0 -0
  158. {arthexis-0.1.19 → arthexis-0.1.21}/pages/__init__.py +0 -0
  159. {arthexis-0.1.19 → arthexis-0.1.21}/pages/admin.py +0 -0
  160. {arthexis-0.1.19 → arthexis-0.1.21}/pages/apps.py +0 -0
  161. {arthexis-0.1.19 → arthexis-0.1.21}/pages/checks.py +0 -0
  162. {arthexis-0.1.19 → arthexis-0.1.21}/pages/forms.py +0 -0
  163. {arthexis-0.1.19 → arthexis-0.1.21}/pages/middleware.py +0 -0
  164. {arthexis-0.1.19 → arthexis-0.1.21}/pages/models.py +0 -0
  165. {arthexis-0.1.19 → arthexis-0.1.21}/pages/site_config.py +0 -0
  166. {arthexis-0.1.19 → arthexis-0.1.21}/pages/tasks.py +0 -0
  167. {arthexis-0.1.19 → arthexis-0.1.21}/pages/utils.py +0 -0
  168. {arthexis-0.1.19 → arthexis-0.1.21}/setup.cfg +0 -0
  169. {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_acronym_capitalization.py +0 -0
  170. {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_admin_doc_commands.py +0 -0
  171. {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_admin_doc_model_groups.py +0 -0
  172. {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_admin_history.py +0 -0
  173. {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_admin_index_actions.py +0 -0
  174. {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_admin_model_graph.py +0 -0
  175. {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_admin_object_history.py +0 -0
  176. {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_admin_profile_link.py +0 -0
  177. {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_admin_system_stop.py +0 -0
  178. {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_api_login_required.py +0 -0
  179. {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_awg_admin.py +0 -0
  180. {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_benchmark_command.py +0 -0
  181. {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_build_pypi_command.py +0 -0
  182. {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_changelog_builder.py +0 -0
  183. {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_check_admin_command.py +0 -0
  184. {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_check_migrations_script.py +0 -0
  185. {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_check_pypi_command.py +0 -0
  186. {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_clean_release_logs_command.py +0 -0
  187. {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_csrf_failure.py +0 -0
  188. {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_csrf_origin_subnet.py +0 -0
  189. {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_dist_cleanup.py +0 -0
  190. {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_email_collector.py +0 -0
  191. {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_email_inbox_admin.py +0 -0
  192. {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_email_inbox_search_action.py +0 -0
  193. {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_email_outbox_admin.py +0 -0
  194. {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_env_refresh_clean.py +0 -0
  195. {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_env_refresh_pip.py +0 -0
  196. {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_env_refresh_unlink.py +0 -0
  197. {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_experience_admin_group.py +0 -0
  198. {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_footer_no_references.py +0 -0
  199. {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_footer_presence.py +0 -0
  200. {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_footer_render.py +0 -0
  201. {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_git_checks.py +0 -0
  202. {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_github_issue_reporting.py +0 -0
  203. {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_language_switch.py +0 -0
  204. {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_lcd_check_command.py +0 -0
  205. {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_lcd_smbus2.py +0 -0
  206. {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_localhost_admin_backend.py +0 -0
  207. {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_log_paths.py +0 -0
  208. {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_login_view_no_site.py +0 -0
  209. {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_manage_debug_flag.py +0 -0
  210. {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_manuals.py +0 -0
  211. {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_message_command.py +0 -0
  212. {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_migrations.py +0 -0
  213. {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_model_verbose_name_capitalization.py +0 -0
  214. {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_notifications_fallback.py +0 -0
  215. {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_notify_command.py +0 -0
  216. {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_ocpp_session_lock.py +0 -0
  217. {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_odoo_product.py +0 -0
  218. {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_odoo_profile.py +0 -0
  219. {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_odoo_profile_admin.py +0 -0
  220. {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_odoo_quote_report.py +0 -0
  221. {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_offline.py +0 -0
  222. {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_package_admin_next_release.py +0 -0
  223. {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_power_admin_group.py +0 -0
  224. {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_pypi_check.py +0 -0
  225. {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_pypi_token.py +0 -0
  226. {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_readme_language.py +0 -0
  227. {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_reference_qr_code.py +0 -0
  228. {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_reference_transaction_uuid.py +0 -0
  229. {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_register_site_apps_command.py +0 -0
  230. {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_release_build.py +0 -0
  231. {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_release_checklist.py +0 -0
  232. {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_release_manager_admin.py +0 -0
  233. {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_release_packages.py +0 -0
  234. {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_request_invite.py +0 -0
  235. {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_rfid_admin_reference_clear.py +0 -0
  236. {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_rfid_background_reader.py +0 -0
  237. {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_rfid_client_report.py +0 -0
  238. {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_rfid_watch_command.py +0 -0
  239. {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_role_marker_filtering.py +0 -0
  240. {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_send_invite_command.py +0 -0
  241. {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_shell_scripts.py +0 -0
  242. {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_show_leads_command.py +0 -0
  243. {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_sigil_builder.py +0 -0
  244. {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_sites_utils.py +0 -0
  245. {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_social_profile.py +0 -0
  246. {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_staff_login_net_message.py +0 -0
  247. {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_staff_required_decorator.py +0 -0
  248. {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_system_changelog_report.py +0 -0
  249. {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_temp_passwords.py +0 -0
  250. {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_totp_admin.py +0 -0
  251. {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_totp_backend.py +0 -0
  252. {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_update_fixtures_command.py +0 -0
  253. {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_upgrade_report.py +0 -0
  254. {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_version_endpoint.py +0 -0
  255. {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_version_file.py +0 -0
  256. {arthexis-0.1.19 → arthexis-0.1.21}/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.19
3
+ Version: 0.1.21
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
@@ -59,7 +59,6 @@ Requires-Dist: kombu==5.5.4
59
59
  Requires-Dist: libipld==3.1.1
60
60
  Requires-Dist: Markdown==3.8.2
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
@@ -67,7 +66,7 @@ Requires-Dist: pillow==11.3.0
67
66
  Requires-Dist: prompt_toolkit==3.0.51
68
67
  Requires-Dist: psutil==7.1.1
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
@@ -111,7 +110,7 @@ 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
@@ -171,7 +170,7 @@ Arthexis Constellation ships in four node roles tailored to different deployment
171
170
  <td valign="top"><strong>Multi-Device Edge, Network &amp; Data Acquisition</strong><br />Features: AP Router, Celery Queue, NGINX Server, RFID Scanner</td>
172
171
  </tr>
173
172
  <tr>
174
- <td valign="top"><strong>Constellation</strong></td>
173
+ <td valign="top"><strong>Watchtower</strong></td>
175
174
  <td valign="top"><strong>Multi-User Cloud &amp; Orchestration</strong><br />Features: Celery Queue, NGINX Server</td>
176
175
  </tr>
177
176
  </tbody>
@@ -184,7 +183,7 @@ Arthexis Constellation ships in four node roles tailored to different deployment
184
183
  - **[Windows](https://en.wikipedia.org/wiki/Microsoft_Windows)**: open [PowerShell](https://learn.microsoft.com/powershell/) or [Git Bash](https://gitforwindows.org/) and run the same command.
185
184
 
186
185
  ### 2. Start and stop
187
- Terminal nodes can start directly with the scripts below without installing; Control, Satellite, and Constellation roles require installation first. Both approaches listen on [`http://localhost:8000/`](http://localhost:8000/) by default.
186
+ Terminal nodes can start directly with the scripts below without installing; Control, Satellite, and Watchtower roles require installation first. Both approaches listen on [`http://localhost:8000/`](http://localhost:8000/) by default.
188
187
 
189
188
  - **[VS Code](https://code.visualstudio.com/)**
190
189
  - Open the folder and go to the **Run and Debug** panel (`Ctrl+Shift+D`).
@@ -55,7 +55,7 @@ Arthexis Constellation ships in four node roles tailored to different deployment
55
55
  <td valign="top"><strong>Multi-Device Edge, Network &amp; Data Acquisition</strong><br />Features: AP Router, Celery Queue, NGINX Server, RFID Scanner</td>
56
56
  </tr>
57
57
  <tr>
58
- <td valign="top"><strong>Constellation</strong></td>
58
+ <td valign="top"><strong>Watchtower</strong></td>
59
59
  <td valign="top"><strong>Multi-User Cloud &amp; Orchestration</strong><br />Features: Celery Queue, NGINX Server</td>
60
60
  </tr>
61
61
  </tbody>
@@ -68,7 +68,7 @@ Arthexis Constellation ships in four node roles tailored to different deployment
68
68
  - **[Windows](https://en.wikipedia.org/wiki/Microsoft_Windows)**: open [PowerShell](https://learn.microsoft.com/powershell/) or [Git Bash](https://gitforwindows.org/) and run the same command.
69
69
 
70
70
  ### 2. Start and stop
71
- Terminal nodes can start directly with the scripts below without installing; Control, Satellite, and Constellation roles require installation first. Both approaches listen on [`http://localhost:8000/`](http://localhost:8000/) by default.
71
+ Terminal nodes can start directly with the scripts below without installing; Control, Satellite, and Watchtower roles require installation first. Both approaches listen on [`http://localhost:8000/`](http://localhost:8000/) by default.
72
72
 
73
73
  - **[VS Code](https://code.visualstudio.com/)**
74
74
  - Open the folder and go to the **Run and Debug** panel (`Ctrl+Shift+D`).
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: arthexis
3
- Version: 0.1.19
3
+ Version: 0.1.21
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
@@ -59,7 +59,6 @@ Requires-Dist: kombu==5.5.4
59
59
  Requires-Dist: libipld==3.1.1
60
60
  Requires-Dist: Markdown==3.8.2
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
@@ -67,7 +66,7 @@ Requires-Dist: pillow==11.3.0
67
66
  Requires-Dist: prompt_toolkit==3.0.51
68
67
  Requires-Dist: psutil==7.1.1
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
@@ -111,7 +110,7 @@ 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
@@ -171,7 +170,7 @@ Arthexis Constellation ships in four node roles tailored to different deployment
171
170
  <td valign="top"><strong>Multi-Device Edge, Network &amp; Data Acquisition</strong><br />Features: AP Router, Celery Queue, NGINX Server, RFID Scanner</td>
172
171
  </tr>
173
172
  <tr>
174
- <td valign="top"><strong>Constellation</strong></td>
173
+ <td valign="top"><strong>Watchtower</strong></td>
175
174
  <td valign="top"><strong>Multi-User Cloud &amp; Orchestration</strong><br />Features: Celery Queue, NGINX Server</td>
176
175
  </tr>
177
176
  </tbody>
@@ -184,7 +183,7 @@ Arthexis Constellation ships in four node roles tailored to different deployment
184
183
  - **[Windows](https://en.wikipedia.org/wiki/Microsoft_Windows)**: open [PowerShell](https://learn.microsoft.com/powershell/) or [Git Bash](https://gitforwindows.org/) and run the same command.
185
184
 
186
185
  ### 2. Start and stop
187
- Terminal nodes can start directly with the scripts below without installing; Control, Satellite, and Constellation roles require installation first. Both approaches listen on [`http://localhost:8000/`](http://localhost:8000/) by default.
186
+ Terminal nodes can start directly with the scripts below without installing; Control, Satellite, and Watchtower roles require installation first. Both approaches listen on [`http://localhost:8000/`](http://localhost:8000/) by default.
188
187
 
189
188
  - **[VS Code](https://code.visualstudio.com/)**
190
189
  - Open the folder and go to the **Run and Debug** panel (`Ctrl+Shift+D`).
@@ -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
@@ -154,6 +149,7 @@ tests/test_email_transaction.py
154
149
  tests/test_env_refresh_clean.py
155
150
  tests/test_env_refresh_pip.py
156
151
  tests/test_env_refresh_unlink.py
152
+ tests/test_environment_network_setup_form.py
157
153
  tests/test_experience_admin_group.py
158
154
  tests/test_fixture_presence.py
159
155
  tests/test_footer_no_references.py
@@ -171,11 +167,6 @@ tests/test_log_paths.py
171
167
  tests/test_login_view_no_site.py
172
168
  tests/test_manage_debug_flag.py
173
169
  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
170
  tests/test_message_command.py
180
171
  tests/test_migrations.py
181
172
  tests/test_model_verbose_name_capitalization.py
@@ -194,6 +185,7 @@ tests/test_power_admin_group.py
194
185
  tests/test_profile_inline_deletion.py
195
186
  tests/test_pypi_check.py
196
187
  tests/test_pypi_token.py
188
+ tests/test_readme_editor.py
197
189
  tests/test_readme_language.py
198
190
  tests/test_reference_qr_code.py
199
191
  tests/test_reference_transaction_uuid.py
@@ -222,6 +214,7 @@ tests/test_role_marker_filtering.py
222
214
  tests/test_seed_data.py
223
215
  tests/test_send_invite_command.py
224
216
  tests/test_settings_helpers.py
217
+ tests/test_settings_mcp_port.py
225
218
  tests/test_shell_scripts.py
226
219
  tests/test_show_leads_command.py
227
220
  tests/test_sigil_builder.py
@@ -230,6 +223,7 @@ tests/test_sites_utils.py
230
223
  tests/test_social_profile.py
231
224
  tests/test_staff_login_net_message.py
232
225
  tests/test_staff_required_decorator.py
226
+ tests/test_suite_gateway.py
233
227
  tests/test_switch_role_script.py
234
228
  tests/test_system_changelog_report.py
235
229
  tests/test_temp_passwords.py
@@ -45,14 +45,13 @@ kombu==5.5.4
45
45
  libipld==3.1.1
46
46
  Markdown==3.8.2
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
52
  psutil==7.1.1
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
@@ -95,7 +94,7 @@ 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
 
@@ -156,7 +156,6 @@ urlpatterns = [
156
156
  ),
157
157
  path("admin/", admin.site.urls),
158
158
  path("i18n/setlang/", csrf_exempt(set_language), name="set_language"),
159
- path("api/", include("core.workgroup_urls")),
160
159
  path("", include("pages.urls")),
161
160
  ]
162
161