This is microservice to implements asynchronous processing subprocess
swagger documentationInstallation paths relative to:
/usr/local/lib/python3.6/site-packages
| Package | Version | Installed Path |
|---|---|---|
| alembic | 1.4.2 | |
| aniso8601 | 8.0.0 | |
| appdirs | 1.4.4 | |
| attrs | 20.2.0 | |
| Babel | 2.5.1 | |
| blinker | 1.4 | |
| certifi | 2020.6.20 | |
| chardet | 3.0.4 | |
| Click | 7.0 | |
| distlib | 0.3.1 | |
| dnspython | 1.16.0 | |
| dominate | 2.5.2 | |
| ecdsa | 0.14.1 | |
| environs | 8.0.0 | |
| eventlet | 0.27.0 | |
| filelock | 3.0.12 | |
| flasgger | 0.9.2 | |
| Flask | 1.0.2 | |
| Flask-Babel | 0.11.2 | |
| Flask-Bootstrap | 3.3.7.1 | |
| Flask-Cors | 3.0.9 | |
| Flask-DebugToolbar | 0.11.0 | |
| Flask-Login | 0.4.0 | |
| Flask-Mail | 0.9.1 | |
| flask-marshmallow | 0.10.0 | |
| Flask-Migrate | 2.1.1 | |
| Flask-Moment | 0.5.2 | |
| flask-restplus | 0.13.0 | |
| Flask-Script | 2.0.6 | |
| Flask-SQLAlchemy | 2.3.2 | |
| Flask-Testing | 0.8.0 | |
| Flask-WTF | 0.14.2 | |
| greenlet | 0.4.16 | |
| gunicorn | 20.0.4 | |
| hiredis | 1.1.0 | |
| idna | 2.10 | |
| importlib-metadata | 1.7.0 | |
| importlib-resources | 3.0.0 | |
| itsdangerous | 1.1.0 | |
| Jinja2 | 2.11.2 | |
| jsonschema | 3.2.0 | |
| Mako | 1.1.3 | |
| MarkupSafe | 1.1.1 | |
| marshmallow | 3.7.1 | |
| mistune | 0.8.4 | |
| monotonic | 1.5 | |
| pika | 1.1.0 | |
| pip | 20.2.3 | |
| psycopg2-binary | 2.8.6 | |
| pyasn1 | 0.4.8 | |
| pyrsistent | 0.16.0 | |
| python-dateutil | 2.6.1 | |
| python-dotenv | 0.14.0 | |
| python-editor | 1.0.3 | |
| python-jose | 3.2.0 | |
| pytz | 2020.1 | |
| PyYAML | 5.3.1 | |
| redis | 3.3.8 | |
| requests | 2.24.0 | |
| rsa | 4.6 | |
| sentry-sdk | 0.17.3 | |
| setuptools | 50.3.0 | |
| six | 1.15.0 | |
| SQLAlchemy | 1.3.19 | |
| urllib3 | 1.25.10 | |
| virtualenv | 20.0.31 | |
| visitor | 0.1.3 | |
| Werkzeug | 0.14.1 | |
| wheel | 0.35.1 | |
| WTForms | 2.3.3 | |
| zipp | 3.1.0 |
| Resource | Value |
|---|---|
| User CPU time | 0.755 msec |
| System CPU time | 0.000 msec |
| Total CPU time | 0.755 msec |
| Elapsed time | 0.755 msec |
| Context switches | 0 voluntary, 0 involuntary |
| Key | Value |
|---|---|
| HTTP_ACCEPT | */* |
| HTTP_ACCEPT_ENCODING | gzip, br, zstd, deflate |
| HTTP_CONNECTION | close |
| HTTP_HOST | py-func.web.ts.soscredit.info |
| HTTP_USER_AGENT | Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com) |
| QUERY_STRING | |
| REMOTE_ADDR | 216.73.216.11 |
| REQUEST_METHOD | GET |
| SCRIPT_NAME | |
| SERVER_NAME | 0.0.0.0 |
| SERVER_PORT | 80 |
| SERVER_PROTOCOL | HTTP/1.1 |
| SERVER_SOFTWARE | gunicorn/20.0.4 |
| View Function | args | kwargs |
|---|---|---|
| frontend.routes.index | [] | None |
No COOKIE data
No SESSION data
| Variable | Value |
|---|
| Variable | Value |
|---|
| Key | Value |
|---|---|
| APP_PATH | '/opt/web_app' |
| APPLICATION_ENV | 'ci' |
| APPLICATION_ROOT | '/' |
| CONTROFFER_DIRECTORY | '/opt/controffer' |
| DEBUG | True |
| DEBUG_TB_ENABLED | True |
| DEBUG_TB_HOSTS | () |
| DEBUG_TB_INTERCEPT_REDIRECTS | False |
| DEBUG_TB_PANELS | ('flask_debugtoolbar.panels.versions.VersionDebugPanel', 'flask_debugtoolbar.panels.timer.TimerDebugPanel', 'flask_debugtoolbar.panels.headers.HeaderDebugPanel', 'flask_debugtoolbar.panels.request_vars.RequestVarsDebugPanel', 'flask_debugtoolbar.panels.config_vars.ConfigVarsDebugPanel', 'flask_debugtoolbar.panels.template.TemplateDebugPanel', 'flask_debugtoolbar.panels.sqlalchemy.SQLAlchemyDebugPanel', 'flask_debugtoolbar.panels.logger.LoggingPanel', 'flask_debugtoolbar.panels.route_list.RouteListDebugPanel', 'flask_debugtoolbar.panels.profiler.ProfilerDebugPanel') |
| DEBUG_TB_PROFILER_ENABLED | True |
| ENV | 'development' |
| EXPLAIN_TEMPLATE_LOADING | False |
| FAILED_CALLBACK_DELAY_QUEUE_NAME | 'PY_FUNC_MS_failed-callback-delay' |
| FAILED_CALLBACK_QUEUE_NAME | 'PY_FUNC_MS_failed-callback' |
| FLASK_APP | 'app' |
| FUNCTIONS_DIRECTORY | '/opt/functions' |
| INSTALLER_QUEUE_NAME | 'PY_FUNC_MS_function-install' |
| JSON_AS_ASCII | True |
| JSON_SORT_KEYS | True |
| JSONIFY_MIMETYPE | 'application/json' |
| JSONIFY_PRETTYPRINT_REGULAR | False |
| MAX_CONTENT_LENGTH | None |
| MAX_COOKIE_SIZE | 4093 |
| MODEL_DIRECTORY | '/opt/model' |
| PERMANENT_SESSION_LIFETIME | datetime.timedelta(31) |
| PREFERRED_URL_SCHEME | 'http' |
| PRESERVE_CONTEXT_ON_EXCEPTION | None |
| PROPAGATE_EXCEPTIONS | None |
| RABBITMQ_HOST | 'py_func_rabbitmq' |
| RABBITMQ_PASSWORD | 'guest' |
| RABBITMQ_PORT | '5672' |
| RABBITMQ_USERNAME | 'guest' |
| REDIS_HOST | 'py_func_redis' |
| REDIS_PORT | 6379 |
| RESEND_CALLBACK | True |
| RESTPLUS_MASK_HEADER | 'X-Fields' |
| RESTPLUS_MASK_SWAGGER | True |
| RULE_DIRECTORY | '/opt/rules' |
| SECRET_KEY | 'AVZr98j3yXR~XHH!jmN]LWB,?RR' |
| SEND_FILE_MAX_AGE_DEFAULT | datetime.timedelta(0, 43200) |
| SENTRY_DSN_TEMPLATE | 'https://dc35885706ec477abf410f93d13c80cb@sentry.ts.soscredit.info/4' |
| SENTRY_ENABLE | True |
| SERVER_NAME | None |
| SESSION_COOKIE_DOMAIN | False |
| SESSION_COOKIE_HTTPONLY | True |
| SESSION_COOKIE_NAME | 'session' |
| SESSION_COOKIE_PATH | None |
| SESSION_COOKIE_SAMESITE | None |
| SESSION_COOKIE_SECURE | False |
| SESSION_REFRESH_EACH_REQUEST | True |
| SQLALCHEMY_BINDS | None |
| SQLALCHEMY_COMMIT_ON_TEARDOWN | False |
| SQLALCHEMY_DATABASE_URI | 'postgres://pyfunc:pnh5m2XYFyV5@py_func_postgres:5432/pyfunc' |
| SQLALCHEMY_ECHO | False |
| SQLALCHEMY_MAX_OVERFLOW | None |
| SQLALCHEMY_NATIVE_UNICODE | None |
| SQLALCHEMY_POOL_RECYCLE | None |
| SQLALCHEMY_POOL_SIZE | None |
| SQLALCHEMY_POOL_TIMEOUT | None |
| SQLALCHEMY_RECORD_QUERIES | True |
| SQLALCHEMY_TRACK_MODIFICATIONS | False |
| TASK_QUEUE_NAME | 'PY_FUNC_MS_function-tasks' |
| TEMP_DIRECTORY | '/opt/temp' |
| TEMPLATES_AUTO_RELOAD | None |
| TESTING | True |
| TRAP_BAD_REQUEST_ERRORS | None |
| TRAP_HTTP_EXCEPTIONS | False |
| USE_X_SENDFILE | False |
| VECTOR_DIRECTORY | '/opt/vector' |
| Variable | Value |
|---|---|
| api_link | '/api/doc/' |
| g | <flask.g of 'app'> |
| request | <Request 'https://py-func.web.ts.soscredit.info/' [GET]> |
| session | <SecureCookieSession {}> |
No messages logged.
| URL route | Endpoint name | HTTP methods | Is alias | Redirect to |
|---|---|---|---|---|
| / | frontend.index | GET, HEAD, OPTIONS | False | None |
| /api/ | api.root | GET, HEAD, OPTIONS | False | None |
| /api/doc/ | api.doc | GET, HEAD, OPTIONS | False | None |
| /api/function-status/ | api.function_status_list_resource | GET, HEAD, OPTIONS | False | None |
| /api/function-status/<int:id> | api.function_status_resource | GET, HEAD, OPTIONS | False | None |
| /api/function-types/ | api.function_type_list_resource | GET, HEAD, OPTIONS | False | None |
| /api/function-types/<int:id> | api.function_type_resource | GET, HEAD, OPTIONS | False | None |
| /api/function-version/ | api.function_version_list_resource | GET, HEAD, OPTIONS | False | None |
| /api/function-version/<int:id> | api.function_version_resource | DELETE, GET, HEAD, OPTIONS, PUT | False | None |
| /api/function-version/test-file/ | api.function_version_test_file_resource | OPTIONS, POST | False | None |
| /api/function-version/test-json/ | api.function_version_test_json_resource | OPTIONS, POST | False | None |
| /api/function/ | api.function_list_resource | GET, HEAD, OPTIONS, POST | False | None |
| /api/function/<int:id> | api.function_resource | GET, HEAD, OPTIONS, PUT | False | None |
| /api/http-callback/ | api.http_callback_list_resource | GET, HEAD, OPTIONS | False | None |
| /api/http-callback/<int:id> | api.http_callback_resource | GET, HEAD, OPTIONS | False | None |
| /api/http-callback/send/<string:process_id> | api.send_http_callback_resource | OPTIONS, POST | False | None |
| /api/interpreter-execution-command/ | api.interpret_execution_command_list_resource | GET, HEAD, OPTIONS | False | None |
| /api/interpreter/ | api.interpreter_list_resource | GET, HEAD, OPTIONS | False | None |
| /api/process-status/ | api.process_status_list_resource | GET, HEAD, OPTIONS | False | None |
| /api/process-status/<int:id> | api.process_status_resource | GET, HEAD, OPTIONS | False | None |
| /api/processing/<fn_type>/ | api.post_body_func | OPTIONS, POST | False | None |
| /api/swagger.json | api.specs | GET, HEAD, OPTIONS | False | None |
| /static/<path:filename> | static | GET, HEAD, OPTIONS | False | None |
| /swaggerui/<path:filename> | restplus_doc.static | GET, HEAD, OPTIONS | False | None |
| Calls | Total Time (ms) | Per Call (ms) | Cumulative Time (ms) | Per Call (ms) | Function |
|---|---|---|---|---|---|
| 2 | 0.044 | 0.0220 | 0.044 | 0.0220 | {built-in method posix.stat} |
| 2 | 0.019999999999999997 | 0.0100 | 0.032999999999999995 | 0.0165 | <jinja2/utils.py:415(__getitem__)> |
| 8 | 0.015 | 0.0019 | 0.098 | 0.0123 | ./templates/home.html:5(root) |
| 8 | 0.013 | 0.0016 | 0.037 | 0.0046 | ./templates/base.html:5(root) |
| 2 | 0.013 | 0.0065 | 0.109 | 0.0545 | <jinja2/environment.py:846(_load_template)> |
| 1 | 0.011 | 0.0110 | 0.026 | 0.0260 | <jinja2/runtime.py:183(__init__)> |
| 1 | 0.009999999999999998 | 0.0100 | 0.024 | 0.0240 | <flask/app.py:773(update_template_context)> |
| 1 | 0.009000000000000001 | 0.0090 | 0.21899999999999997 | 0.2190 | <flask/templating.py:113(_render)> |
| 1 | 0.009000000000000001 | 0.0090 | 0.337 | 0.3370 | <flask/templating.py:122(render_template)> |
| 4 | 0.009000000000000001 | 0.0023 | 0.028 | 0.0070 | <blinker/base.py:285(receivers_for)> |
| 2 | 0.009000000000000001 | 0.0045 | 0.121 | 0.0605 | <jinja2/environment.py:862(get_template)> |
| 5 | 0.008 | 0.0016 | 0.016 | 0.0032 | <werkzeug/local.py:160(top)> |
| 5 | 0.007 | 0.0014 | 0.008 | 0.0016 | <werkzeug/local.py:68(__getattr__)> |
| 2 | 0.007 | 0.0035 | 0.007 | 0.0035 | <eventlet/semaphore.py:65(acquire)> |
| 2 | 0.007 | 0.0035 | 0.051 | 0.0255 | <genericpath.py:53(getmtime)> |
| 1 | 0.007 | 0.0070 | 0.105 | 0.1050 | {method 'join' of 'str' objects} |
| 1 | 0.006 | 0.0060 | 0.05499999999999999 | 0.0550 | <blinker/base.py:266(<listcomp>)> |
| 2 | 0.006 | 0.0030 | 0.063 | 0.0315 | <blinker/base.py:241(send)> |
| 3 | 0.006 | 0.0020 | 0.006 | 0.0020 | <blinker/_saferef.py:219(__call__)> |
| 1 | 0.006 | 0.0060 | 0.032 | 0.0320 | <jinja2/runtime.py:78(new_context)> |
| 1 | 0.006 | 0.0060 | 0.147 | 0.1470 | <jinja2/environment.py:1076(render)> |
| 1 | 0.006 | 0.0060 | 0.008 | 0.0080 | <markupsafe/__init__.py:70(__new__)> |
| 3 | 0.004999999999999999 | 0.0017 | 0.020999999999999998 | 0.0070 | <flask_debugtoolbar/panels/template.py:39(_store_template_info)> |
| 2 | 0.004999999999999999 | 0.0025 | 0.056 | 0.0280 | <jinja2/loaders.py:190(uptodate)> |
| 1 | 0.004999999999999999 | 0.0050 | 0.013 | 0.0130 | {built-in method markupsafe._speedups.escape} |
| 2 | 0.004999999999999999 | 0.0025 | 0.061 | 0.0305 | <jinja2/environment.py:1200(is_up_to_date)> |
| 1 | 0.004999999999999999 | 0.0050 | 0.009000000000000001 | 0.0090 | <jinja2/nodes.py:66(__init__)> |
| 4 | 0.004999999999999999 | 0.0012 | 0.004999999999999999 | 0.0012 | {built-in method builtins.hasattr} |
| 4 | 0.004 | 0.0010 | 0.018999999999999996 | 0.0047 | ./templates/home.html:17(block_content) |
| 1 | 0.004 | 0.0040 | 0.34099999999999997 | 0.3410 | ./frontend/routes.py:7(index) |
| 1 | 0.004 | 0.0040 | 0.004999999999999999 | 0.0050 | <flask/wrappers.py:161(blueprint)> |
| 1 | 0.004 | 0.0040 | 0.079 | 0.0790 | <jinja2/environment.py:921(get_or_select_template)> |
| 1 | 0.004 | 0.0040 | 0.036000000000000004 | 0.0360 | <jinja2/environment.py:1136(new_context)> |
| 1 | 0.004 | 0.0040 | 0.004999999999999999 | 0.0050 | <jinja2/_compat.py:19(<lambda>)> |
| 4 | 0.004 | 0.0010 | 0.004 | 0.0010 | {method 'get' of 'dict' objects} |
| 7 | 0.004 | 0.0006 | 0.004 | 0.0006 | {built-in method builtins.isinstance} |
| 2 | 0.004 | 0.0020 | 0.004 | 0.0020 | {method 'remove' of 'collections.deque' objects} |
| 1 | 0.003 | 0.0030 | 0.015 | 0.0150 | <flask_debugtoolbar/panels/template.py:72(is_editor_enabled)> |
| 1 | 0.003 | 0.0030 | 0.008 | 0.0080 | <werkzeug/local.py:300(_get_current_object)> |
| 1 | 0.003 | 0.0030 | 0.007 | 0.0070 | <blinker/_utilities.py:113(hashable_identity)> |
| 2 | 0.003 | 0.0015 | 0.004999999999999999 | 0.0025 | <jinja2/runtime.py:234(resolve_or_missing)> |
| 1 | 0.002 | 0.0020 | 0.007 | 0.0070 | <flask/templating.py:19(_default_template_ctx_processor)> |
| 1 | 0.002 | 0.0020 | 0.011 | 0.0110 | <werkzeug/local.py:344(__getattr__)> |
| 1 | 0.002 | 0.0020 | 0.003 | 0.0030 | <flask/app.py:763(select_jinja_autoescape)> |
| 2 | 0.002 | 0.0010 | 0.002 | 0.0010 | <jinja2/runtime.py:150(resolve_or_missing)> |
| 1 | 0.002 | 0.0020 | 0.002 | 0.0020 | <jinja2/runtime.py:714(__init__)> |
| 2 | 0.002 | 0.0010 | 0.034999999999999996 | 0.0175 | <jinja2/utils.py:378(get)> |
| 2 | 0.002 | 0.0010 | 0.002 | 0.0010 | <eventlet/semaphore.py:131(release)> |
| 4 | 0.002 | 0.0005 | 0.002 | 0.0005 | {built-in method builtins.len} |
| 1 | 0.001 | 0.0010 | 0.004 | 0.0040 | <flask/globals.py:48(_find_app)> |
| 2 | 0.001 | 0.0005 | 0.001 | 0.0005 | <jinja2/runtime.py:194(<genexpr>)> |
| 2 | 0.001 | 0.0005 | 0.001 | 0.0005 | <jinja2/environment.py:943(make_globals)> |
| 7 | 0.001 | 0.0001 | 0.001 | 0.0001 | {built-in method greenlet.getcurrent} |
| 4 | 0.001 | 0.0003 | 0.001 | 0.0003 | {method 'append' of 'list' objects} |
| 1 | 0.001 | 0.0010 | 0.001 | 0.0010 | {method 'copy' of 'set' objects} |
| 1 | 0.001 | 0.0010 | 0.001 | 0.0010 | {built-in method __new__ of type object at 0x7f5305498fc0} |
| 1 | 0.001 | 0.0010 | 0.001 | 0.0010 | {method 'rsplit' of 'str' objects} |
| 1 | 0.001 | 0.0010 | 0.001 | 0.0010 | {method 'endswith' of 'str' objects} |
| 1 | 0.001 | 0.0010 | 0.001 | 0.0010 | {built-in method builtins.callable} |
| 1 | 0.001 | 0.0010 | 0.001 | 0.0010 | {built-in method builtins.getattr} |
| 1 | 0.001 | 0.0010 | 0.001 | 0.0010 | {built-in method builtins.id} |
| 1 | 0.001 | 0.0010 | 0.001 | 0.0010 | {built-in method builtins.iter} |
| 1 | 0.0 | 0.0000 | 0.0 | 0.0000 | <jinja2/runtime.py:820(__nonzero__)> |
| 1 | 0.0 | 0.0000 | 0.0 | 0.0000 | <jinja2/environment.py:834(join_path)> |
| 1 | 0.0 | 0.0000 | 0.0 | 0.0000 | {method 'disable' of '_lsprof.Profiler' objects} |
| 1 | 0.0 | 0.0000 | 0.0 | 0.0000 | {method 'setdefault' of 'dict' objects} |
| 2 | 0.0 | 0.0000 | 0.0 | 0.0000 | {method 'items' of 'dict' objects} |
| 2 | 0.0 | 0.0000 | 0.0 | 0.0000 | {method 'update' of 'dict' objects} |
| 1 | 0.0 | 0.0000 | 0.0 | 0.0000 | {method 'copy' of 'dict' objects} |
| 2 | 0.0 | 0.0000 | 0.0 | 0.0000 | {method 'append' of 'collections.deque' objects} |