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.
- {arthexis-0.1.19 → arthexis-0.1.21}/PKG-INFO +5 -6
- {arthexis-0.1.19 → arthexis-0.1.21}/README.md +2 -2
- {arthexis-0.1.19 → arthexis-0.1.21}/arthexis.egg-info/PKG-INFO +5 -6
- {arthexis-0.1.19 → arthexis-0.1.21}/arthexis.egg-info/SOURCES.txt +4 -10
- {arthexis-0.1.19 → arthexis-0.1.21}/arthexis.egg-info/requires.txt +2 -3
- {arthexis-0.1.19 → arthexis-0.1.21}/config/asgi.py +1 -15
- {arthexis-0.1.19 → arthexis-0.1.21}/config/settings.py +0 -26
- {arthexis-0.1.19 → arthexis-0.1.21}/config/urls.py +0 -1
- {arthexis-0.1.19 → arthexis-0.1.21}/core/admin.py +143 -234
- {arthexis-0.1.19 → arthexis-0.1.21}/core/apps.py +0 -6
- {arthexis-0.1.19 → arthexis-0.1.21}/core/backends.py +8 -2
- arthexis-0.1.21/core/environment.py +297 -0
- {arthexis-0.1.19 → arthexis-0.1.21}/core/models.py +132 -102
- {arthexis-0.1.19 → arthexis-0.1.21}/core/notifications.py +1 -1
- {arthexis-0.1.19 → arthexis-0.1.21}/core/reference_utils.py +10 -11
- {arthexis-0.1.19 → arthexis-0.1.21}/core/sigil_builder.py +2 -2
- {arthexis-0.1.19 → arthexis-0.1.21}/core/tasks.py +24 -1
- {arthexis-0.1.19 → arthexis-0.1.21}/core/tests.py +2 -7
- {arthexis-0.1.19 → arthexis-0.1.21}/core/views.py +70 -132
- {arthexis-0.1.19 → arthexis-0.1.21}/nodes/admin.py +162 -7
- {arthexis-0.1.19 → arthexis-0.1.21}/nodes/models.py +294 -48
- {arthexis-0.1.19 → arthexis-0.1.21}/nodes/rfid_sync.py +1 -1
- arthexis-0.1.21/nodes/tasks.py +144 -0
- {arthexis-0.1.19 → arthexis-0.1.21}/nodes/tests.py +581 -15
- {arthexis-0.1.19 → arthexis-0.1.21}/nodes/urls.py +4 -0
- arthexis-0.1.21/nodes/views.py +1134 -0
- {arthexis-0.1.19 → arthexis-0.1.21}/ocpp/admin.py +144 -4
- {arthexis-0.1.19 → arthexis-0.1.21}/ocpp/consumers.py +106 -9
- {arthexis-0.1.19 → arthexis-0.1.21}/ocpp/models.py +131 -1
- {arthexis-0.1.19 → arthexis-0.1.21}/ocpp/tasks.py +4 -0
- {arthexis-0.1.19 → arthexis-0.1.21}/ocpp/test_export_import.py +1 -0
- {arthexis-0.1.19 → arthexis-0.1.21}/ocpp/test_rfid.py +3 -1
- {arthexis-0.1.19 → arthexis-0.1.21}/ocpp/tests.py +183 -9
- {arthexis-0.1.19 → arthexis-0.1.21}/ocpp/transactions_io.py +9 -1
- {arthexis-0.1.19 → arthexis-0.1.21}/ocpp/urls.py +3 -3
- {arthexis-0.1.19 → arthexis-0.1.21}/ocpp/views.py +186 -31
- {arthexis-0.1.19 → arthexis-0.1.21}/pages/context_processors.py +15 -21
- {arthexis-0.1.19 → arthexis-0.1.21}/pages/defaults.py +1 -1
- {arthexis-0.1.19 → arthexis-0.1.21}/pages/module_defaults.py +5 -5
- {arthexis-0.1.19 → arthexis-0.1.21}/pages/tests.py +110 -79
- {arthexis-0.1.19 → arthexis-0.1.21}/pages/urls.py +1 -1
- {arthexis-0.1.19 → arthexis-0.1.21}/pages/views.py +108 -13
- {arthexis-0.1.19 → arthexis-0.1.21}/pyproject.toml +2 -2
- {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_admin_client_report.py +5 -0
- {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_allowed_hosts_hostname.py +3 -0
- {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_auto_upgrade_scheduler.py +4 -0
- {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_celery_no_debug.py +1 -0
- {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_client_report_form.py +14 -0
- {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_client_report_generation.py +5 -0
- {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_client_report_schedule.py +5 -0
- {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_email_inbox.py +1 -1
- {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_email_profiles.py +0 -3
- {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_email_transaction.py +1 -1
- arthexis-0.1.21/tests/test_environment_network_setup_form.py +39 -0
- arthexis-0.1.21/tests/test_fixture_presence.py +53 -0
- {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_install_script.py +23 -11
- {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_invitation_login_view.py +4 -0
- {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_network_setup_interactive.py +10 -0
- {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_node_info_view.py +3 -0
- {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_profile_inline_deletion.py +2 -44
- arthexis-0.1.21/tests/test_readme_editor.py +58 -0
- {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_release_build_flow.py +1 -0
- {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_release_logs.py +8 -1
- {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_release_progress.py +54 -112
- {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_release_progress_pre_release_integration.py +10 -33
- {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_release_push.py +62 -0
- {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_release_tasks.py +118 -4
- {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_render_nginx_sites.py +5 -0
- {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_rfid_admin_print_labels.py +84 -1
- {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_rfid_admin_scan_csrf.py +4 -0
- {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_rfid_always_on.py +3 -0
- {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_rfid_backend.py +46 -1
- {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_seed_data.py +3 -1
- {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_settings_helpers.py +21 -0
- arthexis-0.1.21/tests/test_settings_mcp_port.py +35 -0
- {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_sigil_resolution.py +5 -0
- arthexis-0.1.21/tests/test_suite_gateway.py +127 -0
- {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_switch_role_script.py +0 -17
- arthexis-0.1.21/tests/test_uninstall_script.py +9 -0
- {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_urls_autodiscover.py +1 -1
- {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_user_data_admin.py +1 -5
- arthexis-0.1.19/core/environment.py +0 -61
- arthexis-0.1.19/core/workgroup_urls.py +0 -17
- arthexis-0.1.19/core/workgroup_views.py +0 -94
- arthexis-0.1.19/nodes/tasks.py +0 -46
- arthexis-0.1.19/nodes/views.py +0 -670
- arthexis-0.1.19/tests/test_assistant_data_api.py +0 -32
- arthexis-0.1.19/tests/test_assistant_profile_admin.py +0 -168
- arthexis-0.1.19/tests/test_assistant_profile_api.py +0 -49
- arthexis-0.1.19/tests/test_fixture_presence.py +0 -21
- arthexis-0.1.19/tests/test_mcp_asgi.py +0 -55
- arthexis-0.1.19/tests/test_mcp_auto_start.py +0 -170
- arthexis-0.1.19/tests/test_mcp_process.py +0 -43
- arthexis-0.1.19/tests/test_mcp_sigil_server.py +0 -182
- arthexis-0.1.19/tests/test_mcp_sigil_server_command.py +0 -42
- arthexis-0.1.19/tests/test_uninstall_script.py +0 -20
- {arthexis-0.1.19 → arthexis-0.1.21}/LICENSE +0 -0
- {arthexis-0.1.19 → arthexis-0.1.21}/arthexis.egg-info/dependency_links.txt +0 -0
- {arthexis-0.1.19 → arthexis-0.1.21}/arthexis.egg-info/top_level.txt +0 -0
- {arthexis-0.1.19 → arthexis-0.1.21}/config/__init__.py +0 -0
- {arthexis-0.1.19 → arthexis-0.1.21}/config/active_app.py +0 -0
- {arthexis-0.1.19 → arthexis-0.1.21}/config/auth_app.py +0 -0
- {arthexis-0.1.19 → arthexis-0.1.21}/config/celery.py +0 -0
- {arthexis-0.1.19 → arthexis-0.1.21}/config/context_processors.py +0 -0
- {arthexis-0.1.19 → arthexis-0.1.21}/config/horologia_app.py +0 -0
- {arthexis-0.1.19 → arthexis-0.1.21}/config/loadenv.py +0 -0
- {arthexis-0.1.19 → arthexis-0.1.21}/config/logging.py +0 -0
- {arthexis-0.1.19 → arthexis-0.1.21}/config/middleware.py +0 -0
- {arthexis-0.1.19 → arthexis-0.1.21}/config/offline.py +0 -0
- {arthexis-0.1.19 → arthexis-0.1.21}/config/settings_helpers.py +0 -0
- {arthexis-0.1.19 → arthexis-0.1.21}/config/wsgi.py +0 -0
- {arthexis-0.1.19 → arthexis-0.1.21}/core/__init__.py +0 -0
- {arthexis-0.1.19 → arthexis-0.1.21}/core/admin_history.py +0 -0
- {arthexis-0.1.19 → arthexis-0.1.21}/core/admindocs.py +0 -0
- {arthexis-0.1.19 → arthexis-0.1.21}/core/auto_upgrade.py +0 -0
- {arthexis-0.1.19 → arthexis-0.1.21}/core/changelog.py +0 -0
- {arthexis-0.1.19 → arthexis-0.1.21}/core/entity.py +0 -0
- {arthexis-0.1.19 → arthexis-0.1.21}/core/fields.py +0 -0
- {arthexis-0.1.19 → arthexis-0.1.21}/core/form_fields.py +0 -0
- {arthexis-0.1.19 → arthexis-0.1.21}/core/github_helper.py +0 -0
- {arthexis-0.1.19 → arthexis-0.1.21}/core/github_issues.py +0 -0
- {arthexis-0.1.19 → arthexis-0.1.21}/core/github_repos.py +0 -0
- {arthexis-0.1.19 → arthexis-0.1.21}/core/lcd_screen.py +0 -0
- {arthexis-0.1.19 → arthexis-0.1.21}/core/liveupdate.py +0 -0
- {arthexis-0.1.19 → arthexis-0.1.21}/core/log_paths.py +0 -0
- {arthexis-0.1.19 → arthexis-0.1.21}/core/mailer.py +0 -0
- {arthexis-0.1.19 → arthexis-0.1.21}/core/middleware.py +0 -0
- {arthexis-0.1.19 → arthexis-0.1.21}/core/public_wifi.py +0 -0
- {arthexis-0.1.19 → arthexis-0.1.21}/core/release.py +0 -0
- {arthexis-0.1.19 → arthexis-0.1.21}/core/rfid_import_export.py +0 -0
- {arthexis-0.1.19 → arthexis-0.1.21}/core/sigil_context.py +0 -0
- {arthexis-0.1.19 → arthexis-0.1.21}/core/sigil_resolver.py +0 -0
- {arthexis-0.1.19 → arthexis-0.1.21}/core/system.py +0 -0
- {arthexis-0.1.19 → arthexis-0.1.21}/core/temp_passwords.py +0 -0
- {arthexis-0.1.19 → arthexis-0.1.21}/core/test_system_info.py +0 -0
- {arthexis-0.1.19 → arthexis-0.1.21}/core/tests_liveupdate.py +0 -0
- {arthexis-0.1.19 → arthexis-0.1.21}/core/urls.py +0 -0
- {arthexis-0.1.19 → arthexis-0.1.21}/core/user_data.py +0 -0
- {arthexis-0.1.19 → arthexis-0.1.21}/core/widgets.py +0 -0
- {arthexis-0.1.19 → arthexis-0.1.21}/nodes/__init__.py +0 -0
- {arthexis-0.1.19 → arthexis-0.1.21}/nodes/apps.py +0 -0
- {arthexis-0.1.19 → arthexis-0.1.21}/nodes/backends.py +0 -0
- {arthexis-0.1.19 → arthexis-0.1.21}/nodes/dns.py +0 -0
- {arthexis-0.1.19 → arthexis-0.1.21}/nodes/feature_checks.py +0 -0
- {arthexis-0.1.19 → arthexis-0.1.21}/nodes/lcd.py +0 -0
- {arthexis-0.1.19 → arthexis-0.1.21}/nodes/reports.py +0 -0
- {arthexis-0.1.19 → arthexis-0.1.21}/nodes/signals.py +0 -0
- {arthexis-0.1.19 → arthexis-0.1.21}/nodes/utils.py +0 -0
- {arthexis-0.1.19 → arthexis-0.1.21}/ocpp/__init__.py +0 -0
- {arthexis-0.1.19 → arthexis-0.1.21}/ocpp/apps.py +0 -0
- {arthexis-0.1.19 → arthexis-0.1.21}/ocpp/evcs.py +0 -0
- {arthexis-0.1.19 → arthexis-0.1.21}/ocpp/evcs_discovery.py +0 -0
- {arthexis-0.1.19 → arthexis-0.1.21}/ocpp/reference_utils.py +0 -0
- {arthexis-0.1.19 → arthexis-0.1.21}/ocpp/routing.py +0 -0
- {arthexis-0.1.19 → arthexis-0.1.21}/ocpp/simulator.py +0 -0
- {arthexis-0.1.19 → arthexis-0.1.21}/ocpp/status_display.py +0 -0
- {arthexis-0.1.19 → arthexis-0.1.21}/ocpp/store.py +0 -0
- {arthexis-0.1.19 → arthexis-0.1.21}/pages/__init__.py +0 -0
- {arthexis-0.1.19 → arthexis-0.1.21}/pages/admin.py +0 -0
- {arthexis-0.1.19 → arthexis-0.1.21}/pages/apps.py +0 -0
- {arthexis-0.1.19 → arthexis-0.1.21}/pages/checks.py +0 -0
- {arthexis-0.1.19 → arthexis-0.1.21}/pages/forms.py +0 -0
- {arthexis-0.1.19 → arthexis-0.1.21}/pages/middleware.py +0 -0
- {arthexis-0.1.19 → arthexis-0.1.21}/pages/models.py +0 -0
- {arthexis-0.1.19 → arthexis-0.1.21}/pages/site_config.py +0 -0
- {arthexis-0.1.19 → arthexis-0.1.21}/pages/tasks.py +0 -0
- {arthexis-0.1.19 → arthexis-0.1.21}/pages/utils.py +0 -0
- {arthexis-0.1.19 → arthexis-0.1.21}/setup.cfg +0 -0
- {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_acronym_capitalization.py +0 -0
- {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_admin_doc_commands.py +0 -0
- {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_admin_doc_model_groups.py +0 -0
- {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_admin_history.py +0 -0
- {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_admin_index_actions.py +0 -0
- {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_admin_model_graph.py +0 -0
- {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_admin_object_history.py +0 -0
- {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_admin_profile_link.py +0 -0
- {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_admin_system_stop.py +0 -0
- {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_api_login_required.py +0 -0
- {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_awg_admin.py +0 -0
- {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_benchmark_command.py +0 -0
- {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_build_pypi_command.py +0 -0
- {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_changelog_builder.py +0 -0
- {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_check_admin_command.py +0 -0
- {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_check_migrations_script.py +0 -0
- {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_check_pypi_command.py +0 -0
- {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_clean_release_logs_command.py +0 -0
- {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_csrf_failure.py +0 -0
- {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_csrf_origin_subnet.py +0 -0
- {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_dist_cleanup.py +0 -0
- {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_email_collector.py +0 -0
- {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_email_inbox_admin.py +0 -0
- {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_email_inbox_search_action.py +0 -0
- {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_email_outbox_admin.py +0 -0
- {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_env_refresh_clean.py +0 -0
- {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_env_refresh_pip.py +0 -0
- {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_env_refresh_unlink.py +0 -0
- {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_experience_admin_group.py +0 -0
- {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_footer_no_references.py +0 -0
- {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_footer_presence.py +0 -0
- {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_footer_render.py +0 -0
- {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_git_checks.py +0 -0
- {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_github_issue_reporting.py +0 -0
- {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_language_switch.py +0 -0
- {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_lcd_check_command.py +0 -0
- {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_lcd_smbus2.py +0 -0
- {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_localhost_admin_backend.py +0 -0
- {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_log_paths.py +0 -0
- {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_login_view_no_site.py +0 -0
- {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_manage_debug_flag.py +0 -0
- {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_manuals.py +0 -0
- {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_message_command.py +0 -0
- {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_migrations.py +0 -0
- {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_model_verbose_name_capitalization.py +0 -0
- {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_notifications_fallback.py +0 -0
- {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_notify_command.py +0 -0
- {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_ocpp_session_lock.py +0 -0
- {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_odoo_product.py +0 -0
- {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_odoo_profile.py +0 -0
- {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_odoo_profile_admin.py +0 -0
- {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_odoo_quote_report.py +0 -0
- {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_offline.py +0 -0
- {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_package_admin_next_release.py +0 -0
- {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_power_admin_group.py +0 -0
- {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_pypi_check.py +0 -0
- {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_pypi_token.py +0 -0
- {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_readme_language.py +0 -0
- {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_reference_qr_code.py +0 -0
- {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_reference_transaction_uuid.py +0 -0
- {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_register_site_apps_command.py +0 -0
- {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_release_build.py +0 -0
- {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_release_checklist.py +0 -0
- {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_release_manager_admin.py +0 -0
- {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_release_packages.py +0 -0
- {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_request_invite.py +0 -0
- {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_rfid_admin_reference_clear.py +0 -0
- {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_rfid_background_reader.py +0 -0
- {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_rfid_client_report.py +0 -0
- {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_rfid_watch_command.py +0 -0
- {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_role_marker_filtering.py +0 -0
- {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_send_invite_command.py +0 -0
- {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_shell_scripts.py +0 -0
- {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_show_leads_command.py +0 -0
- {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_sigil_builder.py +0 -0
- {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_sites_utils.py +0 -0
- {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_social_profile.py +0 -0
- {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_staff_login_net_message.py +0 -0
- {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_staff_required_decorator.py +0 -0
- {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_system_changelog_report.py +0 -0
- {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_temp_passwords.py +0 -0
- {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_totp_admin.py +0 -0
- {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_totp_backend.py +0 -0
- {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_update_fixtures_command.py +0 -0
- {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_upgrade_report.py +0 -0
- {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_version_endpoint.py +0 -0
- {arthexis-0.1.19 → arthexis-0.1.21}/tests/test_version_file.py +0 -0
- {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.
|
|
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.
|
|
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==
|
|
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 & 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>
|
|
173
|
+
<td valign="top"><strong>Watchtower</strong></td>
|
|
175
174
|
<td valign="top"><strong>Multi-User Cloud & 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
|
|
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 & 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>
|
|
58
|
+
<td valign="top"><strong>Watchtower</strong></td>
|
|
59
59
|
<td valign="top"><strong>Multi-User Cloud & 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
|
|
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.
|
|
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.
|
|
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==
|
|
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 & 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>
|
|
173
|
+
<td valign="top"><strong>Watchtower</strong></td>
|
|
175
174
|
<td valign="top"><strong>Multi-User Cloud & 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
|
|
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.
|
|
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==
|
|
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":
|
|
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
|
|