diff --git a/analytics/Compilation.md b/analytics/Compilation.md index c804490..a57e95e 100644 --- a/analytics/Compilation.md +++ b/analytics/Compilation.md @@ -7,6 +7,6 @@ Compiled module is supported by all *nix systems. ```bash pip3 install pyinstaller cd $HASTIC_SERVER_PATH/analytics -pyinstaller --additional-hooks-dir=pyinstaller_hooks server.py +pyinstaller --additional-hooks-dir=pyinstaller_hooks bin/server ``` diff --git a/analytics/Dockerfile b/analytics/Dockerfile index 7b3e23a..898a74e 100644 --- a/analytics/Dockerfile +++ b/analytics/Dockerfile @@ -17,4 +17,4 @@ VOLUME [ "/var/www/data" ] COPY . /var/www/analytics/ -CMD ["python", "server.py"] +CMD ["python", "bin/server"] diff --git a/analytics/analytic_unit_manager.py b/analytics/analytics/analytic_unit_manager.py similarity index 100% rename from analytics/analytic_unit_manager.py rename to analytics/analytics/analytic_unit_manager.py diff --git a/analytics/analytic_unit_worker.py b/analytics/analytics/analytic_unit_worker.py similarity index 100% rename from analytics/analytic_unit_worker.py rename to analytics/analytics/analytic_unit_worker.py diff --git a/analytics/config.py b/analytics/analytics/config.py similarity index 80% rename from analytics/config.py rename to analytics/analytics/config.py index d71d955..9c73397 100644 --- a/analytics/config.py +++ b/analytics/analytics/config.py @@ -2,7 +2,7 @@ import os import json -PARENT_FOLDER = os.path.dirname(os.path.dirname(os.path.realpath(__file__))) +PARENT_FOLDER = os.path.dirname(os.path.dirname(os.path.dirname(os.path.realpath(__file__)))) CONFIG_FILE = os.path.join(PARENT_FOLDER, 'config.json') @@ -10,6 +10,8 @@ config_exists = os.path.isfile(CONFIG_FILE) if config_exists: with open(CONFIG_FILE) as f: config = json.load(f) +else: + print('Config file %s doesn`t exist, using defaults' % CONFIG_FILE) def get_config_field(field, default_val = None): diff --git a/analytics/detectors/__init__.py b/analytics/analytics/detectors/__init__.py similarity index 100% rename from analytics/detectors/__init__.py rename to analytics/analytics/detectors/__init__.py diff --git a/analytics/detectors/detector.py b/analytics/analytics/detectors/detector.py similarity index 100% rename from analytics/detectors/detector.py rename to analytics/analytics/detectors/detector.py diff --git a/analytics/detectors/pattern_detector.py b/analytics/analytics/detectors/pattern_detector.py similarity index 100% rename from analytics/detectors/pattern_detector.py rename to analytics/analytics/detectors/pattern_detector.py diff --git a/analytics/models/__init__.py b/analytics/analytics/models/__init__.py similarity index 100% rename from analytics/models/__init__.py rename to analytics/analytics/models/__init__.py diff --git a/analytics/models/custom_model.py b/analytics/analytics/models/custom_model.py similarity index 100% rename from analytics/models/custom_model.py rename to analytics/analytics/models/custom_model.py diff --git a/analytics/models/drop_model.py b/analytics/analytics/models/drop_model.py similarity index 100% rename from analytics/models/drop_model.py rename to analytics/analytics/models/drop_model.py diff --git a/analytics/models/general_model.py b/analytics/analytics/models/general_model.py similarity index 100% rename from analytics/models/general_model.py rename to analytics/analytics/models/general_model.py diff --git a/analytics/models/jump_model.py b/analytics/analytics/models/jump_model.py similarity index 100% rename from analytics/models/jump_model.py rename to analytics/analytics/models/jump_model.py diff --git a/analytics/models/model.py b/analytics/analytics/models/model.py similarity index 100% rename from analytics/models/model.py rename to analytics/analytics/models/model.py diff --git a/analytics/models/peak_model.py b/analytics/analytics/models/peak_model.py similarity index 100% rename from analytics/models/peak_model.py rename to analytics/analytics/models/peak_model.py diff --git a/analytics/models/trough_model.py b/analytics/analytics/models/trough_model.py similarity index 100% rename from analytics/models/trough_model.py rename to analytics/analytics/models/trough_model.py diff --git a/analytics/services/__init__.py b/analytics/analytics/services/__init__.py similarity index 100% rename from analytics/services/__init__.py rename to analytics/analytics/services/__init__.py diff --git a/analytics/services/data_service.py b/analytics/analytics/services/data_service.py similarity index 100% rename from analytics/services/data_service.py rename to analytics/analytics/services/data_service.py diff --git a/analytics/services/server_service.py b/analytics/analytics/services/server_service.py similarity index 100% rename from analytics/services/server_service.py rename to analytics/analytics/services/server_service.py diff --git a/analytics/analytics/utils/__init__.py b/analytics/analytics/utils/__init__.py new file mode 100644 index 0000000..d7ce3ce --- /dev/null +++ b/analytics/analytics/utils/__init__.py @@ -0,0 +1,2 @@ +from utils.common import * +from utils.segments import * diff --git a/analytics/utils/common.py b/analytics/analytics/utils/common.py similarity index 100% rename from analytics/utils/common.py rename to analytics/analytics/utils/common.py diff --git a/analytics/utils/segments.py b/analytics/analytics/utils/segments.py similarity index 87% rename from analytics/utils/segments.py rename to analytics/analytics/utils/segments.py index a6b1c07..1d969d2 100644 --- a/analytics/utils/segments.py +++ b/analytics/analytics/utils/segments.py @@ -1,6 +1,6 @@ import pandas as pd -from common import timestamp_to_index +from utils.common import timestamp_to_index def parse_segment(segment, dataframe): start = timestamp_to_index(dataframe, pd.to_datetime(segment['from'], unit='ms')) diff --git a/analytics/server.py b/analytics/bin/server similarity index 96% rename from analytics/server.py rename to analytics/bin/server index 74a840d..e164808 100644 --- a/analytics/server.py +++ b/analytics/bin/server @@ -1,13 +1,16 @@ +#!/usr/bin/env python3 + +import sys +import os + +#TODO: make wrapper script that set PYTHONPATH instead +sys.path.append(os.path.join(os.path.dirname(__file__), '..', 'analytics')) + import config import json import logging -import sys import asyncio import traceback -import os - -#TODO: make wrapper script that set PYTHONPATH instead -sys.path.append(os.path.join(os.path.dirname(__file__), 'utils')) import services from analytic_unit_manager import handle_analytic_task diff --git a/analytics/tests/test_utils.py b/analytics/tests/test_utils.py index bd12dcc..bf12199 100644 --- a/analytics/tests/test_utils.py +++ b/analytics/tests/test_utils.py @@ -7,6 +7,5 @@ class TestUtils(unittest.TestCase): self.assertTrue(True) - if __name__ == '__main__': unittest.main() diff --git a/analytics/utils/__init__.py b/analytics/utils/__init__.py deleted file mode 100644 index be35e12..0000000 --- a/analytics/utils/__init__.py +++ /dev/null @@ -1,2 +0,0 @@ -from common import * -from segments import * diff --git a/server/src/services/analytics_service.ts b/server/src/services/analytics_service.ts index 42979f6..b4463c7 100644 --- a/server/src/services/analytics_service.ts +++ b/server/src/services/analytics_service.ts @@ -122,10 +122,12 @@ export class AnalyticsService { console.log('dist/server/server'); cp = childProcess.spawn('dist/server/server', [], cpOptions); } else { - console.log('python3 server.py'); + const ANALYTICS_SERVER_PATH = path.join('bin', 'server'); + console.log('python3 ' + ANALYTICS_SERVER_PATH); // If compiled analytics script doesn't exist - fallback to regular python console.log(config.ANALYTICS_PATH); - cp = childProcess.spawn('python3', ['server.py'], cpOptions); + // maybe starting it via bash better that put python3 + cp = childProcess.spawn('python3', [ANALYTICS_SERVER_PATH], cpOptions); } if(cp.pid === undefined) {