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.
- {arthexis-0.1.20 → arthexis-0.1.22}/PKG-INFO +10 -11
- {arthexis-0.1.20 → arthexis-0.1.22}/arthexis.egg-info/PKG-INFO +10 -11
- {arthexis-0.1.20 → arthexis-0.1.22}/arthexis.egg-info/SOURCES.txt +2 -10
- {arthexis-0.1.20 → arthexis-0.1.22}/arthexis.egg-info/requires.txt +9 -10
- {arthexis-0.1.20 → arthexis-0.1.22}/config/asgi.py +1 -15
- {arthexis-0.1.20 → arthexis-0.1.22}/config/settings.py +4 -26
- {arthexis-0.1.20 → arthexis-0.1.22}/config/urls.py +5 -1
- {arthexis-0.1.20 → arthexis-0.1.22}/core/admin.py +140 -252
- {arthexis-0.1.20 → arthexis-0.1.22}/core/apps.py +0 -6
- arthexis-0.1.22/core/environment.py +60 -0
- {arthexis-0.1.20 → arthexis-0.1.22}/core/models.py +425 -77
- {arthexis-0.1.20 → arthexis-0.1.22}/core/system.py +76 -0
- {arthexis-0.1.20 → arthexis-0.1.22}/core/tests.py +153 -15
- {arthexis-0.1.20 → arthexis-0.1.22}/core/views.py +35 -97
- {arthexis-0.1.20 → arthexis-0.1.22}/nodes/admin.py +165 -32
- {arthexis-0.1.20 → arthexis-0.1.22}/nodes/apps.py +11 -0
- {arthexis-0.1.20 → arthexis-0.1.22}/nodes/models.py +26 -6
- {arthexis-0.1.20 → arthexis-0.1.22}/nodes/tests.py +263 -1
- {arthexis-0.1.20 → arthexis-0.1.22}/nodes/views.py +61 -1
- {arthexis-0.1.20 → arthexis-0.1.22}/ocpp/admin.py +68 -7
- {arthexis-0.1.20 → arthexis-0.1.22}/ocpp/consumers.py +1 -0
- {arthexis-0.1.20 → arthexis-0.1.22}/ocpp/models.py +71 -1
- {arthexis-0.1.20 → arthexis-0.1.22}/ocpp/tasks.py +99 -1
- {arthexis-0.1.20 → arthexis-0.1.22}/ocpp/tests.py +310 -2
- {arthexis-0.1.20 → arthexis-0.1.22}/ocpp/views.py +365 -5
- {arthexis-0.1.20 → arthexis-0.1.22}/pages/admin.py +112 -15
- arthexis-0.1.22/pages/apps.py +45 -0
- {arthexis-0.1.20 → arthexis-0.1.22}/pages/context_processors.py +0 -12
- {arthexis-0.1.20 → arthexis-0.1.22}/pages/forms.py +31 -8
- {arthexis-0.1.20 → arthexis-0.1.22}/pages/models.py +42 -2
- {arthexis-0.1.20 → arthexis-0.1.22}/pages/tests.py +361 -63
- {arthexis-0.1.20 → arthexis-0.1.22}/pages/urls.py +5 -1
- {arthexis-0.1.20 → arthexis-0.1.22}/pages/views.py +264 -16
- {arthexis-0.1.20 → arthexis-0.1.22}/pyproject.toml +2 -2
- {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_admin_system_stop.py +18 -3
- {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_email_profiles.py +0 -3
- arthexis-0.1.22/tests/test_fixture_presence.py +53 -0
- {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_install_script.py +20 -11
- {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_network_setup_interactive.py +10 -0
- {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_odoo_product.py +36 -0
- {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_profile_inline_deletion.py +2 -44
- arthexis-0.1.22/tests/test_readme_assets.py +87 -0
- {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_release_progress.py +17 -112
- {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_release_progress_pre_release_integration.py +10 -33
- {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_rfid_admin_scan_csrf.py +4 -0
- arthexis-0.1.22/tests/test_settings_mcp_port.py +35 -0
- {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_shell_scripts.py +5 -0
- {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_switch_role_script.py +0 -17
- arthexis-0.1.22/tests/test_uninstall_script.py +9 -0
- {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_user_data_admin.py +1 -5
- {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_version_endpoint.py +15 -0
- arthexis-0.1.20/core/environment.py +0 -278
- arthexis-0.1.20/core/workgroup_urls.py +0 -17
- arthexis-0.1.20/core/workgroup_views.py +0 -94
- arthexis-0.1.20/pages/apps.py +0 -13
- arthexis-0.1.20/tests/test_assistant_data_api.py +0 -32
- arthexis-0.1.20/tests/test_assistant_profile_admin.py +0 -168
- arthexis-0.1.20/tests/test_assistant_profile_api.py +0 -49
- arthexis-0.1.20/tests/test_fixture_presence.py +0 -21
- arthexis-0.1.20/tests/test_mcp_asgi.py +0 -55
- arthexis-0.1.20/tests/test_mcp_auto_start.py +0 -170
- arthexis-0.1.20/tests/test_mcp_process.py +0 -43
- arthexis-0.1.20/tests/test_mcp_sigil_server.py +0 -182
- arthexis-0.1.20/tests/test_mcp_sigil_server_command.py +0 -42
- arthexis-0.1.20/tests/test_uninstall_script.py +0 -20
- {arthexis-0.1.20 → arthexis-0.1.22}/LICENSE +0 -0
- {arthexis-0.1.20 → arthexis-0.1.22}/README.md +0 -0
- {arthexis-0.1.20 → arthexis-0.1.22}/arthexis.egg-info/dependency_links.txt +0 -0
- {arthexis-0.1.20 → arthexis-0.1.22}/arthexis.egg-info/top_level.txt +0 -0
- {arthexis-0.1.20 → arthexis-0.1.22}/config/__init__.py +0 -0
- {arthexis-0.1.20 → arthexis-0.1.22}/config/active_app.py +0 -0
- {arthexis-0.1.20 → arthexis-0.1.22}/config/auth_app.py +0 -0
- {arthexis-0.1.20 → arthexis-0.1.22}/config/celery.py +0 -0
- {arthexis-0.1.20 → arthexis-0.1.22}/config/context_processors.py +0 -0
- {arthexis-0.1.20 → arthexis-0.1.22}/config/horologia_app.py +0 -0
- {arthexis-0.1.20 → arthexis-0.1.22}/config/loadenv.py +0 -0
- {arthexis-0.1.20 → arthexis-0.1.22}/config/logging.py +0 -0
- {arthexis-0.1.20 → arthexis-0.1.22}/config/middleware.py +0 -0
- {arthexis-0.1.20 → arthexis-0.1.22}/config/offline.py +0 -0
- {arthexis-0.1.20 → arthexis-0.1.22}/config/settings_helpers.py +0 -0
- {arthexis-0.1.20 → arthexis-0.1.22}/config/wsgi.py +0 -0
- {arthexis-0.1.20 → arthexis-0.1.22}/core/__init__.py +0 -0
- {arthexis-0.1.20 → arthexis-0.1.22}/core/admin_history.py +0 -0
- {arthexis-0.1.20 → arthexis-0.1.22}/core/admindocs.py +0 -0
- {arthexis-0.1.20 → arthexis-0.1.22}/core/auto_upgrade.py +0 -0
- {arthexis-0.1.20 → arthexis-0.1.22}/core/backends.py +0 -0
- {arthexis-0.1.20 → arthexis-0.1.22}/core/changelog.py +0 -0
- {arthexis-0.1.20 → arthexis-0.1.22}/core/entity.py +0 -0
- {arthexis-0.1.20 → arthexis-0.1.22}/core/fields.py +0 -0
- {arthexis-0.1.20 → arthexis-0.1.22}/core/form_fields.py +0 -0
- {arthexis-0.1.20 → arthexis-0.1.22}/core/github_helper.py +0 -0
- {arthexis-0.1.20 → arthexis-0.1.22}/core/github_issues.py +0 -0
- {arthexis-0.1.20 → arthexis-0.1.22}/core/github_repos.py +0 -0
- {arthexis-0.1.20 → arthexis-0.1.22}/core/lcd_screen.py +0 -0
- {arthexis-0.1.20 → arthexis-0.1.22}/core/liveupdate.py +0 -0
- {arthexis-0.1.20 → arthexis-0.1.22}/core/log_paths.py +0 -0
- {arthexis-0.1.20 → arthexis-0.1.22}/core/mailer.py +0 -0
- {arthexis-0.1.20 → arthexis-0.1.22}/core/middleware.py +0 -0
- {arthexis-0.1.20 → arthexis-0.1.22}/core/notifications.py +0 -0
- {arthexis-0.1.20 → arthexis-0.1.22}/core/public_wifi.py +0 -0
- {arthexis-0.1.20 → arthexis-0.1.22}/core/reference_utils.py +0 -0
- {arthexis-0.1.20 → arthexis-0.1.22}/core/release.py +0 -0
- {arthexis-0.1.20 → arthexis-0.1.22}/core/rfid_import_export.py +0 -0
- {arthexis-0.1.20 → arthexis-0.1.22}/core/sigil_builder.py +0 -0
- {arthexis-0.1.20 → arthexis-0.1.22}/core/sigil_context.py +0 -0
- {arthexis-0.1.20 → arthexis-0.1.22}/core/sigil_resolver.py +0 -0
- {arthexis-0.1.20 → arthexis-0.1.22}/core/tasks.py +0 -0
- {arthexis-0.1.20 → arthexis-0.1.22}/core/temp_passwords.py +0 -0
- {arthexis-0.1.20 → arthexis-0.1.22}/core/test_system_info.py +0 -0
- {arthexis-0.1.20 → arthexis-0.1.22}/core/tests_liveupdate.py +0 -0
- {arthexis-0.1.20 → arthexis-0.1.22}/core/urls.py +0 -0
- {arthexis-0.1.20 → arthexis-0.1.22}/core/user_data.py +0 -0
- {arthexis-0.1.20 → arthexis-0.1.22}/core/widgets.py +0 -0
- {arthexis-0.1.20 → arthexis-0.1.22}/nodes/__init__.py +0 -0
- {arthexis-0.1.20 → arthexis-0.1.22}/nodes/backends.py +0 -0
- {arthexis-0.1.20 → arthexis-0.1.22}/nodes/dns.py +0 -0
- {arthexis-0.1.20 → arthexis-0.1.22}/nodes/feature_checks.py +0 -0
- {arthexis-0.1.20 → arthexis-0.1.22}/nodes/lcd.py +0 -0
- {arthexis-0.1.20 → arthexis-0.1.22}/nodes/reports.py +0 -0
- {arthexis-0.1.20 → arthexis-0.1.22}/nodes/rfid_sync.py +0 -0
- {arthexis-0.1.20 → arthexis-0.1.22}/nodes/signals.py +0 -0
- {arthexis-0.1.20 → arthexis-0.1.22}/nodes/tasks.py +0 -0
- {arthexis-0.1.20 → arthexis-0.1.22}/nodes/urls.py +0 -0
- {arthexis-0.1.20 → arthexis-0.1.22}/nodes/utils.py +0 -0
- {arthexis-0.1.20 → arthexis-0.1.22}/ocpp/__init__.py +0 -0
- {arthexis-0.1.20 → arthexis-0.1.22}/ocpp/apps.py +0 -0
- {arthexis-0.1.20 → arthexis-0.1.22}/ocpp/evcs.py +0 -0
- {arthexis-0.1.20 → arthexis-0.1.22}/ocpp/evcs_discovery.py +0 -0
- {arthexis-0.1.20 → arthexis-0.1.22}/ocpp/reference_utils.py +0 -0
- {arthexis-0.1.20 → arthexis-0.1.22}/ocpp/routing.py +0 -0
- {arthexis-0.1.20 → arthexis-0.1.22}/ocpp/simulator.py +0 -0
- {arthexis-0.1.20 → arthexis-0.1.22}/ocpp/status_display.py +0 -0
- {arthexis-0.1.20 → arthexis-0.1.22}/ocpp/store.py +0 -0
- {arthexis-0.1.20 → arthexis-0.1.22}/ocpp/test_export_import.py +0 -0
- {arthexis-0.1.20 → arthexis-0.1.22}/ocpp/test_rfid.py +0 -0
- {arthexis-0.1.20 → arthexis-0.1.22}/ocpp/transactions_io.py +0 -0
- {arthexis-0.1.20 → arthexis-0.1.22}/ocpp/urls.py +0 -0
- {arthexis-0.1.20 → arthexis-0.1.22}/pages/__init__.py +0 -0
- {arthexis-0.1.20 → arthexis-0.1.22}/pages/checks.py +0 -0
- {arthexis-0.1.20 → arthexis-0.1.22}/pages/defaults.py +0 -0
- {arthexis-0.1.20 → arthexis-0.1.22}/pages/middleware.py +0 -0
- {arthexis-0.1.20 → arthexis-0.1.22}/pages/module_defaults.py +0 -0
- {arthexis-0.1.20 → arthexis-0.1.22}/pages/site_config.py +0 -0
- {arthexis-0.1.20 → arthexis-0.1.22}/pages/tasks.py +0 -0
- {arthexis-0.1.20 → arthexis-0.1.22}/pages/utils.py +0 -0
- {arthexis-0.1.20 → arthexis-0.1.22}/setup.cfg +0 -0
- {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_acronym_capitalization.py +0 -0
- {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_admin_client_report.py +0 -0
- {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_admin_doc_commands.py +0 -0
- {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_admin_doc_model_groups.py +0 -0
- {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_admin_history.py +0 -0
- {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_admin_index_actions.py +0 -0
- {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_admin_model_graph.py +0 -0
- {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_admin_object_history.py +0 -0
- {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_admin_profile_link.py +0 -0
- {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_allowed_hosts_hostname.py +0 -0
- {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_api_login_required.py +0 -0
- {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_auto_upgrade_scheduler.py +0 -0
- {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_awg_admin.py +0 -0
- {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_benchmark_command.py +0 -0
- {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_build_pypi_command.py +0 -0
- {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_celery_no_debug.py +0 -0
- {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_changelog_builder.py +0 -0
- {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_check_admin_command.py +0 -0
- {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_check_migrations_script.py +0 -0
- {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_check_pypi_command.py +0 -0
- {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_clean_release_logs_command.py +0 -0
- {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_client_report_form.py +0 -0
- {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_client_report_generation.py +0 -0
- {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_client_report_schedule.py +0 -0
- {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_csrf_failure.py +0 -0
- {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_csrf_origin_subnet.py +0 -0
- {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_dist_cleanup.py +0 -0
- {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_email_collector.py +0 -0
- {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_email_inbox.py +0 -0
- {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_email_inbox_admin.py +0 -0
- {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_email_inbox_search_action.py +0 -0
- {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_email_outbox_admin.py +0 -0
- {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_email_transaction.py +0 -0
- {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_env_refresh_clean.py +0 -0
- {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_env_refresh_pip.py +0 -0
- {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_env_refresh_unlink.py +0 -0
- {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_experience_admin_group.py +0 -0
- {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_footer_no_references.py +0 -0
- {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_footer_presence.py +0 -0
- {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_footer_render.py +0 -0
- {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_git_checks.py +0 -0
- {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_github_issue_reporting.py +0 -0
- {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_invitation_login_view.py +0 -0
- {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_language_switch.py +0 -0
- {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_lcd_check_command.py +0 -0
- {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_lcd_smbus2.py +0 -0
- {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_localhost_admin_backend.py +0 -0
- {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_log_paths.py +0 -0
- {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_login_view_no_site.py +0 -0
- {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_manage_debug_flag.py +0 -0
- {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_manuals.py +0 -0
- {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_message_command.py +0 -0
- {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_migrations.py +0 -0
- {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_model_verbose_name_capitalization.py +0 -0
- {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_node_info_view.py +0 -0
- {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_notifications_fallback.py +0 -0
- {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_notify_command.py +0 -0
- {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_ocpp_session_lock.py +0 -0
- {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_odoo_profile.py +0 -0
- {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_odoo_profile_admin.py +0 -0
- {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_odoo_quote_report.py +0 -0
- {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_offline.py +0 -0
- {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_package_admin_next_release.py +0 -0
- {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_power_admin_group.py +0 -0
- {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_pypi_check.py +0 -0
- {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_pypi_token.py +0 -0
- {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_readme_editor.py +0 -0
- {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_readme_language.py +0 -0
- {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_reference_qr_code.py +0 -0
- {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_reference_transaction_uuid.py +0 -0
- {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_register_site_apps_command.py +0 -0
- {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_release_build.py +0 -0
- {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_release_build_flow.py +0 -0
- {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_release_checklist.py +0 -0
- {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_release_logs.py +0 -0
- {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_release_manager_admin.py +0 -0
- {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_release_packages.py +0 -0
- {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_release_push.py +0 -0
- {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_release_tasks.py +0 -0
- {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_render_nginx_sites.py +0 -0
- {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_request_invite.py +0 -0
- {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_rfid_admin_print_labels.py +0 -0
- {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_rfid_admin_reference_clear.py +0 -0
- {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_rfid_always_on.py +0 -0
- {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_rfid_backend.py +0 -0
- {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_rfid_background_reader.py +0 -0
- {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_rfid_client_report.py +0 -0
- {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_rfid_watch_command.py +0 -0
- {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_role_marker_filtering.py +0 -0
- {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_seed_data.py +0 -0
- {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_send_invite_command.py +0 -0
- {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_settings_helpers.py +0 -0
- {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_show_leads_command.py +0 -0
- {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_sigil_builder.py +0 -0
- {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_sigil_resolution.py +0 -0
- {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_sites_utils.py +0 -0
- {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_social_profile.py +0 -0
- {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_staff_login_net_message.py +0 -0
- {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_staff_required_decorator.py +0 -0
- {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_suite_gateway.py +0 -0
- {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_system_changelog_report.py +0 -0
- {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_temp_passwords.py +0 -0
- {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_totp_admin.py +0 -0
- {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_totp_backend.py +0 -0
- {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_update_fixtures_command.py +0 -0
- {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_upgrade_report.py +0 -0
- {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_urls_autodiscover.py +0 -0
- {arthexis-0.1.20 → arthexis-0.1.22}/tests/test_version_file.py +0 -0
- {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.
|
|
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.
|
|
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==
|
|
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.
|
|
60
|
-
Requires-Dist: Markdown==3.
|
|
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.
|
|
67
|
+
Requires-Dist: psutil==7.1.2
|
|
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
|
|
@@ -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==
|
|
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.
|
|
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==
|
|
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.
|
|
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.
|
|
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==
|
|
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.
|
|
60
|
-
Requires-Dist: Markdown==3.
|
|
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.
|
|
67
|
+
Requires-Dist: psutil==7.1.2
|
|
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
|
|
@@ -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==
|
|
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.
|
|
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==
|
|
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.
|
|
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==
|
|
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.
|
|
46
|
-
Markdown==3.
|
|
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.
|
|
52
|
+
psutil==7.1.2
|
|
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
|
|
@@ -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==
|
|
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.
|
|
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==
|
|
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
|
|
|
@@ -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
|
|