From 405d12e74a3c7a27aa0e357a1d8438dc5f35b079 Mon Sep 17 00:00:00 2001 From: wakonig_k Date: Sun, 7 Apr 2024 20:12:00 +0200 Subject: [PATCH] refactor!: moved services to bec_server All services are now in the bec_server package. This is a breaking change as the standalone import of the services will no longer work. --- .gitlab-ci.yml | 15 +- bec_lib/bec_lib/tests/end2end_fixtures.py | 6 +- .../scan_plugin_template.py | 4 +- .../cli/__init__.py => bec_server/README.md | 0 bec_server/bec_server/__init__.py | 2 +- .../bec_server/bec_server_utils}/__init__.py | 0 .../{ => bec_server_utils}/launch.py | 2 +- .../{ => bec_server_utils}/service_handler.py | 9 +- .../subprocess_launch.py | 0 .../{ => bec_server_utils}/tmux_launch.py | 0 .../bec_server}/data_processing/__init__.py | 0 .../data_processing}/cli/__init__.py | 0 .../bec_server}/data_processing/cli/launch.py | 4 +- .../bec_server}/data_processing/dap_server.py | 0 .../data_processing/dap_service.py | 0 .../data_processing/dap_service_manager.py | 0 .../data_processing/lmfit1d_service.py | 2 +- .../bec_server}/device_server/__init__.py | 0 .../bec_server/device_server}/cli/__init__.py | 0 .../bec_server}/device_server/cli/launch.py | 8 +- .../device_server/device_server.py | 4 +- .../device_server/devices/__init__.py | 0 .../devices/config_update_handler.py | 0 .../devices/device_serializer.py | 0 .../device_server/devices/devicemanager.py | 4 +- .../bec_server}/device_server/rpc_mixin.py | 2 +- .../bec_server}/file_writer/__init__.py | 0 .../bec_server/file_writer}/cli/__init__.py | 0 .../bec_server}/file_writer/cli/launch.py | 8 +- .../bec_server}/file_writer/file_writer.py | 2 +- .../file_writer/file_writer_manager.py | 2 +- .../bec_server}/file_writer/merged_dicts.py | 0 .../file_writer_plugins/__init__.py | 0 .../bec_server}/file_writer_plugins/cSAXS.py | 42 +-- .../file_writer_plugins/default_writer.py | 7 +- .../bec_server}/scan_bundler/__init__.py | 0 .../bec_server}/scan_bundler/bec_emitter.py | 0 .../scan_bundler/bluesky_emitter.py | 0 .../bec_server/scan_bundler}/cli/__init__.py | 0 .../bec_server}/scan_bundler/cli/launch.py | 8 +- .../bec_server}/scan_bundler/emitter.py | 0 .../bec_server}/scan_bundler/scan_bundler.py | 0 .../bec_server}/scan_server/__init__.py | 0 .../bec_server/scan_server/cli/__init__.py | 0 .../bec_server}/scan_server/cli/launch.py | 13 +- .../scan_server/device_validation.py | 0 .../bec_server}/scan_server/errors.py | 0 .../scan_server/path_optimization.py | 0 .../bec_server}/scan_server/scan_assembler.py | 0 .../bec_server}/scan_server/scan_guard.py | 0 .../bec_server}/scan_server/scan_manager.py | 0 .../scan_plugins/LamNIFermatScan.py | 4 +- .../scan_server}/scan_plugins/__init__.py | 0 .../scan_plugins/flomni_fermat_scan.py | 4 +- .../scan_server}/scan_plugins/otf_scan.py | 2 +- .../scan_server}/scan_plugins/owis_grid.py | 2 +- .../scan_server}/scan_plugins/sgalil_grid.py | 2 +- .../bec_server}/scan_server/scan_queue.py | 0 .../bec_server}/scan_server/scan_server.py | 0 .../bec_server}/scan_server/scan_stubs.py | 0 .../bec_server}/scan_server/scan_worker.py | 0 .../bec_server}/scan_server/scans.py | 0 .../bec_server}/scihub/__init__.py | 0 bec_server/bec_server/scihub/cli/__init__.py | 0 .../bec_server}/scihub/cli/launch.py | 8 +- .../bec_server}/scihub/repeated_timer.py | 0 .../bec_server}/scihub/scibec/__init__.py | 0 .../scihub/scibec/config_handler.py | 2 +- .../scihub/scibec/scibec_connector.py | 4 +- .../scihub/scibec/scibec_metadata_handler.py | 2 +- .../bec_server}/scihub/scihub.py | 4 +- .../bec_server}/scihub/scilog/__init__.py | 0 .../bec_server}/scihub/scilog/scilog.py | 4 +- bec_server/setup.py | 95 +++-- .../{ => tests_bec_server_utils}/test_main.py | 22 +- .../test_service_handler.py | 20 +- .../test_tmux_launch.py | 8 +- .../tests/tests_data_processing}/conftest.py | 0 .../test_dap_cli_launch.py | 40 +++ .../tests_data_processing}/test_dap_server.py | 4 +- .../test_dap_service_manager.py | 4 +- .../test_lmfit1d_service.py | 6 +- .../tests/tests_device_server}/conftest.py | 0 .../test_config_handler.py | 4 +- .../test_device_manager_ds.py | 2 +- .../test_device_serializer.py | 2 +- .../test_device_server.py | 4 +- .../test_device_server_cli_launch.py | 32 ++ .../tests_device_server}/test_rpc_mixin.py | 2 +- .../tests/tests_file_writer}/conftest.py | 0 .../tests_file_writer}/test_file_writer.py | 22 +- .../test_file_writer_cli_launch.py | 18 +- .../test_file_writer_manager.py | 6 +- .../tests/tests_scan_bundler}/conftest.py | 2 +- .../tests_scan_bundler}/test_bec_emitter.py | 2 +- .../test_bluesky_emitter.py | 2 +- .../tests/tests_scan_bundler}/test_emitter.py | 2 +- .../tests_scan_bundler}/test_scan_bundler.py | 4 +- .../test_scan_bundler_cli_launch.py | 18 +- .../tests/tests_scan_server}/conftest.py | 0 .../test_flomni_fermat_scan.py | 3 +- .../test_path_optimization.py | 4 +- .../tests_scan_server}/test_scan_guard.py | 4 +- .../test_scan_server_cli_launch.py | 18 +- .../test_scan_server_queue.py | 8 +- .../tests_scan_server}/test_scan_stubs.py | 4 +- .../tests_scan_server}/test_scan_worker.py | 12 +- .../tests/tests_scan_server}/test_scans.py | 10 +- .../tests/tests_scan_server}/utils.py | 4 +- .../tests/tests_scihub}/conftest.py | 0 .../tests_scihub}/test_repeated_timer.py | 2 +- .../test_scibec_config_handler.py | 14 +- .../tests_scihub}/test_scibec_connector.py | 8 +- .../test_scibec_metadata_handler.py | 6 +- .../tests_scihub}/test_scihub_cli_launch.py | 18 +- .../tests_scihub}/test_scilog_connector.py | 6 +- data_processing/launch.py | 4 - data_processing/setup.cfg | 21 -- data_processing/setup.py | 57 --- data_processing/tests/test_dap_cli_launch.py | 32 -- device_server/install.sh | 8 - device_server/launch.py | 4 - device_server/setup.cfg | 21 -- device_server/setup.py | 58 ---- .../tests/test_device_server_cli_launch.py | 28 -- file_writer/launch.py | 4 - file_writer/layout_cSAXS_NXsas.xml | 327 ------------------ file_writer/setup.cfg | 21 -- file_writer/setup.py | 56 --- launch_docker_services_bec.sh | 19 - scan_bundler/launch.py | 4 - scan_bundler/setup.cfg | 21 -- scan_bundler/setup.py | 57 --- scan_server/README.md | 55 --- scan_server/launch.py | 4 - scan_server/setup.cfg | 21 -- scan_server/setup.py | 56 --- scihub/launch.py | 4 - scihub/setup.cfg | 21 -- scihub/setup.py | 57 --- start_tmux_session.sh | 46 --- 141 files changed, 312 insertions(+), 1318 deletions(-) rename data_processing/data_processing/cli/__init__.py => bec_server/README.md (100%) rename {device_server/device_server/cli => bec_server/bec_server/bec_server_utils}/__init__.py (100%) rename bec_server/bec_server/{ => bec_server_utils}/launch.py (96%) rename bec_server/bec_server/{ => bec_server_utils}/service_handler.py (92%) rename bec_server/bec_server/{ => bec_server_utils}/subprocess_launch.py (100%) rename bec_server/bec_server/{ => bec_server_utils}/tmux_launch.py (100%) rename {data_processing => bec_server/bec_server}/data_processing/__init__.py (100%) rename {file_writer/file_writer => bec_server/bec_server/data_processing}/cli/__init__.py (100%) rename {data_processing => bec_server/bec_server}/data_processing/cli/launch.py (88%) rename {data_processing => bec_server/bec_server}/data_processing/dap_server.py (100%) rename {data_processing => bec_server/bec_server}/data_processing/dap_service.py (100%) rename {data_processing => bec_server/bec_server}/data_processing/dap_service_manager.py (100%) rename {data_processing => bec_server/bec_server}/data_processing/lmfit1d_service.py (99%) rename {device_server => bec_server/bec_server}/device_server/__init__.py (100%) rename {scan_bundler/scan_bundler => bec_server/bec_server/device_server}/cli/__init__.py (100%) rename {device_server => bec_server/bec_server}/device_server/cli/launch.py (88%) rename {device_server => bec_server/bec_server}/device_server/device_server.py (99%) rename {device_server => bec_server/bec_server}/device_server/devices/__init__.py (100%) rename {device_server => bec_server/bec_server}/device_server/devices/config_update_handler.py (100%) rename {device_server => bec_server/bec_server}/device_server/devices/device_serializer.py (100%) rename {device_server => bec_server/bec_server}/device_server/devices/devicemanager.py (99%) rename {device_server => bec_server/bec_server}/device_server/rpc_mixin.py (99%) rename {file_writer => bec_server/bec_server}/file_writer/__init__.py (100%) rename {scan_server/scan_server => bec_server/bec_server/file_writer}/cli/__init__.py (100%) rename {file_writer => bec_server/bec_server}/file_writer/cli/launch.py (86%) rename {file_writer => bec_server/bec_server}/file_writer/file_writer.py (99%) rename {file_writer => bec_server/bec_server}/file_writer/file_writer_manager.py (99%) rename {file_writer => bec_server/bec_server}/file_writer/merged_dicts.py (100%) rename {file_writer => bec_server/bec_server}/file_writer_plugins/__init__.py (100%) rename {file_writer => bec_server/bec_server}/file_writer_plugins/cSAXS.py (93%) rename {file_writer => bec_server/bec_server}/file_writer_plugins/default_writer.py (94%) rename {scan_bundler => bec_server/bec_server}/scan_bundler/__init__.py (100%) rename {scan_bundler => bec_server/bec_server}/scan_bundler/bec_emitter.py (100%) rename {scan_bundler => bec_server/bec_server}/scan_bundler/bluesky_emitter.py (100%) rename {scihub/scihub => bec_server/bec_server/scan_bundler}/cli/__init__.py (100%) rename {scan_bundler => bec_server/bec_server}/scan_bundler/cli/launch.py (83%) rename {scan_bundler => bec_server/bec_server}/scan_bundler/emitter.py (100%) rename {scan_bundler => bec_server/bec_server}/scan_bundler/scan_bundler.py (100%) rename {scan_server => bec_server/bec_server}/scan_server/__init__.py (100%) create mode 100644 bec_server/bec_server/scan_server/cli/__init__.py rename {scan_server => bec_server/bec_server}/scan_server/cli/launch.py (72%) rename {scan_server => bec_server/bec_server}/scan_server/device_validation.py (100%) rename {scan_server => bec_server/bec_server}/scan_server/errors.py (100%) rename {scan_server => bec_server/bec_server}/scan_server/path_optimization.py (100%) rename {scan_server => bec_server/bec_server}/scan_server/scan_assembler.py (100%) rename {scan_server => bec_server/bec_server}/scan_server/scan_guard.py (100%) rename {scan_server => bec_server/bec_server}/scan_server/scan_manager.py (100%) rename {scan_server => bec_server/bec_server/scan_server}/scan_plugins/LamNIFermatScan.py (99%) rename {scan_server => bec_server/bec_server/scan_server}/scan_plugins/__init__.py (100%) rename {scan_server => bec_server/bec_server/scan_server}/scan_plugins/flomni_fermat_scan.py (99%) rename {scan_server => bec_server/bec_server/scan_server}/scan_plugins/otf_scan.py (98%) rename {scan_server => bec_server/bec_server/scan_server}/scan_plugins/owis_grid.py (99%) rename {scan_server => bec_server/bec_server/scan_server}/scan_plugins/sgalil_grid.py (99%) rename {scan_server => bec_server/bec_server}/scan_server/scan_queue.py (100%) rename {scan_server => bec_server/bec_server}/scan_server/scan_server.py (100%) rename {scan_server => bec_server/bec_server}/scan_server/scan_stubs.py (100%) rename {scan_server => bec_server/bec_server}/scan_server/scan_worker.py (100%) rename {scan_server => bec_server/bec_server}/scan_server/scans.py (100%) rename {scihub => bec_server/bec_server}/scihub/__init__.py (100%) create mode 100644 bec_server/bec_server/scihub/cli/__init__.py rename {scihub => bec_server/bec_server}/scihub/cli/launch.py (83%) rename {scihub => bec_server/bec_server}/scihub/repeated_timer.py (100%) rename {scihub => bec_server/bec_server}/scihub/scibec/__init__.py (100%) rename {scihub => bec_server/bec_server}/scihub/scibec/config_handler.py (99%) rename {scihub => bec_server/bec_server}/scihub/scibec/scibec_connector.py (98%) rename {scihub => bec_server/bec_server}/scihub/scibec/scibec_metadata_handler.py (99%) rename {scihub => bec_server/bec_server}/scihub/scihub.py (90%) rename {scihub => bec_server/bec_server}/scihub/scilog/__init__.py (100%) rename {scihub => bec_server/bec_server}/scihub/scilog/scilog.py (96%) rename bec_server/tests/{ => tests_bec_server_utils}/test_main.py (67%) rename bec_server/tests/{ => tests_bec_server_utils}/test_service_handler.py (67%) rename bec_server/tests/{ => tests_bec_server_utils}/test_tmux_launch.py (80%) rename {data_processing/tests => bec_server/tests/tests_data_processing}/conftest.py (100%) create mode 100644 bec_server/tests/tests_data_processing/test_dap_cli_launch.py rename {data_processing/tests => bec_server/tests/tests_data_processing}/test_dap_server.py (70%) rename {data_processing/tests => bec_server/tests/tests_data_processing}/test_dap_service_manager.py (95%) rename {data_processing/tests => bec_server/tests/tests_data_processing}/test_lmfit1d_service.py (96%) rename {device_server/tests => bec_server/tests/tests_device_server}/conftest.py (100%) rename {device_server/tests => bec_server/tests/tests_device_server}/test_config_handler.py (95%) rename {device_server/tests => bec_server/tests/tests_device_server}/test_device_manager_ds.py (98%) rename {device_server/tests => bec_server/tests/tests_device_server}/test_device_serializer.py (93%) rename {device_server/tests => bec_server/tests/tests_device_server}/test_device_server.py (99%) create mode 100644 bec_server/tests/tests_device_server/test_device_server_cli_launch.py rename {device_server/tests => bec_server/tests/tests_device_server}/test_rpc_mixin.py (99%) rename {file_writer/tests => bec_server/tests/tests_file_writer}/conftest.py (100%) rename {file_writer/tests => bec_server/tests/tests_file_writer}/test_file_writer.py (90%) rename {file_writer/tests => bec_server/tests/tests_file_writer}/test_file_writer_cli_launch.py (50%) rename {file_writer/tests => bec_server/tests/tests_file_writer}/test_file_writer_manager.py (98%) rename {scan_bundler/tests => bec_server/tests/tests_scan_bundler}/conftest.py (97%) rename {scan_bundler/tests => bec_server/tests/tests_scan_bundler}/test_bec_emitter.py (97%) rename {scan_bundler/tests => bec_server/tests/tests_scan_bundler}/test_bluesky_emitter.py (97%) rename {scan_bundler/tests => bec_server/tests/tests_scan_bundler}/test_emitter.py (98%) rename {scan_bundler/tests => bec_server/tests/tests_scan_bundler}/test_scan_bundler.py (99%) rename {scan_bundler/tests => bec_server/tests/tests_scan_bundler}/test_scan_bundler_cli_launch.py (50%) rename {scan_server/tests => bec_server/tests/tests_scan_server}/conftest.py (100%) rename {scan_server/tests => bec_server/tests/tests_scan_server}/test_flomni_fermat_scan.py (96%) rename {scan_server/tests => bec_server/tests/tests_scan_server}/test_path_optimization.py (98%) rename {scan_server/tests => bec_server/tests/tests_scan_server}/test_scan_guard.py (98%) rename {scan_server/tests => bec_server/tests/tests_scan_server}/test_scan_server_cli_launch.py (50%) rename {scan_server/tests => bec_server/tests/tests_scan_server}/test_scan_server_queue.py (99%) rename {scan_server/tests => bec_server/tests/tests_scan_server}/test_scan_stubs.py (96%) rename {scan_server/tests => bec_server/tests/tests_scan_server}/test_scan_worker.py (99%) rename {scan_server/tests => bec_server/tests/tests_scan_server}/test_scans.py (99%) rename {scan_server/tests => bec_server/tests/tests_scan_server}/utils.py (95%) rename {scihub/tests => bec_server/tests/tests_scihub}/conftest.py (100%) rename {scihub/tests => bec_server/tests/tests_scihub}/test_repeated_timer.py (89%) rename {scihub/tests => bec_server/tests/tests_scihub}/test_scibec_config_handler.py (96%) rename {scihub/tests => bec_server/tests/tests_scihub}/test_scibec_connector.py (96%) rename {scihub/tests => bec_server/tests/tests_scihub}/test_scibec_metadata_handler.py (96%) rename {scihub/tests => bec_server/tests/tests_scihub}/test_scihub_cli_launch.py (52%) rename {scihub/tests => bec_server/tests/tests_scihub}/test_scilog_connector.py (86%) delete mode 100644 data_processing/launch.py delete mode 100644 data_processing/setup.cfg delete mode 100644 data_processing/setup.py delete mode 100644 data_processing/tests/test_dap_cli_launch.py delete mode 100644 device_server/install.sh delete mode 100644 device_server/launch.py delete mode 100644 device_server/setup.cfg delete mode 100644 device_server/setup.py delete mode 100644 device_server/tests/test_device_server_cli_launch.py delete mode 100644 file_writer/launch.py delete mode 100644 file_writer/layout_cSAXS_NXsas.xml delete mode 100644 file_writer/setup.cfg delete mode 100644 file_writer/setup.py delete mode 100755 launch_docker_services_bec.sh delete mode 100644 scan_bundler/launch.py delete mode 100644 scan_bundler/setup.cfg delete mode 100644 scan_bundler/setup.py delete mode 100644 scan_server/README.md delete mode 100644 scan_server/launch.py delete mode 100644 scan_server/setup.cfg delete mode 100644 scan_server/setup.py delete mode 100644 scihub/launch.py delete mode 100644 scihub/setup.cfg delete mode 100644 scihub/setup.py delete mode 100755 start_tmux_session.sh diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 586658c6..582128ba 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -39,15 +39,6 @@ stages: - Build - Deploy -.install-bec-services: &install-bec-services - - pip install -e ./device_server - - pip install -e ./scan_server - - pip install -e ./scan_bundler - - pip install -e ./bec_client - - pip install -e ./file_writer - - pip install -e ./scihub - - pip install -e ./data_processing - .install-bec-services-dev: &install-bec-services-dev - pip install wheel - pip install -e ./bec_server[dev] @@ -69,7 +60,7 @@ pylint: - pip install pylint pylint-exit anybadge script: - mkdir ./pylint - - pylint ./data_processing/data_processing ./bec_lib/bec_lib ./scan_server/scan_server ./device_server/device_server ./scan_bundler/scan_bundler ./bec_client/bec_client ./file_writer/file_writer --output-format=text | tee ./pylint/pylint.log || pylint-exit $? + - pylint ./bec_server/bec_server ./bec_lib/bec_lib ./bec_client/bec_client --output-format=text | tee ./pylint/pylint.log || pylint-exit $? - PYLINT_SCORE=$(sed -n 's/^Your code has been rated at \([-0-9.]*\)\/.*/\1/p' ./pylint/pylint.log) - anybadge --label=Pylint --file=pylint/pylint.svg --value=$PYLINT_SCORE 2=red 4=orange 8=yellow 10=green - echo "Pylint score is $PYLINT_SCORE" @@ -123,7 +114,7 @@ tests: - apt-get install -y gcc - apt-get install -y redis - *install-bec-services-dev - - coverage run --source=./data_processing/data_processing,./bec_lib/bec_lib,./device_server/device_server,./scan_server/scan_server,./scan_bundler/scan_bundler,./bec_client/bec_client,./file_writer/file_writer,./scihub/scihub --omit=*/bec_client/bec_client/plugins/*,*/bec_client/scripts/*,./bec_lib/bec_lib/tests -m pytest -v --junitxml=report.xml --random-order ./data_processing/tests ./scan_server/tests ./device_server/tests ./scan_bundler/tests ./bec_client/tests/client_tests ./file_writer/tests ./scihub/tests ./bec_lib/tests + - coverage run --source=./bec_server/bec_server,./bec_lib/bec_lib,./bec_client/bec_client, --omit=*/bec_server/scan_server/scan_plugins/*,*/bec_client/bec_client/plugins/*,*/bec_client/scripts/*,./bec_lib/bec_lib/tests -m pytest -v --junitxml=report.xml --random-order ./bec_server/tests ./bec_client/tests/client_tests ./bec_lib/tests - coverage report - coverage xml coverage: '/(?i)total.*? (100(?:\.0+)?\%|[1-9]?\d(?:\.\d+)?\%)$/' @@ -147,7 +138,7 @@ tests-3.11: - apt-get install -y gcc - apt-get install -y redis - *install-bec-services-dev - - pytest -v --junitxml=report.xml --random-order ./data_processing/tests ./bec_lib/tests ./scan_server/tests ./device_server/tests ./scan_bundler/tests ./bec_client/tests/client_tests ./file_writer/tests ./scihub/tests + - pytest -v --junitxml=report.xml --random-order ./bec_server/tests ./bec_lib/tests ./bec_client/tests/client_tests tests-3.12: extends: "tests-3.11" diff --git a/bec_lib/bec_lib/tests/end2end_fixtures.py b/bec_lib/bec_lib/tests/end2end_fixtures.py index 853493bc..1972a2f9 100644 --- a/bec_lib/bec_lib/tests/end2end_fixtures.py +++ b/bec_lib/bec_lib/tests/end2end_fixtures.py @@ -167,15 +167,13 @@ def bec_servers( ) if _start_servers: - from bec_server.service_handler import ServiceHandler + from bec_server.bec_server_utils.service_handler import ServiceHandler # Start all BEC servers, kill them at the end # when no_tmux=True, 'bec_path' indicate the cwd # for the process (working directory), i.e. where log files will go service_handler = ServiceHandler( - bec_path=bec_files_path, - config_path=bec_services_config_file_path, - no_tmux=True, + bec_path=bec_files_path, config_path=bec_services_config_file_path, no_tmux=True ) processes = service_handler.start() try: diff --git a/bec_lib/util_scripts/plugin_setup_files/scan_plugin_template.py b/bec_lib/util_scripts/plugin_setup_files/scan_plugin_template.py index 5dbbd7ee..bb8ea061 100644 --- a/bec_lib/util_scripts/plugin_setup_files/scan_plugin_template.py +++ b/bec_lib/util_scripts/plugin_setup_files/scan_plugin_template.py @@ -26,7 +26,7 @@ but they are executed in a specific order: # import numpy as np # from bec_lib import MessageEndpoints, bec_logger, messages -# from scan_server.errors import ScanAbortion -# from scan_server.scans import FlyScanBase, RequestBase, ScanArgType, ScanBase +# from bec_server.scan_server.errors import ScanAbortion +# from bec_server.scan_server.scans import FlyScanBase, RequestBase, ScanArgType, ScanBase # logger = bec_logger.logger diff --git a/data_processing/data_processing/cli/__init__.py b/bec_server/README.md similarity index 100% rename from data_processing/data_processing/cli/__init__.py rename to bec_server/README.md diff --git a/bec_server/bec_server/__init__.py b/bec_server/bec_server/__init__.py index 4aabc7da..c9442d3e 100644 --- a/bec_server/bec_server/__init__.py +++ b/bec_server/bec_server/__init__.py @@ -1 +1 @@ -from .launch import main +from .bec_server_utils.launch import main diff --git a/device_server/device_server/cli/__init__.py b/bec_server/bec_server/bec_server_utils/__init__.py similarity index 100% rename from device_server/device_server/cli/__init__.py rename to bec_server/bec_server/bec_server_utils/__init__.py diff --git a/bec_server/bec_server/launch.py b/bec_server/bec_server/bec_server_utils/launch.py similarity index 96% rename from bec_server/bec_server/launch.py rename to bec_server/bec_server/bec_server_utils/launch.py index 7bf7631f..401dcbe2 100644 --- a/bec_server/bec_server/launch.py +++ b/bec_server/bec_server/bec_server_utils/launch.py @@ -3,7 +3,7 @@ import os import libtmux -from bec_server.service_handler import ServiceHandler +from bec_server.bec_server_utils.service_handler import ServiceHandler def main(): diff --git a/bec_server/bec_server/service_handler.py b/bec_server/bec_server/bec_server_utils/service_handler.py similarity index 92% rename from bec_server/bec_server/service_handler.py rename to bec_server/bec_server/bec_server_utils/service_handler.py index 606fe112..76362023 100644 --- a/bec_server/bec_server/service_handler.py +++ b/bec_server/bec_server/bec_server_utils/service_handler.py @@ -1,8 +1,8 @@ import sys from string import Template -from bec_server.subprocess_launch import subprocess_start, subprocess_stop -from bec_server.tmux_launch import tmux_start, tmux_stop +from bec_server.bec_server_utils.subprocess_launch import subprocess_start, subprocess_stop +from bec_server.bec_server_utils.tmux_launch import tmux_start, tmux_stop class bcolors: @@ -28,10 +28,7 @@ class ServiceHandler: """ SERVICES = { - "scan_server": { - "path": Template("$base_path/scan_server"), - "command": "bec-scan-server", - }, + "scan_server": {"path": Template("$base_path/scan_server"), "command": "bec-scan-server"}, "scan_bundler": { "path": Template("$base_path/scan_bundler"), "command": "bec-scan-bundler", diff --git a/bec_server/bec_server/subprocess_launch.py b/bec_server/bec_server/bec_server_utils/subprocess_launch.py similarity index 100% rename from bec_server/bec_server/subprocess_launch.py rename to bec_server/bec_server/bec_server_utils/subprocess_launch.py diff --git a/bec_server/bec_server/tmux_launch.py b/bec_server/bec_server/bec_server_utils/tmux_launch.py similarity index 100% rename from bec_server/bec_server/tmux_launch.py rename to bec_server/bec_server/bec_server_utils/tmux_launch.py diff --git a/data_processing/data_processing/__init__.py b/bec_server/bec_server/data_processing/__init__.py similarity index 100% rename from data_processing/data_processing/__init__.py rename to bec_server/bec_server/data_processing/__init__.py diff --git a/file_writer/file_writer/cli/__init__.py b/bec_server/bec_server/data_processing/cli/__init__.py similarity index 100% rename from file_writer/file_writer/cli/__init__.py rename to bec_server/bec_server/data_processing/cli/__init__.py diff --git a/data_processing/data_processing/cli/launch.py b/bec_server/bec_server/data_processing/cli/launch.py similarity index 88% rename from data_processing/data_processing/cli/launch.py rename to bec_server/bec_server/data_processing/cli/launch.py index 9f035d55..d5205e80 100644 --- a/data_processing/data_processing/cli/launch.py +++ b/bec_server/bec_server/data_processing/cli/launch.py @@ -1,9 +1,9 @@ import argparse import threading -import data_processing +import bec_server.data_processing as data_processing from bec_lib import RedisConnector, ServiceConfig, bec_logger -from data_processing.lmfit1d_service import LmfitService1D +from bec_server.data_processing.lmfit1d_service import LmfitService1D logger = bec_logger.logger bec_logger.level = bec_logger.LOGLEVEL.INFO diff --git a/data_processing/data_processing/dap_server.py b/bec_server/bec_server/data_processing/dap_server.py similarity index 100% rename from data_processing/data_processing/dap_server.py rename to bec_server/bec_server/data_processing/dap_server.py diff --git a/data_processing/data_processing/dap_service.py b/bec_server/bec_server/data_processing/dap_service.py similarity index 100% rename from data_processing/data_processing/dap_service.py rename to bec_server/bec_server/data_processing/dap_service.py diff --git a/data_processing/data_processing/dap_service_manager.py b/bec_server/bec_server/data_processing/dap_service_manager.py similarity index 100% rename from data_processing/data_processing/dap_service_manager.py rename to bec_server/bec_server/data_processing/dap_service_manager.py diff --git a/data_processing/data_processing/lmfit1d_service.py b/bec_server/bec_server/data_processing/lmfit1d_service.py similarity index 99% rename from data_processing/data_processing/lmfit1d_service.py rename to bec_server/bec_server/data_processing/lmfit1d_service.py index 9779172c..e0616dd5 100644 --- a/data_processing/data_processing/lmfit1d_service.py +++ b/bec_server/bec_server/data_processing/lmfit1d_service.py @@ -11,7 +11,7 @@ import numpy as np from bec_lib import DeviceBase, MessageEndpoints, bec_logger, messages from bec_lib.lmfit_serializer import deserialize_param_object, serialize_lmfit_params from bec_lib.serialization import MsgpackSerialization -from data_processing.dap_service import DAPError, DAPServiceBase +from bec_server.data_processing.dap_service import DAPError, DAPServiceBase if TYPE_CHECKING: from bec_lib.scan_items import ScanItem diff --git a/device_server/device_server/__init__.py b/bec_server/bec_server/device_server/__init__.py similarity index 100% rename from device_server/device_server/__init__.py rename to bec_server/bec_server/device_server/__init__.py diff --git a/scan_bundler/scan_bundler/cli/__init__.py b/bec_server/bec_server/device_server/cli/__init__.py similarity index 100% rename from scan_bundler/scan_bundler/cli/__init__.py rename to bec_server/bec_server/device_server/cli/__init__.py diff --git a/device_server/device_server/cli/launch.py b/bec_server/bec_server/device_server/cli/launch.py similarity index 88% rename from device_server/device_server/cli/launch.py rename to bec_server/bec_server/device_server/cli/launch.py index 47114b39..4d56e087 100644 --- a/device_server/device_server/cli/launch.py +++ b/bec_server/bec_server/device_server/cli/launch.py @@ -15,8 +15,8 @@ if startup is not None: import argparse import threading -import device_server from bec_lib import RedisConnector, ServiceConfig, bec_logger +from bec_server import device_server logger = bec_logger.logger bec_logger.level = bec_logger.LOGLEVEL.INFO @@ -27,11 +27,7 @@ def main(): Launch the BEC device server. """ parser = argparse.ArgumentParser(formatter_class=argparse.ArgumentDefaultsHelpFormatter) - parser.add_argument( - "--config", - default="", - help="path to the config file", - ) + parser.add_argument("--config", default="", help="path to the config file") clargs = parser.parse_args() config_path = clargs.config diff --git a/device_server/device_server/device_server.py b/bec_server/bec_server/device_server/device_server.py similarity index 99% rename from device_server/device_server/device_server.py rename to bec_server/bec_server/device_server/device_server.py index 5cbecd47..53da39ff 100644 --- a/device_server/device_server/device_server.py +++ b/bec_server/bec_server/device_server/device_server.py @@ -12,8 +12,8 @@ from bec_lib import Alarms, BECService, MessageEndpoints, bec_logger, messages from bec_lib.connector import ConnectorBase from bec_lib.device import OnFailure from bec_lib.messages import BECStatus -from device_server.devices.devicemanager import DeviceManagerDS -from device_server.rpc_mixin import RPCMixin +from bec_server.device_server.devices.devicemanager import DeviceManagerDS +from bec_server.device_server.rpc_mixin import RPCMixin logger = bec_logger.logger diff --git a/device_server/device_server/devices/__init__.py b/bec_server/bec_server/device_server/devices/__init__.py similarity index 100% rename from device_server/device_server/devices/__init__.py rename to bec_server/bec_server/device_server/devices/__init__.py diff --git a/device_server/device_server/devices/config_update_handler.py b/bec_server/bec_server/device_server/devices/config_update_handler.py similarity index 100% rename from device_server/device_server/devices/config_update_handler.py rename to bec_server/bec_server/device_server/devices/config_update_handler.py diff --git a/device_server/device_server/devices/device_serializer.py b/bec_server/bec_server/device_server/devices/device_serializer.py similarity index 100% rename from device_server/device_server/devices/device_serializer.py rename to bec_server/bec_server/device_server/devices/device_serializer.py diff --git a/device_server/device_server/devices/devicemanager.py b/bec_server/bec_server/device_server/devices/devicemanager.py similarity index 99% rename from device_server/device_server/devices/devicemanager.py rename to bec_server/bec_server/device_server/devices/devicemanager.py index 6d842c04..e53bcf06 100644 --- a/device_server/device_server/devices/devicemanager.py +++ b/bec_server/bec_server/device_server/devices/devicemanager.py @@ -28,8 +28,8 @@ from bec_lib import ( bec_logger, messages, ) -from device_server.devices.config_update_handler import ConfigUpdateHandler -from device_server.devices.device_serializer import get_device_info +from bec_server.device_server.devices.config_update_handler import ConfigUpdateHandler +from bec_server.device_server.devices.device_serializer import get_device_info try: from bec_plugins import devices as plugin_devices diff --git a/device_server/device_server/rpc_mixin.py b/bec_server/bec_server/device_server/rpc_mixin.py similarity index 99% rename from device_server/device_server/rpc_mixin.py rename to bec_server/bec_server/device_server/rpc_mixin.py index 9831920d..3b7e3a0b 100644 --- a/device_server/device_server/rpc_mixin.py +++ b/bec_server/bec_server/device_server/rpc_mixin.py @@ -6,7 +6,7 @@ from typing import Any import ophyd from bec_lib import Alarms, MessageEndpoints, bec_logger, messages -from device_server.devices import is_serializable, rgetattr +from bec_server.device_server.devices import is_serializable, rgetattr logger = bec_logger.logger diff --git a/file_writer/file_writer/__init__.py b/bec_server/bec_server/file_writer/__init__.py similarity index 100% rename from file_writer/file_writer/__init__.py rename to bec_server/bec_server/file_writer/__init__.py diff --git a/scan_server/scan_server/cli/__init__.py b/bec_server/bec_server/file_writer/cli/__init__.py similarity index 100% rename from scan_server/scan_server/cli/__init__.py rename to bec_server/bec_server/file_writer/cli/__init__.py diff --git a/file_writer/file_writer/cli/launch.py b/bec_server/bec_server/file_writer/cli/launch.py similarity index 86% rename from file_writer/file_writer/cli/launch.py rename to bec_server/bec_server/file_writer/cli/launch.py index 18e22ccc..162fc07b 100644 --- a/file_writer/file_writer/cli/launch.py +++ b/bec_server/bec_server/file_writer/cli/launch.py @@ -2,8 +2,8 @@ import argparse import os import threading -import file_writer from bec_lib import RedisConnector, ServiceConfig, bec_logger +from bec_server import file_writer logger = bec_logger.logger bec_logger.level = bec_logger.LOGLEVEL.INFO @@ -14,11 +14,7 @@ def main(): Launch the file writer. """ parser = argparse.ArgumentParser(formatter_class=argparse.ArgumentDefaultsHelpFormatter) - parser.add_argument( - "--config", - default="", - help="path to the config file", - ) + parser.add_argument("--config", default="", help="path to the config file") clargs = parser.parse_args() config_path = clargs.config diff --git a/file_writer/file_writer/file_writer.py b/bec_server/bec_server/file_writer/file_writer.py similarity index 99% rename from file_writer/file_writer/file_writer.py rename to bec_server/bec_server/file_writer/file_writer.py index a289291c..3c3daf3e 100644 --- a/file_writer/file_writer/file_writer.py +++ b/bec_server/bec_server/file_writer/file_writer.py @@ -7,10 +7,10 @@ import os import traceback import typing -import file_writer_plugins as fwp import h5py import xmltodict +import bec_server.file_writer_plugins as fwp from bec_lib import MessageEndpoints, bec_logger, messages from .merged_dicts import merge_dicts diff --git a/file_writer/file_writer/file_writer_manager.py b/bec_server/bec_server/file_writer/file_writer_manager.py similarity index 99% rename from file_writer/file_writer/file_writer_manager.py rename to bec_server/bec_server/file_writer/file_writer_manager.py index 437dbeba..780e1ae5 100644 --- a/file_writer/file_writer/file_writer_manager.py +++ b/bec_server/bec_server/file_writer/file_writer_manager.py @@ -16,7 +16,7 @@ from bec_lib.alarm_handler import Alarms from bec_lib.async_data import AsyncDataHandler from bec_lib.file_utils import FileWriter from bec_lib.redis_connector import MessageObject, RedisConnector -from file_writer.file_writer import NexusFileWriter +from bec_server.file_writer.file_writer import NexusFileWriter logger = bec_logger.logger diff --git a/file_writer/file_writer/merged_dicts.py b/bec_server/bec_server/file_writer/merged_dicts.py similarity index 100% rename from file_writer/file_writer/merged_dicts.py rename to bec_server/bec_server/file_writer/merged_dicts.py diff --git a/file_writer/file_writer_plugins/__init__.py b/bec_server/bec_server/file_writer_plugins/__init__.py similarity index 100% rename from file_writer/file_writer_plugins/__init__.py rename to bec_server/bec_server/file_writer_plugins/__init__.py diff --git a/file_writer/file_writer_plugins/cSAXS.py b/bec_server/bec_server/file_writer_plugins/cSAXS.py similarity index 93% rename from file_writer/file_writer_plugins/cSAXS.py rename to bec_server/bec_server/file_writer_plugins/cSAXS.py index 49ec5e59..3a393ff9 100644 --- a/file_writer/file_writer_plugins/cSAXS.py +++ b/bec_server/bec_server/file_writer_plugins/cSAXS.py @@ -6,7 +6,7 @@ import numpy as np if TYPE_CHECKING: from bec_lib import DeviceManagerBase - from file_writer.file_writer import HDF5Storage + from bec_server.file_writer.file_writer import HDF5Storage def get_entry(data: dict, name: str, default=None) -> Any: @@ -25,10 +25,7 @@ def get_entry(data: dict, name: str, default=None) -> Any: def NeXus_format( - storage: HDF5Storage, - data: dict, - file_references: dict, - device_manager: DeviceManagerBase, + storage: HDF5Storage, data: dict, file_references: dict, device_manager: DeviceManagerBase ) -> HDF5Storage: """ Prepare the NeXus file format. @@ -155,8 +152,7 @@ def NeXus_format( if isinstance(mokev, list): mokev = mokev[0] wavelength = mono.create_dataset( - name="wavelength", - data=12.3984193 / (mokev.get("mokev").get("value") + 1e-9), + name="wavelength", data=12.3984193 / (mokev.get("mokev").get("value") + 1e-9) ) wavelength.attrs["units"] = "Angstrom" energy = mono.create_dataset(name="energy", data=mokev.get("mokev").get("value")) @@ -195,22 +191,19 @@ def NeXus_format( xbpm4_x_data = xbpm4_x.create_dataset(name="data", data=get_entry(data, "bpm4x")) xbpm4_x_data.attrs["units"] = "NX_DIMENSIONLESS" xbpm4_x.create_dataset( - name="description", - data="Normalized difference of counts between left and right quadrants.", + name="description", data="Normalized difference of counts between left and right quadrants." ) xbpm4_y = xbpm4.create_group("XBPM4_y") xbpm4_y_data = xbpm4_y.create_dataset(name="data", data=get_entry(data, "bpm4y")) xbpm4_y_data.attrs["units"] = "NX_DIMENSIONLESS" xbpm4_y.create_dataset( - name="description", - data="Normalized difference of counts between high and low quadrants.", + name="description", data="Normalized difference of counts between high and low quadrants." ) xbpm4_skew = xbpm4.create_group("XBPM4_skew") xbpm4_skew_data = xbpm4_skew.create_dataset(name="data", data=get_entry(data, "bpm4z")) xbpm4_skew_data.attrs["units"] = "NX_DIMENSIONLESS" xbpm4_skew.create_dataset( - name="description", - data="Normalized difference of counts between diagonal quadrants.", + name="description", data="Normalized difference of counts between diagonal quadrants." ) mirror = instrument.create_group("mirror") @@ -243,22 +236,19 @@ def NeXus_format( xbpm5_x_data = xbpm5_x.create_dataset(name="data", data=get_entry(data, "bpm5x")) xbpm5_x_data.attrs["units"] = "NX_DIMENSIONLESS" xbpm5_x.create_dataset( - name="description", - data="Normalized difference of counts between left and right quadrants.", + name="description", data="Normalized difference of counts between left and right quadrants." ) xbpm5_y = xbpm5.create_group("XBPM5_y") xbpm5_y_data = xbpm5_y.create_dataset(name="data", data=get_entry(data, "bpm5y")) xbpm5_y_data.attrs["units"] = "NX_DIMENSIONLESS" xbpm5_y.create_dataset( - name="description", - data="Normalized difference of counts between high and low quadrants.", + name="description", data="Normalized difference of counts between high and low quadrants." ) xbpm5_skew = xbpm5.create_group("XBPM5_skew") xbpm5_skew_data = xbpm5_skew.create_dataset(name="data", data=get_entry(data, "bpm5z")) xbpm5_skew_data.attrs["units"] = "NX_DIMENSIONLESS" xbpm5_skew.create_dataset( - name="description", - data="Normalized difference of counts between diagonal quadrants.", + name="description", data="Normalized difference of counts between diagonal quadrants." ) slit_2 = instrument.create_group("slit_2") @@ -373,8 +363,7 @@ def NeXus_format( rotation_angle = eiger_4.create_dataset(name="rotation_angle", data=0) rotation_angle.attrs["units"] = "degrees" description = eiger_4.create_dataset( - name="description", - data="Single-photon counting detector, 320 micron-thick Si chip", + name="description", data="Single-photon counting detector, 320 micron-thick Si chip" ) orientation = eiger_4.create_group("orientation") orientation.attrs["description"] = ( @@ -401,8 +390,7 @@ def NeXus_format( rotation_angle = eiger9m.create_dataset(name="rotation_angle", data=0) rotation_angle.attrs["units"] = "degrees" description = eiger9m.create_dataset( - name="description", - data="Eiger9M detector, in-house developed, Paul Scherrer Institute", + name="description", data="Eiger9M detector, in-house developed, Paul Scherrer Institute" ) orientation = eiger9m.create_group("orientation") orientation.attrs["description"] = ( @@ -442,9 +430,7 @@ def NeXus_format( orientation.create_dataset(name="transpose", data=1) orientation.create_dataset(name="rot90", data=2) data = pilatus_2.create_ext_link( - "data", - file_references["pilatus_2"]["path"], - "entry/instrument/pilatus_2/data", + "data", file_references["pilatus_2"]["path"], "entry/instrument/pilatus_2/data" ) if ( @@ -453,9 +439,7 @@ def NeXus_format( and "falcon" in file_references ): falcon = instrument.create_ext_link( - "falcon", - file_references["falcon"]["path"], - "entry/instrument/FalconX1", + "falcon", file_references["falcon"]["path"], "entry/instrument/FalconX1" ) return storage diff --git a/file_writer/file_writer_plugins/default_writer.py b/bec_server/bec_server/file_writer_plugins/default_writer.py similarity index 94% rename from file_writer/file_writer_plugins/default_writer.py rename to bec_server/bec_server/file_writer_plugins/default_writer.py index c7bc3ff5..60416e00 100644 --- a/file_writer/file_writer_plugins/default_writer.py +++ b/bec_server/bec_server/file_writer_plugins/default_writer.py @@ -4,14 +4,11 @@ from typing import TYPE_CHECKING if TYPE_CHECKING: from bec_lib import DeviceManagerBase - from file_writer.file_writer import HDF5Storage + from bec_server.file_writer.file_writer import HDF5Storage def NeXus_format( - storage: HDF5Storage, - data: dict, - file_references: dict, - device_manager: DeviceManagerBase, + storage: HDF5Storage, data: dict, file_references: dict, device_manager: DeviceManagerBase ) -> HDF5Storage: """ Prepare the NeXus file format. diff --git a/scan_bundler/scan_bundler/__init__.py b/bec_server/bec_server/scan_bundler/__init__.py similarity index 100% rename from scan_bundler/scan_bundler/__init__.py rename to bec_server/bec_server/scan_bundler/__init__.py diff --git a/scan_bundler/scan_bundler/bec_emitter.py b/bec_server/bec_server/scan_bundler/bec_emitter.py similarity index 100% rename from scan_bundler/scan_bundler/bec_emitter.py rename to bec_server/bec_server/scan_bundler/bec_emitter.py diff --git a/scan_bundler/scan_bundler/bluesky_emitter.py b/bec_server/bec_server/scan_bundler/bluesky_emitter.py similarity index 100% rename from scan_bundler/scan_bundler/bluesky_emitter.py rename to bec_server/bec_server/scan_bundler/bluesky_emitter.py diff --git a/scihub/scihub/cli/__init__.py b/bec_server/bec_server/scan_bundler/cli/__init__.py similarity index 100% rename from scihub/scihub/cli/__init__.py rename to bec_server/bec_server/scan_bundler/cli/__init__.py diff --git a/scan_bundler/scan_bundler/cli/launch.py b/bec_server/bec_server/scan_bundler/cli/launch.py similarity index 83% rename from scan_bundler/scan_bundler/cli/launch.py rename to bec_server/bec_server/scan_bundler/cli/launch.py index c5a4cb3b..1d91ec33 100644 --- a/scan_bundler/scan_bundler/cli/launch.py +++ b/bec_server/bec_server/scan_bundler/cli/launch.py @@ -1,8 +1,8 @@ import argparse import threading -import scan_bundler from bec_lib import RedisConnector, ServiceConfig, bec_logger +from bec_server import scan_bundler logger = bec_logger.logger bec_logger.level = bec_logger.LOGLEVEL.INFO @@ -13,11 +13,7 @@ def main(): Launch the scan bundler. """ parser = argparse.ArgumentParser(formatter_class=argparse.ArgumentDefaultsHelpFormatter) - parser.add_argument( - "--config", - default="", - help="path to the config file", - ) + parser.add_argument("--config", default="", help="path to the config file") clargs = parser.parse_args() config_path = clargs.config diff --git a/scan_bundler/scan_bundler/emitter.py b/bec_server/bec_server/scan_bundler/emitter.py similarity index 100% rename from scan_bundler/scan_bundler/emitter.py rename to bec_server/bec_server/scan_bundler/emitter.py diff --git a/scan_bundler/scan_bundler/scan_bundler.py b/bec_server/bec_server/scan_bundler/scan_bundler.py similarity index 100% rename from scan_bundler/scan_bundler/scan_bundler.py rename to bec_server/bec_server/scan_bundler/scan_bundler.py diff --git a/scan_server/scan_server/__init__.py b/bec_server/bec_server/scan_server/__init__.py similarity index 100% rename from scan_server/scan_server/__init__.py rename to bec_server/bec_server/scan_server/__init__.py diff --git a/bec_server/bec_server/scan_server/cli/__init__.py b/bec_server/bec_server/scan_server/cli/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/scan_server/scan_server/cli/launch.py b/bec_server/bec_server/scan_server/cli/launch.py similarity index 72% rename from scan_server/scan_server/cli/launch.py rename to bec_server/bec_server/scan_server/cli/launch.py index cde24463..f60fe4f3 100644 --- a/scan_server/scan_server/cli/launch.py +++ b/bec_server/bec_server/scan_server/cli/launch.py @@ -1,8 +1,8 @@ import argparse import threading -import scan_server from bec_lib import RedisConnector, ServiceConfig, bec_logger +from bec_server import scan_server logger = bec_logger.logger bec_logger.level = bec_logger.LOGLEVEL.INFO @@ -13,20 +13,13 @@ def main(): Launch the scan server. """ parser = argparse.ArgumentParser(formatter_class=argparse.ArgumentDefaultsHelpFormatter) - parser.add_argument( - "--config", - default="", - help="path to the config file", - ) + parser.add_argument("--config", default="", help="path to the config file") clargs = parser.parse_args() config_path = clargs.config config = ServiceConfig(config_path) - bec_server = scan_server.scan_server.ScanServer( - config=config, - connector_cls=RedisConnector, - ) + bec_server = scan_server.scan_server.ScanServer(config=config, connector_cls=RedisConnector) try: event = threading.Event() # pylint: disable=E1102 diff --git a/scan_server/scan_server/device_validation.py b/bec_server/bec_server/scan_server/device_validation.py similarity index 100% rename from scan_server/scan_server/device_validation.py rename to bec_server/bec_server/scan_server/device_validation.py diff --git a/scan_server/scan_server/errors.py b/bec_server/bec_server/scan_server/errors.py similarity index 100% rename from scan_server/scan_server/errors.py rename to bec_server/bec_server/scan_server/errors.py diff --git a/scan_server/scan_server/path_optimization.py b/bec_server/bec_server/scan_server/path_optimization.py similarity index 100% rename from scan_server/scan_server/path_optimization.py rename to bec_server/bec_server/scan_server/path_optimization.py diff --git a/scan_server/scan_server/scan_assembler.py b/bec_server/bec_server/scan_server/scan_assembler.py similarity index 100% rename from scan_server/scan_server/scan_assembler.py rename to bec_server/bec_server/scan_server/scan_assembler.py diff --git a/scan_server/scan_server/scan_guard.py b/bec_server/bec_server/scan_server/scan_guard.py similarity index 100% rename from scan_server/scan_server/scan_guard.py rename to bec_server/bec_server/scan_server/scan_guard.py diff --git a/scan_server/scan_server/scan_manager.py b/bec_server/bec_server/scan_server/scan_manager.py similarity index 100% rename from scan_server/scan_server/scan_manager.py rename to bec_server/bec_server/scan_server/scan_manager.py diff --git a/scan_server/scan_plugins/LamNIFermatScan.py b/bec_server/bec_server/scan_server/scan_plugins/LamNIFermatScan.py similarity index 99% rename from scan_server/scan_plugins/LamNIFermatScan.py rename to bec_server/bec_server/scan_server/scan_plugins/LamNIFermatScan.py index 48c0186a..c4f56e08 100644 --- a/scan_server/scan_plugins/LamNIFermatScan.py +++ b/bec_server/bec_server/scan_server/scan_plugins/LamNIFermatScan.py @@ -25,8 +25,8 @@ import time import numpy as np from bec_lib import MessageEndpoints, bec_logger -from scan_server.errors import ScanAbortion -from scan_server.scans import RequestBase, ScanArgType, ScanBase +from bec_server.scan_server.errors import ScanAbortion +from bec_server.scan_server.scans import RequestBase, ScanArgType, ScanBase MOVEMENT_SCALE_X = np.sin(np.radians(15)) * np.cos(np.radians(30)) MOVEMENT_SCALE_Y = np.cos(np.radians(15)) diff --git a/scan_server/scan_plugins/__init__.py b/bec_server/bec_server/scan_server/scan_plugins/__init__.py similarity index 100% rename from scan_server/scan_plugins/__init__.py rename to bec_server/bec_server/scan_server/scan_plugins/__init__.py diff --git a/scan_server/scan_plugins/flomni_fermat_scan.py b/bec_server/bec_server/scan_server/scan_plugins/flomni_fermat_scan.py similarity index 99% rename from scan_server/scan_plugins/flomni_fermat_scan.py rename to bec_server/bec_server/scan_server/scan_plugins/flomni_fermat_scan.py index 365d48b1..e200173e 100644 --- a/scan_server/scan_plugins/flomni_fermat_scan.py +++ b/bec_server/bec_server/scan_server/scan_plugins/flomni_fermat_scan.py @@ -25,8 +25,8 @@ import time import numpy as np from bec_lib import MessageEndpoints, bec_logger, messages -from scan_server.errors import ScanAbortion -from scan_server.scans import SyncFlyScanBase +from bec_server.scan_server.errors import ScanAbortion +from bec_server.scan_server.scans import SyncFlyScanBase logger = bec_logger.logger diff --git a/scan_server/scan_plugins/otf_scan.py b/bec_server/bec_server/scan_server/scan_plugins/otf_scan.py similarity index 98% rename from scan_server/scan_plugins/otf_scan.py rename to bec_server/bec_server/scan_server/scan_plugins/otf_scan.py index 40efdefb..11702636 100644 --- a/scan_server/scan_plugins/otf_scan.py +++ b/bec_server/bec_server/scan_server/scan_plugins/otf_scan.py @@ -1,7 +1,7 @@ import time from bec_lib import bec_logger -from scan_server.scans import ScanArgType, ScanBase, SyncFlyScanBase +from bec_server.scan_server.scans import ScanArgType, ScanBase, SyncFlyScanBase logger = bec_logger.logger diff --git a/scan_server/scan_plugins/owis_grid.py b/bec_server/bec_server/scan_server/scan_plugins/owis_grid.py similarity index 99% rename from scan_server/scan_plugins/owis_grid.py rename to bec_server/bec_server/scan_server/scan_plugins/owis_grid.py index c6be959b..653396cc 100644 --- a/scan_server/scan_plugins/owis_grid.py +++ b/bec_server/bec_server/scan_server/scan_plugins/owis_grid.py @@ -23,7 +23,7 @@ but they are executed in a specific order: import time from bec_lib import MessageEndpoints, bec_logger -from scan_server.scans import AsyncFlyScanBase, ScanAbortion +from bec_server.scan_server.scans import AsyncFlyScanBase, ScanAbortion logger = bec_logger.logger diff --git a/scan_server/scan_plugins/sgalil_grid.py b/bec_server/bec_server/scan_server/scan_plugins/sgalil_grid.py similarity index 99% rename from scan_server/scan_plugins/sgalil_grid.py rename to bec_server/bec_server/scan_server/scan_plugins/sgalil_grid.py index fda93fb0..2162870d 100644 --- a/scan_server/scan_plugins/sgalil_grid.py +++ b/bec_server/bec_server/scan_server/scan_plugins/sgalil_grid.py @@ -23,7 +23,7 @@ but they are executed in a specific order: import time from bec_lib import MessageEndpoints, bec_logger -from scan_server.scans import AsyncFlyScanBase +from bec_server.scan_server.scans import AsyncFlyScanBase logger = bec_logger.logger diff --git a/scan_server/scan_server/scan_queue.py b/bec_server/bec_server/scan_server/scan_queue.py similarity index 100% rename from scan_server/scan_server/scan_queue.py rename to bec_server/bec_server/scan_server/scan_queue.py diff --git a/scan_server/scan_server/scan_server.py b/bec_server/bec_server/scan_server/scan_server.py similarity index 100% rename from scan_server/scan_server/scan_server.py rename to bec_server/bec_server/scan_server/scan_server.py diff --git a/scan_server/scan_server/scan_stubs.py b/bec_server/bec_server/scan_server/scan_stubs.py similarity index 100% rename from scan_server/scan_server/scan_stubs.py rename to bec_server/bec_server/scan_server/scan_stubs.py diff --git a/scan_server/scan_server/scan_worker.py b/bec_server/bec_server/scan_server/scan_worker.py similarity index 100% rename from scan_server/scan_server/scan_worker.py rename to bec_server/bec_server/scan_server/scan_worker.py diff --git a/scan_server/scan_server/scans.py b/bec_server/bec_server/scan_server/scans.py similarity index 100% rename from scan_server/scan_server/scans.py rename to bec_server/bec_server/scan_server/scans.py diff --git a/scihub/scihub/__init__.py b/bec_server/bec_server/scihub/__init__.py similarity index 100% rename from scihub/scihub/__init__.py rename to bec_server/bec_server/scihub/__init__.py diff --git a/bec_server/bec_server/scihub/cli/__init__.py b/bec_server/bec_server/scihub/cli/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/scihub/scihub/cli/launch.py b/bec_server/bec_server/scihub/cli/launch.py similarity index 83% rename from scihub/scihub/cli/launch.py rename to bec_server/bec_server/scihub/cli/launch.py index 6cdb4672..18e57735 100644 --- a/scihub/scihub/cli/launch.py +++ b/bec_server/bec_server/scihub/cli/launch.py @@ -1,8 +1,8 @@ import argparse import threading -import scihub from bec_lib import RedisConnector, ServiceConfig, bec_logger +from bec_server import scihub logger = bec_logger.logger bec_logger.level = bec_logger.LOGLEVEL.INFO @@ -14,11 +14,7 @@ def main(): """ parser = argparse.ArgumentParser(formatter_class=argparse.ArgumentDefaultsHelpFormatter) - parser.add_argument( - "--config", - default="", - help="path to the config file", - ) + parser.add_argument("--config", default="", help="path to the config file") clargs = parser.parse_args() config_path = clargs.config diff --git a/scihub/scihub/repeated_timer.py b/bec_server/bec_server/scihub/repeated_timer.py similarity index 100% rename from scihub/scihub/repeated_timer.py rename to bec_server/bec_server/scihub/repeated_timer.py diff --git a/scihub/scihub/scibec/__init__.py b/bec_server/bec_server/scihub/scibec/__init__.py similarity index 100% rename from scihub/scihub/scibec/__init__.py rename to bec_server/bec_server/scihub/scibec/__init__.py diff --git a/scihub/scihub/scibec/config_handler.py b/bec_server/bec_server/scihub/scibec/config_handler.py similarity index 99% rename from scihub/scihub/scibec/config_handler.py rename to bec_server/bec_server/scihub/scibec/config_handler.py index e0a3231e..ef31a94b 100644 --- a/scihub/scihub/scibec/config_handler.py +++ b/bec_server/bec_server/scihub/scibec/config_handler.py @@ -15,7 +15,7 @@ from bec_lib.scibec_validator import SciBecValidator if TYPE_CHECKING: from bec_lib.device import DeviceBase - from scihub.scibec.scibec_connector import SciBecConnector + from bec_server.scihub.scibec.scibec_connector import SciBecConnector logger = bec_logger.logger diff --git a/scihub/scihub/scibec/scibec_connector.py b/bec_server/bec_server/scihub/scibec/scibec_connector.py similarity index 98% rename from scihub/scihub/scibec/scibec_connector.py rename to bec_server/bec_server/scihub/scibec/scibec_connector.py index a07f40c2..064ddaa1 100644 --- a/scihub/scihub/scibec/scibec_connector.py +++ b/bec_server/bec_server/scihub/scibec/scibec_connector.py @@ -8,13 +8,13 @@ from py_scibec import SciBecCore from bec_lib import MessageEndpoints, bec_logger, messages from bec_lib.connector import ConnectorBase -from scihub.repeated_timer import RepeatedTimer +from bec_server.scihub.repeated_timer import RepeatedTimer from .config_handler import ConfigHandler from .scibec_metadata_handler import SciBecMetadataHandler if TYPE_CHECKING: - from scihub import SciHub + from bec_server.scihub import SciHub logger = bec_logger.logger diff --git a/scihub/scihub/scibec/scibec_metadata_handler.py b/bec_server/bec_server/scihub/scibec/scibec_metadata_handler.py similarity index 99% rename from scihub/scihub/scibec/scibec_metadata_handler.py rename to bec_server/bec_server/scihub/scibec/scibec_metadata_handler.py index a5b3f1e2..5aeb65a9 100644 --- a/scihub/scihub/scibec/scibec_metadata_handler.py +++ b/bec_server/bec_server/scihub/scibec/scibec_metadata_handler.py @@ -13,7 +13,7 @@ logger = bec_logger.logger if TYPE_CHECKING: from bec_lib import messages - from scihub.scibec import SciBecConnector + from bec_server.scihub.scibec import SciBecConnector class SciBecMetadataHandler: diff --git a/scihub/scihub/scihub.py b/bec_server/bec_server/scihub/scihub.py similarity index 90% rename from scihub/scihub/scihub.py rename to bec_server/bec_server/scihub/scihub.py index e588a5e3..c117891d 100644 --- a/scihub/scihub/scihub.py +++ b/bec_server/bec_server/scihub/scihub.py @@ -1,7 +1,7 @@ from bec_lib import BECService, BECStatus, ServiceConfig from bec_lib.connector import ConnectorBase -from scihub.scibec import SciBecConnector -from scihub.scilog import SciLogConnector +from bec_server.scihub.scibec import SciBecConnector +from bec_server.scihub.scilog import SciLogConnector class SciHub(BECService): diff --git a/scihub/scihub/scilog/__init__.py b/bec_server/bec_server/scihub/scilog/__init__.py similarity index 100% rename from scihub/scihub/scilog/__init__.py rename to bec_server/bec_server/scihub/scilog/__init__.py diff --git a/scihub/scihub/scilog/scilog.py b/bec_server/bec_server/scihub/scilog/scilog.py similarity index 96% rename from scihub/scihub/scilog/scilog.py rename to bec_server/bec_server/scihub/scilog/scilog.py index 9e318c38..64106f69 100644 --- a/scihub/scihub/scilog/scilog.py +++ b/bec_server/bec_server/scihub/scilog/scilog.py @@ -7,12 +7,12 @@ import requests from dotenv import dotenv_values from bec_lib import MessageEndpoints, RedisConnector, bec_logger, messages -from scihub.repeated_timer import RepeatedTimer +from bec_server.scihub.repeated_timer import RepeatedTimer logger = bec_logger.logger if TYPE_CHECKING: - from scihub import SciHub + from bec_server.scihub import SciHub class SciLogConnector: diff --git a/bec_server/setup.py b/bec_server/setup.py index 0f6bbbee..30a53a80 100644 --- a/bec_server/setup.py +++ b/bec_server/setup.py @@ -1,7 +1,4 @@ -import os import pathlib -import subprocess -import sys from setuptools import setup @@ -10,56 +7,46 @@ current_path = pathlib.Path(__file__).parent.resolve() __version__ = "1.24.1" -def run_install(setup_args: dict, bec_deps: list, editable=False): - """ - Run the setup function with the given arguments. - - Args: - setup_args (dict): Arguments for the setup function. - bec_deps (list): List of tuples with the dependencies of the BEC server. - editable (bool, optional): If True, the dependencies are installed in editable mode. Defaults to False. - """ - if editable: - # check if "[dev]" was requested - if "dev" in os.environ.get("EXTRAS_REQUIRE", ""): - suffix = "[dev]" - else: - suffix = "" - setup(**setup_args) - deps = [f"{current_path}/../{dep[1]}/" for dep in bec_deps] - for dep in deps: - subprocess.run(f"pip install -e {dep}{suffix}", shell=True, check=True) - return - - install_deps = [dep[0] for dep in bec_deps] - setup_args["install_requires"].extend(install_deps) - print(setup_args) - setup(**setup_args) - - if __name__ == "__main__": - bec_deps_in = [ - ("bec_lib", "bec_lib"), - ("bec_ipython_client", "bec_client"), - ("bec_scan_server", "scan_server"), - ("bec_scan_bundler", "scan_bundler"), - ("bec_file_writer", "file_writer"), - ("bec_dap", "data_processing"), - ("bec_device_server", "device_server"), - ("bec_scihub", "scihub"), - ] - - setup_args_in = { - "entry_points": {"console_scripts": ["bec-server = bec_server:main"]}, - "install_requires": ["libtmux"], - "version": __version__, - "extras_require": { - "dev": ["pytest", "pytest-random-order", "coverage", "black", "isort", "pylint"] + setup( + install_requires=[ + "bec-lib", + "cytoolz", + "h5py", + "libtmux", + "lmfit", + "msgpack", + "numpy", + "ophyd", + "ophyd_devices", + "pydantic", + "py-scibec", + "pyyaml", + "python-dotenv", + "rich", + "xmltodict", + ], + extras_require={ + "dev": [ + "black", + "coverage", + "isort", + "pytest", + "pytest-random-order", + "pylint", + "pytest-timeout", + ] }, - } - - is_local = os.path.dirname(os.path.abspath(__file__)).split("/")[-1] == "bec_server" - is_build = "bdist_wheel" in sys.argv - - editable_in = is_local and not is_build - run_install(setup_args_in, bec_deps_in, editable=editable_in) + entry_points={ + "console_scripts": [ + "bec-dap = bec_server.data_processing:main", + "bec-device-server = bec_server.device_server:main", + "bec-file-writer = bec_server.file_writer:main", + "bec-scan-server = bec_server.scan_server:main", + "bec-scan-bundler = bec_server.scan_bundler:main", + "bec-scihub = bec_server.scihub:main", + "bec-server = bec_server:main", + ] + }, + version=__version__, + ) diff --git a/bec_server/tests/test_main.py b/bec_server/tests/tests_bec_server_utils/test_main.py similarity index 67% rename from bec_server/tests/test_main.py rename to bec_server/tests/tests_bec_server_utils/test_main.py index 4fc5e25f..324a647c 100644 --- a/bec_server/tests/test_main.py +++ b/bec_server/tests/tests_bec_server_utils/test_main.py @@ -1,11 +1,11 @@ from unittest import mock -from bec_server.launch import main +from bec_server.bec_server_utils.launch import main def test_main_start(): - with mock.patch("bec_server.launch.ServiceHandler") as mock_service_handler: - with mock.patch("bec_server.launch.argparse") as mock_argparse: + with mock.patch("bec_server.bec_server_utils.launch.ServiceHandler") as mock_service_handler: + with mock.patch("bec_server.bec_server_utils.launch.argparse") as mock_argparse: mock_argparse.ArgumentParser().parse_args.return_value = mock.MagicMock( command="start", config=None ) @@ -17,8 +17,8 @@ def test_main_start(): def test_main_stop(): - with mock.patch("bec_server.launch.ServiceHandler") as mock_service_handler: - with mock.patch("bec_server.launch.argparse") as mock_argparse: + with mock.patch("bec_server.bec_server_utils.launch.ServiceHandler") as mock_service_handler: + with mock.patch("bec_server.bec_server_utils.launch.argparse") as mock_argparse: mock_argparse.ArgumentParser().parse_args.return_value = mock.MagicMock( command="stop", config=None ) @@ -30,8 +30,8 @@ def test_main_stop(): def test_main_restart(): - with mock.patch("bec_server.launch.ServiceHandler") as mock_service_handler: - with mock.patch("bec_server.launch.argparse") as mock_argparse: + with mock.patch("bec_server.bec_server_utils.launch.ServiceHandler") as mock_service_handler: + with mock.patch("bec_server.bec_server_utils.launch.argparse") as mock_argparse: mock_argparse.ArgumentParser().parse_args.return_value = mock.MagicMock( command="restart", config=None ) @@ -43,8 +43,8 @@ def test_main_restart(): def test_main_start_with_config(): - with mock.patch("bec_server.launch.ServiceHandler") as mock_service_handler: - with mock.patch("bec_server.launch.argparse") as mock_argparse: + with mock.patch("bec_server.bec_server_utils.launch.ServiceHandler") as mock_service_handler: + with mock.patch("bec_server.bec_server_utils.launch.argparse") as mock_argparse: mock_argparse.ArgumentParser().parse_args.return_value = mock.MagicMock( command="start", config="/path/to/config" ) @@ -56,8 +56,8 @@ def test_main_start_with_config(): def test_main_restart_with_config(): - with mock.patch("bec_server.launch.ServiceHandler") as mock_service_handler: - with mock.patch("bec_server.launch.argparse") as mock_argparse: + with mock.patch("bec_server.bec_server_utils.launch.ServiceHandler") as mock_service_handler: + with mock.patch("bec_server.bec_server_utils.launch.argparse") as mock_argparse: mock_argparse.ArgumentParser().parse_args.return_value = mock.MagicMock( command="restart", config="/path/to/config" ) diff --git a/bec_server/tests/test_service_handler.py b/bec_server/tests/tests_bec_server_utils/test_service_handler.py similarity index 67% rename from bec_server/tests/test_service_handler.py rename to bec_server/tests/tests_bec_server_utils/test_service_handler.py index 124083b7..ecc363f4 100644 --- a/bec_server/tests/test_service_handler.py +++ b/bec_server/tests/tests_bec_server_utils/test_service_handler.py @@ -1,13 +1,13 @@ from unittest import mock -from bec_server.service_handler import ServiceHandler +from bec_server.bec_server_utils.service_handler import ServiceHandler def test_service_handler(): bec_path = "/path/to/bec" config_path = "/path/to/config" - with mock.patch("bec_server.service_handler.sys") as mock_sys: + with mock.patch("bec_server.bec_server_utils.service_handler.sys") as mock_sys: mock_sys.platform = "linux" service_handler = ServiceHandler(bec_path, config_path) assert service_handler.interface == "tmux" @@ -17,17 +17,19 @@ def test_service_handler_start(): bec_path = "/path/to/bec" config_path = "/path/to/config" - with mock.patch("bec_server.service_handler.sys") as mock_sys: + with mock.patch("bec_server.bec_server_utils.service_handler.sys") as mock_sys: mock_sys.platform = "linux" service_handler = ServiceHandler(bec_path, config_path) - with mock.patch("bec_server.service_handler.tmux_start") as mock_tmux_start: + with mock.patch( + "bec_server.bec_server_utils.service_handler.tmux_start" + ) as mock_tmux_start: service_handler.start() mock_tmux_start.assert_called_once_with(bec_path, config_path, service_handler.SERVICES) def test_service_handler_stop(): - with mock.patch("bec_server.service_handler.tmux_stop") as mock_tmux_stop: + with mock.patch("bec_server.bec_server_utils.service_handler.tmux_stop") as mock_tmux_stop: service_handler = ServiceHandler("/path/to/bec", "/path/to/config") service_handler.stop() mock_tmux_stop.assert_called_once() @@ -37,12 +39,14 @@ def test_service_handler_restart(): bec_path = "/path/to/bec" config_path = "/path/to/config" - with mock.patch("bec_server.service_handler.sys") as mock_sys: + with mock.patch("bec_server.bec_server_utils.service_handler.sys") as mock_sys: mock_sys.platform = "linux" service_handler = ServiceHandler(bec_path, config_path) - with mock.patch("bec_server.service_handler.tmux_stop") as mock_tmux_stop: - with mock.patch("bec_server.service_handler.tmux_start") as mock_tmux_start: + with mock.patch("bec_server.bec_server_utils.service_handler.tmux_stop") as mock_tmux_stop: + with mock.patch( + "bec_server.bec_server_utils.service_handler.tmux_start" + ) as mock_tmux_start: service_handler.restart() mock_tmux_stop.assert_called_once() mock_tmux_start.assert_called_once_with( diff --git a/bec_server/tests/test_tmux_launch.py b/bec_server/tests/tests_bec_server_utils/test_tmux_launch.py similarity index 80% rename from bec_server/tests/test_tmux_launch.py rename to bec_server/tests/tests_bec_server_utils/test_tmux_launch.py index 85339011..2a9dca6f 100644 --- a/bec_server/tests/test_tmux_launch.py +++ b/bec_server/tests/tests_bec_server_utils/test_tmux_launch.py @@ -1,11 +1,11 @@ from string import Template from unittest import mock -from bec_server.tmux_launch import tmux_start, tmux_stop +from bec_server.bec_server_utils.tmux_launch import tmux_start, tmux_stop def test_tmux_start(): - with mock.patch("bec_server.tmux_launch.libtmux") as mock_libtmux_server: + with mock.patch("bec_server.bec_server_utils.tmux_launch.libtmux") as mock_libtmux_server: tmux_start( "/path/to/bec", "/path/to/config", @@ -33,7 +33,7 @@ def test_tmux_start(): def test_tmux_stop_without_sessions(): - with mock.patch("bec_server.tmux_launch.libtmux") as mock_libtmux_server: + with mock.patch("bec_server.bec_server_utils.tmux_launch.libtmux") as mock_libtmux_server: mock_libtmux_server.Server().sessions.filter.return_value = [] tmux_stop() mock_libtmux_server.Server().kill_server.assert_not_called() @@ -41,7 +41,7 @@ def test_tmux_stop_without_sessions(): def test_tmux_stop_with_sessions(): session = mock.MagicMock() - with mock.patch("bec_server.tmux_launch.libtmux") as mock_libtmux_server: + with mock.patch("bec_server.bec_server_utils.tmux_launch.libtmux") as mock_libtmux_server: mock_libtmux_server.Server().sessions.filter.return_value = [session] tmux_stop() session.kill_session.assert_called_once() diff --git a/data_processing/tests/conftest.py b/bec_server/tests/tests_data_processing/conftest.py similarity index 100% rename from data_processing/tests/conftest.py rename to bec_server/tests/tests_data_processing/conftest.py diff --git a/bec_server/tests/tests_data_processing/test_dap_cli_launch.py b/bec_server/tests/tests_data_processing/test_dap_cli_launch.py new file mode 100644 index 00000000..3a988a6a --- /dev/null +++ b/bec_server/tests/tests_data_processing/test_dap_cli_launch.py @@ -0,0 +1,40 @@ +from unittest import mock + +from bec_server.data_processing.cli.launch import main + + +def test_main(): + with mock.patch("bec_server.data_processing.cli.launch.argparse.ArgumentParser") as mock_parser: + with mock.patch("bec_server.data_processing.cli.launch.ServiceConfig") as mock_config: + with mock.patch( + "bec_server.data_processing.dap_server.DAPServer" + ) as mock_data_processing: + with mock.patch( + "bec_server.data_processing.cli.launch.threading.Event" + ) as mock_event: + main() + mock_parser.assert_called_once() + mock_config.assert_called_once() + mock_data_processing.assert_called_once() + mock_event.assert_called_once() + + +def test_main_shutdown(): + with mock.patch("bec_server.data_processing.cli.launch.argparse.ArgumentParser") as mock_parser: + with mock.patch("bec_server.data_processing.cli.launch.ServiceConfig") as mock_config: + with mock.patch( + "bec_server.data_processing.dap_server.DAPServer" + ) as mock_data_processing: + with mock.patch( + "bec_server.data_processing.cli.launch.threading.Event" + ) as mock_event: + mock_event.return_value.wait.side_effect = KeyboardInterrupt() + try: + main() + except KeyboardInterrupt: + pass + mock_parser.assert_called_once() + mock_config.assert_called_once() + mock_data_processing.assert_called_once() + mock_event.assert_called_once() + mock_data_processing.return_value.shutdown.assert_called_once() diff --git a/data_processing/tests/test_dap_server.py b/bec_server/tests/tests_data_processing/test_dap_server.py similarity index 70% rename from data_processing/tests/test_dap_server.py rename to bec_server/tests/tests_data_processing/test_dap_server.py index 40041145..343414d0 100644 --- a/data_processing/tests/test_dap_server.py +++ b/bec_server/tests/tests_data_processing/test_dap_server.py @@ -1,8 +1,8 @@ from unittest import mock from bec_lib import ServiceConfig -from data_processing.dap_server import DAPServer -from data_processing.dap_service import DAPServiceBase +from bec_server.data_processing.dap_server import DAPServer +from bec_server.data_processing.dap_service import DAPServiceBase def test_dap_server(): diff --git a/data_processing/tests/test_dap_service_manager.py b/bec_server/tests/tests_data_processing/test_dap_service_manager.py similarity index 95% rename from data_processing/tests/test_dap_service_manager.py rename to bec_server/tests/tests_data_processing/test_dap_service_manager.py index 9263fc47..3b214b8b 100644 --- a/data_processing/tests/test_dap_service_manager.py +++ b/bec_server/tests/tests_data_processing/test_dap_service_manager.py @@ -4,8 +4,8 @@ import pytest from bec_lib import messages from bec_lib.redis_connector import MessageObject -from data_processing.dap_service import DAPServiceBase -from data_processing.dap_service_manager import DAPServiceManager +from bec_server.data_processing.dap_service import DAPServiceBase +from bec_server.data_processing.dap_service_manager import DAPServiceManager class ServiceMock(DAPServiceBase): diff --git a/data_processing/tests/test_lmfit1d_service.py b/bec_server/tests/tests_data_processing/test_lmfit1d_service.py similarity index 96% rename from data_processing/tests/test_lmfit1d_service.py rename to bec_server/tests/tests_data_processing/test_lmfit1d_service.py index 8ab388f0..5526397e 100644 --- a/data_processing/tests/test_lmfit1d_service.py +++ b/bec_server/tests/tests_data_processing/test_lmfit1d_service.py @@ -4,8 +4,8 @@ import lmfit import numpy as np import pytest -from data_processing.dap_service import DAPError -from data_processing.lmfit1d_service import LmfitService1D +from bec_server.data_processing.dap_service import DAPError +from bec_server.data_processing.lmfit1d_service import LmfitService1D @pytest.fixture @@ -113,7 +113,7 @@ def test_LmfitService1D_on_scan_status_update(lmfit_service): def test_LmfitService1D_on_scan_status_update_finishes_on_closed_scans(lmfit_service): - with mock.patch("data_processing.lmfit1d_service.threading") as threading: + with mock.patch("bec_server.data_processing.lmfit1d_service.threading") as threading: event = threading.Event() lmfit_service.finish_event = event with mock.patch.object(lmfit_service, "process_until_finished") as process_until_finished: diff --git a/device_server/tests/conftest.py b/bec_server/tests/tests_device_server/conftest.py similarity index 100% rename from device_server/tests/conftest.py rename to bec_server/tests/tests_device_server/conftest.py diff --git a/device_server/tests/test_config_handler.py b/bec_server/tests/tests_device_server/test_config_handler.py similarity index 95% rename from device_server/tests/test_config_handler.py rename to bec_server/tests/tests_device_server/test_config_handler.py index d1256d62..2525746e 100644 --- a/device_server/tests/test_config_handler.py +++ b/bec_server/tests/tests_device_server/test_config_handler.py @@ -8,8 +8,8 @@ from test_device_manager_ds import device_manager import bec_lib from bec_lib import messages from bec_lib.tests.utils import ConnectorMock, load_test_config -from device_server.devices.config_update_handler import ConfigUpdateHandler -from device_server.devices.devicemanager import DeviceConfigError, DeviceManagerDS +from bec_server.device_server.devices.config_update_handler import ConfigUpdateHandler +from bec_server.device_server.devices.devicemanager import DeviceConfigError, DeviceManagerDS dir_path = os.path.dirname(bec_lib.__file__) diff --git a/device_server/tests/test_device_manager_ds.py b/bec_server/tests/tests_device_server/test_device_manager_ds.py similarity index 98% rename from device_server/tests/test_device_manager_ds.py rename to bec_server/tests/tests_device_server/test_device_manager_ds.py index 50b90b03..7a9cce36 100644 --- a/device_server/tests/test_device_manager_ds.py +++ b/bec_server/tests/tests_device_server/test_device_manager_ds.py @@ -10,7 +10,7 @@ import yaml import bec_lib from bec_lib import MessageEndpoints, messages from bec_lib.tests.utils import ConnectorMock, create_session_from_config -from device_server.devices.devicemanager import DeviceManagerDS +from bec_server.device_server.devices.devicemanager import DeviceManagerDS # pylint: disable=missing-function-docstring # pylint: disable=protected-access diff --git a/device_server/tests/test_device_serializer.py b/bec_server/tests/tests_device_server/test_device_serializer.py similarity index 93% rename from device_server/tests/test_device_serializer.py rename to bec_server/tests/tests_device_server/test_device_serializer.py index 1fba21e4..a749fbf4 100644 --- a/device_server/tests/test_device_serializer.py +++ b/bec_server/tests/tests_device_server/test_device_serializer.py @@ -3,7 +3,7 @@ from ophyd import Component as Cpt from ophyd import Device, Signal from bec_lib.bec_errors import DeviceConfigError -from device_server.devices.device_serializer import get_device_info +from bec_server.device_server.devices.device_serializer import get_device_info class DummyDeviceWithConflictingSignalNames(Device): diff --git a/device_server/tests/test_device_server.py b/bec_server/tests/tests_device_server/test_device_server.py similarity index 99% rename from device_server/tests/test_device_server.py rename to bec_server/tests/tests_device_server/test_device_server.py index 87736400..55e216e7 100644 --- a/device_server/tests/test_device_server.py +++ b/bec_server/tests/tests_device_server/test_device_server.py @@ -10,8 +10,8 @@ from bec_lib import Alarms, MessageEndpoints, ServiceConfig, messages from bec_lib.messages import BECStatus from bec_lib.redis_connector import MessageObject from bec_lib.tests.utils import ConnectorMock -from device_server import DeviceServer -from device_server.device_server import InvalidDeviceError +from bec_server.device_server import DeviceServer +from bec_server.device_server.device_server import InvalidDeviceError # pylint: disable=missing-function-docstring # pylint: disable=protected-access diff --git a/bec_server/tests/tests_device_server/test_device_server_cli_launch.py b/bec_server/tests/tests_device_server/test_device_server_cli_launch.py new file mode 100644 index 00000000..03bbd2a9 --- /dev/null +++ b/bec_server/tests/tests_device_server/test_device_server_cli_launch.py @@ -0,0 +1,32 @@ +from unittest import mock + +from bec_server.device_server.cli.launch import main + + +def test_main(): + with mock.patch("bec_server.device_server.cli.launch.argparse.ArgumentParser") as mock_parser: + with mock.patch("bec_server.device_server.cli.launch.ServiceConfig") as mock_config: + with mock.patch("bec_server.device_server.DeviceServer") as mock_device_server: + with mock.patch( + "bec_server.device_server.cli.launch.threading.Event" + ) as mock_event: + main() + mock_parser.assert_called_once() + mock_config.assert_called_once() + mock_device_server.assert_called_once() + mock_event.assert_called_once() + + +def test_main_shutdown(): + with mock.patch("bec_server.device_server.cli.launch.argparse.ArgumentParser") as mock_parser: + with mock.patch("bec_server.device_server.cli.launch.ServiceConfig") as mock_config: + with mock.patch("bec_server.device_server.DeviceServer") as mock_device_server: + with mock.patch( + "bec_server.device_server.cli.launch.threading.Event" + ) as mock_event: + mock_event.return_value.wait.side_effect = KeyboardInterrupt + main() + mock_parser.assert_called_once() + mock_config.assert_called_once() + mock_device_server.assert_called_once() + mock_event.assert_called_once() diff --git a/device_server/tests/test_rpc_mixin.py b/bec_server/tests/tests_device_server/test_rpc_mixin.py similarity index 99% rename from device_server/tests/test_rpc_mixin.py rename to bec_server/tests/tests_device_server/test_rpc_mixin.py index bcf069e1..6c188d08 100644 --- a/device_server/tests/test_rpc_mixin.py +++ b/bec_server/tests/tests_device_server/test_rpc_mixin.py @@ -6,7 +6,7 @@ import pytest from ophyd import Device, Kind, Signal, Staged, StatusBase from bec_lib import Alarms, MessageEndpoints, messages -from device_server.rpc_mixin import RPCMixin +from bec_server.device_server.rpc_mixin import RPCMixin @pytest.fixture diff --git a/file_writer/tests/conftest.py b/bec_server/tests/tests_file_writer/conftest.py similarity index 100% rename from file_writer/tests/conftest.py rename to bec_server/tests/tests_file_writer/conftest.py diff --git a/file_writer/tests/test_file_writer.py b/bec_server/tests/tests_file_writer/test_file_writer.py similarity index 90% rename from file_writer/tests/test_file_writer.py rename to bec_server/tests/tests_file_writer/test_file_writer.py index d3ddd6b0..ac25cd2b 100644 --- a/file_writer/tests/test_file_writer.py +++ b/bec_server/tests/tests_file_writer/test_file_writer.py @@ -5,14 +5,14 @@ from unittest import mock import h5py import numpy as np import pytest -from file_writer_plugins.cSAXS import NeXus_format as cSAXS_Nexus_format from test_file_writer_manager import file_writer_manager_mock -import file_writer from bec_lib.tests.fixtures import dm_with_devices -from file_writer import NexusFileWriter, NeXusFileXMLWriter -from file_writer.file_writer import HDF5Storage -from file_writer.file_writer_manager import ScanStorage +from bec_server import file_writer +from bec_server.file_writer import NexusFileWriter, NeXusFileXMLWriter +from bec_server.file_writer.file_writer import HDF5Storage +from bec_server.file_writer.file_writer_manager import ScanStorage +from bec_server.file_writer_plugins.cSAXS import NeXus_format as cSAXS_Nexus_format dir_path = os.path.dirname(file_writer.__file__) @@ -24,18 +24,6 @@ def file_writer_manager_mock_with_dm(file_writer_manager_mock, dm_with_devices): yield file_writer -def test_nexus_file_xml_writer(file_writer_manager_mock_with_dm): - file_manager = file_writer_manager_mock_with_dm - file_writer = NeXusFileXMLWriter(file_manager) - file_writer.configure( - layout_file=os.path.abspath(os.path.join(dir_path, "../layout_cSAXS_NXsas.xml")) - ) - with mock.patch.object( - file_writer, "_create_device_data_storage", return_value={"samx": [0, 1, 2]} - ): - file_writer.write("./test.h5", {}) - - def test_csaxs_nexus_format(file_writer_manager_mock_with_dm): file_manager = file_writer_manager_mock_with_dm writer_storage = cSAXS_Nexus_format( diff --git a/file_writer/tests/test_file_writer_cli_launch.py b/bec_server/tests/tests_file_writer/test_file_writer_cli_launch.py similarity index 50% rename from file_writer/tests/test_file_writer_cli_launch.py rename to bec_server/tests/tests_file_writer/test_file_writer_cli_launch.py index 1ffb710e..781a0f9e 100644 --- a/file_writer/tests/test_file_writer_cli_launch.py +++ b/bec_server/tests/tests_file_writer/test_file_writer_cli_launch.py @@ -1,13 +1,13 @@ from unittest import mock -from file_writer.cli.launch import main +from bec_server.file_writer.cli.launch import main def test_main(): - with mock.patch("file_writer.cli.launch.argparse.ArgumentParser") as mock_parser: - with mock.patch("file_writer.cli.launch.ServiceConfig") as mock_config: - with mock.patch("file_writer.FileWriterManager") as mock_file_writer: - with mock.patch("file_writer.cli.launch.threading.Event") as mock_event: + with mock.patch("bec_server.file_writer.cli.launch.argparse.ArgumentParser") as mock_parser: + with mock.patch("bec_server.file_writer.cli.launch.ServiceConfig") as mock_config: + with mock.patch("bec_server.file_writer.FileWriterManager") as mock_file_writer: + with mock.patch("bec_server.file_writer.cli.launch.threading.Event") as mock_event: main() mock_parser.assert_called_once() mock_config.assert_called_once() @@ -16,10 +16,10 @@ def test_main(): def test_main_shutdown(): - with mock.patch("file_writer.cli.launch.argparse.ArgumentParser") as mock_parser: - with mock.patch("file_writer.cli.launch.ServiceConfig") as mock_config: - with mock.patch("file_writer.FileWriterManager") as mock_file_writer: - with mock.patch("file_writer.cli.launch.threading.Event") as mock_event: + with mock.patch("bec_server.file_writer.cli.launch.argparse.ArgumentParser") as mock_parser: + with mock.patch("bec_server.file_writer.cli.launch.ServiceConfig") as mock_config: + with mock.patch("bec_server.file_writer.FileWriterManager") as mock_file_writer: + with mock.patch("bec_server.file_writer.cli.launch.threading.Event") as mock_event: mock_event.return_value.wait.side_effect = KeyboardInterrupt() try: main() diff --git a/file_writer/tests/test_file_writer_manager.py b/bec_server/tests/tests_file_writer/test_file_writer_manager.py similarity index 98% rename from file_writer/tests/test_file_writer_manager.py rename to bec_server/tests/tests_file_writer/test_file_writer_manager.py index 0bc170ed..ca1c4745 100644 --- a/file_writer/tests/test_file_writer_manager.py +++ b/bec_server/tests/tests_file_writer/test_file_writer_manager.py @@ -13,9 +13,9 @@ from bec_lib.logger import bec_logger from bec_lib.messages import BECStatus from bec_lib.redis_connector import MessageObject from bec_lib.tests.utils import ConnectorMock, create_session_from_config, get_device_info_mock -from file_writer import FileWriterManager -from file_writer.file_writer import FileWriter -from file_writer.file_writer_manager import ScanStorage +from bec_server.file_writer import FileWriterManager +from bec_server.file_writer.file_writer import FileWriter +from bec_server.file_writer.file_writer_manager import ScanStorage # pylint: disable=missing-function-docstring # pylint: disable=protected-access diff --git a/scan_bundler/tests/conftest.py b/bec_server/tests/tests_scan_bundler/conftest.py similarity index 97% rename from scan_bundler/tests/conftest.py rename to bec_server/tests/tests_scan_bundler/conftest.py index e33e42c2..0674f62d 100644 --- a/scan_bundler/tests/conftest.py +++ b/bec_server/tests/tests_scan_bundler/conftest.py @@ -8,7 +8,7 @@ import bec_lib from bec_lib import DeviceManagerBase, ServiceConfig, bec_logger, messages from bec_lib.messages import BECStatus from bec_lib.tests.utils import ConnectorMock, create_session_from_config, get_device_info_mock -from scan_bundler import ScanBundler +from bec_server.scan_bundler import ScanBundler # overwrite threads_check fixture from bec_lib, # to have it in autouse diff --git a/scan_bundler/tests/test_bec_emitter.py b/bec_server/tests/tests_scan_bundler/test_bec_emitter.py similarity index 97% rename from scan_bundler/tests/test_bec_emitter.py rename to bec_server/tests/tests_scan_bundler/test_bec_emitter.py index d6951c17..2ef0b469 100644 --- a/scan_bundler/tests/test_bec_emitter.py +++ b/bec_server/tests/tests_scan_bundler/test_bec_emitter.py @@ -3,7 +3,7 @@ from unittest import mock import pytest from bec_lib import MessageEndpoints, messages -from scan_bundler.bec_emitter import BECEmitter +from bec_server.scan_bundler.bec_emitter import BECEmitter @pytest.fixture diff --git a/scan_bundler/tests/test_bluesky_emitter.py b/bec_server/tests/tests_scan_bundler/test_bluesky_emitter.py similarity index 97% rename from scan_bundler/tests/test_bluesky_emitter.py rename to bec_server/tests/tests_scan_bundler/test_bluesky_emitter.py index f12cd05e..bf88e429 100644 --- a/scan_bundler/tests/test_bluesky_emitter.py +++ b/bec_server/tests/tests_scan_bundler/test_bluesky_emitter.py @@ -4,7 +4,7 @@ import msgpack import pytest from bec_lib import MessageEndpoints -from scan_bundler.bluesky_emitter import BlueskyEmitter +from bec_server.scan_bundler.bluesky_emitter import BlueskyEmitter @pytest.fixture diff --git a/scan_bundler/tests/test_emitter.py b/bec_server/tests/tests_scan_bundler/test_emitter.py similarity index 98% rename from scan_bundler/tests/test_emitter.py rename to bec_server/tests/tests_scan_bundler/test_emitter.py index 43d95391..408f1133 100644 --- a/scan_bundler/tests/test_emitter.py +++ b/bec_server/tests/tests_scan_bundler/test_emitter.py @@ -3,7 +3,7 @@ from unittest import mock import pytest from bec_lib import messages -from scan_bundler.emitter import EmitterBase +from bec_server.scan_bundler.emitter import EmitterBase @pytest.mark.parametrize( diff --git a/scan_bundler/tests/test_scan_bundler.py b/bec_server/tests/tests_scan_bundler/test_scan_bundler.py similarity index 99% rename from scan_bundler/tests/test_scan_bundler.py rename to bec_server/tests/tests_scan_bundler/test_scan_bundler.py index dfed3e45..cbe35b92 100644 --- a/scan_bundler/tests/test_scan_bundler.py +++ b/bec_server/tests/tests_scan_bundler/test_scan_bundler.py @@ -582,7 +582,7 @@ def test_send_scan_point(scan_bundler_mock, scan_id, point_id, sent): sb.sync_storage[scan_id] = {"sent": set([1])} sb.sync_storage[scan_id][point_id] = {} with mock.patch.object(sb, "run_emitter") as emitter: - with mock.patch("scan_bundler.scan_bundler.logger") as logger: + with mock.patch("bec_server.scan_bundler.scan_bundler.logger") as logger: sb._send_scan_point(scan_id, point_id) emitter.assert_called_once_with("on_scan_point_emit", scan_id, point_id) if sent: @@ -591,7 +591,7 @@ def test_send_scan_point(scan_bundler_mock, scan_id, point_id, sent): def test_run_emitter(scan_bundler_mock): sb = scan_bundler_mock - with mock.patch("scan_bundler.scan_bundler.logger") as logger: + with mock.patch("bec_server.scan_bundler.scan_bundler.logger") as logger: sb.run_emitter("on_init", "jlaksjd", "jlkasjd") logger.error.assert_called() diff --git a/scan_bundler/tests/test_scan_bundler_cli_launch.py b/bec_server/tests/tests_scan_bundler/test_scan_bundler_cli_launch.py similarity index 50% rename from scan_bundler/tests/test_scan_bundler_cli_launch.py rename to bec_server/tests/tests_scan_bundler/test_scan_bundler_cli_launch.py index 873da420..bfefa4f4 100644 --- a/scan_bundler/tests/test_scan_bundler_cli_launch.py +++ b/bec_server/tests/tests_scan_bundler/test_scan_bundler_cli_launch.py @@ -1,13 +1,13 @@ from unittest import mock -from scan_bundler.cli.launch import main +from bec_server.scan_bundler.cli.launch import main def test_main(): - with mock.patch("scan_bundler.cli.launch.argparse.ArgumentParser") as mock_parser: - with mock.patch("scan_bundler.cli.launch.ServiceConfig") as mock_config: - with mock.patch("scan_bundler.ScanBundler") as mock_scan_bundler: - with mock.patch("scan_bundler.cli.launch.threading.Event") as mock_event: + with mock.patch("bec_server.scan_bundler.cli.launch.argparse.ArgumentParser") as mock_parser: + with mock.patch("bec_server.scan_bundler.cli.launch.ServiceConfig") as mock_config: + with mock.patch("bec_server.scan_bundler.ScanBundler") as mock_scan_bundler: + with mock.patch("bec_server.scan_bundler.cli.launch.threading.Event") as mock_event: main() mock_parser.assert_called_once() mock_config.assert_called_once() @@ -16,10 +16,10 @@ def test_main(): def test_main_shutdown(): - with mock.patch("scan_bundler.cli.launch.argparse.ArgumentParser") as mock_parser: - with mock.patch("scan_bundler.cli.launch.ServiceConfig") as mock_config: - with mock.patch("scan_bundler.ScanBundler") as mock_scan_bundler: - with mock.patch("scan_bundler.cli.launch.threading.Event") as mock_event: + with mock.patch("bec_server.scan_bundler.cli.launch.argparse.ArgumentParser") as mock_parser: + with mock.patch("bec_server.scan_bundler.cli.launch.ServiceConfig") as mock_config: + with mock.patch("bec_server.scan_bundler.ScanBundler") as mock_scan_bundler: + with mock.patch("bec_server.scan_bundler.cli.launch.threading.Event") as mock_event: mock_event.return_value.wait.side_effect = KeyboardInterrupt() try: main() diff --git a/scan_server/tests/conftest.py b/bec_server/tests/tests_scan_server/conftest.py similarity index 100% rename from scan_server/tests/conftest.py rename to bec_server/tests/tests_scan_server/conftest.py diff --git a/scan_server/tests/test_flomni_fermat_scan.py b/bec_server/tests/tests_scan_server/test_flomni_fermat_scan.py similarity index 96% rename from scan_server/tests/test_flomni_fermat_scan.py rename to bec_server/tests/tests_scan_server/test_flomni_fermat_scan.py index b9f89a49..d92d56bc 100644 --- a/scan_server/tests/test_flomni_fermat_scan.py +++ b/bec_server/tests/tests_scan_server/test_flomni_fermat_scan.py @@ -1,9 +1,10 @@ from unittest import mock import pytest -from scan_plugins.flomni_fermat_scan import FlomniFermatScan from utils import DMMock +from bec_server.scan_server.scan_plugins.flomni_fermat_scan import FlomniFermatScan + @pytest.fixture def scan_request(): diff --git a/scan_server/tests/test_path_optimization.py b/bec_server/tests/tests_scan_server/test_path_optimization.py similarity index 98% rename from scan_server/tests/test_path_optimization.py rename to bec_server/tests/tests_scan_server/test_path_optimization.py index 6ce239f4..15f4f9f8 100644 --- a/scan_server/tests/test_path_optimization.py +++ b/bec_server/tests/tests_scan_server/test_path_optimization.py @@ -1,8 +1,8 @@ import numpy as np import pytest -from scan_server.path_optimization import PathOptimizerMixin -from scan_server.scans import get_fermat_spiral_pos, get_round_roi_scan_positions +from bec_server.scan_server.path_optimization import PathOptimizerMixin +from bec_server.scan_server.scans import get_fermat_spiral_pos, get_round_roi_scan_positions def test_shell_optimization(): diff --git a/scan_server/tests/test_scan_guard.py b/bec_server/tests/tests_scan_server/test_scan_guard.py similarity index 98% rename from scan_server/tests/test_scan_guard.py rename to bec_server/tests/tests_scan_server/test_scan_guard.py index 36a5875a..efaf87f4 100644 --- a/scan_server/tests/test_scan_guard.py +++ b/bec_server/tests/tests_scan_server/test_scan_guard.py @@ -5,7 +5,7 @@ from utils import scan_server_mock from bec_lib import MessageEndpoints, messages from bec_lib.redis_connector import MessageObject -from scan_server.scan_guard import ScanGuard, ScanRejection, ScanStatus +from bec_server.scan_server.scan_guard import ScanGuard, ScanRejection, ScanStatus @pytest.fixture @@ -194,7 +194,7 @@ def test_handle_scan_modification_request_restart(scan_guard_mock): scan_id="scan_id", action="restart", parameter={"RID": "RID"}, metadata={"RID": "new_RID"} ) with mock.patch.object(sg, "_send_scan_request_response") as send_response: - with mock.patch("scan_server.scan_guard.ScanStatus") as scan_status: + with mock.patch("bec_server.scan_server.scan_guard.ScanStatus") as scan_status: sg._handle_scan_modification_request(msg) send_response.assert_called_once_with(scan_status(), {"RID": "RID"}) diff --git a/scan_server/tests/test_scan_server_cli_launch.py b/bec_server/tests/tests_scan_server/test_scan_server_cli_launch.py similarity index 50% rename from scan_server/tests/test_scan_server_cli_launch.py rename to bec_server/tests/tests_scan_server/test_scan_server_cli_launch.py index 9175c710..027e1a65 100644 --- a/scan_server/tests/test_scan_server_cli_launch.py +++ b/bec_server/tests/tests_scan_server/test_scan_server_cli_launch.py @@ -1,13 +1,13 @@ from unittest import mock -from scan_server.cli.launch import main +from bec_server.scan_server.cli.launch import main def test_main(): - with mock.patch("scan_server.cli.launch.argparse.ArgumentParser") as mock_parser: - with mock.patch("scan_server.cli.launch.ServiceConfig") as mock_config: - with mock.patch("scan_server.scan_server.ScanServer") as mock_scan_server: - with mock.patch("scan_server.cli.launch.threading.Event") as mock_event: + with mock.patch("bec_server.scan_server.cli.launch.argparse.ArgumentParser") as mock_parser: + with mock.patch("bec_server.scan_server.cli.launch.ServiceConfig") as mock_config: + with mock.patch("bec_server.scan_server.scan_server.ScanServer") as mock_scan_server: + with mock.patch("bec_server.scan_server.cli.launch.threading.Event") as mock_event: main() mock_parser.assert_called_once() mock_config.assert_called_once() @@ -16,10 +16,10 @@ def test_main(): def test_main_shutdown(): - with mock.patch("scan_server.cli.launch.argparse.ArgumentParser") as mock_parser: - with mock.patch("scan_server.cli.launch.ServiceConfig") as mock_config: - with mock.patch("scan_server.scan_server.ScanServer") as mock_scan_server: - with mock.patch("scan_server.cli.launch.threading.Event") as mock_event: + with mock.patch("bec_server.scan_server.cli.launch.argparse.ArgumentParser") as mock_parser: + with mock.patch("bec_server.scan_server.cli.launch.ServiceConfig") as mock_config: + with mock.patch("bec_server.scan_server.scan_server.ScanServer") as mock_scan_server: + with mock.patch("bec_server.scan_server.cli.launch.threading.Event") as mock_event: mock_event.return_value.wait.side_effect = KeyboardInterrupt() try: main() diff --git a/scan_server/tests/test_scan_server_queue.py b/bec_server/tests/tests_scan_server/test_scan_server_queue.py similarity index 99% rename from scan_server/tests/test_scan_server_queue.py rename to bec_server/tests/tests_scan_server/test_scan_server_queue.py index 582e78cf..073456e4 100644 --- a/scan_server/tests/test_scan_server_queue.py +++ b/bec_server/tests/tests_scan_server/test_scan_server_queue.py @@ -6,8 +6,8 @@ from utils import scan_server_mock from bec_lib import Alarms, MessageEndpoints, messages from bec_lib.redis_connector import MessageObject -from scan_server.scan_assembler import ScanAssembler -from scan_server.scan_queue import ( +from bec_server.scan_server.scan_assembler import ScanAssembler +from bec_server.scan_server.scan_queue import ( InstructionQueueItem, InstructionQueueStatus, QueueManager, @@ -16,7 +16,7 @@ from scan_server.scan_queue import ( ScanQueue, ScanQueueStatus, ) -from scan_server.scan_worker import ScanWorker +from bec_server.scan_server.scan_worker import ScanWorker # pylint: disable=missing-function-docstring # pylint: disable=protected-access @@ -417,7 +417,7 @@ def test_request_block_queue_append(): queue="primary", metadata={"RID": "something"}, ) - with mock.patch("scan_server.scan_queue.RequestBlock") as rb: + with mock.patch("bec_server.scan_server.scan_queue.RequestBlock") as rb: with mock.patch.object(req_block_queue, "_update_scan_def_id") as update_scan_def: with mock.patch.object(req_block_queue, "append_request_block") as update_rb: req_block_queue.append(msg) diff --git a/scan_server/tests/test_scan_stubs.py b/bec_server/tests/tests_scan_server/test_scan_stubs.py similarity index 96% rename from scan_server/tests/test_scan_stubs.py rename to bec_server/tests/tests_scan_server/test_scan_stubs.py index 197d3514..b86ddfc6 100644 --- a/scan_server/tests/test_scan_stubs.py +++ b/bec_server/tests/tests_scan_server/test_scan_stubs.py @@ -5,8 +5,8 @@ import pytest from bec_lib import MessageEndpoints, messages from bec_lib.tests.utils import ConnectorMock -from scan_server.errors import DeviceMessageError -from scan_server.scan_stubs import ScanAbortion, ScanStubs +from bec_server.scan_server.errors import DeviceMessageError +from bec_server.scan_server.scan_stubs import ScanAbortion, ScanStubs @pytest.fixture diff --git a/scan_server/tests/test_scan_worker.py b/bec_server/tests/tests_scan_server/test_scan_worker.py similarity index 99% rename from scan_server/tests/test_scan_worker.py rename to bec_server/tests/tests_scan_server/test_scan_worker.py index e3aaad39..c27378b5 100644 --- a/scan_server/tests/test_scan_worker.py +++ b/bec_server/tests/tests_scan_server/test_scan_worker.py @@ -7,9 +7,9 @@ from utils import scan_server_mock from bec_lib import MessageEndpoints, messages from bec_lib.tests.utils import ConnectorMock -from scan_server.errors import DeviceMessageError, ScanAbortion -from scan_server.scan_assembler import ScanAssembler -from scan_server.scan_queue import ( +from bec_server.scan_server.errors import DeviceMessageError, ScanAbortion +from bec_server.scan_server.scan_assembler import ScanAssembler +from bec_server.scan_server.scan_queue import ( InstructionQueueItem, InstructionQueueStatus, QueueManager, @@ -17,7 +17,7 @@ from scan_server.scan_queue import ( RequestBlockQueue, ScanQueue, ) -from scan_server.scan_worker import ScanWorker +from bec_server.scan_server.scan_worker import ScanWorker @pytest.fixture @@ -1476,7 +1476,9 @@ def test_process_instructions(scan_worker_mock, abortion): ) def test_instruction_step(scan_worker_mock, msg, method): worker = scan_worker_mock - with mock.patch(f"scan_server.scan_worker.ScanWorker.{method}") as instruction_method: + with mock.patch( + f"bec_server.scan_server.scan_worker.ScanWorker.{method}" + ) as instruction_method: worker._instruction_step(msg) instruction_method.assert_called_once() diff --git a/scan_server/tests/test_scans.py b/bec_server/tests/tests_scan_server/test_scans.py similarity index 99% rename from scan_server/tests/test_scans.py rename to bec_server/tests/tests_scan_server/test_scans.py index 57bad2f5..29a290d8 100644 --- a/scan_server/tests/test_scans.py +++ b/bec_server/tests/tests_scan_server/test_scans.py @@ -4,14 +4,14 @@ from unittest import mock import numpy as np import pytest -from scan_plugins.LamNIFermatScan import LamNIFermatScan -from scan_plugins.otf_scan import OTFScan -from scan_plugins.owis_grid import OwisGrid from utils import DMMock from bec_lib import messages -from scan_server.errors import ScanAbortion -from scan_server.scans import ( +from bec_server.scan_server.errors import ScanAbortion +from bec_server.scan_server.scan_plugins.LamNIFermatScan import LamNIFermatScan +from bec_server.scan_server.scan_plugins.otf_scan import OTFScan +from bec_server.scan_server.scan_plugins.owis_grid import OwisGrid +from bec_server.scan_server.scans import ( Acquire, AddInteractiveScanPoint, CloseInteractiveScan, diff --git a/scan_server/tests/utils.py b/bec_server/tests/tests_scan_server/utils.py similarity index 95% rename from scan_server/tests/utils.py rename to bec_server/tests/tests_scan_server/utils.py index d1f7a7f3..e7af522e 100644 --- a/scan_server/tests/utils.py +++ b/bec_server/tests/tests_scan_server/utils.py @@ -5,8 +5,8 @@ from bec_lib.devicemanager import DeviceContainer from bec_lib.logger import bec_logger from bec_lib.messages import BECStatus from bec_lib.tests.utils import ConnectorMock -from scan_server.scan_server import ScanServer -from scan_server.scan_worker import InstructionQueueStatus +from bec_server.scan_server.scan_server import ScanServer +from bec_server.scan_server.scan_worker import InstructionQueueStatus # pylint: disable=missing-function-docstring # pylint: disable=protected-access diff --git a/scihub/tests/conftest.py b/bec_server/tests/tests_scihub/conftest.py similarity index 100% rename from scihub/tests/conftest.py rename to bec_server/tests/tests_scihub/conftest.py diff --git a/scihub/tests/test_repeated_timer.py b/bec_server/tests/tests_scihub/test_repeated_timer.py similarity index 89% rename from scihub/tests/test_repeated_timer.py rename to bec_server/tests/tests_scihub/test_repeated_timer.py index bd636ec5..7dd46714 100644 --- a/scihub/tests/test_repeated_timer.py +++ b/bec_server/tests/tests_scihub/test_repeated_timer.py @@ -2,7 +2,7 @@ import time import pytest -from scihub.repeated_timer import RepeatedTimer +from bec_server.scihub.repeated_timer import RepeatedTimer class Counter: diff --git a/scihub/tests/test_scibec_config_handler.py b/bec_server/tests/tests_scihub/test_scibec_config_handler.py similarity index 96% rename from scihub/tests/test_scibec_config_handler.py rename to bec_server/tests/tests_scihub/test_scibec_config_handler.py index f761bf65..99943f90 100644 --- a/scihub/tests/test_scibec_config_handler.py +++ b/bec_server/tests/tests_scihub/test_scibec_config_handler.py @@ -12,15 +12,15 @@ from bec_lib import DeviceBase, messages from bec_lib.bec_errors import DeviceConfigError from bec_lib.device import OnFailure, ReadoutPriority from bec_lib.tests.utils import ConnectorMock -from scihub import SciHub -from scihub.scibec import ConfigHandler, SciBecConnector +from bec_server.scihub import SciHub +from bec_server.scihub.scibec import ConfigHandler, SciBecConnector dir_path = os.path.dirname(bec_lib.__file__) @pytest.fixture() def config_handler(SciHubMock): - with mock.patch("scihub.scibec.scibec_connector.os.path.exists", return_value=False): + with mock.patch("bec_server.scihub.scibec.scibec_connector.os.path.exists", return_value=False): scibec_connector = SciBecConnector(SciHubMock, SciHubMock.connector) with mock.patch.object(scibec_connector, "_start_config_request_handler"): with mock.patch.object(scibec_connector, "_start_metadata_handler"): @@ -84,7 +84,7 @@ def test_parse_config_request_exception(config_handler): action="update", config={"samx": {"enabled": True}}, metadata={} ) with mock.patch.object(config_handler, "send_config_request_reply") as req_reply: - with mock.patch("scihub.scibec.config_handler.traceback.format_exc") as exc: + with mock.patch("bec_server.scihub.scibec.config_handler.traceback.format_exc") as exc: with mock.patch.object(config_handler, "_update_config", side_effect=AttributeError()): config_handler.parse_config_request(msg) req_reply.assert_called_once_with(accepted=False, error_msg=exc(), metadata={}) @@ -234,7 +234,7 @@ def test_config_handler_update_device_config_enable(config_handler): with mock.patch.object( config_handler, "_wait_for_device_server_update", return_value=(True, mock.MagicMock()) ) as wait: - with mock.patch("scihub.scibec.config_handler.uuid") as uuid: + with mock.patch("bec_server.scihub.scibec.config_handler.uuid") as uuid: device = dev["samx"] rid = str(uuid.uuid4()) config_handler._update_device_config(device, {"enabled": True}) @@ -250,7 +250,7 @@ def test_config_handler_update_device_config_deviceConfig(config_handler): with mock.patch.object( config_handler, "_wait_for_device_server_update", return_value=(True, mock.MagicMock()) ) as wait: - with mock.patch("scihub.scibec.config_handler.uuid") as uuid: + with mock.patch("bec_server.scihub.scibec.config_handler.uuid") as uuid: device = dev["samx"] rid = str(uuid.uuid4()) config_handler._update_device_config( @@ -304,7 +304,7 @@ def test_config_handler_update_device_config_available_keys(config_handler, avai with mock.patch.object( config_handler, "_wait_for_device_server_update", return_value=(True, mock.MagicMock()) ) as wait: - with mock.patch("scihub.scibec.config_handler.uuid") as uuid: + with mock.patch("bec_server.scihub.scibec.config_handler.uuid") as uuid: device = dev["samx"] rid = str(uuid.uuid4()) if available_key in ["deviceConfig", "userParameter"]: diff --git a/scihub/tests/test_scibec_connector.py b/bec_server/tests/tests_scihub/test_scibec_connector.py similarity index 96% rename from scihub/tests/test_scibec_connector.py rename to bec_server/tests/tests_scihub/test_scibec_connector.py index 672a549f..adf704b4 100644 --- a/scihub/tests/test_scibec_connector.py +++ b/bec_server/tests/tests_scihub/test_scibec_connector.py @@ -6,8 +6,8 @@ from bec_lib import MessageEndpoints, ServiceConfig, messages from bec_lib.logger import bec_logger from bec_lib.messages import BECStatus from bec_lib.tests.utils import ConnectorMock -from scihub import SciHub -from scihub.scibec import SciBecConnector +from bec_server.scihub import SciHub +from bec_server.scihub.scibec import SciBecConnector class SciHubMocked(SciHub): @@ -54,7 +54,9 @@ def test_scibec_connector(SciHubMock): def test_scibec_load_environment(SciBecMock): with mock.patch("os.path.exists", side_effect=[False, True]): - with mock.patch("scihub.scibec.scibec_connector.dotenv_values") as mock_dotenv_values: + with mock.patch( + "bec_server.scihub.scibec.scibec_connector.dotenv_values" + ) as mock_dotenv_values: with mock.patch.object(SciBecMock, "_update_config") as mock_update_config: mock_dotenv_values.return_value = { "SCIBEC_HOST": "dummy_host", diff --git a/scihub/tests/test_scibec_metadata_handler.py b/bec_server/tests/tests_scihub/test_scibec_metadata_handler.py similarity index 96% rename from scihub/tests/test_scibec_metadata_handler.py rename to bec_server/tests/tests_scihub/test_scibec_metadata_handler.py index a89abc3e..947d6373 100644 --- a/scihub/tests/test_scibec_metadata_handler.py +++ b/bec_server/tests/tests_scihub/test_scibec_metadata_handler.py @@ -5,7 +5,7 @@ import pytest from bec_lib import messages from bec_lib.redis_connector import MessageObject -from scihub.scibec.scibec_metadata_handler import SciBecMetadataHandler +from bec_server.scihub.scibec.scibec_metadata_handler import SciBecMetadataHandler @pytest.fixture @@ -27,7 +27,7 @@ def test_handle_scan_status(md_handler): def test_handle_scan_status_ignores_errors(md_handler): # pylint: disable=protected-access msg = messages.ScanStatusMessage(scan_id="scan_id", status="open", info={}) - with mock.patch("scihub.scibec.scibec_metadata_handler.logger") as mock_logger: + with mock.patch("bec_server.scihub.scibec.scibec_metadata_handler.logger") as mock_logger: with mock.patch.object(md_handler, "update_scan_status") as mock_update_scan_status: mock_update_scan_status.side_effect = Exception("test") md_handler._handle_scan_status( @@ -104,7 +104,7 @@ def test_handle_file_content_ignores_errors(md_handler): # pylint: disable=protected-access msg = messages.FileContentMessage(file_path="my_file.h5", data={"data": {}}) msg_raw = MessageObject(value=msg, topic="file_content") - with mock.patch("scihub.scibec.scibec_metadata_handler.logger") as mock_logger: + with mock.patch("bec_server.scihub.scibec.scibec_metadata_handler.logger") as mock_logger: with mock.patch.object(md_handler, "update_scan_data") as mock_update_scan_data: mock_update_scan_data.side_effect = Exception("test") md_handler._handle_file_content(msg_raw, parent=md_handler) diff --git a/scihub/tests/test_scihub_cli_launch.py b/bec_server/tests/tests_scihub/test_scihub_cli_launch.py similarity index 52% rename from scihub/tests/test_scihub_cli_launch.py rename to bec_server/tests/tests_scihub/test_scihub_cli_launch.py index 2ae64d5a..39b885c2 100644 --- a/scihub/tests/test_scihub_cli_launch.py +++ b/bec_server/tests/tests_scihub/test_scihub_cli_launch.py @@ -1,13 +1,13 @@ from unittest import mock -from scihub.cli.launch import main +from bec_server.scihub.cli.launch import main def test_main(): - with mock.patch("scihub.cli.launch.argparse.ArgumentParser") as mock_parser: - with mock.patch("scihub.cli.launch.ServiceConfig") as mock_config: - with mock.patch("scihub.SciHub") as mock_scihub: - with mock.patch("scihub.cli.launch.threading.Event") as mock_event: + with mock.patch("bec_server.scihub.cli.launch.argparse.ArgumentParser") as mock_parser: + with mock.patch("bec_server.scihub.cli.launch.ServiceConfig") as mock_config: + with mock.patch("bec_server.scihub.SciHub") as mock_scihub: + with mock.patch("bec_server.scihub.cli.launch.threading.Event") as mock_event: main() mock_parser.assert_called_once() mock_config.assert_called_once() @@ -16,10 +16,10 @@ def test_main(): def test_main_shutdown(): - with mock.patch("scihub.cli.launch.argparse.ArgumentParser") as mock_parser: - with mock.patch("scihub.cli.launch.ServiceConfig") as mock_config: - with mock.patch("scihub.SciHub") as mock_scihub: - with mock.patch("scihub.cli.launch.threading.Event") as mock_event: + with mock.patch("bec_server.scihub.cli.launch.argparse.ArgumentParser") as mock_parser: + with mock.patch("bec_server.scihub.cli.launch.ServiceConfig") as mock_config: + with mock.patch("bec_server.scihub.SciHub") as mock_scihub: + with mock.patch("bec_server.scihub.cli.launch.threading.Event") as mock_event: mock_event.return_value.wait.side_effect = KeyboardInterrupt() try: main() diff --git a/scihub/tests/test_scilog_connector.py b/bec_server/tests/tests_scihub/test_scilog_connector.py similarity index 86% rename from scihub/tests/test_scilog_connector.py rename to bec_server/tests/tests_scihub/test_scilog_connector.py index 116fec1e..2af3ff85 100644 --- a/scihub/tests/test_scilog_connector.py +++ b/bec_server/tests/tests_scihub/test_scilog_connector.py @@ -3,7 +3,7 @@ from unittest import mock from test_scibec_connector import SciHubMock from bec_lib import MessageEndpoints, messages -from scihub.scilog import SciLogConnector +from bec_server.scihub.scilog import SciLogConnector def test_scilog_connector(SciHubMock): @@ -12,14 +12,14 @@ def test_scilog_connector(SciHubMock): def test_scilog_connector_with_env(SciHubMock): - with mock.patch("scihub.scilog.scilog.dotenv_values") as mock_dotenv_values: + with mock.patch("bec_server.scihub.scilog.scilog.dotenv_values") as mock_dotenv_values: mock_dotenv_values.return_value = { "SCILOG_DEFAULT_HOST": "https://dummy_host", "SCILOG_USER": "dummy_user", "SCILOG_USER_SECRET": "dummy_user_secret", } SciHubMock.config.service_config = {"scilog": {"env_file": "dummy_env_file"}} - with mock.patch("scihub.scilog.scilog.requests") as mock_requests: + with mock.patch("bec_server.scihub.scilog.scilog.requests") as mock_requests: mock_requests.post.return_value.ok = True mock_requests.post.return_value.json.return_value = {"token": "dummy_token"} scilog = SciLogConnector(SciHubMock, mock.MagicMock()) diff --git a/data_processing/launch.py b/data_processing/launch.py deleted file mode 100644 index 2d27ccc5..00000000 --- a/data_processing/launch.py +++ /dev/null @@ -1,4 +0,0 @@ -from data_processing import main - -if __name__ == "__main__": - main() diff --git a/data_processing/setup.cfg b/data_processing/setup.cfg deleted file mode 100644 index 3ae97557..00000000 --- a/data_processing/setup.cfg +++ /dev/null @@ -1,21 +0,0 @@ -[metadata] -name = bec_dap -description = BEC service for data processing -long_description = file: README.md -long_description_content_type = text/markdown -url = https://gitlab.psi.ch/bec/bec -project_urls = - Bug Tracker = https://gitlab.psi.ch/bec/bec/issues -classifiers = - Programming Language :: Python :: 3 - Development Status :: 3 - Alpha - Topic :: Scientific/Engineering - -[options] -package_dir = - = . -packages = find: -python_requires = >=3.10 - -[options.packages.find] -where = . diff --git a/data_processing/setup.py b/data_processing/setup.py deleted file mode 100644 index d63dfa4b..00000000 --- a/data_processing/setup.py +++ /dev/null @@ -1,57 +0,0 @@ -import os -import pathlib -import subprocess -import sys - -from setuptools import setup - -current_path = pathlib.Path(__file__).parent.resolve() -bec_lib = f"{current_path}/../bec_lib/" - - -__version__ = "1.24.1" - - -def run_install(setup_args: dict, bec_deps: list, editable=False): - """ - Run the setup function with the given arguments. - - Args: - setup_args (dict): Arguments for the setup function. - bec_deps (list): List of tuples with the dependencies. - editable (bool, optional): If True, the dependencies are installed in editable mode. Defaults to False. - """ - if editable: - # check if "[dev]" was requested - if "dev" in os.environ.get("EXTRAS_REQUIRE", ""): - suffix = "[dev]" - else: - suffix = "" - setup(**setup_args) - deps = [dep[2] for dep in bec_deps] - for dep in deps: - subprocess.run(f"pip install -e {dep}{suffix}", shell=True, check=True) - return - - install_deps = [dep[0] for dep in bec_deps] - setup_args["install_requires"].extend(install_deps) - print(setup_args) - setup(**setup_args) - - -if __name__ == "__main__": - setup_args_in = { - "entry_points": {"console_scripts": ["bec-dap = data_processing:main"]}, - "install_requires": ["lmfit", "numpy"], - "version": __version__, - "extras_require": { - "dev": ["pytest", "pytest-random-order", "coverage", "black", "isort", "pylint"] - }, - } - - bec_deps_in = [("bec_lib", "bec_lib", bec_lib)] - is_local = os.path.dirname(os.path.abspath(__file__)).split("/")[-1] == "data_processing" - is_build = "bdist_wheel" in sys.argv - - editable_in = is_local and not is_build - run_install(setup_args_in, bec_deps_in, editable=editable_in) diff --git a/data_processing/tests/test_dap_cli_launch.py b/data_processing/tests/test_dap_cli_launch.py deleted file mode 100644 index 58b5d690..00000000 --- a/data_processing/tests/test_dap_cli_launch.py +++ /dev/null @@ -1,32 +0,0 @@ -from unittest import mock - -from data_processing.cli.launch import main - - -def test_main(): - with mock.patch("data_processing.cli.launch.argparse.ArgumentParser") as mock_parser: - with mock.patch("data_processing.cli.launch.ServiceConfig") as mock_config: - with mock.patch("data_processing.dap_server.DAPServer") as mock_data_processing: - with mock.patch("data_processing.cli.launch.threading.Event") as mock_event: - main() - mock_parser.assert_called_once() - mock_config.assert_called_once() - mock_data_processing.assert_called_once() - mock_event.assert_called_once() - - -def test_main_shutdown(): - with mock.patch("data_processing.cli.launch.argparse.ArgumentParser") as mock_parser: - with mock.patch("data_processing.cli.launch.ServiceConfig") as mock_config: - with mock.patch("data_processing.dap_server.DAPServer") as mock_data_processing: - with mock.patch("data_processing.cli.launch.threading.Event") as mock_event: - mock_event.return_value.wait.side_effect = KeyboardInterrupt() - try: - main() - except KeyboardInterrupt: - pass - mock_parser.assert_called_once() - mock_config.assert_called_once() - mock_data_processing.assert_called_once() - mock_event.assert_called_once() - mock_data_processing.return_value.shutdown.assert_called_once() diff --git a/device_server/install.sh b/device_server/install.sh deleted file mode 100644 index 8f463df2..00000000 --- a/device_server/install.sh +++ /dev/null @@ -1,8 +0,0 @@ -SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd ) - -pip install -r requirements.txt - -pip install -e $SCRIPT_DIR/../bec_utils - -pip install -r $SCRIPT_DIR/../../ophyd_devices/requirements.txt -pip install -e $SCRIPT_DIR/../../ophyd_devices \ No newline at end of file diff --git a/device_server/launch.py b/device_server/launch.py deleted file mode 100644 index f2252e9b..00000000 --- a/device_server/launch.py +++ /dev/null @@ -1,4 +0,0 @@ -from device_server import main - -if __name__ == "__main__": - main() diff --git a/device_server/setup.cfg b/device_server/setup.cfg deleted file mode 100644 index e5bd527e..00000000 --- a/device_server/setup.cfg +++ /dev/null @@ -1,21 +0,0 @@ -[metadata] -name = bec_device_server -description = BEC service for connecting, controlling and monitoring devices through ophyd -long_description = file: README.md -long_description_content_type = text/markdown -url = https://gitlab.psi.ch/bec/bec -project_urls = - Bug Tracker = https://gitlab.psi.ch/bec/bec/issues -classifiers = - Programming Language :: Python :: 3 - Development Status :: 3 - Alpha - Topic :: Scientific/Engineering - -[options] -package_dir = - = . -packages = find: -python_requires = >=3.10 - -[options.packages.find] -where = . diff --git a/device_server/setup.py b/device_server/setup.py deleted file mode 100644 index abdee288..00000000 --- a/device_server/setup.py +++ /dev/null @@ -1,58 +0,0 @@ -import os -import pathlib -import subprocess -import sys - -from setuptools import setup - -current_path = pathlib.Path(__file__).parent.resolve() - -bec_lib = f"{current_path}/../bec_lib/" - -ophyd_devices = os.getenv("OPHYD_DEVICES_PATH", f"{current_path}/../../ophyd_devices/") - -__version__ = "1.24.1" - - -def run_install(setup_args: dict, bec_deps: list, editable=False): - """ - Run the setup function with the given arguments. - - Args: - setup_args (dict): Arguments for the setup function. - bec_deps (list): List of tuples with the dependencies. - editable (bool, optional): If True, the dependencies are installed in editable mode. Defaults to False. - """ - if editable: - # check if "[dev]" was requested - if "dev" in os.environ.get("EXTRAS_REQUIRE", ""): - suffix = "[dev]" - else: - suffix = "" - setup(**setup_args) - deps = [dep[2] for dep in bec_deps] - for dep in deps: - subprocess.run(f"pip install -e {dep}{suffix}", shell=True, check=True) - return - - install_deps = [dep[0] for dep in bec_deps] - setup_args["install_requires"].extend(install_deps) - print(setup_args) - setup(**setup_args) - - -if __name__ == "__main__": - setup_args = { - "entry_points": {"console_scripts": ["bec-device-server = device_server:main"]}, - "install_requires": ["numpy", "ophyd", "msgpack", "pyyaml"], - "version": __version__, - "extras_require": { - "dev": ["pytest", "pytest-random-order", "coverage", "black", "isort", "pylint"] - }, - } - bec_deps = [("bec_lib", "bec_lib", bec_lib), ("ophyd_devices", "ophyd_devices", ophyd_devices)] - is_local = os.path.dirname(os.path.abspath(__file__)).split("/")[-1] == "device_server" - is_build = "bdist_wheel" in sys.argv - - editable = is_local and not is_build - run_install(setup_args, bec_deps, editable=editable) diff --git a/device_server/tests/test_device_server_cli_launch.py b/device_server/tests/test_device_server_cli_launch.py deleted file mode 100644 index 0c51fbf4..00000000 --- a/device_server/tests/test_device_server_cli_launch.py +++ /dev/null @@ -1,28 +0,0 @@ -from unittest import mock - -from device_server.cli.launch import main - - -def test_main(): - with mock.patch("device_server.cli.launch.argparse.ArgumentParser") as mock_parser: - with mock.patch("device_server.cli.launch.ServiceConfig") as mock_config: - with mock.patch("device_server.DeviceServer") as mock_device_server: - with mock.patch("device_server.cli.launch.threading.Event") as mock_event: - main() - mock_parser.assert_called_once() - mock_config.assert_called_once() - mock_device_server.assert_called_once() - mock_event.assert_called_once() - - -def test_main_shutdown(): - with mock.patch("device_server.cli.launch.argparse.ArgumentParser") as mock_parser: - with mock.patch("device_server.cli.launch.ServiceConfig") as mock_config: - with mock.patch("device_server.DeviceServer") as mock_device_server: - with mock.patch("device_server.cli.launch.threading.Event") as mock_event: - mock_event.return_value.wait.side_effect = KeyboardInterrupt - main() - mock_parser.assert_called_once() - mock_config.assert_called_once() - mock_device_server.assert_called_once() - mock_event.assert_called_once() diff --git a/file_writer/launch.py b/file_writer/launch.py deleted file mode 100644 index 87bc997a..00000000 --- a/file_writer/launch.py +++ /dev/null @@ -1,4 +0,0 @@ -from file_writer import main - -if __name__ == "__main__": - main() diff --git a/file_writer/layout_cSAXS_NXsas.xml b/file_writer/layout_cSAXS_NXsas.xml deleted file mode 100644 index bfe0d7fd..00000000 --- a/file_writer/layout_cSAXS_NXsas.xml +++ /dev/null @@ -1,327 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/file_writer/setup.cfg b/file_writer/setup.cfg deleted file mode 100644 index d202a267..00000000 --- a/file_writer/setup.cfg +++ /dev/null @@ -1,21 +0,0 @@ -[metadata] -name = bec_file_writer -description = BEC service for writing metadata files -long_description = file: README.md -long_description_content_type = text/markdown -url = https://gitlab.psi.ch/bec/bec -project_urls = - Bug Tracker = https://gitlab.psi.ch/bec/bec/issues -classifiers = - Programming Language :: Python :: 3 - Development Status :: 3 - Alpha - Topic :: Scientific/Engineering - -[options] -package_dir = - = . -packages = find: -python_requires = >=3.10 - -[options.packages.find] -where = . diff --git a/file_writer/setup.py b/file_writer/setup.py deleted file mode 100644 index 0d55b91d..00000000 --- a/file_writer/setup.py +++ /dev/null @@ -1,56 +0,0 @@ -import os -import pathlib -import subprocess -import sys - -from setuptools import setup - -current_path = pathlib.Path(__file__).parent.resolve() - -bec_lib = f"{current_path}/../bec_lib/" - -__version__ = "1.24.1" - - -def run_install(setup_args: dict, bec_deps: list, editable=False): - """ - Run the setup function with the given arguments. - - Args: - setup_args (dict): Arguments for the setup function. - bec_deps (list): List of tuples with the dependencies. - editable (bool, optional): If True, the dependencies are installed in editable mode. Defaults to False. - """ - if editable: - # check if "[dev]" was requested - if "dev" in os.environ.get("EXTRAS_REQUIRE", ""): - suffix = "[dev]" - else: - suffix = "" - setup(**setup_args) - deps = [dep[2] for dep in bec_deps] - for dep in deps: - subprocess.run(f"pip install -e {dep}{suffix}", shell=True, check=True) - return - - install_deps = [dep[0] for dep in bec_deps] - setup_args["install_requires"].extend(install_deps) - print(setup_args) - setup(**setup_args) - - -if __name__ == "__main__": - setup_args_in = { - "entry_points": {"console_scripts": ["bec-file-writer = file_writer:main"]}, - "install_requires": ["numpy", "pyyaml", "h5py", "xmltodict"], - "version": __version__, - "extras_require": { - "dev": ["pytest", "pytest-random-order", "coverage", "black", "isort", "pylint"] - }, - } - bec_deps_in = [("bec_lib", "bec_lib", bec_lib)] - is_local = os.path.dirname(os.path.abspath(__file__)).split("/")[-1] == "file_writer" - is_build = "bdist_wheel" in sys.argv - - editable_in = is_local and not is_build - run_install(setup_args_in, bec_deps_in, editable=editable_in) diff --git a/launch_docker_services_bec.sh b/launch_docker_services_bec.sh deleted file mode 100755 index c42df2d5..00000000 --- a/launch_docker_services_bec.sh +++ /dev/null @@ -1,19 +0,0 @@ -if [ "$( docker container inspect -f '{{.State.Status}}' mongo-bec )" == "running" ]; then - echo "container mongo-bec is running" -else - docker run -p 27017:27017 --name mongo-bec -d mongo -fi - -if [ "$( docker container inspect -f '{{.State.Status}}' redis-bec )" == "running" ]; then - echo "container redis-bec is running" -else - docker run --network=host --name redis-bec -d redis -fi - -if [ "$( docker container inspect -f '{{.State.Status}}' scibec )" == "running" ]; then - echo "container scibec is running" -else - docker build -t scibec -f ./scibec/Dockerfile . - docker run --network=host --name scibec -d scibec -fi - diff --git a/scan_bundler/launch.py b/scan_bundler/launch.py deleted file mode 100644 index 7af8f557..00000000 --- a/scan_bundler/launch.py +++ /dev/null @@ -1,4 +0,0 @@ -from scan_bundler import main - -if __name__ == "__main__": - main() diff --git a/scan_bundler/setup.cfg b/scan_bundler/setup.cfg deleted file mode 100644 index 59299f51..00000000 --- a/scan_bundler/setup.cfg +++ /dev/null @@ -1,21 +0,0 @@ -[metadata] -name = bec_scan_bundler -description = BEC service for synchronizing and bundling scan data -long_description = file: README.md -long_description_content_type = text/markdown -url = https://gitlab.psi.ch/bec/bec -project_urls = - Bug Tracker = https://gitlab.psi.ch/bec/bec/issues -classifiers = - Programming Language :: Python :: 3 - Development Status :: 3 - Alpha - Topic :: Scientific/Engineering - -[options] -package_dir = - = . -packages = find: -python_requires = >=3.10 - -[options.packages.find] -where = . diff --git a/scan_bundler/setup.py b/scan_bundler/setup.py deleted file mode 100644 index 4daca3cc..00000000 --- a/scan_bundler/setup.py +++ /dev/null @@ -1,57 +0,0 @@ -import os -import pathlib -import subprocess -import sys - -from setuptools import setup - -current_path = pathlib.Path(__file__).parent.resolve() - -bec_lib = f"{current_path}/../bec_lib/" - -__version__ = "1.24.1" - - -def run_install(setup_args: dict, bec_deps: list, editable=False): - """ - Run the setup function with the given arguments. - - Args: - setup_args (dict): Arguments for the setup function. - bec_deps (list): List of tuples with the dependencies. - editable (bool, optional): If True, the dependencies are installed in editable mode. Defaults to False. - """ - if editable: - # check if "[dev]" was requested - if "dev" in os.environ.get("EXTRAS_REQUIRE", ""): - suffix = "[dev]" - else: - suffix = "" - setup(**setup_args) - deps = [dep[2] for dep in bec_deps] - for dep in deps: - subprocess.run(f"pip install -e {dep}{suffix}", shell=True, check=True) - return - - install_deps = [dep[0] for dep in bec_deps] - setup_args["install_requires"].extend(install_deps) - print(setup_args) - setup(**setup_args) - - -if __name__ == "__main__": - setup_args = { - "entry_points": {"console_scripts": ["bec-scan-bundler = scan_bundler:main"]}, - "install_requires": ["numpy", "pyyaml", "msgpack"], - "version": __version__, - "extras_require": { - "dev": ["pytest", "pytest-random-order", "coverage", "black", "isort", "pylint"] - }, - } - - bec_deps = [("bec_lib", "bec_lib", bec_lib)] - is_local = os.path.dirname(os.path.abspath(__file__)).split("/")[-1] == "scan_bundler" - is_build = "bdist_wheel" in sys.argv - - editable = is_local and not is_build - run_install(setup_args, bec_deps, editable=editable) diff --git a/scan_server/README.md b/scan_server/README.md deleted file mode 100644 index d3a6db43..00000000 --- a/scan_server/README.md +++ /dev/null @@ -1,55 +0,0 @@ -# BEC scan server - -bec-scan-server is a core Python service for the [Beamline and Experiment Control (BEC)](https://gitlab.psi.ch/bec/bec) server, tasked with the handling and orchestrating the data acquisition. - -## Installation - -Use the package manager [pip](https://pip.pypa.io/en/stable/) to install bec-scan-server. - -```bash -pip install bec-scan-server -``` - -## Documentation - -The documentation is part of the BEC documentation and can be found [here](https://bec.readthedocs.io/en/latest/). - -## Contributing - -Merge requests are very welcome! For major changes, please open an issue first to discuss what you would like to change. -All commits should use the Angular commit scheme: - -``` -(): - │ │ │ - │ │ └─⫸ Summary in present tense. Not capitalized. No period at the end. - │ │ - │ └─⫸ Commit Scope: animations|bazel|benchpress|common|compiler|compiler-cli|core| - │ elements|forms|http|language-service|localize|platform-browser| - │ platform-browser-dynamic|platform-server|router|service-worker| - │ upgrade|zone.js|packaging|changelog|docs-infra|migrations|ngcc|ve| - │ devtools - │ - └─⫸ Commit Type: build|ci|docs|feat|fix|perf|refactor|test -``` - -The `` and `` fields are mandatory, the `()` field is optional. -##### Type - -Must be one of the following: - -* **build**: Changes that affect the build system or external dependencies (example scopes: gulp, broccoli, npm) -* **ci**: Changes to our CI configuration files and scripts (examples: CircleCi, SauceLabs) -* **docs**: Documentation only changes -* **feat**: A new feature -* **fix**: A bug fix -* **perf**: A code change that improves performance -* **refactor**: A code change that neither fixes a bug nor adds a feature -* **test**: Adding missing tests or correcting existing tests - - -Please make sure to update tests as necessary. - -## License - -[BSD-3-Clause](https://choosealicense.com/licenses/bsd-3-clause/) diff --git a/scan_server/launch.py b/scan_server/launch.py deleted file mode 100644 index bb93cda1..00000000 --- a/scan_server/launch.py +++ /dev/null @@ -1,4 +0,0 @@ -from scan_server import main - -if __name__ == "__main__": - main() diff --git a/scan_server/setup.cfg b/scan_server/setup.cfg deleted file mode 100644 index 7713b072..00000000 --- a/scan_server/setup.cfg +++ /dev/null @@ -1,21 +0,0 @@ -[metadata] -name = bec_scan_server -description = BEC scan server -long_description = file: README.md -long_description_content_type = text/markdown -url = https://gitlab.psi.ch/bec/bec -project_urls = - Bug Tracker = https://gitlab.psi.ch/bec/bec/issues -classifiers = - Programming Language :: Python :: 3 - Development Status :: 3 - Alpha - Topic :: Scientific/Engineering - -[options] -package_dir = - = . -packages = find: -python_requires = >=3.10 - -[options.packages.find] -where = . diff --git a/scan_server/setup.py b/scan_server/setup.py deleted file mode 100644 index 788a1ee0..00000000 --- a/scan_server/setup.py +++ /dev/null @@ -1,56 +0,0 @@ -import os -import pathlib -import subprocess -import sys - -from setuptools import setup - -current_path = pathlib.Path(__file__).parent.resolve() - -bec_lib = f"{current_path}/../bec_lib/" - -__version__ = "1.24.1" - - -def run_install(setup_args: dict, bec_deps: list, editable=False): - """ - Run the setup function with the given arguments. - - Args: - setup_args (dict): Arguments for the setup function. - bec_deps (list): List of tuples with the dependencies. - editable (bool, optional): If True, the dependencies are installed in editable mode. Defaults to False. - """ - if editable: - # check if "[dev]" was requested - if "dev" in os.environ.get("EXTRAS_REQUIRE", ""): - suffix = "[dev]" - else: - suffix = "" - setup(**setup_args) - deps = [dep[2] for dep in bec_deps] - for dep in deps: - subprocess.run(f"pip install -e {dep}{suffix}", shell=True, check=True) - return - - install_deps = [dep[0] for dep in bec_deps] - setup_args["install_requires"].extend(install_deps) - print(setup_args) - setup(**setup_args) - - -if __name__ == "__main__": - setup_args_in = { - "entry_points": {"console_scripts": ["bec-scan-server = scan_server:main"]}, - "install_requires": ["numpy", "msgpack", "pyyaml", "cytoolz", "rich", "pydantic"], - "version": __version__, - "extras_require": { - "dev": ["pytest", "pytest-random-order", "coverage", "black", "isort", "pylint"] - }, - } - bec_deps_in = [("bec_lib", "bec_lib", bec_lib)] - is_local = os.path.dirname(os.path.abspath(__file__)).split("/")[-1] == "scan_server" - is_build = "bdist_wheel" in sys.argv - - editable_in = is_local and not is_build - run_install(setup_args_in, bec_deps_in, editable=editable_in) diff --git a/scihub/launch.py b/scihub/launch.py deleted file mode 100644 index db1395a5..00000000 --- a/scihub/launch.py +++ /dev/null @@ -1,4 +0,0 @@ -from scihub import main - -if __name__ == "__main__": - main() diff --git a/scihub/setup.cfg b/scihub/setup.cfg deleted file mode 100644 index 2885f56a..00000000 --- a/scihub/setup.cfg +++ /dev/null @@ -1,21 +0,0 @@ -[metadata] -name = bec_scihub -description = BEC service for connecting to SciHub services -long_description = file: README.md -long_description_content_type = text/markdown -url = https://gitlab.psi.ch/bec/bec -project_urls = - Bug Tracker = https://gitlab.psi.ch/bec/bec/issues -classifiers = - Programming Language :: Python :: 3 - Development Status :: 3 - Alpha - Topic :: Scientific/Engineering - -[options] -package_dir = - = . -packages = find: -python_requires = >=3.10 - -[options.packages.find] -where = . diff --git a/scihub/setup.py b/scihub/setup.py deleted file mode 100644 index 65413b5b..00000000 --- a/scihub/setup.py +++ /dev/null @@ -1,57 +0,0 @@ -import os -import pathlib -import subprocess -import sys - -from setuptools import setup - -current_path = pathlib.Path(__file__).parent.resolve() - -bec_lib = f"{current_path}/../bec_lib/" - - -__version__ = "1.24.1" - - -def run_install(setup_args: dict, bec_deps: list, editable=False): - """ - Run the setup function with the given arguments. - - Args: - setup_args (dict): Arguments for the setup function. - bec_deps (list): List of tuples with the dependencies. - editable (bool, optional): If True, the dependencies are installed in editable mode. Defaults to False. - """ - if editable: - # check if "[dev]" was requested - if "dev" in os.environ.get("EXTRAS_REQUIRE", ""): - suffix = "[dev]" - else: - suffix = "" - setup(**setup_args) - deps = [dep[2] for dep in bec_deps] - for dep in deps: - subprocess.run(f"pip install -e {dep}{suffix}", shell=True, check=True) - return - - install_deps = [dep[0] for dep in bec_deps] - setup_args["install_requires"].extend(install_deps) - print(setup_args) - setup(**setup_args) - - -if __name__ == "__main__": - setup_args_in = { - "entry_points": {"console_scripts": ["bec-scihub = scihub:main"]}, - "install_requires": ["msgpack", "python-dotenv", "py-scibec"], - "version": __version__, - "extras_require": { - "dev": ["pytest", "pytest-random-order", "coverage", "black", "isort", "pylint"] - }, - } - bec_deps_in = [("bec_lib", "bec_lib", bec_lib)] - is_local = os.path.dirname(os.path.abspath(__file__)).split("/")[-1] == "scihub" - is_build = "bdist_wheel" in sys.argv - - editable_in = is_local and not is_build - run_install(setup_args_in, bec_deps_in, editable=editable_in) diff --git a/start_tmux_session.sh b/start_tmux_session.sh deleted file mode 100755 index 2fbca80d..00000000 --- a/start_tmux_session.sh +++ /dev/null @@ -1,46 +0,0 @@ -#!/bin/sh - -if [ "$#" -ne 1 ]; then - echo "Please specify a config file"; exit 1 -fi - -CONFIG_FILE=$(readlink -f $1) - -echo $CONFIG_FILE - -# Set Session Name -SESSION="bec" -SESSIONEXISTS=$(tmux list-sessions | grep $SESSION) - - -tmux new-session -d -s $SESSION - -tmux rename-window -t 0 'Main' -tmux send-keys -t 'Main' "source ./bec_venv/bin/activate; cd ./scan_server; python launch.py --config $CONFIG_FILE" C-b-m - -tmux split-window -h -tmux split-window -h -tmux split-window -h -tmux split-window -h -tmux select-layout even-horizontal - -tmux select-pane -t 1 -tmux send-keys -t 'Main' "source ./bec_venv/bin/activate; cd ./device_server; python launch.py --config $CONFIG_FILE" C-b-m - -tmux select-pane -t 2 -tmux send-keys -t 'Main' "source ./bec_venv/bin/activate; cd ./scan_bundler; python launch.py --config $CONFIG_FILE" C-b-m - -tmux select-pane -t 3 -tmux send-keys -t 'Main' "source ./bec_venv/bin/activate; cd ./file_writer; python launch.py --config $CONFIG_FILE" C-b-m - -tmux select-pane -t 4 -tmux send-keys -t 'Main' "source ./bec_venv/bin/activate; cd ./scihub; python launch.py --config $CONFIG_FILE" C-b-m - -tmux set -g mode-mouse on - -#tmux send-keys -t 'Main' C-b-% C-b-m - -#tmux new-window -t $SESSION:1 -n 'OPAAS' -#tmux send-keys -t 'OPAAS' 'cd bluekafka/opaas' C-m 'ls' C-m - -#tmux attach-session -t $SESSION