openmodule 14.2.0__tar.gz → 14.3.0__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.
- {openmodule-14.2.0 → openmodule-14.3.0}/ChangeLog +2 -12
- {openmodule-14.2.0 → openmodule-14.3.0}/PKG-INFO +1 -1
- {openmodule-14.2.0 → openmodule-14.3.0}/openmodule/models/signals.py +4 -4
- {openmodule-14.2.0 → openmodule-14.3.0}/openmodule/rpc/client.py +11 -8
- {openmodule-14.2.0 → openmodule-14.3.0}/openmodule/utils/signal_listener.py +7 -6
- {openmodule-14.2.0 → openmodule-14.3.0}/openmodule.egg-info/PKG-INFO +1 -1
- openmodule-14.3.0/openmodule.egg-info/pbr.json +1 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/openmodule_test/signal_simulator.py +1 -1
- {openmodule-14.2.0 → openmodule-14.3.0}/tests/test_utils_signal.py +3 -2
- openmodule-14.2.0/openmodule.egg-info/pbr.json +0 -1
- {openmodule-14.2.0 → openmodule-14.3.0}/.gitlab-ci.yml +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/AUTHORS +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/LICENSE +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/README.md +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/docs/access_service.md +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/docs/anonymization.md +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/docs/cleanup.md +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/docs/coding_standard.md +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/docs/commands.md +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/docs/connection_status_listener.md +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/docs/csv_export.md +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/docs/database.md +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/docs/deprecated.md +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/docs/deprecated_code/README.md +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/docs/deprecated_code/access_service/openmodule/models/access_service.py +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/docs/deprecated_code/access_service/openmodule/utils/access_service.py +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/docs/deprecated_code/access_service/openmodule_test/access_service.py +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/docs/deprecated_code/access_service/tests/test_utils_access_service.py +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/docs/deprecated_code/api/openmodule/utils/api.py +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/docs/deprecated_code/api/openmodule_test/api.py +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/docs/deprecated_code/api/tests/test_utils_api.py +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/docs/deprecated_code/package_reader/openmodule/utils/package_reader.py +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/docs/deprecated_code/package_reader/openmodule_test/fake_package_creator.py +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/docs/deprecated_code/package_reader/tests/test_package_reader.py +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/docs/event_sending.md +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/docs/getting_started.md +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/docs/health.md +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/docs/images/broker.drawio.png +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/docs/known_issues.md +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/docs/migrations.md +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/docs/package_reader.md +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/docs/rpc.md +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/docs/sentry.md +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/docs/settings.md +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/docs/settings_provider.md +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/docs/testing.md +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/docs/translation.md +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/docs/utils.md +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/openmodule/__init__.py +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/openmodule/alert.py +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/openmodule/config.py +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/openmodule/connection_status.py +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/openmodule/core.py +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/openmodule/database/custom_types.py +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/openmodule/database/database.py +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/openmodule/database/env.py +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/openmodule/database/migration.py +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/openmodule/dispatcher.py +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/openmodule/health.py +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/openmodule/logging.py +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/openmodule/messaging.py +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/openmodule/models/__init__.py +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/openmodule/models/access_service.py +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/openmodule/models/alert.py +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/openmodule/models/base.py +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/openmodule/models/io.py +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/openmodule/models/kv_store.py +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/openmodule/models/presence.py +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/openmodule/models/privacy.py +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/openmodule/models/rpc.py +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/openmodule/models/settings.py +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/openmodule/models/validation.py +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/openmodule/models/vehicle.py +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/openmodule/rpc/__init__.py +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/openmodule/rpc/common.py +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/openmodule/rpc/server.py +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/openmodule/sentry.py +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/openmodule/threading.py +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/openmodule/utils/__init__.py +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/openmodule/utils/access_service.py +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/openmodule/utils/charset.py +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/openmodule/utils/cleanup.py +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/openmodule/utils/csv_export.py +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/openmodule/utils/databox.py +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/openmodule/utils/db_helper.py +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/openmodule/utils/eventlog.py +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/openmodule/utils/io.py +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/openmodule/utils/kv_store.py +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/openmodule/utils/matching.py +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/openmodule/utils/misc_functions.py +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/openmodule/utils/package_reader.py +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/openmodule/utils/presence.py +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/openmodule/utils/schema.py +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/openmodule/utils/settings.py +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/openmodule/utils/translation.py +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/openmodule/utils/validation.py +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/openmodule.egg-info/SOURCES.txt +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/openmodule.egg-info/dependency_links.txt +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/openmodule.egg-info/not-zip-safe +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/openmodule.egg-info/requires.txt +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/openmodule.egg-info/top_level.txt +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/openmodule_commands/__init__.py +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/openmodule_commands/setup.cfg +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/openmodule_commands/setup.py +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/openmodule_commands/translate.py +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/openmodule_test/__init__.py +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/openmodule_test/alert.py +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/openmodule_test/connection_status.py +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/openmodule_test/core.py +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/openmodule_test/database.py +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/openmodule_test/eventlistener.py +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/openmodule_test/files.py +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/openmodule_test/gate.py +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/openmodule_test/health.py +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/openmodule_test/interrupt.py +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/openmodule_test/io_simulator.py +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/openmodule_test/package_reader.py +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/openmodule_test/presence.py +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/openmodule_test/requirements.txt +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/openmodule_test/rpc.py +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/openmodule_test/sentry.py +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/openmodule_test/settings.py +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/openmodule_test/setup.cfg +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/openmodule_test/setup.py +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/openmodule_test/utils.py +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/openmodule_test/zeromq.py +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/requirements.txt +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/setup.cfg +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/setup.py +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/test-requirements.txt +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/tests/__init__.py +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/tests/config.py +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/tests/database_models_migration.py +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/tests/database_models_test.py +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/tests/invalid_database/alembic/README +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/tests/invalid_database/alembic/__init__.py +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/tests/invalid_database/alembic/env.py +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/tests/invalid_database/alembic/script.py.mako +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/tests/invalid_database/alembic/versions/ff26e54332f9_datetime_models.py +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/tests/invalid_database/alembic.ini +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/tests/invalid_database/makemigration.sh +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/tests/migration_double_column_delete_error/alembic/__init__.py +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/tests/migration_double_column_delete_error/alembic/env.py +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/tests/migration_double_column_delete_error/alembic/script.py.mako +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/tests/migration_double_column_delete_error/alembic/versions/812a3e5b8517_initial.py +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/tests/migration_double_column_delete_error/alembic/versions/a7ea100a784f_key_error.py +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/tests/migration_double_column_delete_error/alembic.ini +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/tests/migration_double_column_delete_error/makemigration.sh +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/tests/migration_no_such_table_error/alembic/__init__.py +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/tests/migration_no_such_table_error/alembic/env.py +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/tests/migration_no_such_table_error/alembic/script.py.mako +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/tests/migration_no_such_table_error/alembic/versions/812a3e5b8517_initial.py +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/tests/migration_no_such_table_error/alembic/versions/a7ea100a784f_no_such_table_error.py +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/tests/migration_no_such_table_error/alembic.ini +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/tests/migration_no_such_table_error/makemigration.sh +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/tests/migration_test_database/__init__.py +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/tests/migration_test_database/alembic/__init__.py +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/tests/migration_test_database/alembic/env.py +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/tests/migration_test_database/alembic/script.py.mako +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/tests/migration_test_database/alembic/versions/19789aa5361c_initial.py +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/tests/migration_test_database/alembic/versions/19d887929ae7_alter.py +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/tests/migration_test_database/alembic/versions/__init__.py +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/tests/migration_test_database/alembic.ini +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/tests/migration_test_database/alembic_migration_test_database.sqlite3 +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/tests/migration_test_database/makemigration.sh +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/tests/resources/configs/config.py +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/tests/resources/configs/test_config.py +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/tests/resources/configs/test_config_1.py +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/tests/resources/standard_schemes/DEFAULT-10.yml +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/tests/resources/standard_schemes/DEFAULT-20.yml +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/tests/resources/standard_schemes/LEGACY-0.yml +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/tests/resources/translation/locale/de/LC_MESSAGES/translation.mo +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/tests/resources/translation/locale/de/LC_MESSAGES/translation.po +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/tests/resources/translation/locale/en/LC_MESSAGES/translation.mo +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/tests/resources/translation/locale/en/LC_MESSAGES/translation.po +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/tests/resources/translation/locale/translation.pot +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/tests/resources/translation/translate.sh +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/tests/resources/utils_matching/A-10.yml +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/tests/resources/utils_matching/A-20.yml +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/tests/resources/utils_matching/DEFAULT-10.yml +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/tests/resources/utils_matching/DEFAULT-20.yml +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/tests/resources/utils_matching/DEFAULT-30.yml +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/tests/resources/utils_matching/LEGACY-0.yml +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/tests/resources/utils_matching/TEST-10.yml +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/tests/resources/utils_matching/TEST-20.yml +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/tests/resources/utils_matching/TEST-30.yml +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/tests/resources/utils_matching/TEST-40.yml +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/tests/sentry_main.py +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/tests/test_access_service_database/alembic/__init__.py +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/tests/test_access_service_database/alembic/env.py +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/tests/test_access_service_database/alembic/script.py.mako +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/tests/test_access_service_database/alembic/versions/7bd4fcd38fde_removed_nfc_and_pin.py +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/tests/test_access_service_database/alembic/versions/9ca98a2e5674_added_parksettings_id.py +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/tests/test_access_service_database/alembic/versions/c821971f9230_initial.py +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/tests/test_access_service_database/alembic.ini +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/tests/test_access_service_database/makemigration.sh +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/tests/test_alembic_migrations.py +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/tests/test_alert.py +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/tests/test_checks.py +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/tests/test_config.py +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/tests/test_connection_status.py +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/tests/test_core.py +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/tests/test_database/alembic/__init__.py +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/tests/test_database/alembic/env.py +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/tests/test_database/alembic/script.py.mako +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/tests/test_database/alembic/versions/32b8c728abbf_initial.py +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/tests/test_database/alembic.ini +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/tests/test_database/makemigration.sh +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/tests/test_database.py +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/tests/test_dispatcher.py +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/tests/test_health.py +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/tests/test_interrupt.py +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/tests/test_io_listen.py +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/tests/test_kv_store_database/alembic/__init__.py +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/tests/test_kv_store_database/alembic/env.py +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/tests/test_kv_store_database/alembic/script.py.mako +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/tests/test_kv_store_database/alembic/versions/9c5c944221f4_deprecated_kv_entry_example.py +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/tests/test_kv_store_database/alembic/versions/c55a69026a25_initial.py +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/tests/test_kv_store_database/alembic.ini +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/tests/test_kv_store_database/makemigration.sh +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/tests/test_kv_store_multiple_database/alembic/README +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/tests/test_kv_store_multiple_database/alembic/__init__.py +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/tests/test_kv_store_multiple_database/alembic/env.py +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/tests/test_kv_store_multiple_database/alembic/script.py.mako +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/tests/test_kv_store_multiple_database/alembic/versions/cdb3214131a9_initial.py +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/tests/test_kv_store_multiple_database/alembic.ini +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/tests/test_kv_store_multiple_database/makemigration.sh +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/tests/test_logging.py +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/tests/test_messaging.py +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/tests/test_mockrpcclient.py +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/tests/test_model.py +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/tests/test_rpc.py +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/tests/test_schema.py +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/tests/test_sentry.py +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/tests/test_test_alert.py +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/tests/test_test_gate.py +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/tests/test_test_zeromq.py +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/tests/test_utils_access_service.py +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/tests/test_utils_charset.py +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/tests/test_utils_cleanup.py +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/tests/test_utils_csv_export.py +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/tests/test_utils_databox.py +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/tests/test_utils_eventlog.py +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/tests/test_utils_kv_store.py +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/tests/test_utils_kv_store_multiple.py +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/tests/test_utils_matching.py +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/tests/test_utils_misc_functions.py +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/tests/test_utils_package_reader.py +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/tests/test_utils_presence.py +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/tests/test_utils_settings.py +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/tests/test_utils_validation.py +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/tests/test_utils_vehicle.py +0 -0
- {openmodule-14.2.0 → openmodule-14.3.0}/tox.ini +0 -0
|
@@ -1,21 +1,11 @@
|
|
|
1
1
|
CHANGES
|
|
2
2
|
=======
|
|
3
3
|
|
|
4
|
-
v14.
|
|
4
|
+
v14.3.0
|
|
5
5
|
-------
|
|
6
6
|
|
|
7
|
+
* Om 912: SignalListener and SignalSimulator for testcases
|
|
7
8
|
* OM-1001: CostEntryData from settings models, added valid\_from and valid\_to to AccessCheckAccess and type hints for io/signals and io/inputs settings
|
|
8
|
-
* docs
|
|
9
|
-
* fixed testcase
|
|
10
|
-
* maybe fixing openmodule\_test
|
|
11
|
-
|
|
12
|
-
v14.2.0.rc0
|
|
13
|
-
-----------
|
|
14
|
-
|
|
15
|
-
* improvements for signal simulator
|
|
16
|
-
* test util for signals
|
|
17
|
-
* fixed testcase
|
|
18
|
-
* added SignalListener
|
|
19
9
|
|
|
20
10
|
v14.1.1
|
|
21
11
|
-------
|
|
@@ -20,10 +20,10 @@ class SignalType(str, Enum):
|
|
|
20
20
|
class SignalMessage(ZMQMessage):
|
|
21
21
|
signal: str
|
|
22
22
|
type: Union[SignalType, str] # union so we can add new types without updating all services using signals
|
|
23
|
-
gate: Optional[str]
|
|
24
|
-
parking_area_id: Optional[str]
|
|
23
|
+
gate: Optional[str] = None
|
|
24
|
+
parking_area_id: Optional[str] = None
|
|
25
25
|
value: bool
|
|
26
|
-
additional_data: Optional[Dict]
|
|
26
|
+
additional_data: Optional[Dict] = None
|
|
27
27
|
|
|
28
28
|
|
|
29
29
|
class GetSignalValueRequest(OpenModuleModel):
|
|
@@ -32,7 +32,7 @@ class GetSignalValueRequest(OpenModuleModel):
|
|
|
32
32
|
|
|
33
33
|
class GetSignalValueResponse(OpenModuleModel):
|
|
34
34
|
value: bool
|
|
35
|
-
additional_data: Optional[Dict]
|
|
35
|
+
additional_data: Optional[Dict] = None
|
|
36
36
|
|
|
37
37
|
|
|
38
38
|
class TriggerSignalsRequest(OpenModuleModel):
|
|
@@ -2,7 +2,7 @@ import logging
|
|
|
2
2
|
import threading
|
|
3
3
|
import time
|
|
4
4
|
import warnings
|
|
5
|
-
from typing import Dict, Optional, List, Type
|
|
5
|
+
from typing import Dict, Optional, List, Type, TypeVar
|
|
6
6
|
from uuid import uuid4
|
|
7
7
|
|
|
8
8
|
import pydantic
|
|
@@ -18,6 +18,9 @@ from openmodule.models.rpc import RPCResponse, RPCRequest, RPCErrorResult, RPCSe
|
|
|
18
18
|
from openmodule.rpc.common import channel_to_response_topic, channel_to_request_topic
|
|
19
19
|
|
|
20
20
|
|
|
21
|
+
ResponseType = TypeVar('ResponseType', bound=OpenModuleModel)
|
|
22
|
+
|
|
23
|
+
|
|
21
24
|
class RPCClient:
|
|
22
25
|
class Exception(Exception):
|
|
23
26
|
pass
|
|
@@ -54,11 +57,11 @@ class RPCClient:
|
|
|
54
57
|
self.ready = threading.Event()
|
|
55
58
|
self.cancelled = False
|
|
56
59
|
|
|
57
|
-
def done(self):
|
|
60
|
+
def done(self) -> bool:
|
|
58
61
|
return bool(self.response)
|
|
59
62
|
|
|
60
63
|
@sentry.trace(op="rpc.result")
|
|
61
|
-
def result(self, response_type: Type[
|
|
64
|
+
def result(self, response_type: Type[ResponseType], timeout=None)-> ResponseType:
|
|
62
65
|
if timeout and (timeout > self.timeout):
|
|
63
66
|
warnings.warn("You cannot extend the timeout of an RPC after sending the request. "
|
|
64
67
|
"The timeout will be limited to at most the initial timeout.", stacklevel=2)
|
|
@@ -91,8 +94,8 @@ class RPCClient:
|
|
|
91
94
|
elif error_result.status == RPCServerError.error:
|
|
92
95
|
raise RPCClient.RPCServerError(error_result.error)
|
|
93
96
|
else:
|
|
94
|
-
|
|
95
|
-
|
|
97
|
+
raise RPCClient.ServerUnknownError("RPCErrorResult successfully parsed but status not handled."
|
|
98
|
+
" Implement this!")
|
|
96
99
|
except pydantic.ValidationError as e:
|
|
97
100
|
raise RPCClient.ValidationError(e.raw_errors, e.model)
|
|
98
101
|
|
|
@@ -158,7 +161,7 @@ class RPCClient:
|
|
|
158
161
|
self.results.pop(rpc_id, None)
|
|
159
162
|
self.sent_ids = {k: v for k, v in self.sent_ids.items() if v > now}
|
|
160
163
|
|
|
161
|
-
def _call(self, channel: str, typ: str, request: Dict, timeout: float):
|
|
164
|
+
def _call(self, channel: str, typ: str, request: Dict, timeout: float) -> RPCEntry:
|
|
162
165
|
rpc_id = str(uuid4())
|
|
163
166
|
|
|
164
167
|
request = RPCRequest(rpc_id=rpc_id, name=settings.NAME, request=request, type=typ)
|
|
@@ -191,8 +194,8 @@ class RPCClient:
|
|
|
191
194
|
|
|
192
195
|
return self._call(channel, type, request, timeout)
|
|
193
196
|
|
|
194
|
-
def rpc(self, channel: str, type: str, request: [Dict, BaseModel], response_type: Type[
|
|
195
|
-
timeout: float = None) ->
|
|
197
|
+
def rpc(self, channel: str, type: str, request: [Dict, BaseModel], response_type: Type[ResponseType],
|
|
198
|
+
timeout: float = None) -> ResponseType:
|
|
196
199
|
with sentry.trace(name=f"{channel}/{type}", op="rpc"):
|
|
197
200
|
entry = self.rpc_non_blocking(channel, type, request, timeout)
|
|
198
201
|
return entry.result(response_type, timeout=timeout)
|
|
@@ -56,10 +56,10 @@ class Signal:
|
|
|
56
56
|
class Listener:
|
|
57
57
|
def __init__(self, signal_name: str, filter_type: FilterType, callback: Callable[[Signal], None],
|
|
58
58
|
tag: Optional[str]):
|
|
59
|
-
self.signal_name = signal_name
|
|
60
|
-
self.filter_type = filter_type
|
|
61
|
-
self.callback = callback
|
|
62
|
-
self.tag = tag
|
|
59
|
+
self.signal_name: str = signal_name
|
|
60
|
+
self.filter_type: FilterType = filter_type
|
|
61
|
+
self.callback: Callable[[Signal], None] = callback
|
|
62
|
+
self.tag: Optional[str] = tag
|
|
63
63
|
|
|
64
64
|
def matches(self, signal_name: str, change_type: ChangeType) -> bool:
|
|
65
65
|
return self.signal_name == signal_name and self.filter_type.matches_change(change_type)
|
|
@@ -128,6 +128,7 @@ class SignalListener:
|
|
|
128
128
|
def trigger_signals(self, tag: Optional[str] = None, timeout: float = 3.0) -> bool:
|
|
129
129
|
"""
|
|
130
130
|
:param tag: if given, only signals of listeners with given tag are triggered
|
|
131
|
+
:param timeout: timeout for trigger RPC. Default is 3.0
|
|
131
132
|
"""
|
|
132
133
|
try:
|
|
133
134
|
with self.listeners_lock:
|
|
@@ -163,12 +164,12 @@ class SignalListener:
|
|
|
163
164
|
for listener in self.listeners:
|
|
164
165
|
"""
|
|
165
166
|
Handles the registered listeners the same as the dispatcher.
|
|
166
|
-
Is copied here because all messages are needed to keep current_states up to date.
|
|
167
|
+
Is copied here because all messages are needed to keep current_states up to date.
|
|
167
168
|
"""
|
|
168
169
|
if listener.matches(message.signal, change_type):
|
|
169
170
|
try:
|
|
170
171
|
listener.callback(Signal(message, change_type))
|
|
171
172
|
except zmq.ContextTerminated:
|
|
172
173
|
raise
|
|
173
|
-
except Exception
|
|
174
|
+
except Exception:
|
|
174
175
|
self.log.exception("Error in signal callback")
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"git_version": "d1f88e5", "is_release": true}
|
|
@@ -18,7 +18,7 @@ class SignalSimulator:
|
|
|
18
18
|
signal_msg = SignalMessage(signal=signal_name, type=signal_type, gate=gate, parking_area_id=parking_area_id,
|
|
19
19
|
value=value, additional_data=additional_data)
|
|
20
20
|
elif signal_type == SignalType.parkinglot_full:
|
|
21
|
-
signal_name =
|
|
21
|
+
signal_name = signal_type.value
|
|
22
22
|
signal_msg = SignalMessage(signal=signal_name, type=signal_type,
|
|
23
23
|
value=value, additional_data=additional_data)
|
|
24
24
|
elif signal_type == SignalType.area_full:
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
from typing import Optional
|
|
2
|
+
|
|
1
3
|
from openmodule.models.signals import SignalMessage, SignalType, TriggerSignalsRequest, TriggerSignalsResponse
|
|
2
4
|
from openmodule.rpc import RPCClient
|
|
3
5
|
from openmodule.utils.signal_listener import (SignalListener, GetSignalValueRequest, GetSignalValueResponse, FilterType,
|
|
@@ -186,7 +188,7 @@ class TestSignalListener(OpenModuleCoreTestMixin):
|
|
|
186
188
|
self.assertEqual(True, signal_listener.get_value("false"))
|
|
187
189
|
|
|
188
190
|
def test_trigger(self):
|
|
189
|
-
request = None
|
|
191
|
+
request: Optional[TriggerSignalsRequest] = None
|
|
190
192
|
res = TriggerSignalsResponse(success=True)
|
|
191
193
|
def trigger(req: TriggerSignalsRequest, _) -> bool:
|
|
192
194
|
nonlocal request, res
|
|
@@ -227,4 +229,3 @@ class TestSignalListener(OpenModuleCoreTestMixin):
|
|
|
227
229
|
with self.assertLogs() as log:
|
|
228
230
|
self.assertEqual(False, signal_listener.trigger_signals())
|
|
229
231
|
self.assertIn("Error while triggering signals.", str(log.output))
|
|
230
|
-
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"git_version": "3b899ae", "is_release": true}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{openmodule-14.2.0 → openmodule-14.3.0}/tests/migration_double_column_delete_error/alembic/env.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{openmodule-14.2.0 → openmodule-14.3.0}/tests/migration_double_column_delete_error/alembic.ini
RENAMED
|
File without changes
|
{openmodule-14.2.0 → openmodule-14.3.0}/tests/migration_double_column_delete_error/makemigration.sh
RENAMED
|
File without changes
|
{openmodule-14.2.0 → openmodule-14.3.0}/tests/migration_no_such_table_error/alembic/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{openmodule-14.2.0 → openmodule-14.3.0}/tests/migration_no_such_table_error/alembic/script.py.mako
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{openmodule-14.2.0 → openmodule-14.3.0}/tests/migration_no_such_table_error/makemigration.sh
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{openmodule-14.2.0 → openmodule-14.3.0}/tests/migration_test_database/alembic/script.py.mako
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{openmodule-14.2.0 → openmodule-14.3.0}/tests/migration_test_database/alembic/versions/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|