Full Code of mindspore-ai/serving for AI

master df1fc19f8e4a cached
473 files
2.7 MB
724.5k tokens
1985 symbols
1 requests
Download .txt
Showing preview only (2,906K chars total). Download the full file or copy to clipboard to get everything.
Repository: mindspore-ai/serving
Branch: master
Commit: df1fc19f8e4a
Files: 473
Total size: 2.7 MB

Directory structure:
gitextract_vl65tc6t/

├── .clang-format
├── .gitee/
│   └── PULL_REQUEST_TEMPLATE.md
├── .gitignore
├── .gitmodules
├── .jenkins/
│   └── test/
│       └── config/
│           └── dependent_packages.yaml
├── CMakeLists.txt
├── LICENSE
├── NOTICE
├── OWNERS
├── README.md
├── README_CN.md
├── RELEASE.md
├── RELEASE_CN.md
├── Third_Party_Open_Source_Software_Notice
├── build.sh
├── cmake/
│   ├── check_requirements.cmake
│   ├── dependency_ms.cmake
│   ├── dependency_securec.cmake
│   ├── dependency_utils.cmake
│   ├── external_libs/
│   │   ├── absl.cmake
│   │   ├── c-ares.cmake
│   │   ├── eigen.cmake
│   │   ├── glog.cmake
│   │   ├── grpc.cmake
│   │   ├── gtest.cmake
│   │   ├── json.cmake
│   │   ├── libevent.cmake
│   │   ├── openssl.cmake
│   │   ├── protobuf.cmake
│   │   ├── pybind11.cmake
│   │   ├── re2.cmake
│   │   └── zlib.cmake
│   ├── mind_expression.cmake
│   ├── options.cmake
│   ├── package.cmake
│   ├── package_script.cmake
│   └── utils.cmake
├── docs/
│   └── api/
│       └── api_python/
│           ├── client/
│           │   ├── mindspore_serving.client.Client.rst
│           │   ├── mindspore_serving.client.SSLConfig.rst
│           │   └── mindspore_serving.client.rst
│           ├── mindspore_serving.client.rst
│           ├── mindspore_serving.server.rst
│           └── server/
│               ├── distributed/
│               │   ├── mindspore_serving.server.distributed.declare_servable.rst
│               │   ├── mindspore_serving.server.distributed.rst
│               │   ├── mindspore_serving.server.distributed.start_servable.rst
│               │   └── mindspore_serving.server.distributed.startup_agents.rst
│               ├── mindspore_serving.server.SSLConfig.rst
│               ├── mindspore_serving.server.ServableStartConfig.rst
│               ├── mindspore_serving.server.rst
│               ├── mindspore_serving.server.start_grpc_server.rst
│               ├── mindspore_serving.server.start_restful_server.rst
│               ├── mindspore_serving.server.start_servables.rst
│               ├── mindspore_serving.server.stop.rst
│               └── register/
│                   ├── mindspore_serving.server.register.AscendDeviceInfo.rst
│                   ├── mindspore_serving.server.register.CPUDeviceInfo.rst
│                   ├── mindspore_serving.server.register.Context.rst
│                   ├── mindspore_serving.server.register.GPUDeviceInfo.rst
│                   ├── mindspore_serving.server.register.Model.rst
│                   ├── mindspore_serving.server.register.add_stage.rst
│                   ├── mindspore_serving.server.register.declare_model.rst
│                   ├── mindspore_serving.server.register.register_method.rst
│                   └── mindspore_serving.server.register.rst
├── engine/
│   └── README.md
├── example/
│   ├── add_sub_pipeline/
│   │   ├── add_sub/
│   │   │   └── servable_config.py
│   │   ├── export_model/
│   │   │   └── add_sub_model.py
│   │   ├── serving_client.py
│   │   └── serving_server.py
│   ├── lenet/
│   │   ├── export_model/
│   │   │   ├── export_lenet.py
│   │   │   └── lenet/
│   │   │       ├── __init__.py
│   │   │       ├── export.py
│   │   │       └── src/
│   │   │           └── lenet.py
│   │   ├── lenet/
│   │   │   └── servable_config.py
│   │   ├── serving_client.py
│   │   └── serving_server.py
│   ├── matmul_distributed/
│   │   ├── export_model/
│   │   │   ├── distributed_inference.py
│   │   │   ├── export_model.sh
│   │   │   ├── net.py
│   │   │   └── rank_table_8pcs.json
│   │   ├── matmul/
│   │   │   └── servable_config.py
│   │   ├── rank_table_8pcs.json
│   │   ├── serving_agent.py
│   │   ├── serving_client.py
│   │   └── serving_server.py
│   ├── matmul_multi_subgraphs/
│   │   ├── export_model/
│   │   │   └── export_matmul.py
│   │   ├── matmul/
│   │   │   └── servable_config.py
│   │   ├── serving_client.py
│   │   └── serving_server.py
│   ├── resnet/
│   │   ├── export_model/
│   │   │   ├── export_resnet.py
│   │   │   └── resnet/
│   │   │       ├── __init__.py
│   │   │       ├── export.py
│   │   │       └── src/
│   │   │           ├── config.py
│   │   │           └── resnet.py
│   │   ├── resnet50/
│   │   │   └── servable_config.py
│   │   ├── serving_client.py
│   │   └── serving_server.py
│   └── tensor_add/
│       ├── add/
│       │   └── servable_config.py
│       ├── export_model/
│       │   └── add_model.py
│       ├── serving_client.py
│       ├── serving_client_with_check.py
│       └── serving_server.py
├── mindspore_serving/
│   ├── CMakeLists.txt
│   ├── __init__.py
│   ├── ccsrc/
│   │   ├── common/
│   │   │   ├── buffer_tensor.cc
│   │   │   ├── buffer_tensor.h
│   │   │   ├── exit_handle.cc
│   │   │   ├── exit_handle.h
│   │   │   ├── float16.h
│   │   │   ├── grpc_async_server.h
│   │   │   ├── grpc_client.cc
│   │   │   ├── grpc_client.h
│   │   │   ├── grpc_server.cc
│   │   │   ├── grpc_server.h
│   │   │   ├── heart_beat.cc
│   │   │   ├── heart_beat.h
│   │   │   ├── instance.h
│   │   │   ├── instance_data.h
│   │   │   ├── log.cc
│   │   │   ├── log.h
│   │   │   ├── proto_tensor.cc
│   │   │   ├── proto_tensor.h
│   │   │   ├── servable.cc
│   │   │   ├── servable.h
│   │   │   ├── serving_common.h
│   │   │   ├── shared_memory.cc
│   │   │   ├── shared_memory.h
│   │   │   ├── ssl_config.h
│   │   │   ├── status.h
│   │   │   ├── tensor.cc
│   │   │   ├── tensor.h
│   │   │   ├── tensor_base.cc
│   │   │   ├── tensor_base.h
│   │   │   ├── thread_pool.cc
│   │   │   ├── thread_pool.h
│   │   │   ├── utils.cc
│   │   │   └── utils.h
│   │   ├── master/
│   │   │   ├── dispacther.cc
│   │   │   ├── dispacther.h
│   │   │   ├── grpc/
│   │   │   │   ├── grpc_process.cc
│   │   │   │   ├── grpc_process.h
│   │   │   │   ├── grpc_server.cc
│   │   │   │   ├── grpc_server.h
│   │   │   │   └── master_server.h
│   │   │   ├── master_context.cc
│   │   │   ├── master_context.h
│   │   │   ├── model_thread.cc
│   │   │   ├── model_thread.h
│   │   │   ├── notify_worker/
│   │   │   │   ├── base_notify.h
│   │   │   │   ├── grpc_notify.cc
│   │   │   │   └── grpc_notify.h
│   │   │   ├── restful/
│   │   │   │   ├── http_handle.cc
│   │   │   │   ├── http_handle.h
│   │   │   │   ├── http_process.cc
│   │   │   │   ├── http_process.h
│   │   │   │   ├── restful_request.cc
│   │   │   │   ├── restful_request.h
│   │   │   │   ├── restful_server.cc
│   │   │   │   └── restful_server.h
│   │   │   ├── servable_endpoint.cc
│   │   │   ├── servable_endpoint.h
│   │   │   ├── server.cc
│   │   │   ├── server.h
│   │   │   ├── worker_context.cc
│   │   │   └── worker_context.h
│   │   ├── python/
│   │   │   ├── agent/
│   │   │   │   ├── agent_py.cc
│   │   │   │   └── agent_py.h
│   │   │   ├── master/
│   │   │   │   ├── master_py.cc
│   │   │   │   └── master_py.h
│   │   │   ├── serving_py.cc
│   │   │   ├── tensor_py.cc
│   │   │   ├── tensor_py.h
│   │   │   └── worker/
│   │   │       ├── servable_py.cc
│   │   │       ├── servable_py.h
│   │   │       ├── worker_py.cc
│   │   │       └── worker_py.h
│   │   └── worker/
│   │       ├── context.cc
│   │       ├── context.h
│   │       ├── distributed_worker/
│   │       │   ├── agent_process/
│   │       │   │   ├── agent_process.cc
│   │       │   │   └── agent_process.h
│   │       │   ├── agent_startup.cc
│   │       │   ├── agent_startup.h
│   │       │   ├── common.h
│   │       │   ├── distributed_model_loader.cc
│   │       │   ├── distributed_model_loader.h
│   │       │   ├── distributed_process/
│   │       │   │   ├── distributed_process.cc
│   │       │   │   ├── distributed_process.h
│   │       │   │   └── distributed_server.h
│   │       │   ├── notify_agent/
│   │       │   │   ├── base_notify_agent.h
│   │       │   │   ├── notify_agent.cc
│   │       │   │   └── notify_agent.h
│   │       │   ├── notify_distributed/
│   │       │   │   ├── notify_worker.cc
│   │       │   │   └── notify_worker.h
│   │       │   ├── worker_agent.cc
│   │       │   └── worker_agent.h
│   │       ├── extra_worker/
│   │       │   ├── remote_call_model.cc
│   │       │   └── remote_call_model.h
│   │       ├── grpc/
│   │       │   ├── worker_process.cc
│   │       │   ├── worker_process.h
│   │       │   ├── worker_server.cc
│   │       │   └── worker_server.h
│   │       ├── inference/
│   │       │   ├── inference.cc
│   │       │   ├── inference.h
│   │       │   ├── mindspore_model_wrap.cc
│   │       │   └── mindspore_model_wrap.h
│   │       ├── local_servable/
│   │       │   ├── local_model_loader.cc
│   │       │   └── local_model_loader.h
│   │       ├── model_loader_base.cc
│   │       ├── model_loader_base.h
│   │       ├── notfiy_master/
│   │       │   ├── base_notify.h
│   │       │   ├── grpc_notify.cc
│   │       │   └── grpc_notify.h
│   │       ├── predict_thread.cc
│   │       ├── predict_thread.h
│   │       ├── register/
│   │       │   └── argmax.cc
│   │       ├── servable_register.cc
│   │       ├── servable_register.h
│   │       ├── stage_function.cc
│   │       ├── stage_function.h
│   │       ├── task_queue.cc
│   │       ├── task_queue.h
│   │       ├── work_executor.cc
│   │       ├── work_executor.h
│   │       ├── worker.cc
│   │       └── worker.h
│   ├── client/
│   │   ├── __init__.py
│   │   ├── cpp/
│   │   │   ├── client.cc
│   │   │   └── client.h
│   │   └── python/
│   │       ├── __init__.py
│   │       └── client.py
│   ├── log.py
│   ├── proto/
│   │   ├── ms_agent.proto
│   │   ├── ms_distributed.proto
│   │   ├── ms_master.proto
│   │   ├── ms_service.proto
│   │   └── ms_worker.proto
│   └── server/
│       ├── __init__.py
│       ├── _servable_common.py
│       ├── _servable_local.py
│       ├── _server.py
│       ├── common/
│       │   ├── __init__.py
│       │   ├── check_type.py
│       │   ├── decorator.py
│       │   └── utils.py
│       ├── distributed/
│       │   ├── __init__.py
│       │   ├── _distributed.py
│       │   ├── _servable_distributed.py
│       │   └── start_distributed_worker.py
│       ├── master/
│       │   ├── __init__.py
│       │   ├── _master.py
│       │   └── context.py
│       ├── register/
│       │   ├── __init__.py
│       │   ├── method.py
│       │   ├── model.py
│       │   ├── stage_function.py
│       │   └── utils.py
│       ├── start_extra_worker.py
│       ├── start_worker.py
│       └── worker/
│           ├── __init__.py
│           ├── _worker.py
│           ├── check_version.py
│           ├── distributed/
│           │   ├── __init__.py
│           │   ├── agent_startup.py
│           │   ├── distributed_worker.py
│           │   ├── register.py
│           │   └── worker_agent.py
│           ├── init_mindspore.py
│           └── task.py
├── requirements_test.txt
├── scripts/
│   ├── check_clang_format.sh
│   └── format_source_code.sh
├── setup.py
├── tests/
│   ├── CMakeLists.txt
│   ├── st/
│   │   ├── add/
│   │   │   ├── __init__.py
│   │   │   ├── add.sh
│   │   │   └── test_serving.py
│   │   ├── add_sub_pipeline/
│   │   │   ├── __init__.py
│   │   │   ├── add_sub.sh
│   │   │   └── test_serving.py
│   │   ├── distributed_server_fault/
│   │   │   ├── __init__.py
│   │   │   ├── common.sh
│   │   │   ├── kill_15_agent.sh
│   │   │   ├── kill_15_server.sh
│   │   │   ├── kill_9_agent.sh
│   │   │   ├── kill_9_server.sh
│   │   │   └── test_distributed_fault.py
│   │   ├── matmul_distributed/
│   │   │   ├── __init__.py
│   │   │   ├── matmul_distribute.sh
│   │   │   └── test_matmul_distribute.py
│   │   ├── matmul_multi_subgraphs/
│   │   │   ├── __init__.py
│   │   │   ├── matmul_multi_subgraphs.sh
│   │   │   └── test_matmul_multi_subgraphs.py
│   │   ├── resnet/
│   │   │   ├── __init__.py
│   │   │   ├── resnet.sh
│   │   │   └── test_resnet.py
│   │   └── serving_fault/
│   │       ├── __init__.py
│   │       ├── common.sh
│   │       ├── kill_15_master.sh
│   │       ├── kill_15_worker.sh
│   │       ├── kill_9_master.sh
│   │       ├── kill_9_worker.sh
│   │       ├── restart.sh
│   │       └── test_serving_fault.py
│   └── ut/
│       ├── CMakeLists.txt
│       ├── coverage/
│       │   ├── cov_config
│       │   └── run_coverage.sh
│       ├── cpp/
│       │   ├── CMakeLists.txt
│       │   ├── common/
│       │   │   ├── common_test.cc
│       │   │   ├── common_test.h
│       │   │   ├── test_main.cc
│       │   │   └── test_servable_common.h
│       │   ├── runtest.sh
│       │   └── tests/
│       │       ├── test_agent_config_acquire.cc
│       │       ├── test_context.cc
│       │       ├── test_distributed_inference.cc
│       │       ├── test_init_config_on_start_up.cc
│       │       ├── test_master_worker.cc
│       │       ├── test_model_thread.cc
│       │       ├── test_parse_restful.cc
│       │       ├── test_shared_memory.cc
│       │       ├── test_start_preprocess_postprocess.cc
│       │       └── test_start_worker.cc
│       ├── python/
│       │   ├── CMakeLists.txt
│       │   ├── mindspore/
│       │   │   └── dataset/
│       │   │       └── __init__.py
│       │   ├── runtest.sh
│       │   ├── servable_config/
│       │   │   ├── add_servable_config.py
│       │   │   └── generate_certs.sh
│       │   └── tests/
│       │       ├── common.py
│       │       ├── common_restful.py
│       │       ├── test_distributed_worker.py
│       │       ├── test_grpc_request.py
│       │       ├── test_model_call.py
│       │       ├── test_model_context.py
│       │       ├── test_multi_model.py
│       │       ├── test_python_parallel.py
│       │       ├── test_register_method.py
│       │       ├── test_restful_base64_data.py
│       │       ├── test_restful_json_data.py
│       │       ├── test_restful_request.py
│       │       ├── test_server_client.py
│       │       ├── test_serving_log.py
│       │       ├── test_stage_function.py
│       │       ├── test_start_servable_config.py
│       │       └── test_start_sevables.py
│       ├── runtest.sh
│       └── stub/
│           ├── cxx_api/
│           │   ├── cell.cc
│           │   ├── context.cc
│           │   ├── factory.h
│           │   ├── graph/
│           │   │   ├── ascend/
│           │   │   │   ├── ascend_graph_impl.cc
│           │   │   │   └── ascend_graph_impl.h
│           │   │   ├── graph.cc
│           │   │   ├── graph_data.cc
│           │   │   ├── graph_data.h
│           │   │   └── graph_impl.h
│           │   ├── model/
│           │   │   ├── model.cc
│           │   │   ├── model_impl.cc
│           │   │   ├── model_impl.h
│           │   │   └── ms/
│           │   │       ├── ms_model.cc
│           │   │       └── ms_model.h
│           │   ├── serialization.cc
│           │   ├── status.cc
│           │   └── types.cc
│           ├── graph_impl_stub.cc
│           ├── graph_impl_stub.h
│           ├── include/
│           │   ├── api/
│           │   │   ├── allocator.h
│           │   │   ├── callback/
│           │   │   │   ├── callback.h
│           │   │   │   ├── ckpt_saver.h
│           │   │   │   ├── loss_monitor.h
│           │   │   │   ├── lr_scheduler.h
│           │   │   │   ├── time_monitor.h
│           │   │   │   └── train_accuracy.h
│           │   │   ├── cell.h
│           │   │   ├── cfg.h
│           │   │   ├── context.h
│           │   │   ├── data_type.h
│           │   │   ├── delegate.h
│           │   │   ├── dual_abi_helper.h
│           │   │   ├── format.h
│           │   │   ├── graph.h
│           │   │   ├── kernel.h
│           │   │   ├── metrics/
│           │   │   │   ├── accuracy.h
│           │   │   │   └── metrics.h
│           │   │   ├── model.h
│           │   │   ├── model_parallel_runner.h
│           │   │   ├── ops/
│           │   │   │   └── ops.h
│           │   │   ├── serialization.h
│           │   │   ├── status.h
│           │   │   ├── types.h
│           │   │   └── visible.h
│           │   ├── mindapi/
│           │   │   └── base/
│           │   │       ├── format.h
│           │   │       ├── type_id.h
│           │   │       └── types.h
│           │   └── utils/
│           │       ├── log_adapter.cc
│           │       ├── log_adapter.h
│           │       ├── log_adapter_common.cc
│           │       ├── overload.h
│           │       ├── utils.h
│           │       └── visible.h
│           ├── stub_inference.cc
│           ├── stub_postprocess.cc
│           └── stub_preprocess.cc
└── third_party/
    ├── patch/
    │   ├── c-ares/
    │   │   └── CVE-2021-3672.patch
    │   ├── glog/
    │   │   └── glog.patch001
    │   ├── grpc/
    │   │   └── grpc.patch001
    │   ├── libevent/
    │   │   └── libevent.patch001
    │   ├── openssl/
    │   │   ├── CVE-2021-3711.patch
    │   │   ├── CVE-2021-3712.patch
    │   │   ├── CVE-2021-4160.patch
    │   │   ├── CVE-2022-0778.patch
    │   │   ├── CVE-2022-1292.patch
    │   │   ├── CVE-2022-2068.patch
    │   │   ├── CVE-2022-2097.patch
    │   │   ├── CVE-2022-4304.patch
    │   │   ├── CVE-2022-4450.patch
    │   │   ├── CVE-2023-0215.patch
    │   │   ├── CVE-2023-0286.patch
    │   │   ├── CVE-2023-0464.patch
    │   │   ├── CVE-2023-0465.patch
    │   │   ├── CVE-2023-0466.patch
    │   │   ├── CVE-2023-2650.patch
    │   │   ├── CVE-2023-3446.patch
    │   │   └── CVE-2023-4807.patch
    │   ├── protobuf/
    │   │   ├── CVE-2021-22570.patch
    │   │   └── CVE-2022-1941.patch
    │   ├── pybind11/
    │   │   └── pybind11.patch001
    │   └── zlib/
    │       ├── CVE-2018-25032.patch
    │       └── CVE-2022-37434.patch
    └── securec/
        ├── CMakeLists.txt
        ├── include/
        │   ├── securec.h
        │   └── securectype.h
        └── src/
            ├── CMakeLists.txt
            ├── fscanf_s.c
            ├── fwscanf_s.c
            ├── gets_s.c
            ├── input.inl
            ├── memcpy_s.c
            ├── memmove_s.c
            ├── memset_s.c
            ├── output.inl
            ├── scanf_s.c
            ├── secinput.h
            ├── securecutil.c
            ├── securecutil.h
            ├── secureinput_a.c
            ├── secureinput_w.c
            ├── secureprintoutput.h
            ├── secureprintoutput_a.c
            ├── secureprintoutput_w.c
            ├── snprintf_s.c
            ├── sprintf_s.c
            ├── sscanf_s.c
            ├── strcat_s.c
            ├── strcpy_s.c
            ├── strncat_s.c
            ├── strncpy_s.c
            ├── strtok_s.c
            ├── swprintf_s.c
            ├── swscanf_s.c
            ├── vfscanf_s.c
            ├── vfwscanf_s.c
            ├── vscanf_s.c
            ├── vsnprintf_s.c
            ├── vsprintf_s.c
            ├── vsscanf_s.c
            ├── vswprintf_s.c
            ├── vswscanf_s.c
            ├── vwscanf_s.c
            ├── wcscat_s.c
            ├── wcscpy_s.c
            ├── wcsncat_s.c
            ├── wcsncpy_s.c
            ├── wcstok_s.c
            ├── wmemcpy_s.c
            ├── wmemmove_s.c
            └── wscanf_s.c

================================================
FILE CONTENTS
================================================

================================================
FILE: .clang-format
================================================
---
Language:        Cpp
# BasedOnStyle:  Google
AccessModifierOffset: -1
AlignAfterOpenBracket: Align
AlignConsecutiveAssignments: false
AlignConsecutiveDeclarations: false
AlignEscapedNewlines: Left
AlignOperands:   true
AlignTrailingComments: true
AllowAllParametersOfDeclarationOnNextLine: true
AllowShortBlocksOnASingleLine: false
AllowShortCaseLabelsOnASingleLine: false
AllowShortFunctionsOnASingleLine: All
AllowShortIfStatementsOnASingleLine: true
AllowShortLoopsOnASingleLine: true
AlwaysBreakAfterDefinitionReturnType: None
AlwaysBreakAfterReturnType: None
AlwaysBreakBeforeMultilineStrings: true
AlwaysBreakTemplateDeclarations: Yes
BinPackArguments: true
BinPackParameters: true
BraceWrapping:
  AfterClass:      false
  AfterControlStatement: false
  AfterEnum:       false
  AfterFunction:   false
  AfterNamespace:  false
  AfterObjCDeclaration: false
  AfterStruct:     false
  AfterUnion:      false
  AfterExternBlock: false
  BeforeCatch:     false
  BeforeElse:      false
  IndentBraces:    false
  SplitEmptyFunction: true
  SplitEmptyRecord: true
  SplitEmptyNamespace: true
BreakBeforeBinaryOperators: None
BreakBeforeBraces: Attach
BreakBeforeInheritanceComma: false
BreakInheritanceList: BeforeColon
BreakBeforeTernaryOperators: true
BreakConstructorInitializersBeforeComma: false
BreakConstructorInitializers: BeforeColon
BreakAfterJavaFieldAnnotations: false
BreakStringLiterals: true
ColumnLimit:     120
CommentPragmas:  '^ IWYU pragma:'
CompactNamespaces: false
ConstructorInitializerAllOnOneLineOrOnePerLine: true
ConstructorInitializerIndentWidth: 4
ContinuationIndentWidth: 2
Cpp11BracedListStyle: true
DerivePointerAlignment: false
DisableFormat:   false
ExperimentalAutoDetectBinPacking: false
FixNamespaceComments: true
ForEachMacros:
#  - foreach
  - Q_FOREACH
  - BOOST_FOREACH
IncludeBlocks:   Preserve
IncludeCategories:
  - Regex:           '^<ext/.*\.h>'
    Priority:        2
  - Regex:           '^<.*\.h>'
    Priority:        1
  - Regex:           '^<.*'
    Priority:        2
  - Regex:           '.*'
    Priority:        3
IncludeIsMainRegex: '([-_](test|unittest))?$'
IndentCaseLabels: true
IndentPPDirectives: None
IndentWidth:     2
IndentWrappedFunctionNames: false
JavaScriptQuotes: Leave
JavaScriptWrapImports: true
KeepEmptyLinesAtTheStartOfBlocks: false
MacroBlockBegin: ''
MacroBlockEnd:   ''
MaxEmptyLinesToKeep: 1
NamespaceIndentation: None
ObjCBinPackProtocolList: Never
ObjCBlockIndentWidth: 2
ObjCSpaceAfterProperty: false
ObjCSpaceBeforeProtocolList: true
PenaltyBreakAssignment: 2
PenaltyBreakBeforeFirstCallParameter: 1
PenaltyBreakComment: 300
PenaltyBreakFirstLessLess: 120
PenaltyBreakString: 1000
PenaltyBreakTemplateDeclaration: 10
PenaltyExcessCharacter: 1000000
PenaltyReturnTypeOnItsOwnLine: 200
PointerAlignment: Right
RawStringFormats:
  - Language:        Cpp
    Delimiters:
      - cc
      - CC
      - cpp
      - Cpp
      - CPP
      - 'c++'
      - 'C++'
    CanonicalDelimiter: ''
    BasedOnStyle:    google
  - Language:        TextProto
    Delimiters:
      - pb
      - PB
      - proto
      - PROTO
    EnclosingFunctions:
      - EqualsProto
      - EquivToProto
      - PARSE_PARTIAL_TEXT_PROTO
      - PARSE_TEST_PROTO
      - PARSE_TEXT_PROTO
      - ParseTextOrDie
      - ParseTextProtoOrDie
    CanonicalDelimiter: ''
    BasedOnStyle:    google
ReflowComments:  true
SortUsingDeclarations: true
SpaceAfterCStyleCast: false
SpaceAfterTemplateKeyword: true
SpaceBeforeAssignmentOperators: true
SpaceBeforeCpp11BracedList: false
SpaceBeforeCtorInitializerColon: true
SpaceBeforeInheritanceColon: true
SpaceBeforeParens: ControlStatements
SpaceBeforeRangeBasedForLoopColon: true
SpaceInEmptyParentheses: false
SpacesBeforeTrailingComments: 2
SpacesInAngles:  false
SpacesInContainerLiterals: true
SpacesInCStyleCastParentheses: false
SpacesInParentheses: false
SpacesInSquareBrackets: false
Standard:        Auto
StatementMacros:
  - Q_UNUSED
  - QT_REQUIRE_VERSION
TabWidth:        2
UseTab:          Never
SortIncludes:    false
...



================================================
FILE: .gitee/PULL_REQUEST_TEMPLATE.md
================================================
<!--  Thanks for sending a pull request!  Here are some tips for you:

1) If this is your first time, please read our contributor guidelines: https://gitee.com/mindspore/mindspore/blob/master/CONTRIBUTING.md

2) If you want to contribute your code but don't know who will review and merge, please add label `mindspore-assistant` to the pull request, we will find and do it as soon as possible.
-->

**What type of PR is this?**
> Uncomment only one ` /kind <>` line, hit enter to put that in a new line, and remove leading whitespaces from that line:
>
> /kind bug
> /kind task
> /kind feature


**What does this PR do / why do we need it**:


**Which issue(s) this PR fixes**:
<!--
*Automatically closes linked issue when PR is merged.
Usage: `Fixes #<issue number>`, or `Fixes (paste link of issue)`.
-->
Fixes #

**Special notes for your reviewers**:




================================================
FILE: .gitignore
================================================
# MindSpore Serving
build/
mindspore_serving/lib
output
*.ir
.coverage*
htmlcov/
cov_output/

# Cmake files
CMakeFiles/
cmake_install.cmake
CMakeCache.txt
Makefile
cmake-build-debug

# Prerequisites
*.d

# Compiled Object files
*.slo
*.lo
*.o
*.obj

# Precompiled Headers
*.gch
*.pch

# Compiled Dynamic libraries
*.so
*.dylib
*.dll
*.so.*

# Fortran module files
*.mod
*.smod

# Compiled Static libraries
*.lai
*.la
*.a
*.lib

# Executables
*.exe
*.out
*.app

# Protocol buffers
*_pb2.py
*.pb.h
*.pb.cc
*.pb
*_grpc.py

# Editor
.vscode
.idea/

# Cquery
.cquery_cached_index/
compile_commands.json

# Ctags and cscope
tags
TAGS
CTAGS
GTAGS
GRTAGS
GSYMS
GPATH
cscope.*

# Python files
*__pycache__*
.pytest_cache

# Mac files
*.DS_Store

# Test results
test_temp_summary_event_file/
*.dot
*.dat
*.svg
*.perf
*.info
*.ckpt
*.shp
*.pkl
.clangd
mindspore_serving/version.py
mindspore_serving/default_config.py
mindspore_serving/.commit_id
tests/ut/python/tests/ca.crt
tests/ut/python/tests/ca.key
tests/ut/python/tests/ca.srl
tests/ut/python/tests/server.crt
tests/ut/python/tests/server.csr
tests/ut/python/tests/server.key
tests/ut/python/tests/client.crt
tests/ut/python/tests/client.csr
tests/ut/python/tests/client.key
tests/ut/python/tests/serving_logs/
tests/ut/python/tests/unix_socket_files/
tests/ut/python/tests/serving_python_ut_servables/


================================================
FILE: .gitmodules
================================================
[submodule "third_party/mindspore"]
	path = third_party/mindspore
	url = https://gitee.com/mindspore/mindspore.git


================================================
FILE: .jenkins/test/config/dependent_packages.yaml
================================================
mindspore:
  'mindspore/mindspore/version/202310/20231010/master_20231010144855_e5008bcfa07e3e6f3fa50f3ba0ac90175504dfd7/'


================================================
FILE: CMakeLists.txt
================================================
cmake_minimum_required(VERSION 3.14.1)
project(MindSpore_Serving)

if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU" AND CMAKE_CXX_COMPILER_VERSION VERSION_LESS 7.3.0)
    message(FATAL_ERROR "GCC version ${CMAKE_CXX_COMPILER_VERSION} must not be less than 7.3.0")
endif()

include(${CMAKE_SOURCE_DIR}/cmake/options.cmake)  # set compile options
include(${CMAKE_SOURCE_DIR}/cmake/check_requirements.cmake) # check require party, like OpenSSL
set(CMAKE_CXX_FLAGS_RELEASE "$ENV{CXXFLAGS} -O2 -Wl,--allow-shlib-undefined -DHALF_ENABLE_CPP11_USER_LITERALS=0 \
    -D_FORTIFY_SOURCE=2")
if(NOT CMAKE_SYSTEM_NAME MATCHES "Windows")
    add_compile_definitions(_GLIBCXX_USE_CXX11_ABI=0)
endif()

if(ENABLE_PYTHON)
    add_compile_definitions(ENABLE_PYTHON)
endif()

set(CMAKE_CXX_FLAGS_DEBUG "$ENV{CXXFLAGS} -O0 -g2 -ggdb -fno-inline-functions -fno-omit-frame-pointer \
    -Wl,--allow-shlib-undefined -D_LIBCPP_INLINE_VISIBILITY='' -D_LIBCPP_DISABLE_EXTERN_TEMPLATE=1 \
    -DHALF_ENABLE_CPP11_USER_LITERALS=0 -D_FORTIFY_SOURCE=2 -Wno-cpp")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -I/usr/local/include -std=c++17 -Werror -Wall -fPIC")
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)

set(PYBIND11_CPP_STANDARD -std=c++17)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OPTION_CXX_FLAGS}")

# compile third party: grpc, libevent, gtest, onnx
include(${CMAKE_SOURCE_DIR}/cmake/mind_expression.cmake)
include_directories(${CMAKE_CURRENT_SOURCE_DIR})
include_directories(${CMAKE_CURRENT_SOURCE_DIR}/third_party/securec/include)

# find python3 packages
include(${CMAKE_SOURCE_DIR}/cmake/dependency_utils.cmake)
find_package(Python3 3.7 COMPONENTS Interpreter Development)
if(Python3_FOUND)
    set(PYTHON_INCLUDE_DIRS "${Python3_INCLUDE_DIRS}")
    set(PYTHON_LIBRARIES "${Python3_LIBRARIES}")
    if(WIN32)
        if(Python3_DIR)
            message("Python3_DIR set already: " ${Python3_DIR})
        else()
            string(LENGTH ${PYTHON_LIBRARIES} PYTHON_LIBRARIES_LEN)
            string(LENGTH "libpythonxx.a" Python3_NAME_LEN)
            math(EXPR Python3_DIR_LEN ${PYTHON_LIBRARIES_LEN}-${Python3_NAME_LEN})
            string(SUBSTRING ${Python3_LIBRARIES} 0 ${Python3_DIR_LEN} Python3_DIR)
            message("Python3_DIR: " ${Python3_DIR})
        endif()
        link_directories(${Python3_DIR})
    endif()
else()
    find_python_package(py_inc py_lib)
    set(PYTHON_INCLUDE_DIRS "${py_inc}")
    set(PYTHON_LIBRARIES "${py_lib}")
endif()
message("PYTHON_INCLUDE_DIRS = ${PYTHON_INCLUDE_DIRS}")
message("PYTHON_LIBRARIES = ${PYTHON_LIBRARIES}")
include_directories(${PYTHON_INCLUDE_DIRS})

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fvisibility=hidden")
find_package(Threads REQUIRED)


if(ENABLE_TESTCASES)
    add_subdirectory(tests)
endif()

add_subdirectory(mindspore_serving)
include(cmake/package.cmake)


================================================
FILE: LICENSE
================================================
                                 Apache License
                           Version 2.0, January 2004
                        http://www.apache.org/licenses/

   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION

   1. Definitions.

      "License" shall mean the terms and conditions for use, reproduction,
      and distribution as defined by Sections 1 through 9 of this document.

      "Licensor" shall mean the copyright owner or entity authorized by
      the copyright owner that is granting the License.

      "Legal Entity" shall mean the union of the acting entity and all
      other entities that control, are controlled by, or are under common
      control with that entity. For the purposes of this definition,
      "control" means (i) the power, direct or indirect, to cause the
      direction or management of such entity, whether by contract or
      otherwise, or (ii) ownership of fifty percent (50%) or more of the
      outstanding shares, or (iii) beneficial ownership of such entity.

      "You" (or "Your") shall mean an individual or Legal Entity
      exercising permissions granted by this License.

      "Source" form shall mean the preferred form for making modifications,
      including but not limited to software source code, documentation
      source, and configuration files.

      "Object" form shall mean any form resulting from mechanical
      transformation or translation of a Source form, including but
      not limited to compiled object code, generated documentation,
      and conversions to other media types.

      "Work" shall mean the work of authorship, whether in Source or
      Object form, made available under the License, as indicated by a
      copyright notice that is included in or attached to the work
      (an example is provided in the Appendix below).

      "Derivative Works" shall mean any work, whether in Source or Object
      form, that is based on (or derived from) the Work and for which the
      editorial revisions, annotations, elaborations, or other modifications
      represent, as a whole, an original work of authorship. For the purposes
      of this License, Derivative Works shall not include works that remain
      separable from, or merely link (or bind by name) to the interfaces of,
      the Work and Derivative Works thereof.

      "Contribution" shall mean any work of authorship, including
      the original version of the Work and any modifications or additions
      to that Work or Derivative Works thereof, that is intentionally
      submitted to Licensor for inclusion in the Work by the copyright owner
      or by an individual or Legal Entity authorized to submit on behalf of
      the copyright owner. For the purposes of this definition, "submitted"
      means any form of electronic, verbal, or written communication sent
      to the Licensor or its representatives, including but not limited to
      communication on electronic mailing lists, source code control systems,
      and issue tracking systems that are managed by, or on behalf of, the
      Licensor for the purpose of discussing and improving the Work, but
      excluding communication that is conspicuously marked or otherwise
      designated in writing by the copyright owner as "Not a Contribution."

      "Contributor" shall mean Licensor and any individual or Legal Entity
      on behalf of whom a Contribution has been received by Licensor and
      subsequently incorporated within the Work.

   2. Grant of Copyright License. Subject to the terms and conditions of
      this License, each Contributor hereby grants to You a perpetual,
      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
      copyright license to reproduce, prepare Derivative Works of,
      publicly display, publicly perform, sublicense, and distribute the
      Work and such Derivative Works in Source or Object form.

   3. Grant of Patent License. Subject to the terms and conditions of
      this License, each Contributor hereby grants to You a perpetual,
      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
      (except as stated in this section) patent license to make, have made,
      use, offer to sell, sell, import, and otherwise transfer the Work,
      where such license applies only to those patent claims licensable
      by such Contributor that are necessarily infringed by their
      Contribution(s) alone or by combination of their Contribution(s)
      with the Work to which such Contribution(s) was submitted. If You
      institute patent litigation against any entity (including a
      cross-claim or counterclaim in a lawsuit) alleging that the Work
      or a Contribution incorporated within the Work constitutes direct
      or contributory patent infringement, then any patent licenses
      granted to You under this License for that Work shall terminate
      as of the date such litigation is filed.

   4. Redistribution. You may reproduce and distribute copies of the
      Work or Derivative Works thereof in any medium, with or without
      modifications, and in Source or Object form, provided that You
      meet the following conditions:

      (a) You must give any other recipients of the Work or
          Derivative Works a copy of this License; and

      (b) You must cause any modified files to carry prominent notices
          stating that You changed the files; and

      (c) You must retain, in the Source form of any Derivative Works
          that You distribute, all copyright, patent, trademark, and
          attribution notices from the Source form of the Work,
          excluding those notices that do not pertain to any part of
          the Derivative Works; and

      (d) If the Work includes a "NOTICE" text file as part of its
          distribution, then any Derivative Works that You distribute must
          include a readable copy of the attribution notices contained
          within such NOTICE file, excluding those notices that do not
          pertain to any part of the Derivative Works, in at least one
          of the following places: within a NOTICE text file distributed
          as part of the Derivative Works; within the Source form or
          documentation, if provided along with the Derivative Works; or,
          within a display generated by the Derivative Works, if and
          wherever such third-party notices normally appear. The contents
          of the NOTICE file are for informational purposes only and
          do not modify the License. You may add Your own attribution
          notices within Derivative Works that You distribute, alongside
          or as an addendum to the NOTICE text from the Work, provided
          that such additional attribution notices cannot be construed
          as modifying the License.

      You may add Your own copyright statement to Your modifications and
      may provide additional or different license terms and conditions
      for use, reproduction, or distribution of Your modifications, or
      for any such Derivative Works as a whole, provided Your use,
      reproduction, and distribution of the Work otherwise complies with
      the conditions stated in this License.

   5. Submission of Contributions. Unless You explicitly state otherwise,
      any Contribution intentionally submitted for inclusion in the Work
      by You to the Licensor shall be under the terms and conditions of
      this License, without any additional terms or conditions.
      Notwithstanding the above, nothing herein shall supersede or modify
      the terms of any separate license agreement you may have executed
      with Licensor regarding such Contributions.

   6. Trademarks. This License does not grant permission to use the trade
      names, trademarks, service marks, or product names of the Licensor,
      except as required for reasonable and customary use in describing the
      origin of the Work and reproducing the content of the NOTICE file.

   7. Disclaimer of Warranty. Unless required by applicable law or
      agreed to in writing, Licensor provides the Work (and each
      Contributor provides its Contributions) on an "AS IS" BASIS,
      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
      implied, including, without limitation, any warranties or conditions
      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
      PARTICULAR PURPOSE. You are solely responsible for determining the
      appropriateness of using or redistributing the Work and assume any
      risks associated with Your exercise of permissions under this License.

   8. Limitation of Liability. In no event and under no legal theory,
      whether in tort (including negligence), contract, or otherwise,
      unless required by applicable law (such as deliberate and grossly
      negligent acts) or agreed to in writing, shall any Contributor be
      liable to You for damages, including any direct, indirect, special,
      incidental, or consequential damages of any character arising as a
      result of this License or out of the use or inability to use the
      Work (including but not limited to damages for loss of goodwill,
      work stoppage, computer failure or malfunction, or any and all
      other commercial damages or losses), even if such Contributor
      has been advised of the possibility of such damages.

   9. Accepting Warranty or Additional Liability. While redistributing
      the Work or Derivative Works thereof, You may choose to offer,
      and charge a fee for, acceptance of support, warranty, indemnity,
      or other liability obligations and/or rights consistent with this
      License. However, in accepting such obligations, You may act only
      on Your own behalf and on Your sole responsibility, not on behalf
      of any other Contributor, and only if You agree to indemnify,
      defend, and hold each Contributor harmless for any liability
      incurred by, or claims asserted against, such Contributor by reason
      of your accepting any such warranty or additional liability.

   END OF TERMS AND CONDITIONS

   APPENDIX: How to apply the Apache License to your work.

      To apply the Apache License to your work, attach the following
      boilerplate notice, with the fields enclosed by brackets "[]"
      replaced with your own identifying information. (Don't include
      the brackets!)  The text should be enclosed in the appropriate
      comment syntax for the file format. We also recommend that a
      file or class name and description of purpose be included on the
      same "printed page" as the copyright notice for easier
      identification within third-party archives.

   Copyright [yyyy] [name of copyright owner]

   Licensed under the Apache License, Version 2.0 (the "License");
   you may not use this file except in compliance with the License.
   You may obtain a copy of the License at

       http://www.apache.org/licenses/LICENSE-2.0

   Unless required by applicable law or agreed to in writing, software
   distributed under the License is distributed on an "AS IS" BASIS,
   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   See the License for the specific language governing permissions and
   limitations under the License.


================================================
FILE: NOTICE
================================================
MindSpore Serving
Copyright 2020 Huawei Technologies Co., Ltd


================================================
FILE: OWNERS
================================================
approvers:
- zhaizhiqiang
- zhangxuetong
- hangangqiang


================================================
FILE: README.md
================================================
# MindSpore Serving

[查看中文](./README_CN.md)

<!-- TOC -->

- [MindSpore Serving](#mindspore-serving)
    - [Overview](#overview)
    - [Installation](#installation)
        - [Installing Serving](#installing-serving)
        - [Configuring Environment Variables](#configuring-environment-variables)
    - [Quick Start](#quick-start)
    - [Documents](#documents)
        - [Developer Guide](#developer-guide)
    - [Community](#community)
        - [Governance](#governance)
        - [Communication](#communication)
    - [Contributions](#contributions)
    - [Release Notes](#release-notes)
    - [License](#license)

<!-- /TOC -->

## Overview

MindSpore Serving is a lightweight and high-performance service module that helps MindSpore developers efficiently
deploy online inference services in the production environment. After completing model training on MindSpore, you can
export the MindSpore model and use MindSpore Serving to create an inference service for the model.

MindSpore Serving architecture:

<img src="docs/architecture.png" alt="MindSpore Architecture" width="600"/>

MindSpore Serving includes two parts: `Client` and `Server`. On a `Client` node, you can deliver inference service
commands through the gRPC or RESTful API. The `Server` consists of a `Main` node and one or more `Worker` nodes.
The `Main` node manages all `Worker` nodes and their model information, accepts user requests from `Client`s, and
distributes the requests to `Worker` nodes. `Servable` is deployed on a worker node, indicates a single model or a
combination of multiple models and can provide different services in various methods. `

On the server side, when [MindSpore](#https://www.mindspore.cn/) is used as the inference backend,, MindSpore Serving
supports the Ascend 910 and Nvidia GPU environments. When [MindSpore Lite](#https://www.mindspore.cn/lite) is
used as the inference backend, MindSpore Serving supports Ascend 310/310P, Nvidia GPU and CPU environments. Client` does
not depend on specific hardware platforms.

MindSpore Serving provides the following functions:

- gRPC and RESTful APIs on clients
- Pre-processing and post-processing of assembled models
- Batch. Multiple instance requests are split and combined to meet the `batch size` requirement of the model.
- Simple Python APIs on clients
- The multi-model combination is supported. The multi-model combination and single-model scenarios use the same set of
  interfaces.
- Distributed model inference

## Installation

For details about how to install and configure MindSpore Serving, see the [MindSpore Serving installation page](https://www.mindspore.cn/serving/docs/en/master/serving_install.html).

## Quick Start

[MindSpore-based Inference Service Deployment](https://www.mindspore.cn/serving/docs/en/master/serving_example.html) is
used to demonstrate how to use MindSpore Serving.

## Documents

### Developer Guide

- [gRPC-based MindSpore Serving Access](https://www.mindspore.cn/serving/docs/en/master/serving_grpc.html)
- [RESTful-based MindSpore Serving Access](https://www.mindspore.cn/serving/docs/en/master/serving_restful.html)
- [Services Provided Through Model Configuration](https://www.mindspore.cn/serving/docs/en/master/serving_model.html)
- [Services Composed of Multiple Models](https://www.mindspore.cn/serving/docs/en/master/serving_model.html#services-composed-of-multiple-models)
- [MindSpore Serving-based Distributed Inference Service Deployment](https://www.mindspore.cn/serving/docs/en/master/serving_distributed_example.html)

For more details about the installation guide, tutorials, and APIs,
see [MindSpore Python API](https://www.mindspore.cn/serving/docs/en/master/server.html).

## Community

### Governance

[MindSpore Open Governance](https://gitee.com/mindspore/community/blob/master/governance.md)

### Communication

- [MindSpore Slack](https://join.slack.com/t/mindspore/shared_invite/zt-dgk65rli-3ex4xvS4wHX7UDmsQmfu8w) developer
  communication platform

## Contributions

Welcome to MindSpore contribution.

## Release Notes

[RELEASE](RELEASE.md)

## License

[Apache License 2.0](LICENSE)


================================================
FILE: README_CN.md
================================================
# MindSpore Serving

[View English](./README.md)

<!-- TOC -->

- [MindSpore Serving](#mindspore-serving)
    - [概述](#概述)
    - [安装](#安装)
        - [安装Serving](#安装serving)
        - [配置环境变量](#配置环境变量)
    - [快速入门](#快速入门)
    - [文档](#文档)
        - [开发者教程](#开发者教程)
    - [社区](#社区)
        - [治理](#治理)
        - [交流](#交流)
    - [贡献](#贡献)
    - [版本说明](#版本说明)
    - [许可证](#许可证)

<!-- /TOC -->

## 概述

MindSpore Serving是一个轻量级、高性能的服务模块,旨在帮助MindSpore开发者在生产环境中高效部署在线推理服务。当用户使用MindSpore完成模型训练
后,导出MindSpore模型,即可使用MindSpore Serving创建该模型的推理服务。

MindSpore Serving架构:

<img src="docs/architecture.png" alt="MindSpore Architecture" width="600"/>

MindSpore Serving分为客户端、服务器两个部分。在客户端中,用户通过gRPC或RESTful接口向服务器下发推理服务命令。服务器包括主(`Main`)节点和
一个或多个工作(`Worker`)节点,主节点管理所有的工作节点及其部署的模型信息,接受客户端的用户请求,并将请求分发给工作节点。每个工作节点部署了
一个可服务对象,即`Servable`,这里的`Servable`可以是单个模型,也可以是多个模型的组合,一个`Servable`可以围绕相同的模型通过多种方法来提供
不同的服务。

对于服务端,当以[MindSpore](#https://www.mindspore.cn/)作为推理后端时,MindSpore Serving当前支持Ascend 910和Nvidia
GPU环境。当以[MindSpore Lite](#https://www.mindspore.cn/lite)作为推理后端时,MindSpore Serving当前支持Ascend 310/310P、Nvidia
GPU和CPU。客户端不依赖特定硬件平台。

MindSpore Serving提供以下功能:

- 支持客户端gRPC和RESTful接口。
- 支持组装模型的前处理和后处理。
- 支持batch功能,多实例请求会被拆分组合以满足模型`batch size`的需要。
- 提供客户端Python简易接口。
- 支持多模型组合,多模型组合和单模型场景使用相同的一套接口。
- 支持分布式模型推理功能。

## 安装

MindSpore Serving安装和配置可以参考[MindSpore Serving安装页面](https://www.mindspore.cn/serving/docs/zh-CN/master/serving_install.html)。

## 快速入门

以一个简单的[Add网络示例](https://www.mindspore.cn/serving/docs/zh-CN/master/serving_example.html),演示MindSpore Serving如何使用。

## 文档

### 开发者教程

- [基于gRPC接口访问MindSpore Serving服务](https://www.mindspore.cn/serving/docs/zh-CN/master/serving_grpc.html)
- [基于RESTful接口访问MindSpore Serving服务](https://www.mindspore.cn/serving/docs/zh-CN/master/serving_restful.html)
- [配置模型提供服务](https://www.mindspore.cn/serving/docs/zh-CN/master/serving_model.html)
- [配置多模型组合的服务](https://www.mindspore.cn/serving/docs/zh-CN/master/serving_model.html#id9)
- [基于MindSpore Serving部署分布式推理服务](https://www.mindspore.cn/serving/docs/zh-CN/master/serving_distributed_example.html)

有关安装指南、教程和API的更多详细信息,请参阅[用户文档](https://www.mindspore.cn/serving/docs/zh-CN/master/server.html)。

## 社区

### 治理

查看MindSpore如何进行[开放治理](https://gitee.com/mindspore/community/blob/master/governance.md)。

### 交流

- [MindSpore Slack](https://join.slack.com/t/mindspore/shared_invite/zt-dgk65rli-3ex4xvS4wHX7UDmsQmfu8w) 开发者交流平台。

## 贡献

欢迎参与贡献。

## 版本说明

版本说明请参阅[RELEASE](RELEASE.md)。

## 许可证

[Apache License 2.0](LICENSE)


================================================
FILE: RELEASE.md
================================================
# MindSpore Serving Release Notes

[查看中文](./RELEASE_CN.md)

## MindSpore Serving 2.0.2 Release Notes

### Major Features and Improvements

- Released based on MindSpore 2.2.0.
- Fix third-party OpenSSL vulnerabilities: CVE-2023-3446 and CVE-2023-4807.

### Contributors

Thanks goes to these wonderful people:

qinzheng, xuyongfei, zhangyinxia, zhoufeng.

Contributions of any kind are welcome!

## MindSpore Serving 2.0.0 Release Notes

### Major Features and Improvements

- Released based on MindSpore 2.0.0rc1.
- Fix third-party OpenSSL vulnerabilities: CVE-2022-4304, CVE-2022-4450, CVE-2022-4450, CVE-2023-0286, CVE-2023-0464, CVE-2023-0465 and CVE-2023-0466.

### Contributors

Thanks goes to these wonderful people:

qinzheng, xuyongfei, zhangyinxia, zhoufeng.

Contributions of any kind are welcome!

## MindSpore Serving 1.8.0 Release Notes

### Major Features and Improvements

- [STABLE] When deploying a large-scale model with parallel pipeline, Serving supports parallel pipeline processing of multiple inference instances.

### Contributors

Thanks goes to these wonderful people:

qinzheng, xuyongfei, zhangyinxia, zhoufeng.

Contributions of any kind are welcome!

## MindSpore Serving 1.7.0 Release Notes

### Major Features and Improvements

- [DEMO] Ascend 310P can be used as the inference device, for more detail see [MindSpore Serving backend](https://www.mindspore.cn/serving/docs/en/master/serving_install.html#installation).
- [DEMO] Support models of MindIR format when MindSpore Lite is used as the MindSpore Serving inference backend, for more detail see [MindSpore Serving backend](https://www.mindspore.cn/serving/docs/en/master/serving_install.html#installation).

#### Deprecations

##### Python API

- `AclOptions` and `GpuOptions` are removed from version 1.7.0, and use `AscendDeviceInfo` and `GPUDeviceInfo` instead.
- `register.declare_sevable` and `register.call_servable` are removed from version 1.7.0, and use `register.declare_model` and `register.add_stage` instead.
- `register.call_preprocess`, `register.call_preprocess_pipeline`, `register.call_postprocess` and `register.call_postprocess_pipeline` are removed from version 1.7.0, and use `register.add_stage` instead.

### Contributors

Thanks goes to these wonderful people:

qinzheng, xuyongfei, zhangyinxia, zhoufeng.

Contributions of any kind are welcome!

## MindSpore Serving 1.6.0 Release Notes

### Major Features and Improvements

- [STABLE] We can use existing interfaces(`decalre_model` and `add_stage`) that define single-model services to define
  multi-model composite services.
- [STABLE] When the number of occupied devices is fixed, additional worker processes(using parameter
  `num_parallel_workers`) are supported to accelerate Python functions such as preprocessing and postprocessing,
  improving device utilization.
- [STABLE] The interface `Model.call` is a stable feature, and can be used to define complex model invocation processes
  in the Serving server, such as looping and conditional branching.
- [STABLE] The new interfaces `Context`, `CPUDeviceInfo`, `GPUDeviceInfo`, `AscendDeviceInfo` are provided to set
  user-defined device information. The original interfaces `GpuOptions` and `AclOptions` are deprecated.
- [BETA] We support MindSpore Lite as the MindSpore Serving inference backend, for more detail see
  [MindSpore Serving backend](https://www.mindspore.cn/serving/docs/en/master/serving_install.html#installation).

### API Change

#### New features

##### Python API

###### Multi-model composite services

We can use existing interfaces(`decalre_model` and `add_stage`) that define single-model services to define
multi-model composite services. For more detail, see [Services Composed of Multiple Models](https://www.mindspore.cn/serving/docs/en/master/serving_model.html#services-composed-of-multiple-models).

```python
from mindspore_serving.server import register

add_model = register.declare_model(model_file="tensor_add.mindir", model_format="MindIR", with_batch_dim=False)
sub_model = register.declare_model(model_file="tensor_sub.mindir", model_format="MindIR", with_batch_dim=False)

@register.register_method(output_names=["y"])
def add_sub_only_model(x1, x2, x3):  # x1+x2-x3
    y = register.add_stage(add_model, x1, x2, outputs_count=1)
    y = register.add_stage(sub_model, y, x3, outputs_count=1)
    return y
```

###### Additional worker processes are supported to accelerate Python functions(preprocessing and postprocessing)

Parameter `num_parallel_workers` in class `ServableStartConfig`  is a stable feature. It's can be used to configure the
total number of workers. The number of workers occupying devices is determined by the length of parameter `device_ids`.
Additional worker processes use worker processes that occupy devices for model inference.  For more detail, see
[Multi-process Concurrency](https://www.mindspore.cn/serving/docs/en/master/serving_model.html#multi-process-concurrency).

```python
class ServableStartConfig:
    def __init__(self, servable_directory, servable_name, device_ids, version_number=0, device_type=None,
                 num_parallel_workers=0, dec_key=None, dec_mode='AES-GCM')
```

Start the serving server that contains the `resnet50` servable. The `resnet50` servable has four worker
processes(`num_parallel_workers`), one of which occupies the device(`device_ids`).

```python
import os
import sys
from mindspore_serving import server

def start():
    servable_dir = os.path.dirname(os.path.realpath(sys.argv[0]))
    # Total 4 worker, one worker occupy device 0, the model inference tasks of other workers are forwarded to the worker
    # that occupies the device.
    config = server.ServableStartConfig(servable_directory=servable_dir,
                                        servable_name="resnet50", device_ids=0,
                                        num_parallel_workers=4)
    server.start_servables(config)

    server.start_grpc_server("127.0.0.1:5500")
    server.start_restful_server("127.0.0.1:1500")

if __name__ == "__main__":
    start()
```

###### Model.call interface can be used to define complex model invocation processes

The interface `Model.call` is a stable feature, and can be used to define complex model invocation processes
in the Serving server, such as looping and conditional branching.

```python
from mindspore_serving.server import register

import numpy as np
from .tokenizer import create_tokenizer, padding, END_TOKEN

bert_model = register.declare_model(model_file="bert_poetry.mindir", model_format="MindIR")

def calc_new_token(probas):
  ...
  return new_token_id

tokenizer = create_tokenizer()

def generate_sentence(input_sentence):
  input_token_ids = tokenizer.encode(input_sentence)
  target_ids = []
  MAX_LEN = 64
  while len(input_token_ids) + len(target_ids) < MAX_LEN:
    input_ids = padding(np.array(input_token_ids + target_ids), length=128)
    pad_mask = (input_ids != 0).astype(np.float32)
    probas = bert_model.call(input_ids, pad_mask)  # call bert model to generate token id of new word
    new_token_id = calc_new_token(probas[len(input_token_ids)])
    target_ids.append(new_token_id)
    if new_token_id == END_TOKEN:
      break
  output_sentence = tokenizer.decode(input_token_ids + target_ids)
  return output_sentence


@register.register_method(output_names=["output_sentence"])
def predict(input_sentence):
  output_sentence = register.add_stage(generate_sentence, input_sentence, outputs_count=1)
  return output_sentence
```

#### Deprecations

##### Python API

- The parameter `options` in `register.declare_model` is deprecated from version 1.6.0 and will be removed in a future version, use parameter `context` instead.
- `AclOptions` and `GpuOptions` are deprecated from version 1.6.0 and will be removed in a future version, use `AscendDeviceInfo` and `GPUDeviceInfo` instead.

### Contributors

Thanks goes to these wonderful people:

qinzheng, xuyongfei, zhangyinxia, zhoufeng.

Contributions of any kind are welcome!

## MindSpore Serving 1.5.0 Release Notes

### Major Features and Improvements

- [STABLE] To support multi-model orchestration (to be released in version 1.6), a set of APIs (`decalre_model`
  and `add_stage`) is added. The new APIs will be used in single-model and multi-model scenarios. The old
  APIs(`register.declare_servable`,`call_servable`,`call_preprocess`,`call_postprocess`) used in single-model scenarios
  are deprecated.
- [BETA] When the number of occupied devices is fixed, additional worker processes are supported to accelerate Python
  functions such as preprocessing and postprocessing, improving device utilization.
- [BETA]`Model.call` interface is added to support invoking models in Python functions.

### API Change

#### API Incompatible Change

##### Python API

###### New set of APIs for single-model and multi-model scenarios

To support multiple models(will be officially released in version 1.6), a set of APIs (`decalre_model` and `add_stage`)
is added. The single-model and multi-model scenarios will use the same set of APIs.

New APIs are recommended in single-model scenarios. Old APIs (`declare_servable`,`call_servable`,`call_preprocess`,
`call_postprocess`) are deprecated.

<table>
<tr>
<td style="text-align:center"> 1.4 </td> <td style="text-align:center"> 1.5 </td>
</tr>
<tr>
<td>

```python
from mindspore_serving.server import register

register.declare_servable(servable_file="resnet.mindir",
                          model_format="MindIR")

def resnet_preprocess(image):
    ....

def resnet_postprocess(scores):
    ....

@register.register_method(output_names=["label"])
def predict(image):
    x = register.call_preprocess(resnet_preprocess, image)
    x = register.call_servable(x)
    x = register.call_postprocess(resnet_postprocess, x)
    return x
```

</td>
<td>

```python
from mindspore_serving.server import register

resnet_model = register.declare_model(model_file="resnet.mindir",
                                      model_format="MindIR")

def resnet_preprocess(image):
    ....

def resnet_postprocess(scores):
    ....

@register.register_method(output_names=["label"])
def predict(image):
    x = register.add_stage(resnet_preprocess, image, outputs_count=1)
    x = register.add_stage(resnet_model, x, outputs_count=1)
    x = register.add_stage(resnet_postprocess, x, outputs_count=1)
    return x
```

</td>
</tr>
</table>

#### New features

##### Python API

###### Additional worker processes are supported to accelerate Python functions(preprocessing and postprocessing)

Parameter `num_parallel_workers` is added to class `ServableStartConfig` to configure the total number of workers. The
number of workers occupying devices is determined by the length of parameter `device_ids`. Additional worker processes
use worker processes that occupy devices for model inference.

```python
class ServableStartConfig:
    def __init__(self, servable_directory, servable_name, device_ids, version_number=0, device_type=None,
                 num_parallel_workers=0, dec_key=None, dec_mode='AES-GCM')
```

Start the serving server that contains the `resnet50` servable. The `resnet50` servable has four worker
processes(`num_parallel_workers`), one of which occupies the device(`device_ids`).

```python
import os
import sys
from mindspore_serving import server

def start():
    servable_dir = os.path.dirname(os.path.realpath(sys.argv[0]))
    # Total 4 worker, one worker occupy device 0, the model inference tasks of other workers are forwarded to the worker
    # that occupies the device.
    config = server.ServableStartConfig(servable_directory=servable_dir,
                                        servable_name="resnet50", device_ids=0,
                                        num_parallel_workers=4)
    server.start_servables(config)

    server.start_grpc_server("127.0.0.1:5500")
    server.start_restful_server("127.0.0.1:1500")

if __name__ == "__main__":
    start()
```

###### Model.call interface is added to support invoking models in Python functions

```python
from mindspore_serving.server import register

add_model = register.declare_model(model_file="tensor_add.mindir",
                                   model_format="MindIR")

def add_func(x1, x2, x3, x4):
    instances = []
    instances.append((x1, x2))
    instances.append((x3, x4))
    output_instances = add_model.call(instances)  # for multi instances
    y1 = output_instances[0][0]  # instance 0 output 0
    y2 = output_instances[1][0]  # instance 1 output 0
    y = add_model.call(y1, y2)  # for single instance
    return y

@register.register_method(output_names=["y"])
def predict(x1, x2, x3, x4):
    y = register.add_stage(add_func, x1, x2, x3, x4, outputs_count=1)
    return y
```

#### Deprecations

##### Python API

- `register.declare_servable`,`call_servable`,`call_preprocess`,`call_postprocess`,`call_preprocess_pipeline`
  and`call_postprocess_pipeline` are now deprecated in favor of`register.declare_model` and`add_stage`, as shown above.
  Deprecated interfaces will be deleted in the future.
- Beta interfaces`PipelineServable` and`register_pipeline` introduced in version 1.3 will be deleted and replaced
  with`Model.call`.

### Contributors

Thanks goes to these wonderful people:

chenweifeng, qinzheng, xuyongfei, zhangyinxia, zhoufeng.

Contributions of any kind are welcome!

## MindSpore Serving 1.3.0 Release Notes

### Major Features and Improvements

- [STABLE] Enhances and simplifies the deployment and startup of single-chip models. Multiple models can be loaded by a
  single script. Each model can have multiple copies on multiple chips. Requests can be split and distributed to these
  copies for concurrent execution.
- [STABLE] The `master`+`worker` interface of the Serving server is changed to the `server` interface.
- [STABLE] The client and server support Unix Domain Socket-based gRPC communication.
- [STABLE] gRPC and RESTful interfaces support TLS/SSL security authentication.
- [STABLE] The MindIR encryption model is supported.
- [BETA] Incremental inference models consisting of multiple static graphs are supported, including single-card models
  and distributed models.

### API Change

#### API Incompatible Change

##### Python API

###### Enhances and simplifies the deployment and startup of single-chip models

Multiple models can be loaded by a single script. Each model can have multiple copies on multiple chips. Requests can be
split and distributed to these copies for concurrent execution.

Interface `worker.start_servable_in_master` that can start only a single servables is changed to
interface `server.start_servables` that can start multiple servables, and each servable can correspond to multiple
copies. In addition, related interface `server.ServableStartConfig` is added.

<table>
<tr>
<td style="text-align:center"> 1.2.x </td> <td style="text-align:center"> 1.3.0 </td>
</tr>
<tr>
<td>

```python
import os
import sys
from mindspore_serving import master
from mindspore_serving import worker

def start():
    servable_dir = os.path.dirname(os.path.realpath(sys.argv[0]))
    # deploy model add on device 0
    worker.start_servable_in_master(servable_dir, "add", device_id=0)

    master.start_grpc_server("127.0.0.1", 5500)
    master.start_restful_server("127.0.0.1", 1500)

if __name__ == "__main__":
    start()
```

</td>
<td>

```python
import os
import sys
from mindspore_serving import server

def start():
    servable_dir = os.path.dirname(os.path.realpath(sys.argv[0]))
    # deploy model add on devices 0 and 1
    add_config = server.ServableStartConfig(servable_directory=servable_dir,
                                            servable_name="add",
                                            device_ids=(0, 1))
    # deploy model resnet50 on devices 2 and 3
    resnet50_config = server.ServableStartConfig(servable_directory=servable_dir,
                                                 servable_name="resnet50 ",
                                                 device_ids=(2, 3))
    server.start_servables(servable_configs=(add_config, resnet50_config))

    server.start_grpc_server(address="127.0.0.1:5500")
    server.start_restful_server(address="127.0.0.1:1500")

if __name__ == "__main__":
    start()
```

</td>
</tr>
</table>

###### `mindspore_serving.worker.register` is updated to `mindspore_serving.server.register`

<table>
<tr>
<td style="text-align:center"> 1.2.x </td> <td style="text-align:center"> 1.3.0 </td>
</tr>
<tr>
<td>

```python
from mindspore_serving.worker import register
```

</td>
<td>

```python
from mindspore_serving.server import register
```

</td>
</tr>
</table>

###### The gRPC and RESTful startup interfaces are updated. The namespace is changed from master to server, and the input parameters `ip` and `port` are changed to `address` only

<table>
<tr>
<td style="text-align:center"> 1.2.x </td> <td style="text-align:center"> 1.3.0 </td>
</tr>
<tr>
<td>

```python
from mindspore_serving import master

master.start_grpc_server("127.0.0.1", 5500)
master.start_restful_server("127.0.0.1", 1500)
master.stop()
```

</td>
<td>

```python
from mindspore_serving import server

server.start_grpc_server("127.0.0.1:5500")
server.start_restful_server("127.0.0.1:1500")
server.stop()
```

</td>
</tr>
</table>

###### The name of the distributed interface function is simplified, and the namespace is changed from `worker` to `server`

In `servable_config.py` of distributed model:

<table>
<tr>
<td style="text-align:center"> 1.2.x </td> <td style="text-align:center"> 1.3.0 </td>
</tr>
<tr>
<td>

```python
from mindspore_serving.worker import distributed

distributed.declare_distributed_servable(
    rank_size=8, stage_size=1, with_batch_dim=False)
```

</td>
<td>

```python
from mindspore_serving.server import distributed

distributed.declare_servable(
    rank_size=8, stage_size=1, with_batch_dim=False)
```

</td>
</tr>
</table>

In startup script of distributed model:

<table>
<tr>
<td style="text-align:center"> 1.2.x </td> <td style="text-align:center"> 1.3.0 </td>
</tr>
<tr>
<td>

```python
import os
import sys
from mindspore_serving import master
from mindspore_serving.worker import distributed

def start():
    servable_dir = os.path.dirname(os.path.realpath(sys.argv[0]))
    distributed.start_distributed_servable_in_master(
        servable_dir, "matmul",
        rank_table_json_file="rank_table_8pcs.json",
        version_number=1,
        worker_ip="127.0.0.1", worker_port=6200)

    master.start_grpc_server("127.0.0.1", 5500)
    master.start_restful_server("127.0.0.1", 1500)

if __name__ == "__main__":
    start()
```

</td>
<td>

```python
import os
import sys
from mindspore_serving import server
from mindspore_serving.server import distributed

def start():
    servable_dir = os.path.dirname(os.path.realpath(sys.argv[0]))
    distributed.start_servable(
        servable_dir, "matmul",
        rank_table_json_file="rank_table_8pcs.json",
        version_number=1,
        distributed_address="127.0.0.1:6200")

    server.start_grpc_server("127.0.0.1:5500")
    server.start_restful_server("127.0.0.1:1500")

if __name__ == "__main__":
    start()
```

</td>
</tr>
</table>

In agent startup script of distributed model:

<table>
<tr>
<td style="text-align:center"> 1.2.x </td> <td style="text-align:center"> 1.3.0 </td>
</tr>
<tr>
<td>

```python
from mindspore_serving.worker import distributed

def start_agents():
    """Start all the worker agents in current machine"""
    model_files = []
    group_configs = []
    for i in range(8):
        model_files.append(f"model/device{i}/matmul.mindir")
        group_configs.append(f"model/device{i}/group_config.pb")

    distributed.startup_worker_agents(
        worker_ip="127.0.0.1", worker_port=6200,
        model_files=model_files,
        group_config_files=group_configs)

if __name__ == '__main__':
    start_agents()
```

</td>
<td>

```python
from mindspore_serving.server import distributed

def start_agents():
    """Start all the agents in current machine"""
    model_files = []
    group_configs = []
    for i in range(8):
        model_files.append(f"model/device{i}/matmul.mindir")
        group_configs.append(f"model/device{i}/group_config.pb")

    distributed.startup_agents(
        distributed_address="127.0.0.1:6200",
        model_files=model_files,
        group_config_files=group_configs)

if __name__ == '__main__':
    start_agents()
```

</td>
</tr>
</table>

###### The input parameters `ip`+`port` of the gRPC client are changed to `address`

In addition to the {ip}:{port} address format, the Unix Domain Socket in the unix:{unix_domain_file_path} format is
supported.

<table>
<tr>
<td style="text-align:center"> 1.2.x </td> <td style="text-align:center"> 1.3.0 </td>
</tr>
<tr>
<td>

```python
import numpy as np
from mindspore_serving.client import Client

def run_add_cast():
    """invoke servable add method add_cast"""
    client = Client("localhost", 5500, "add", "add_cast")
    instances = []
    x1 = np.ones((2, 2), np.int32)
    x2 = np.ones((2, 2), np.int32)
    instances.append({"x1": x1, "x2": x2})
    result = client.infer(instances)
    print(result)

if __name__ == '__main__':
    run_add_cast()
```

</td>
<td>

```python
import numpy as np
from mindspore_serving.client import Client

def run_add_cast():
    """invoke servable add method add_cast"""
    client = Client("127.0.0.1:5500", "add", "add_cast")
    instances = []
    x1 = np.ones((2, 2), np.int32)
    x2 = np.ones((2, 2), np.int32)
    instances.append({"x1": x1, "x2": x2})
    result = client.infer(instances)
    print(result)

if __name__ == '__main__':
    run_add_cast()
```

</td>
</tr>
</table>

#### New features

##### Python API

###### Support Unix Domain Socket

The Serving server:

```python
import os
import sys
from mindspore_serving import server


def start():
    servable_dir = os.path.dirname(os.path.realpath(sys.argv[0]))
    servable_config = server.ServableStartConfig(servable_directory=servable_dir, servable_name="resnet50",
                                                 device_ids=(0, 1))
    server.start_servables(servable_configs=servable_config)
    server.start_grpc_server(address="unix:/tmp/serving_resnet50_test_temp_file")


if __name__ == "__main__":
    start()
```

The Serving client:

```python
import os
from mindspore_serving.client import Client


def run_classify_top1():
    client = Client("unix:/tmp/serving_resnet50_test_temp_file", "resnet50", "classify_top1")
    instances = []
    for path, _, file_list in os.walk("./test_image/"):
        for file_name in file_list:
            image_file = os.path.join(path, file_name)
            print(image_file)
            with open(image_file, "rb") as fp:
                instances.append({"image": fp.read()})
    result = client.infer(instances)
    print(result)


if __name__ == '__main__':
    run_classify_top1()
```

###### Support SSL/TLS

The Serving server:

```python
import os
import sys
from mindspore_serving import server


def start():
    servable_dir = os.path.dirname(os.path.realpath(sys.argv[0]))
    servable_config = server.ServableStartConfig(servable_directory=servable_dir, servable_name="add",
                                                 device_ids=(0, 1))
    server.start_servables(servable_configs=servable_config)
    ssl_config = server.SSLConfig(certificate="server.crt", private_key="server.key", custom_ca=None,
                                  verify_client=False)
    server.start_grpc_server(address="127.0.0.1:5500", ssl_config=ssl_config)
    server.start_restful_server(address="127.0.0.1:1500", ssl_config=ssl_config)


if __name__ == "__main__":
    start()
```

The gRPC Serving client:

```python
from mindspore_serving.client import Client
from mindspore_serving.client import SSLConfig
import numpy as np


def run_add_common():
    """invoke Servable add method add_common"""
    ssl_config = SSLConfig(custom_ca="ca.crt")
    client = Client("localhost:5500", "add", "add_common", ssl_config=ssl_config)
    instances = []

    # instance 1
    x1 = np.asarray([[1, 1], [1, 1]]).astype(np.float32)
    x2 = np.asarray([[1, 1], [1, 1]]).astype(np.float32)
    instances.append({"x1": x1, "x2": x2})

    result = client.infer(instances)
    print(result)


if __name__ == '__main__':
    run_add_common()
```

The RESTful client

```shell
>>> curl -X POST -d '{"instances":{"x1":[[1.0, 1.0], [1.0, 1.0]], "x2":[[1.0, 1.0], [1.0, 1.0]]}}' --insecure https://127.0.0.1:1500/model/add:add_common
{"instances":[{"y":[[2.0,2.0],[2.0,2.0]]}]}
```

###### Support encryption MindIR model

```python
# export model
import mindspore as ms

# define add network
# export encryption model
ms.export(add, ms.Tensor(x), ms.Tensor(y), file_name='tensor_add_enc', file_format='MINDIR',
          enc_key="asdfasdfasdfasgwegw12310".encode(), enc_mode='AES-GCM')
```

```python
# start Serving server
import os
import sys
from mindspore_serving import server


def start():
    servable_dir = os.path.dirname(os.path.realpath(sys.argv[0]))
    servable_config = server.ServableStartConfig(servable_directory=servable_dir, servable_name="add",
                                                 device_ids=(0, 1),
                                                 dec_key='asdfasdfasdfasgwegw12310'.encode(), dec_mode='AES-CBC')
    server.start_servables(servable_configs=servable_config)

    server.start_grpc_server(address="127.0.0.1:5500")
    server.start_restful_server(address="127.0.0.1:1500")


if __name__ == "__main__":
    start()
```

###### [BETA] Support incremental inference models consisting of multiple static graphs

A Incremental inference models can include a full input graph and an incremental input graph, and the Serving
orchestrates the two static graphs using a user-defined Python script. For more details, please refer
to [Serving pangu alpha](https://gitee.com/mindspore/models/tree/master/official/nlp/Pangu_alpha/serving_increment)
.

#### Deprecations

##### Python API

- `mindspore_serving.master` and `mindspore_serving.worker` are now deprecated in favor of `mindspore_serving.server`,
  as shown above. Deprecated interfaces will be deleted in the next iteration.

- The following interfaces are directly deleted. That is, workers of one serving server can no longer be deployed on
  othe machines. Users are no longer aware of workers at the interface layer.

```python
mindspore_serving.worker.start_servable
mindspore_serving.worker.distributed.start_distributed_servable
mindspore_serving.master.start_master_server
```

### Contributors

Thanks goes to these wonderful people:

chenweifeng, qinzheng, xuyongfei, zhangyinxia, zhoufeng.

Contributions of any kind are welcome!

## MindSpore Serving 1.2.0 Release Notes

### Major Features and Improvements

- [STABLE] Support distributed inference, it needs to cooperate with distributed training to export distributed models
  for super-large-scale neural network parameters(Ascend 910).
- [STABLE] Support GPU platform, Serving worker nodes can be deployer on Nvidia GPU, Ascend 310 and Ascend 910.
- This release is based on MindSpore version 1.2.0
- Support Python 3.8 and 3.9.

### API Change

#### API Incompatible Change

##### Python API

Support deployment of distributed model, refer
to [distributed inference tutorial](https://www.mindspore.cn/serving/docs/en/master/serving_distributed_example.html)
for related API.

#### Deprecations

##### Python API

### Bug Fixes

### Contributors

Thanks goes to these wonderful people:

chenweifeng, qinzheng, xujincai, xuyongfei, zhangyinxia, zhoufeng.

Contributions of any kind are welcome!

## MindSpore Serving 1.1.1 Release Notes

### Major Features and Improvements

- Adapts new C++ inference interface for MindSpore version 1.1.1.

### Bug fixes

- [BUGFIX] Fix bug in transforming result of type int16 in python Client.
- [BUGFIX] Fix bytes type misidentified as str type after python preprocess and postprocess.
- [BUGFIX] Fix bug releasing C++ tensor data when it's wrapped as numpy object sometimes.
- [BUGFIX] Update RuntimeError to warning log when check Ascend environment failed.

## MindSpore Serving 1.1.0 Release Notes

### Major Features and Improvements

- [STABLE] Support gRPC and RESTful API.
- [STABLE] Support simple Python API for Client and Server.
- [STABLE] Support Model configuration,User can customize preprocessing & postprocessing for model.
- [STABLE] Support multiple models,Multiple models can run simultaneously.
- [STABLE] Support Model batching,Multiple instances will be split and combined to meet the batch size requirements of
  the model.
- This release is based on MindSpore version 1.1.0

### Bug Fixes

### Contributors


================================================
FILE: RELEASE_CN.md
================================================
# MindSpore Serving Release Notes

[View English](./RELEASE.md)

## MindSpore Serving 2.0.2 Release Notes

### 主要特性和增强

- 配套MindSpore 2.2.0版本接口。
- 修复第三方库OpenSSL漏洞CVE-2023-3446、CVE-2023-4807。

### 贡献者

感谢以下人员做出的贡献:

qinzheng, xuyongfei, zhangyinxia, zhoufeng.

欢迎以任何形式对项目提供贡献!

## MindSpore Serving 2.0.0 Release Notes

### 主要特性和增强

- 配套MindSpore 2.0.0rc1版本接口。
- 修复第三方库OpenSSL漏洞CVE-2022-4304、CVE-2022-4450、CVE-2022-4450、CVE-2023-0286、CVE-2023-0464、CVE-2023-0465、CVE-2023-0466。

### 贡献者

感谢以下人员做出的贡献:

qinzheng, xuyongfei, zhangyinxia, zhoufeng.

欢迎以任何形式对项目提供贡献!

## MindSpore Serving 1.8.0 Release Notes

### 主要特性和增强

- [STABLE] Serving部署流水线并行的大模型时,支持流水线并行处理多个推理实例。

### 贡献者

感谢以下人员做出的贡献:

qinzheng, xuyongfei, zhangyinxia, zhoufeng.

欢迎以任何形式对项目提供贡献!

## MindSpore Serving 1.7.0 Release Notes

### 主要特性和增强

- [DEMO] Ascend 310P可以作为MindSpore Serving的硬件后端,详情可参考[MindSpore Serving后端](https://www.mindspore.cn/serving/docs/zh-CN/master/serving_install.html#installation)。
- [DEMO] MindSpore Lite作为MindSpore Serving推理后端时,支持MindIR模型格式,详情可参考[MindSpore Serving后端](https://www.mindspore.cn/serving/docs/zh-CN/master/serving_install.html#installation)。

#### 不建议使用

##### Python API

- `AclOptions`和 `GpuOptions`从1.7.0版本开始被移除,使用 `AscendDeviceInfo`和 `GPUDeviceInfo`替代。
- `register.declare_sevable`和 `register.call_servable`从1.7.0版本开始被移除,使用 `register.declare_model`和 `register.add_stage`替代。
- `register.call_preprocess`,`register.call_preprocess_pipeline`,`register.call_postprocess`和 `register.call_postprocess_pipeline`从1.7.0版本开始被移除,使用 `register.add_stage`替代。

### 贡献者

感谢以下人员做出的贡献:

qinzheng, xuyongfei, zhangyinxia, zhoufeng.

欢迎以任何形式对项目提供贡献!


================================================
FILE: Third_Party_Open_Source_Software_Notice
================================================
OPEN SOURCE SOFTWARE NOTICE

Please note we provide an open source software notice along with this product and/or this product firmware (in the following just “this product”). The open source software licenses are granted by the respective right holders. And the open source licenses prevail all other license information with regard to the respective open source software contained in the product, including but not limited to End User Software Licensing Agreement. This notice is provided on behalf of Huawei Technologies Co. Ltd. and any of its local subsidiaries which may have provided this product to you in your local country. 

Warranty Disclaimer    
THE OPEN SOURCE SOFTWARE IN THIS PRODUCT IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT WITHOUT ANY WARRANTY, WITHOUT EVEN THE IMPLIED WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE APPLICABLE LICENSES FOR MORE DETAILS.

Copyright Notice and License Texts 

Software: Eigen 3.3.7
Copyright notice: 
Copyright (C) 2014 Benoit Steiner <benoit.steiner.goog@gmail.com>
Copyright (C) 2013 Christian Seiler <christian@iwakd.de>
Copyright (C) 2015 Eugene Brevdo <ebrevdo@gmail.com>
Copyright (C) 2014-2015 Benoit Steiner <benoit.steiner.goog@gmail.com>
Copyright (C) 2015 Navdeep Jaitly <ndjaitly@google.com>
Copyright (C) 2014 Eric Martin <eric@ericmart.in>
Copyright (C) 2015 Benoit Steiner <benoit.steiner.goog@gmail.com>
Copyright (C) 2016 Rasmus Munk Larsen <rmlarsen@google.com>
Copyright (C) 2016 Benoit Steiner <benoit.steiner.goog@gmail.com>
Copyright (C) 2015 Jianwei Cui <thucjw@gmail.com>
Copyright (C) 2016 Eugene Brevdo <ebrevdo@gmail.com>
Copyright (C) 2015 Ke Yang <yangke@gmail.com>
Copyright (C) 2016 Mehdi Goli, Codeplay Software Ltd <eigen@codeplay.com>
Copyright (C) 2014 Navdeep Jaitly <ndjaitly@google.com>
Copyright (C) 2016 Igor Babuschkin <igor@babuschk.in>
Copyright (C) 2016 Dmitry Vyukov <dvyukov@google.com>
Copyright (C) EDF R&D,  lun sep 30 14:23:30 CEST 2002
Copyright (C) 2008 Gael Guennebaud <gael.guennebaud@inria.fr>
Copyright (C) EDF R&D,  lun sep 30 14:23:31 CEST 2002
Copyright (C) 2008-2010 Gael Guennebaud <gael.guennebaud@inria.fr>
Copyright (C) 2008-2016 Gael Guennebaud <gael.guennebaud@inria.fr>
Copyright (C) 2009 Mark Borgerding mark a borgerding net
Copyright (C) 2008-2009 Gael Guennebaud <gael.guennebaud@inria.fr>
Copyright (C) 2013 Desire Nuentsa <desire.nuentsawakam@inria.fr>
Copyright (C) 2013 Gael Guennebaud <gael.guennebaud@inria.fr>
Copyright (C) 2011 Gael Guennebaud <gael.guennebaud@inria.fr>
Copyright (C) 2012 Desire NUENTSA WAKAM <desire.nuentsawakam@inria.fr>
Copyright (C) 2009 Benoit Jacob <jacob.benoit.1@gmail.com>
Copyright (C) 2009 Gael Guennebaud <gael.guennebaud@inria.fr>
Copyright (C) 2006-2010 Benoit Jacob <jacob.benoit.1@gmail.com>
Copyright (C) 2006-2008 Benoit Jacob <jacob.benoit.1@gmail.com>
Copyright (C) EDF R&D,  lun sep 30 14:23:28 CEST 2002
Copyright (C) 2010 Manuel Yguel <manuel.yguel@gmail.com>
Copyright (C) 2009 Claire Maurice
Copyright (C) 2010,2012 Jitse Niesen <jitse@maths.leeds.ac.uk>
Copyright (c) 2011, Intel Corporation. All rights reserved.
Copyright (C) 2012-2016 Gael Guennebaud <gael.guennebaud@inria.fr>
Copyright (C) 2016 Tobias Wood <tobias@spinicist.org.uk>
Copyright (C) 2010 Jitse Niesen <jitse@maths.leeds.ac.uk>
Copyright (C) 2012 Alexey Korepanov <kaikaikai@yandex.ru>
Copyright (C) 2010 Vincent Lejeune
Copyright (C) 2010 Gael Guennebaud <gael.guennebaud@inria.fr>
Copyright (C) 2010 Benoit Jacob <jacob.benoit.1@gmail.com>
Copyright (C) 2017 Gael Guennebaud <gael.guennebaud@inria.fr>
Copyright (C) 2009-2010 Gael Guennebaud <gael.guennebaud@inria.fr>
Copyright (C) 2008 Benoit Jacob <jacob.benoit.1@gmail.com>
Copyright (C) 2009 Mathieu Gautier <mathieu.gautier@cea.fr>
Copyright (C) 2010 Hauke Heibel <hauke.heibel@gmail.com>
Copyright (C) 2009 Hauke Heibel <hauke.heibel@gmail.com>
Copyright (C) 2008-2015 Gael Guennebaud <gael.guennebaud@inria.fr>
Copyright (C) EDF R&D,  mar déc 3 18:59:36 CET 2002
Copyright (C) EDF R&D,  lun sep 30 14:23:17 CEST 2002
Copyright (C) EDF R&D,  mar déc 3 18:59:35 CET 2002
Copyright (C) 2016 Konstantinos Margaritis <markos@freevec.org>
Copyright (C) 2007 Julien Pommier
Copyright (C) 2008-2011 Gael Guennebaud <gael.guennebaud@inria.fr>
Copyright (C) 2009 Keir Mierle <mierle@gmail.com>
Copyright (C) 2011 Timothy E. Holy <tim.holy@gmail.com >
Copyright (C) 2009 Hauke Heibel <hauke.heibel@googlemail.com>
Copyright (C) 2012 Desire Nuentsa <desire.nuentsawakam@inria.fr>
Copyright (C) 2014 Gael Guennebaud <gael.guennebaud@inria.fr>
Copyright (C) 2015 Tal Hadad <talhd@hotmail.com>
@copyright (c) 2009-2014 The University of Tennessee and The University of Tennessee Research Foundation.
@copyright (c) 2012-2016 Inria. All rights reserved.
@copyright (c) 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria, Univ. Bordeaux. All rights reserved.
Copyright 2007-2009 Kitware, Inc.
Copyright 2012-2013 Inria
Copyright 2012-2013 Emmanuel Agullo
Copyright 2012-2013 Mathieu Faverge
Copyright 2012      Cedric Castagnede
Copyright 2013-2016 Florent Pruvost
Copyright 2016 Codeplay Software Ltd.
Copyright (c) 2006, 2007 Montel Laurent, <montel@kde.org>
Copyright (c) 2008, 2009 Gael Guennebaud, <g.gael@free.fr>
Copyright (c) 2009 Boudewijn Rempt <boud@valdyas.org>
@copyright (c) 2012-2014 Inria. All rights reserved.
Copyright 2013      Florent Pruvost
Copyright (c) 2010 Jitse Niesen, <jitse@maths.leeds.ac.uk>
Copyright (C) 2009 Benjamin Schindler <bschindler@inf.ethz.ch>
Copyright (C) 2016 Pedro Gonnet (pedro.gonnet@gmail.com)
Copyright (C) 2016 Benoit Steiner (benoit.steiner.goog@gmail.com)
Copyright (C) 2009 Thomas Capricelli <orzel@freehackers.org>
Copyright (C) 2012-2013 Desire Nuentsa <desire.nuentsawakam@inria.fr>
Copyright (C) 2012-2014 Gael Guennebaud <gael.guennebaud@inria.fr>
Copyright Jorge More - Argonne National Laboratory
Copyright Burt Garbow - Argonne National Laboratory
Copyright Ken Hillstrom - Argonne National Laboratory
Copyright (C) 2009 Ilya Baran <ibaran@mit.edu>
Copyright (c) 2010, Intel Corp.
Copyright (C) 2009-2010 Benoit Jacob <jacob.benoit.1@gmail.com>
Copyright (C) 2013-2016 Gael Guennebaud <gael.guennebaud@inria.fr>
Copyright (C) 2013 Gauthier Brun <brun.gauthier@gmail.com>
Copyright (C) 2013 Nicolas Carre <nicolas.carre@ensimag.fr>
Copyright (C) 2013 Jean Ceccato <jean.ceccato@ensimag.fr>
Copyright (C) 2013 Pierre Zoppitelli <pierre.zoppitelli@ensimag.fr>
Copyright (C) 2013 Jitse Niesen <jitse@maths.leeds.ac.uk>
Copyright (C) 2014-2017 Gael Guennebaud <gael.guennebaud@inria.fr>
Copyright (C) 2013-2014 Gael Guennebaud <gael.guennebaud@inria.fr>
Copyright (C) 2011-2014 Gael Guennebaud <gael.guennebaud@inria.fr>
Copyright (C) 2012 Désiré Nuentsa-Wakam <desire.nuentsawakam@inria.fr>
Copyright (C) 2015 Gael Guennebaud <gael.guennebaud@inria.fr>
Copyright (C) 2012 Gael Guennebaud <gael.guennebaud@inria.fr>
Copyright (c) 1994 by Xerox Corporation.  All rights reserved.
Copyright (C) 2001 Intel Corporation
Copyright (c) 2001 Intel Corporation.
Copyright (C) 2009 Gael Guennebaud <g.gael@free.fr>
Copyright (C) 2013 Christoph Hertzberg <chtz@informatik.uni-bremen.de>
Copyright (C) 2015 Eugene Brevdo <ebrevdo@google.com>
Copyright (C) 2016
Mehdi Goli    Codeplay Software Ltd.
Ralph Potter  Codeplay Software Ltd.
Luke Iwanski  Codeplay Software Ltd.
Copyright (C) 2014 Jianwei Cui <thucjw@gmail.com>
Copyright (C) 2015 Vijay Vasudevan <vrv@google.com>
Copyright (C) 2015
Mehdi Goli    Codeplay Software Ltd.
Ralph Potter  Codeplay Software Ltd.
Luke Iwanski  Codeplay Software Ltd.
Copyright (C) 2014 Navdeep Jaitly <ndjaitly@google.com and Benoit Steiner <benoit.steiner.goog@gmail.com>
Copyright (C) 2011 Gael Guennebaud <g.gael@free.fr>
Copyright (C) 2012 desire Nuentsa <desire.nuentsawakam@inria.fr
Copyright (C) 2008 Gael Guennebaud <g.gael@free.fr>
Copyright (C) 2012 Kolja Brix <brix@igpm.rwth-aaachen.de>
Copyright (C) 2011 Kolja Brix <brix@igpm.rwth-aachen.de>
Copyright (C) 2011 Andreas Platen <andiplaten@gmx.de>
Copyright (C) 2012 Chen-Pang He <jdh8@ms63.hinet.net>
Copyright (C) 2009 Jitse Niesen <jitse@maths.leeds.ac.uk>
Copyright (C) 2009-2011 Jitse Niesen <jitse@maths.leeds.ac.uk>
Copyright (C) 2012, 2013 Chen-Pang He <jdh8@ms63.hinet.net>
Copyright (C) 2011 Jitse Niesen <jitse@maths.leeds.ac.uk>
Copyright (C) 2012 Giacomo Po <gpo@ucla.edu>
Copyright (C) 2008-2010 Gael Guennebaud <g.gael@free.fr>
Copyright (C) 2016 Gael Guennebaud <gael.guennebaud@inria.fr>
Copyright (C) 2010-2011 Hauke Heibel <heibel@gmail.com>
Copyright (C) 2012 David Harmon <dharmon@gmail.com>
Copyright (C) 2007-2009 Benoit Jacob <jacob.benoit.1@gmail.com>
Copyright (C) 2007-2010 Benoit Jacob <jacob.benoit.1@gmail.com>
Copyright (C) 2008-2009 Benoit Jacob <jacob.benoit.1@gmail.com>
Copyright (C) 2009 Kenneth Riddile <kfriddile@yahoo.com>
Copyright (C) 2010 Thomas Capricelli <orzel@freehackers.org>
Copyright (C) 2013 Pavel Holoborodko <pavel@holoborodko.com>
Copyright (C) EDF R&D,  lun sep 30 14:23:16 CEST 2002
Copyright (C) EDF R&D,  mar déc 3 18:59:37 CET 2002
Copyright (C) 2006-2009 Benoit Jacob <jacob.benoit.1@gmail.com>
Copyright (C) 2008-2010 Benoit Jacob <jacob.benoit.1@gmail.com>
Copyright (c) 2008-2015 Pavel Holoborodko
Copyright (C) 20010-2011 Hauke Heibel <hauke.heibel@gmail.com>
Copyright (c) 2006, Montel Laurent, <montel@kde.org>
Copyright (c) 2007, Allen Winter, <winter@kde.org>
Copyright (c) 2007, Alexander Neundorf, <neundorf@kde.org>
Copyright (C) 2008 Guillaume Saupin <guillaume.saupin@cea.fr>
Copyright (C) 2008-2009 Guillaume Saupin <guillaume.saupin@cea.fr>
Copyright (C) 2009 Guillaume Saupin <guillaume.saupin@cea.fr>
Copyright (C) 2010-2016 Konstantinos Margaritis <markos@freevec.org>
Copyright (C) 2008-2016 Konstantinos Margaritis <markos@freevec.org>
Copyright (C) 2014 Benoit Steiner (benoit.steiner.goog@gmail.com)
Copyright (C) 2014 Pedro Gonnet (pedro.gonnet@gmail.com)
Copyright (c) Fabian Giesen, 2016
Copyright (C) 2010 Konstantinos Margaritis <markos@freevec.org>
Copyright (C) 2007 Michael Olbrich <michael.olbrich@gmx.net>
Copyright (C) 2011 Benoit Jacob <jacob.benoit.1@gmail.com>
Copyright (C) 2011-2012 Jitse Niesen <jitse@maths.leeds.ac.uk>
Copyright (C) 2016 Rasmus Munk Larsen (rmlarsen@google.com)
Copyright (C) 2008-2014 Gael Guennebaud <gael.guennebaud@inria.fr>
Copyright (C) 2010-2013 Hauke Heibel <hauke.heibel@gmail.com>
Copyright (C) 2006-2008, 2010 Benoit Jacob <jacob.benoit.1@gmail.com>
Copyright (C) 2010-2016 Gael Guennebaud <gael.guennebaud@inria.fr>
Copyright (C) 2009-2015 Gael Guennebaud <gael.guennebaud@inria.fr>
Copyright (C) 2009 Ricard Marxer <email@ricardmarxer.com>
Copyright (C) 2009-2014 Gael Guennebaud <gael.guennebaud@inria.fr>
Copyright (C) 2010-2011 Gael Guennebaud <gael.guennebaud@inria.fr>
Copyright (C) 2009 Rohit Garg <rpg.314@gmail.com>
Copyright (c) 2006, Timothy A. Davis.
Copyright (c) 1998-2003 by the University of Florida.
Copyright (C) 2012  Désiré Nuentsa-Wakam <desire.nuentsawakam@inria.fr>
Copyright (C) 2008-2012 Gael Guennebaud <gael.guennebaud@inria.fr>
LDL Copyright (c) 2005 by Timothy A. Davis.  All Rights Reserved.
Copyright (C) 2010 Daniel Lowengrub <lowdanie@gmail.com>
Copyright (C) EDF R&D,  lun sep 30 14:23:20 CEST 2002
Copyright (C) EDF R&D,  lun sep 30 14:23:19 CEST 2002
Copyright (C) 2009, 2010, 2013 Jitse Niesen <jitse@maths.leeds.ac.uk>
Copyright (C) 2011, 2013 Chen-Pang He <jdh8@ms63.hinet.net>
Copyright (C) 2009-2011, 2013 Jitse Niesen <jitse@maths.leeds.ac.uk>
Copyright (C) 2011, 2013 Jitse Niesen <jitse@maths.leeds.ac.uk>
Copyright (C) 2011 Chen-Pang He <jdh8@ms63.hinet.net>
Copyright (C) 2010, 2013 Jitse Niesen <jitse@maths.leeds.ac.uk>
Copyright (C) 2010-2014 Gael Guennebaud <gael.guennebaud@inria.fr>
Copyright (C) 2012 The Android Open Source Project
(C) Desire NUENTSA WAKAM, INRIA
Copyright (C) EDF R&D,  lun sep 30 14:23:18 CEST 2002
Copyright (C) 2012 Keir Mierle <mierle@gmail.com>
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
Copyright (C) EDF R&D,  lun sep 30 14:23:23 CEST 2002
Copyright (C) EDF R&D,  lun sep 30 14:23:24 CEST 2002
Copyright (C) EDF R&D,  lun sep 30 14:23:27 CEST 2002
Copyright (C) 2007 Free Software Foundation, Inc. <http:fsf.org/>
Copyright (C) 1991, 1999 Free Software Foundation, Inc.
Copyright (C) 2015 Benoit Jacob <benoitjacob@google.com>
Geometric Tools, LLC Copyright (c) 1998-2010
Copyright (C) EDF R&D,  lun sep 30 14:23:15 CEST 2002
Copyright (C) 2002-2007 Yves Renard
Copyright (C) 2012, 2014 Kolja Brix <brix@igpm.rwth-aaachen.de>
Copyright (C) 1997-2001 Andrew Lumsdaine <lums@osl.iu.edu>  Lie-Quan Lee     <llee@osl.iu.edu>
Copyright (C) 2012 Desire NUENTSA WAKAM <desire.nuentsawakam@inria.fr
Copyright (C) 2015-2016 Gael Guennebaud <gael.guennebaud@inria.fr>
Copyright (C) 2013 Hauke Heibel <hauke.heibel@gmail.com>
Copyright (C) 2010-2011 Jitse Niesen <jitse@maths.leeds.ac.uk>
Intel Copyright (C) ....
Copyright (C) 2010-2017 Gael Guennebaud <gael.guennebaud@inria.fr>
Copyright (C) 20013 Gael Guennebaud <gael.guennebaud@inria.fr>
Copyright (C) 2008 Daniel Gomez Ferro <dgomezferro@gmail.com>
Copyright (C) 2013 Désiré Nuentsa-Wakam <desire.nuentsawakam@inria.fr>
Copyright (C) 2011-2015 Gael Guennebaud <gael.guennebaud@inria.fr>
Copyright (C) 20015 Gael Guennebaud <gael.guennebaud@inria.fr>
Copyright (C) 2014-2015 Gael Guennebaud <gael.guennebaud@inria.fr>


License: Mozilla Public License (MPL) V2.0

Mozilla Public License
Version 2.0
1. Definitions
1.1. “Contributor”
means each individual or legal entity that creates, contributes to the creation of, or owns Covered Software.
1.2. “Contributor Version”
means the combination of the Contributions of others (if any) used by a Contributor and that particular Contributor’s Contribution.
1.3. “Contribution”
means Covered Software of a particular Contributor.
1.4. “Covered Software”
means Source Code Form to which the initial Contributor has attached the notice in Exhibit A, the Executable Form of such Source Code Form, and Modifications of such Source Code Form, in each case including portions thereof.
1.5. “Incompatible With Secondary Licenses”
means
that the initial Contributor has attached the notice described in Exhibit B to the Covered Software; or
that the Covered Software was made available under the terms of version 1.1 or earlier of the License, but not also under the terms of a Secondary License.
1.6. “Executable Form”
means any form of the work other than Source Code Form.
1.7. “Larger Work”
means a work that combines Covered Software with other material, in a separate file or files, that is not Covered Software.
1.8. “License”
means this document.
1.9. “Licensable”
means having the right to grant, to the maximum extent possible, whether at the time of the initial grant or subsequently, any and all of the rights conveyed by this License.
1.10. “Modifications”
means any of the following:
any file in Source Code Form that results from an addition to, deletion from, or modification of the contents of Covered Software; or
any new file in Source Code Form that contains any Covered Software.
1.11. “Patent Claims” of a Contributor
means any patent claim(s), including without limitation, method, process, and apparatus claims, in any patent Licensable by such Contributor that would be infringed, but for the grant of the License, by the making, using, selling, offering for sale, having made, import, or transfer of either its Contributions or its Contributor Version.
1.12. “Secondary License”
means either the GNU General Public License, Version 2.0, the GNU Lesser General Public License, Version 2.1, the GNU Affero General Public License, Version 3.0, or any later versions of those licenses.
1.13. “Source Code Form”
means the form of the work preferred for making modifications.
1.14. “You” (or “Your”)
means an individual or a legal entity exercising rights under this License. For legal entities, “You” includes any entity that controls, is controlled by, or is under common control with You. For purposes of this definition, “control” means (a) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (b) ownership of more than fifty percent (50%) of the outstanding shares or beneficial ownership of such entity.
2. License Grants and Conditions
2.1. Grants
Each Contributor hereby grants You a world-wide, royalty-free, non-exclusive license:
under intellectual property rights (other than patent or trademark) Licensable by such Contributor to use, reproduce, make available, modify, display, perform, distribute, and otherwise exploit its Contributions, either on an unmodified basis, with Modifications, or as part of a Larger Work; and
under Patent Claims of such Contributor to make, use, sell, offer for sale, have made, import, and otherwise transfer either its Contributions or its Contributor Version.
2.2. Effective Date
The licenses granted in Section 2.1 with respect to any Contribution become effective for each Contribution on the date the Contributor first distributes such Contribution.
2.3. Limitations on Grant Scope
The licenses granted in this Section 2 are the only rights granted under this License. No additional rights or licenses will be implied from the distribution or licensing of Covered Software under this License. Notwithstanding Section 2.1(b) above, no patent license is granted by a Contributor:
for any code that a Contributor has removed from Covered Software; or
for infringements caused by: (i) Your and any other third party’s modifications of Covered Software, or (ii) the combination of its Contributions with other software (except as part of its Contributor Version); or
under Patent Claims infringed by Covered Software in the absence of its Contributions.
This License does not grant any rights in the trademarks, service marks, or logos of any Contributor (except as may be necessary to comply with the notice requirements in Section 3.4).
2.4. Subsequent Licenses
No Contributor makes additional grants as a result of Your choice to distribute the Covered Software under a subsequent version of this License (see Section 10.2) or under the terms of a Secondary License (if permitted under the terms of Section 3.3).
2.5. Representation
Each Contributor represents that the Contributor believes its Contributions are its original creation(s) or it has sufficient rights to grant the rights to its Contributions conveyed by this License.
2.6. Fair Use
This License is not intended to limit any rights You have under applicable copyright doctrines of fair use, fair dealing, or other equivalents.
2.7. Conditions
Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted in Section 2.1.
3. Responsibilities
3.1. Distribution of Source Form
All distribution of Covered Software in Source Code Form, including any Modifications that You create or to which You contribute, must be under the terms of this License. You must inform recipients that the Source Code Form of the Covered Software is governed by the terms of this License, and how they can obtain a copy of this License. You may not attempt to alter or restrict the recipients’ rights in the Source Code Form.
3.2. Distribution of Executable Form
If You distribute Covered Software in Executable Form then:
such Covered Software must also be made available in Source Code Form, as described in Section 3.1, and You must inform recipients of the Executable Form how they can obtain a copy of such Source Code Form by reasonable means in a timely manner, at a charge no more than the cost of distribution to the recipient; and
You may distribute such Executable Form under the terms of this License, or sublicense it under different terms, provided that the license for the Executable Form does not attempt to limit or alter the recipients’ rights in the Source Code Form under this License.
3.3. Distribution of a Larger Work
You may create and distribute a Larger Work under terms of Your choice, provided that You also comply with the requirements of this License for the Covered Software. If the Larger Work is a combination of Covered Software with a work governed by one or more Secondary Licenses, and the Covered Software is not Incompatible With Secondary Licenses, this License permits You to additionally distribute such Covered Software under the terms of such Secondary License(s), so that the recipient of the Larger Work may, at their option, further distribute the Covered Software under the terms of either this License or such Secondary License(s).
3.4. Notices
You may not remove or alter the substance of any license notices (including copyright notices, patent notices, disclaimers of warranty, or limitations of liability) contained within the Source Code Form of the Covered Software, except that You may alter any license notices to the extent required to remedy known factual inaccuracies.
3.5. Application of Additional Terms
You may choose to offer, and to charge a fee for, warranty, support, indemnity or liability obligations to one or more recipients of Covered Software. However, You may do so only on Your own behalf, and not on behalf of any Contributor. You must make it absolutely clear that any such warranty, support, indemnity, or liability obligation is offered by You alone, and You hereby agree to indemnify every Contributor for any liability incurred by such Contributor as a result of warranty, support, indemnity or liability terms You offer. You may include additional disclaimers of warranty and limitations of liability specific to any jurisdiction.
4. Inability to Comply Due to Statute or Regulation
If it is impossible for You to comply with any of the terms of this License with respect to some or all of the Covered Software due to statute, judicial order, or regulation then You must: (a) comply with the terms of this License to the maximum extent possible; and (b) describe the limitations and the code they affect. Such description must be placed in a text file included with all distributions of the Covered Software under this License. Except to the extent prohibited by statute or regulation, such description must be sufficiently detailed for a recipient of ordinary skill to be able to understand it.
5. Termination
5.1. The rights granted under this License will terminate automatically if You fail to comply with any of its terms. However, if You become compliant, then the rights granted under this License from a particular Contributor are reinstated (a) provisionally, unless and until such Contributor explicitly and finally terminates Your grants, and (b) on an ongoing basis, if such Contributor fails to notify You of the non-compliance by some reasonable means prior to 60 days after You have come back into compliance. Moreover, Your grants from a particular Contributor are reinstated on an ongoing basis if such Contributor notifies You of the non-compliance by some reasonable means, this is the first time You have received notice of non-compliance with this License from such Contributor, and You become compliant prior to 30 days after Your receipt of the notice.
5.2. If You initiate litigation against any entity by asserting a patent infringement claim (excluding declaratory judgment actions, counter-claims, and cross-claims) alleging that a Contributor Version directly or indirectly infringes any patent, then the rights granted to You by any and all Contributors for the Covered Software under Section 2.1 of this License shall terminate.
5.3. In the event of termination under Sections 5.1 or 5.2 above, all end user license agreements (excluding distributors and resellers) which have been validly granted by You or Your distributors under this License prior to termination shall survive termination.
6. Disclaimer of Warranty
Covered Software is provided under this License on an “as is” basis, without warranty of any kind, either expressed, implied, or statutory, including, without limitation, warranties that the Covered Software is free of defects, merchantable, fit for a particular purpose or non-infringing. The entire risk as to the quality and performance of the Covered Software is with You. Should any Covered Software prove defective in any respect, You (not any Contributor) assume the cost of any necessary servicing, repair, or correction. This disclaimer of warranty constitutes an essential part of this License. No use of any Covered Software is authorized under this License except under this disclaimer.
7. Limitation of Liability
Under no circumstances and under no legal theory, whether tort (including negligence), contract, or otherwise, shall any Contributor, or anyone who distributes Covered Software as permitted above, be liable to You for any direct, indirect, special, incidental, or consequential damages of any character including, without limitation, damages for lost profits, loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses, even if such party shall have been informed of the possibility of such damages. This limitation of liability shall not apply to liability for death or personal injury resulting from such party’s negligence to the extent applicable law prohibits such limitation. Some jurisdictions do not allow the exclusion or limitation of incidental or consequential damages, so this exclusion and limitation may not apply to You.
8. Litigation
Any litigation relating to this License may be brought only in the courts of a jurisdiction where the defendant maintains its principal place of business and such litigation shall be governed by laws of that jurisdiction, without reference to its conflict-of-law provisions. Nothing in this Section shall prevent a party’s ability to bring cross-claims or counter-claims.
9. Miscellaneous
This License represents the complete agreement concerning the subject matter hereof. If any provision of this License is held to be unenforceable, such provision shall be reformed only to the extent necessary to make it enforceable. Any law or regulation which provides that the language of a contract shall be construed against the drafter shall not be used to construe this License against a Contributor.
10. Versions of the License
10.1. New Versions
Mozilla Foundation is the license steward. Except as provided in Section 10.3, no one other than the license steward has the right to modify or publish new versions of this License. Each version will be given a distinguishing version number.
10.2. Effect of New Versions
You may distribute the Covered Software under the terms of the version of the License under which You originally received the Covered Software, or under the terms of any subsequent version published by the license steward.
10.3. Modified Versions
If you create software not governed by this License, and you want to create a new license for such software, you may create and use a modified version of this License if you rename the license and remove any references to the name of the license steward (except to note that such modified license differs from this License).
10.4. Distributing Source Code Form that is Incompatible With Secondary Licenses
If You choose to distribute Source Code Form that is Incompatible With Secondary Licenses under the terms of this version of the License, the notice described in Exhibit B of this License must be attached.
Exhibit A - Source Code Form License Notice
This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with this file, You can obtain one at https://mozilla.org/MPL/2.0/.
If it is not possible or desirable to put the notice in a particular file, then You may include the notice in a location (such as a LICENSE file in a relevant directory) where a recipient would be likely to look for such a notice.
You may add additional accurate notices of copyright ownership.
Exhibit B - “Incompatible With Secondary Licenses” Notice
This Source Code Form is “Incompatible With Secondary Licenses”, as defined by the Mozilla Public License, v. 2.0.


Software: JSON for Modern C++ 3.6.1
Copyright notice: 
Copyright 2015 Google Inc. All rights reserved.
Copyright 2018 Google Inc. All rights reserved.
Copyright 2016 Ismael Jimenez Martinez. All rights reserved.
Copyright 2017 Roman Lebedev. All rights reserved.
Copyright (c) 2012 Two Blue Cubes Ltd. All rights reserved.
Copyright (c) 2015 Max Woolf
Copyright 2014 The Authors
Copyright (c) 2016 Nicolas Seriot
Copyright (c) 2015-2017 Niels Lohmann.
Copyright (c) 2015-2017 Niels Lohmann
Copyright (c) 2013-2019 Niels Lohmann <http:nlohmann.me>.
Copyright (c) 2018 Vitaliy Manushkin <agri@akamo.info>.
Copyright (c) 2012, Erik Edlund <erik.edlund@32767.se>
Copyright (c) 2013-2019 Niels Lohmann
Copyright 2013-2019 [Niels Lohmann](http:nlohmann.me)
Copyright (c) 2009 Google Inc. All rights reserved.
Copyright (C) 2009 Google Inc.

License: MIT License
The MIT License
Copyright (c) <year> <copyright holders>
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.

Software: re2 20191201
Copyright notice:
Copyright (C) 2005 Free Software Foundation, Inc.
Copyright (C) 2007 Free Software Foundation, Inc.
Copyright (C) 2009 Free Software Foundation, Inc.
Copyright (C) 2009 The Android Open Source Project
Copyright (c) 2002 by Lucent Technologies.
Copyright (c) 2009 The RE2 Authors.
Copyright 1999-2005 The RE2 Authors.  All Rights Reserved.
Copyright 2001-2010 The RE2 Authors.  All Rights Reserved.
Copyright 2002-2009 The RE2 Authors.  All Rights Reserved.
Copyright 2003-2009 Google Inc.
Copyright 2003-2009 The RE2 Authors.  All Rights Reserved.
Copyright 2003-2010 Google Inc.  All Rights Reserved.
Copyright 2004 The RE2 Authors.  All Rights Reserved.
Copyright 2005 The RE2 Authors.  All Rights Reserved.
Copyright 2006 The RE2 Authors.  All Rights Reserved.
Copyright 2006-2007 The RE2 Authors.  All Rights Reserved.
Copyright 2006-2008 The RE2 Authors.  All Rights Reserved.
Copyright 2007 The RE2 Authors.  All Rights Reserved.
Copyright 2008 The RE2 Authors.  All Rights Reserved.
Copyright 2009 The RE2 Authors.  All Rights Reserved.
Copyright 2010 The RE2 Authors.  All Rights Reserved.
Copyright 2012 The Go Authors.
Copyright 2015 The RE2 Authors.  All Rights Reserved.
Copyright 2016 The RE2 Authors.  All Rights Reserved.
Copyright 2018 The RE2 Authors.  All Rights Reserved.

License: BSD-3 with additional clause 
Most files in this release are marked with the copyrights of the
organizations who have edited them.  The copyrights below are in no
particular order and generally reflect members of the Open MPI core
team who have contributed code to this release.  The copyrights for
code used under license from other parties are included in the
corresponding files.

Copyright (c) 2004-2010 The Trustees of Indiana University and Indiana
                        University Research and Technology
                        Corporation.  All rights reserved.
Copyright (c) 2004-2017 The University of Tennessee and The University
                        of Tennessee Research Foundation.  All rights
                        reserved.
Copyright (c) 2004-2010 High Performance Computing Center Stuttgart,
                        University of Stuttgart.  All rights reserved.
Copyright (c) 2004-2008 The Regents of the University of California.
                        All rights reserved.
Copyright (c) 2006-2017 Los Alamos National Security, LLC.  All rights
                        reserved.
Copyright (c) 2006-2017 Cisco Systems, Inc.  All rights reserved.
Copyright (c) 2006-2010 Voltaire, Inc. All rights reserved.
Copyright (c) 2006-2017 Sandia National Laboratories. All rights reserved.
Copyright (c) 2006-2010 Sun Microsystems, Inc.  All rights reserved.
                        Use is subject to license terms.
Copyright (c) 2006-2017 The University of Houston. All rights reserved.
Copyright (c) 2006-2009 Myricom, Inc.  All rights reserved.
Copyright (c) 2007-2017 UT-Battelle, LLC. All rights reserved.
Copyright (c) 2007-2017 IBM Corporation.  All rights reserved.
Copyright (c) 1998-2005 Forschungszentrum Juelich, Juelich Supercomputing
                        Centre, Federal Republic of Germany
Copyright (c) 2005-2008 ZIH, TU Dresden, Federal Republic of Germany
Copyright (c) 2007      Evergrid, Inc. All rights reserved.
Copyright (c) 2008      Chelsio, Inc.  All rights reserved.
Copyright (c) 2008-2009 Institut National de Recherche en
                        Informatique.  All rights reserved.
Copyright (c) 2007      Lawrence Livermore National Security, LLC.
                        All rights reserved.
Copyright (c) 2007-2017 Mellanox Technologies.  All rights reserved.
Copyright (c) 2006-2010 QLogic Corporation.  All rights reserved.
Copyright (c) 2008-2017 Oak Ridge National Labs.  All rights reserved.
Copyright (c) 2006-2012 Oracle and/or its affiliates.  All rights reserved.
Copyright (c) 2009-2015 Bull SAS.  All rights reserved.
Copyright (c) 2010      ARM ltd.  All rights reserved.
Copyright (c) 2016      ARM, Inc.  All rights reserved.
Copyright (c) 2010-2011 Alex Brick <bricka@ccs.neu.edu>.  All rights reserved.
Copyright (c) 2012      The University of Wisconsin-La Crosse. All rights
                        reserved.
Copyright (c) 2013-2016 Intel, Inc. All rights reserved.
Copyright (c) 2011-2017 NVIDIA Corporation.  All rights reserved.
Copyright (c) 2016      Broadcom Limited.  All rights reserved.
Copyright (c) 2011-2017 Fujitsu Limited.  All rights reserved.
Copyright (c) 2014-2015 Hewlett-Packard Development Company, LP.  All
                        rights reserved.
Copyright (c) 2013-2017 Research Organization for Information Science (RIST).
                        All rights reserved.
Copyright (c) 2017      Amazon.com, Inc. or its affiliates.  All Rights
                        reserved.

$COPYRIGHT$

Additional copyrights may follow

$HEADER$

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are
met:

- Redistributions of source code must retain the above copyright
  notice, this list of conditions and the following disclaimer.

- Redistributions in binary form must reproduce the above copyright
  notice, this list of conditions and the following disclaimer listed
  in this license in the documentation and/or other materials
  provided with the distribution.

- Neither the name of the copyright holders nor the names of its
  contributors may be used to endorse or promote products derived from
  this software without specific prior written permission.

The copyright holders provide no reassurances that the source code
provided does not infringe any patent, copyright, or any other
intellectual property rights of third parties.  The copyright holders
disclaim any liability to any recipient for claims brought against
recipient by any third party for infringement of that parties
intellectual property rights.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

Software: pip 20.0.2
Copyright notice: 
Copyright (c) 2010 ActiveState Software Inc.
Copyright (c) 1991-2014 Unicode, Inc. All rights reserved.
Copyright (C) 2013 Vinay Sajip.
Copyright (C) 2013-2015 Vinay Sajip.
Copyright 2012 Facebook
Copyright (c) 2017 Thomas Kluyver
Copyright (c) 2008-2019 Andrey Petrov and contributors (see CONTRIBUTORS.txt)
Copyright (c) 2001-2014 Python Software Foundation; All Rights Reserved
Copyright (C) 2012-2015 Vinay Sajip.
Copyright (C) 1991, 1999 Free Software Foundation, Inc.
Copyright (c) 2010-2020 Benjamin Peterson
Copyright (c) 2010-2019 Benjamin Peterson
Copyright (C) 2016 Jason R Coombs <jaraco@jaraco.com>
Copyright (C) 2012 The Python Software Foundation.
i.e., "Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 Python Software Foundation; All Rights Reserved" are retained in Python alone or in any derivative version prepared by Licensee.
Copyright (c) 2005-2010 ActiveState Software Inc.
Copyright (c) 2006-2013 James Graham and other contributors
Copyright (c) 2013 Eddy Petrișor
Copyright 2015 Eric Larson
Copyright (c) 2013-2018, Kim Davies. All rights reserved.
Copyright (C) 2002 Lars Gustaebel <lars@gustaebel.de>
Copyright (C) 2008-2011 INADA Naoki <songofacandy@gmail.com>
Copyright (c) 2008-2016 The pip developers (see AUTHORS.txt file)
Copyright 2018 Kenneth Reitz
copyright = '2008-2017, PyPA'
Copyright (c) Donald Stufft and individual contributors.
Copyright (C) 2012-2019 Vinay Sajip.
Copyright 2015,2016,2017 Nir Cohen
Copyright (c) 2008-2019 The pip developers (see AUTHORS.txt file)
Copyright (C) 2013-2017 Vinay Sajip.
Copyright 2007 Google Inc.
License Agreement and CNRI's notice of copyright, i.e., "Copyright (c) 1995-2001 Corporation for National Research Initiatives; All Rights Reserved" are retained in Python 1.6.1 alone or in any derivative version prepared by Licensee.  Alternately, in lieu of CNRI's License Agreement, Licensee may substitute the following text (omitting the quotes): "Python 1.6.1 is made available subject to the terms and conditions in CNRI's License Agreement.  This Agreement together with Python 1.6.1 may be located on the Internet using the following unique, persistent identifier (known as a handle): 1895.22/1013.  This Agreement may also be obtained from a proxy server on the Internet
copyright = "Copyright 2014-2019 %s" % author
Copyright (c) 2015-2016 Will Bond <will@wbond.net>
Copyright (c) 1991 - 1995, Stichting Mathematisch Centrum Amsterdam, The Netherlands.  All rights reserved.
Copyright (c) 2010 Jonathan Hartley All rights reserved.
i.e., "Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Python Software Foundation; All Rights Reserved" are retained in Python alone or in any derivative version prepared by Licensee.
Copyright (C) 2012-2013 Python Software Foundation.
Copyright 2013-2014 Ray Holder
Copyright (C) 2012-2017 Vinay Sajip.
copyright = 'Copyright 2019 Kenneth Reitz'
Copyright (c) 2012 by Simon Sapin.
i.e., "Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Python Software Foundation; All Rights Reserved" are retained in Python alone or in any derivative version prepared by Licensee.
Copyright (c) 2003-2019  Paul T. McGuire
Copyright (c) 2012 Giorgos Verigakis <verigak@gmail.com>
Copyright (C) 2012-2017 The Python Software Foundation.

License: 
Copyright (c) 2008-2019 The pip developers (see AUTHORS.txt file)

Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the
"Software"), to deal in the Software without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and/or sell copies of the Software, and to
permit persons to whom the Software is furnished to do so, subject to
the following conditions:

The above copyright notice and this permission notice shall be
included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

Software: pytest 1.6.0
Copyright notice: 
copyright = "2015–2020, holger krekel and pytest-dev team"
If true, "(C) Copyright ..." is shown in the HTML footer. Default is True.
Copyright (c) 2010 by Armin Ronacher.
Copyright (c) 2004-2020 Holger Krekel and others
Copyright Holger Krekel and others, 2004-2020.
epubcopyright = "2013-2020, holger krekel et alii"

License: The MIT License (MIT)

Copyright (c) 2004-2020 Holger Krekel and others

Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the "Software"), to deal in
the Software without restriction, including without limitation the rights to
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
of the Software, and to permit persons to whom the Software is furnished to do
so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

Software: googletest 1.8.1
Copyright notice: 
Copyright 2009, Google Inc.
Copyright 2008, Google Inc.
Copyright 2007 Google Inc.
Copyright 2007, Google Inc.
Copyright 2013, Google Inc.
Copyright 2015, Google Inc.
Copyright 2005, Google Inc.
Copyright 2008 Google Inc.
Copyright 2006, Google Inc.
Copyright 2009 Google Inc. All Rights Reserved.
Copyright 2013 Google Inc. All Rights Reserved.
Copyright 2017 Google Inc.
Copyright 2007 Neal Norwitz
Copyright 2008 Google Inc.  All Rights Reserved.
Copyright 2009 Neal Norwitz All Rights Reserved.
Copyright 2003 Google Inc.
Copyright 2009 Google Inc.
Copyright 2008 Google Inc. All Rights Reserved.
Copyright [2007] Neal Norwitz
Portions Copyright [2007] Google Inc.
Copyright 2010 Google Inc.  All Rights Reserved.
Copyright 2010, Google Inc.
Copyright 2005 Google Inc. All Rights Reserved.
Copyright 2018, Google Inc.
Copyright 2003, Google Inc.
Copyright 2009 Google Inc. All rights reserved.
Copyright 2015 Google Inc. All rights reserved.
Copyright 2009 Google Inc.  All rights reserved.
Copyright 2018 Google LLC. All rights reserved.
Copyright 2018, Google LLC.


License: BSD 3-Clause License
Copyright 2008, Google Inc.
All rights reserved.

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are
met:

    * Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
    * Redistributions in binary form must reproduce the above
copyright notice, this list of conditions and the following disclaimer
in the documentation and/or other materials provided with the
distribution.
    * Neither the name of Google Inc. nor the names of its
contributors may be used to endorse or promote products derived from
this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

Software: glog 0.4.0
Copyright notice:
Copyright (c) 1999, Google Inc.
Copyright (c) 2007, Google Inc.
Copyright (c) 2006, Google Inc.
Copyright (c) 2003, Google Inc.
Copyright (c) 1999, 2007, Google Inc.
Copyright (c) 2008, Google Inc.
Copyright (c) 2009, Google Inc.
Copyright (c) 2002, Google Inc.
Copyright (c) 2000 - 2007, Google Inc.
Copyright (c) 2005 - 2007, Google Inc.
Copyright (c) 2004, Google Inc.
Copyright (c) 2003-2008, Jouni Malinen <j@w1.fi> and contributors


License: BSD 3-Clause License
Copyright (c) 2008, Google Inc.
All rights reserved.

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are
met:

    * Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
    * Redistributions in binary form must reproduce the above
copyright notice, this list of conditions and the following disclaimer
in the documentation and/or other materials provided with the
distribution.
    * Neither the name of Google Inc. nor the names of its
contributors may be used to endorse or promote products derived from
this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.


A function gettimeofday in utilities.cc is based on

http://www.google.com/codesearch/p?hl=en#dR3YEbitojA/COPYING&q=GetSystemTimeAsFileTime%20license:bsd

The license of this code is:

Copyright (c) 2003-2008, Jouni Malinen <j@w1.fi> and contributors
All Rights Reserved.

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are
met:

1. Redistributions of source code must retain the above copyright
   notice, this list of conditions and the following disclaimer.

2. Redistributions in binary form must reproduce the above copyright
   notice, this list of conditions and the following disclaimer in the
   documentation and/or other materials provided with the distribution.

3. Neither the name(s) of the above-listed copyright holder(s) nor the
   names of its contributors may be used to endorse or promote products
   derived from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

Software: pybind11 2.4.3
Copyright notice:
Copyright (c) 2015 Wenzel Jakob <wenzel@inf.ethz.ch>
Copyright (c) 2016 Wenzel Jakob <wenzel.jakob@epfl.ch>
Copyright (c) 2016 Trent Houliston <trent@houliston.me> and Wenzel Jakob <wenzel.jakob@epfl.ch>
Copyright (c) 2017 Wenzel Jakob <wenzel.jakob@epfl.ch>
Copyright (c) 2017 Jason Rhinelander <jason@imaginary.ca>
Copyright (c) 2016 Klemens Morgenstern <klemens.morgenstern@ed-chemnitz.de> and
Copyright (c) 2017 Henry F. Schreiner
Copyright (c) 2016 Sergey Lyskov and Wenzel Jakob
Copyright (c) 2016 Wenzel Jakob <wenzel.jakob@epfl.ch>, All rights reserved.
Copyright (c) 2016 Jason Rhinelander <jason@imaginary.ca>
Copyright (c) 2019 Google LLC
Copyright (c) 2019 Google Inc.
Copyright (c) 2016 Ben North <ben@redfrontdoor.org>
Copyright (c) 2016 Klemens D. Morgenstern
Copyright (c) 2016 Pim Schellart <P.Schellart@princeton.edu>
Copyright (c) 2017 Borja Zarco (Google LLC) <bzarco@google.com>
Copyright (c) 2016 Ivan Smirnov <i.s.smirnov@gmail.com>
Copyright (c) 2016 Ivan Smirnov
Copyright (c) 2016 Sergey Lyskov
Copyright (c) 2018 Hudson River Trading LLC <opensource@hudson-trading.com>
Copyright (c) 2019 Roland Dreier <roland.dreier@gmail.com>
Copyright (c) 2006, 2007 Montel Laurent, <montel@kde.org>
Copyright (c) 2008, 2009 Gael Guennebaud, <g.gael@free.fr>
Copyright (c) 2009 Benoit Jacob <jacob.benoit.1@gmail.com>
Copyright 2001-2009 Kitware, Inc.
Copyright 2012 Continuum Analytics, Inc.
Copyright (c) 2007-2012 University of Illinois at Urbana-Champaign.

License:BSD 3-Clause License
Copyright (c) 2016 Wenzel Jakob <wenzel.jakob@epfl.ch>, All rights reserved.

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:

1. Redistributions of source code must retain the above copyright notice, this
   list of conditions and the following disclaimer.

2. Redistributions in binary form must reproduce the above copyright notice,
   this list of conditions and the following disclaimer in the documentation
   and/or other materials provided with the distribution.

3. Neither the name of the copyright holder nor the names of its contributors
   may be used to endorse or promote products derived from this software
   without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

Please also refer to the file CONTRIBUTING.md, which clarifies licensing of
external contributions to this project including patches, pull requests, etc.

Software: pybind11 2.6.1
Copyright notice:
Copyright (c) 2016 Wenzel Jakob <wenzel.jakob@epfl.ch>, All rights reserved.
Copyright (c) 2016 Ben North <ben@redfrontdoor.org>
Copyright (c) 2017 Wenzel Jakob <wenzel.jakob@epfl.ch>
Copyright 2012 Continuum Analytics, Inc.
Copyright 2001-2009 Kitware, Inc.
Copyright (c) 2016 Ivan Smirnov <i.s.smirnov@gmail.com>
Copyright (c) 2017 Borja Zarco (Google LLC) <bzarco@google.com>
copyright = "2017, Wenzel Jakob"
Copyright (c) 2016 Jason Rhinelander <jason@imaginary.ca>
Copyright (c) 2016 Trent Houliston <trent@houliston.me> and Wenzel Jakob <wenzel.jakob@epfl.ch>
Copyright (c) 2016 Wenzel Jakob <wenzel.jakob@epfl.ch>
Copyright (c) 2017 Jason Rhinelander <jason@imaginary.ca>
Copyright (c) 2006, 2007 Montel Laurent, <montel@kde.org>
Copyright (c) 2008, 2009 Gael Guennebaud, <g.gael@free.fr>
Copyright (c) 2016 Klemens Morgenstern <klemens.morgenstern@ed-chemnitz.de> and Wenzel Jakob <wenzel.jakob@epfl.ch>
Copyright (c) 2020 Wenzel Jakob <wenzel.jakob@epfl.ch>
Copyright (c) 2019 Google Inc.
Copyright (c) 2019 Roland Dreier <roland.dreier@gmail.com>
Copyright (c) 2018 Hudson River Trading LLC <opensource@hudson-trading.com>
Copyright (c) 2019 Google LLC
Copyright (c) 2015 Wenzel Jakob <wenzel@inf.ethz.ch>
Copyright (c) 2016 Sergey Lyskov and Wenzel Jakob
Copyright (c) 2016 Ivan Smirnov
Copyright (c) 2016 Klemens D. Morgenstern
Copyright (c) 2009 Benoit Jacob <jacob.benoit.1@gmail.com>
Copyright (c) 2016 Pim Schellart <P.Schellart@princeton.edu>
Copyright (c) 2020 Wenzel Jakob <wenzel@inf.ethz.ch> and Henry Schreiner
Copyright (c) 2016 Sergey Lyskov
Copyright (c) 2017 Henry F. Schreiner

Copyright (c) 2016 Wenzel Jakob <wenzel.jakob@epfl.ch>, All rights reserved.

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:

1. Redistributions of source code must retain the above copyright notice, this
   list of conditions and the following disclaimer.

2. Redistributions in binary form must reproduce the above copyright notice,
   this list of conditions and the following disclaimer in the documentation
   and/or other materials provided with the distribution.

3. Neither the name of the copyright holder nor the names of its contributors
   may be used to endorse or promote products derived from this software
   without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

Please also refer to the file .github/CONTRIBUTING.md, which clarifies licensing of
external contributions to this project including patches, pull requests, etc.

Software: google/protobuf 3.13.0
Copyright 2008 Google Inc. All rights reserved.
Copyright 2008 Google Inc. All rights reserved.
Copyright 2007-2010 Baptiste Lepilleur Distributed under MIT license, or public domain if desired and recognized in your jurisdiction.
Copyright 2007 Google Inc. All Rights Reserved.
Copyright 2012 Google Inc. All rights reserved.
Copyright 2014 Google Inc. All rights reserved.
Copyright 2019 Google Inc. All rights reserved.
Copyright 2008 Google Inc. All Rights Reserved.
copyright = u"2008, Google LLC"
Copyright 2017 Google Inc. All rights reserved.
Copyright 2008 Google Inc.
Copyright 2015 Google Inc. All rights reserved.
Copyright 2019 Google Inc. All rights reserved.
Copyright (c) 2006, Google Inc.
Copyright (c) 2007-2010 Baptiste Lepilleur
Copyright 2017 Google Inc. All rights reserved.
Copyright 2015 Google Inc. All rights reserved.
Copyright 2018 Google Inc. All rights reserved.
Copyright 2009 Google Inc. All rights reserved.
Copyright 2007-2011 Baptiste Lepilleur Distributed under MIT license, or public domain if desired and recognized in your jurisdiction.
Copyright 2011 Baptiste Lepilleur Distributed under MIT license, or public domain if desired and recognized in your jurisdiction.
Copyright 2015, Google Inc.
Copyright 2019 Google LLC. All rights reserved.
Copyright 2016 Google Inc. All rights reserved.
Copyright 2005 Google Inc.
Copyright 2016 Google Inc. All rights reserved.


License: BSD 3-Clause License
Copyright 2008 Google Inc.  All rights reserved.

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are
met:

    * Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
    * Redistributions in binary form must reproduce the above
copyright notice, this list of conditions and the following disclaimer
in the documentation and/or other materials provided with the
distribution.
    * Neither the name of Google Inc. nor the names of its
contributors may be used to endorse or promote products derived from
this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

Code generated by the Protocol Buffer compiler is owned by the owner
of the input file used when generating it.  This code is not
standalone and requires a support library to be linked with it.  This
support library is itself covered by the above license.

Software: libevent 2.1.12
Copyright notice:
Copyright (C) 1998 - 2012, Daniel Stenberg, <daniel@haxx.se>, et al.
COPYRIGHT AND PERMISSION NOTICE
Copyright (c) 1996 - 2013, Daniel Stenberg, <daniel@haxx.se>.
Copyright (C) 2012, iSEC Partners.
Copyright (c) 1987, 1993, 1994, 1995
Copyright (c) 1987, 1993, 1994, 1996
Copyright 2002 Niels Provos <provos@citi.umich.edu>
Copyright (c) 2007-2012 Niels Provos and Nick Mathewson
Copyright (c) 2000-2007 Niels Provos <provos@citi.umich.edu>
Copyright (c) 2007-2012 Niels Provos, Nick Mathewson
Copyright (c) 2009-2012 Niels Provos and Nick Mathewson
Copyright (c) 2006-2007 Niels Provos <provos@citi.umich.edu>
Copyright (c) 2008-2012 Niels Provos and Nick Mathewson
Copyright (c) 1991, 1993
Copyright (c) 2009, Michihiro NAKAJIMA
Copyright 2000-2013 Kitware, Inc.
Copyright 2000-2011 Insight Software Consortium
notices of original copyright by their contributors; see each source
Copyright (C) 1996-2018 Free Software Foundation, Inc.
Copyright (c) 2010 Chris Davis, Niels Provos, and Nick Mathewson
Copyright (c) 2010-2012 Niels Provos and Nick Mathewson
Copyright (c) 1996, David Mazieres <dm@uun.org>
Copyright (c) 2008, Damien Miller <djm@openbsd.org>
Copyright (c) 2002-2007 Niels Provos <provos@citi.umich.edu>
Copyright (c) 2002-2006 Niels Provos <provos@citi.umich.edu>
Copyright (c) 2009-2012 Niels Provos, Nick Mathewson
Copyright 2000-2009 Niels Provos <provos@citi.umich.edu>
Copyright 2009-2012 Niels Provos and Nick Mathewson
Copyright 2000-2007 Niels Provos <provos@citi.umich.edu>
Copyright 2007-2012 Niels Provos, Nick Mathewson
Copyright 2003-2009 Niels Provos <provos@citi.umich.edu>
Copyright 2006-2007 Niels Provos
Copyright 2007-2012 Nick Mathewson and Niels Provos
Copyright (c) 2005-2007 Niels Provos <provos@citi.umich.edu>
Copyright (c) 2003-2009 Niels Provos <provos@citi.umich.edu>
Copyright 2007-2012 Niels Provos and Nick Mathewson
Copyright (c) 2007 Sun Microsystems. All rights reserved.
Copyright (c) 2008-2012 Niels Provos, Nick Mathewson
Copyright 2002 Christopher Clark
Copyright 2005-2012 Nick Mathewson
Copyright 2001-2007 Niels Provos <provos@citi.umich.edu>
Copyright (c) 2012 Niels Provos and Nick Mathewson
Copyright (c) 2000 Dug Song <dugsong@monkey.org>
Copyright (c) 1993 The Regents of the University of California.
Copyright (c) 1998 Todd C. Miller <Todd.Miller@courtesan.com>
Copyright (c) 2003 Michael A. Davis <mike@datanerds.net>
Copyright (c) 2007 Sun Microsystems
Copyright (c) 2002 Christopher Clark
Copyright (c) 2006 Maxim Yegorushkin <maxim.yegorushkin@gmail.com>
Copyright (c) 2010 BitTorrent, Inc.
Copyright (c) 2005-2012 Niels Provos and Nick Mathewson
Copyright (c) 1993
Copyright 2003 Michael A. Davis <mike@datanerds.net>
Copyright 2003-2007 Niels Provos <provos@citi.umich.edu>
Copyright 2008-2012 Niels Provos and Nick Mathewson
Copyright (c) 2003-2007 Niels Provos <provos@citi.umich.edu>
Copyright (c) 2013 Niels Provos and Nick Mathewson
Copyright (c) 2009-2012 Nick Mathewson and Niels Provos
Copyright (c) 2007-2013 Niels Provos and Nick Mathewson
Copyright (c) 2012 Ross Lagerwall <rosslagerwall@gmail.com>
tinytest.c -- Copyright 2009-2012 Nick Mathewson
tinytest.h -- Copyright 2009-2012 Nick Mathewson
tinytestmacros.h -- Copyright 2009-2012 Nick Mathewson

Libevent is available for use under the following license, commonly known
as the 3-clause (or "modified") BSD license:

==============================
Copyright (c) 2000-2007 Niels Provos <provos@citi.umich.edu>
Copyright (c) 2007-2012 Niels Provos and Nick Mathewson

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
1. Redistributions of source code must retain the above copyright
   notice, this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright
   notice, this list of conditions and the following disclaimer in the
   documentation and/or other materials provided with the distribution.
3. The name of the author may not be used to endorse or promote products
   derived from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
==============================

Portions of Libevent are based on works by others, also made available by
them under the three-clause BSD license above.  The copyright notices are
available in the corresponding source files; the license is as above.  Here's
a list:

log.c:
   Copyright (c) 2000 Dug Song <dugsong@monkey.org>
   Copyright (c) 1993 The Regents of the University of California.

strlcpy.c:
   Copyright (c) 1998 Todd C. Miller <Todd.Miller@courtesan.com>

win32select.c:
   Copyright (c) 2003 Michael A. Davis <mike@datanerds.net>

evport.c:
   Copyright (c) 2007 Sun Microsystems

ht-internal.h:
   Copyright (c) 2002 Christopher Clark

minheap-internal.h:
   Copyright (c) 2006 Maxim Yegorushkin <maxim.yegorushkin@gmail.com>

==============================

The arc4module is available under the following, sometimes called the
"OpenBSD" license:

   Copyright (c) 1996, David Mazieres <dm@uun.org>
   Copyright (c) 2008, Damien Miller <djm@openbsd.org>

   Permission to use, copy, modify, and distribute this software for any
   purpose with or without fee is hereby granted, provided that the above
   copyright notice and this permission notice appear in all copies.

   THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
   WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
   MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
   ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
   WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
   ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
   OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.

==============================

The Windows timer code is based on code from libutp, which is
distributed under this license, sometimes called the "MIT" license.


Copyright (c) 2010 BitTorrent, Inc.

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.

==============================

The wepoll module is available under the following, sometimes called the
"FreeBSD" license:

Copyright 2012-2020, Bert Belder <bertbelder@gmail.com>
All rights reserved.

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are
met:

  * Redistributions of source code must retain the above copyright
    notice, this list of conditions and the following disclaimer.

  * Redistributions in binary form must reproduce the above copyright
    notice, this list of conditions and the following disclaimer in the
    documentation and/or other materials provided with the distribution.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

==============================

The ssl-client-mbedtls.c is available under the following license:

Copyright (C) 2006-2015, ARM Limited, All Rights Reserved
SPDX-License-Identifier: Apache-2.0

Licensed under the Apache License, Version 2.0 (the "License"); you may
not use this file except in compliance with the License.
You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

This file is part of mbed TLS (https://tls.mbed.org)

Software: grpc 1.36.1
Copyright notice: 
Copyright 2015 The gRPC Authors
Copyright 2016 The gRPC Authors
Copyright 2018 The gRPC Authors
Copyright 2019 The gRPC Authors
Copyright 2018 The gRPC Authors
Copyright © 2018 gRPC.
Copyright 2016 gRPC authors.
Copyright 2017 gRPC authors.
Copyright 2019 gRPC authors.
Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project.
Copyright (C) 2009 - 2013 by Daniel Stenberg et al
Copyright (c) 2004, 2006-2010 Michael Roth <mroth@nessie.de>
Copyright (c) 2004-2009 Michael Roth <mroth@nessie.de>
Copyright (c) 2004-2010 Michael Roth <mroth@nessie.de>
Copyright (c) 2006-2008 Michael Roth <mroth@nessie.de>
Copyright (c) 2009-2011, Google Inc.
Copyright (c) 2018, Google Inc.
Copyright 2007 Google Inc. All Rights Reserved.
Copyright 2008 Google Inc.
Copyright 2013 Google Inc.
Copyright 2014 Google Inc.
Copyright 2014 gRPC authors.
Copyright 2014, Google Inc.
Copyright 2015 The gRPC Authors
Copyright 2015 gRPC authors.
Copyright 2015, Google Inc.
Copyright 2015-2016 gRPC authors.
Copyright 2015-2017 gRPC authors.
Copyright 2016 Google Inc.
Copyright 2016 The Chromium Authors.
Copyright 2016 gRPC authors.
Copyright 2016, Google Inc.
Copyright 2017 The gRPC Authors
Copyright 2017 gRPC authors.
Copyright 2018 The Bazel Authors.
Copyright 2018 The gRPC Authors
Copyright 2018 The gRPC Authors.
Copyright 2018 gRPC Authors.
Copyright 2018 gRPC authors.
Copyright 2018, gRPC Authors
Copyright 2019 Istio Authors. All Rights Reserved.
Copyright 2019 The Bazel Authors.
Copyright 2019 The gRPC Authors
Copyright 2019 The gRPC Authors.
Copyright 2019 The gRPC authors.
Copyright 2019 gRPC authors.
Copyright 2019 the gRPC authors.
Copyright 2019, Google Inc.
Copyright 2020 The gRPC Authors
Copyright 2020 The gRPC Authors.
Copyright 2020 The gRPC authors.
Copyright 2020 gRPC authors.
Copyright 2020 the gRPC authors.
Copyright 2020 王一 Wang Yi <godspeedchina@yeah.net>
Copyright 2021 The gRPC Authors
Copyright 2021 The gRPC authors.
Copyright 2021 gRPC authors.
Copyright 2021 the gRPC authors.
Copyright 2015 The gRPC Authors
Copyright 2017 The gRPC Authors
Copyright 2015 gRPC authors.
Copyright 2016 gRPC authors.
Copyright 2020 The gRPC Authors

Software: cmake-modules cf2e087039f81d13e687cf6c2b1b382b9c1e756f
Copyright notice:
Copyright 2009 Kitware, Inc.
Copyright 2009 Will Dicharry <wdicharry@stellarscience.com>
Copyright 2005-2009 Kitware, Inc.
Copyright Iowa State University 2009-2010.
Copyright 2006-2009 Kitware, Inc.
Copyright 2006-2008 Andreas Schneider <mail@cynapses.org>
Copyright 2007      Wengo
Copyright 2007      Mike Jackson
Copyright 2008      Andreas Pakulat <apaku@gmx.de>
Copyright 2008-2010 Philip Lowman <philip@yhbt.com>
Copyright 2009 Alexander Neundorf <neundorf@kde.org>
Copyright (c) 2012 - 2017, Lars Bilke
Copyright (c) 2012-2016 Sascha Kratky
Copyright 2012-2018 Sascha Kratky
Copyright (c) 2012-2018, OpenGeoSys Community (http://www.opengeosys.org)
Copyright (c) 2012 - 2015, Lars Bilke
Copyright 2008-2009 Philip Lowman <philip@yhbt.com>
Copyright 2010      Iowa State University (Ryan Pavlik <abiryan@ryand.net>)
Copyright 2000-2009 Kitware, Inc., Insight Software Consortium
Copyright 2010-2011 Kitware, Inc.
Copyright Iowa State University 2009-2011

Boost Software License - Version 1.0 - August 17th, 2003

Permission is hereby granted, free of charge, to any person or organization
obtaining a copy of the software and accompanying documentation covered by
this license (the "Software") to use, reproduce, display, distribute,
execute, and transmit the Software, and to prepare derivative works of the
Software, and to permit third-parties to whom the Software is furnished to
do so, all subject to the following:

The copyright notices in the Software and this entire statement, including
the above license grant, this restriction and the following disclaimer,
must be included in all copies of the Software, in whole or in part, and
all derivative works of the Software, unless such copies or derivative
works are solely in the form of machine-executable object code generated by
a source language processor.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT
SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE
FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE,
ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
DEALINGS IN THE SOFTWARE.

Software: abseil-cpp 20200923.3
Copyright notice:
Copyright 2016 Google Inc. All Rights Reserved.
Copyright 2017 Google Inc. All Rights Reserved.
Copyright 2017 The Abseil Authors.
Copyright 2018 The Abseil Authors.
Copyright 2019 The Abseil Authors.
Copyright 2020 The Abseil Authors.

Apache License
                           Version 2.0, January 2004
                        https://www.apache.org/licenses/

   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION

   1. Definitions.

      "License" shall mean the terms and conditions for use, reproduction,
      and distribution as defined by Sections 1 through 9 of this document.

      "Licensor" shall mean the copyright owner or entity authorized by
      the copyright owner that is granting the License.

      "Legal Entity" shall mean the union of the acting entity and all
      other entities that control, are controlled by, or are under common
      control with that entity. For the purposes of this definition,
      "control" means (i) the power, direct or indirect, to cause the
      direction or management of such entity, whether by contract or
      otherwise, or (ii) ownership of fifty percent (50%) or more of the
      outstanding shares, or (iii) beneficial ownership of such entity.

      "You" (or "Your") shall mean an individual or Legal Entity
      exercising permissions granted by this License.

      "Source" form shall mean the preferred form for making modifications,
      including but not limited to software source code, documentation
      source, and configuration files.

      "Object" form shall mean any form resulting from mechanical
      transformation or translation of a Source form, including but
      not limited to compiled object code, generated documentation,
      and conversions to other media types.

      "Work" shall mean the work of authorship, whether in Source or
      Object form, made available under the License, as indicated by a
      copyright notice that is included in or attached to the work
      (an example is provided in the Appendix below).

      "Derivative Works" shall mean any work, whether in Source or Object
      form, that is based on (or derived from) the Work and for which the
      editorial revisions, annotations, elaborations, or other modifications
      represent, as a whole, an original work of authorship. For the purposes
      of this License, Derivative Works shall not include works that remain
      separable from, or merely link (or bind by name) to the interfaces of,
      the Work and Derivative Works thereof.

      "Contribution" shall mean any work of authorship, including
      the original version of the Work and any modifications or additions
      to that Work or Derivative Works thereof, that is intentionally
      submitted to Licensor for inclusion in the Work by the copyright owner
      or by an individual or Legal Entity authorized to submit on behalf of
      the copyright owner. For the purposes of this definition, "submitted"
      means any form of electronic, verbal, or written communication sent
      to the Licensor or its representatives, including but not limited to
      communication on electronic mailing lists, source code control systems,
      and issue tracking systems that are managed by, or on behalf of, the
      Licensor for the purpose of discussing and improving the Work, but
      excluding communication that is conspicuously marked or otherwise
      designated in writing by the copyright owner as "Not a Contribution."

      "Contributor" shall mean Licensor and any individual or Legal Entity
      on behalf of whom a Contribution has been received by Licensor and
      subsequently incorporated within the Work.

   2. Grant of Copyright License. Subject to the terms and conditions of
      this License, each Contributor hereby grants to You a perpetual,
      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
      copyright license to reproduce, prepare Derivative Works of,
      publicly display, publicly perform, sublicense, and distribute the
      Work and such Derivative Works in Source or Object form.

   3. Grant of Patent License. Subject to the terms and conditions of
      this License, each Contributor hereby grants to You a perpetual,
      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
      (except as stated in this section) patent license to make, have made,
      use, offer to sell, sell, import, and otherwise transfer the Work,
      where such license applies only to those patent claims licensable
      by such Contributor that are necessarily infringed by their
      Contribution(s) alone or by combination of their Contribution(s)
      with the Work to which such Contribution(s) was submitted. If You
      institute patent litigation against any entity (including a
      cross-claim or counterclaim in a lawsuit) alleging that the Work
      or a Contribution incorporated within the Work constitutes direct
      or contributory patent infringement, then any patent licenses
      granted to You under this License for that Work shall terminate
      as of the date such litigation is filed.

   4. Redistribution. You may reproduce and distribute copies of the
      Work or Derivative Works thereof in any medium, with or without
      modifications, and in Source or Object form, provided that You
      meet the following conditions:

      (a) You must give any other recipients of the Work or
          Derivative Works a copy of this License; and

      (b) You must cause any modified files to carry prominent notices
          stating that You changed the files; and

      (c) You must retain, in the Source form of any Derivative Works
          that You distribute, all copyright, patent, trademark, and
          attribution notices from the Source form of the Work,
          excluding those notices that do not pertain to any part of
          the Derivative Works; and

      (d) If the Work includes a "NOTICE" text file as part of its
          distribution, then any Derivative Works that You distribute must
          include a readable copy of the attribution notices contained
          within such NOTICE file, excluding those notices that do not
          pertain to any part of the Derivative Works, in at least one
          of the following places: within a NOTICE text file distributed
          as part of the Derivative Works; within the Source form or
          documentation, if provided along with the Derivative Works; or,
          within a display generated by the Derivative Works, if and
          wherever such third-party notices normally appear. The contents
          of the NOTICE file are for informational purposes only and
          do not modify the License. You may add Your own attribution
          notices within Derivative Works that You distribute, alongside
          or as an addendum to the NOTICE text from the Work, provided
          that such additional attribution notices cannot be construed
          as modifying the License.

      You may add Your own copyright statement to Your modifications and
      may provide additional or different license terms and conditions
      for use, reproduction, or distribution of Your modifications, or
      for any such Derivative Works as a whole, provided Your use,
      reproduction, and distribution of the Work otherwise complies with
      the conditions stated in this License.

   5. Submission of Contributions. Unless You explicitly state otherwise,
      any Contribution intentionally submitted for inclusion in the Work
      by You to the Licensor shall be under the terms and conditions of
      this License, without any additional terms or conditions.
      Notwithstanding the above, nothing herein shall supersede or modify
      the terms of any separate license agreement you may have executed
      with Licensor regarding such Contributions.

   6. Trademarks. This License does not grant permission to use the trade
      names, trademarks, service marks, or product names of the Licensor,
      except as required for reasonable and customary use in describing the
      origin of the Work and reproducing the content of the NOTICE file.

   7. Disclaimer of Warranty. Unless required by applicable law or
      agreed to in writing, Licensor provides the Work (and each
      Contributor provides its Contributions) on an "AS IS" BASIS,
      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
      implied, including, without limitation, any warranties or conditions
      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
      PARTICULAR PURPOSE. You are solely responsible for determining the
      appropriateness of using or redistributing the Work and assume any
      risks associated with Your exercise of permissions under this License.

   8. Limitation of Liability. In no event and under no legal theory,
      whether in tort (including negligence), contract, or otherwise,
      unless required by applicable law (such as deliberate and grossly
      negligent acts) or agreed to in writing, shall any Contributor be
      liable to You for damages, including any direct, indirect, special,
      incidental, or consequential damages of any character arising as a
      result of this License or out of the use or inability to use the
      Work (including but not limited to damages for loss of goodwill,
      work stoppage, computer failure or malfunction, or any and all
      other commercial damages or losses), even if such Contributor
      has been advised of the possibility of such damages.

   9. Accepting Warranty or Additional Liability. While redistributing
      the Work or Derivative Works thereof, You may choose to offer,
      and charge a fee for, acceptance of support, warranty, indemnity,
      or other liability obligations and/or rights consistent with this
      License. However, in accepting such obligations, You may act only
      on Your own behalf and on Your sole responsibility, not on behalf
      of any other Contributor, and only if You agree to indemnify,
      defend, and hold each Contributor harmless for any liability
      incurred by, or claims asserted against, such Contributor by reason
      of your accepting any such warranty or additional liability.

   END OF TERMS AND CONDITIONS

   APPENDIX: How to apply the Apache License to your work.

      To apply the Apache License to your work, attach the following
      boilerplate notice, with the fields enclosed by brackets "[]"
      replaced with your own identifying information. (Don't include
      the brackets!)  The text should be enclosed in the appropriate
      comment syntax for the file format. We also recommend that a
      file or class name and description of purpose be included on the
      same "printed page" as the copyright notice for easier
      identification within third-party archives.

   Copyright [yyyy] [name of copyright owner]

   Licensed under the Apache License, Version 2.0 (the "License");
   you may not use this file except in compliance with the License.
   You may obtain a copy of the License at

       https://www.apache.org/licenses/LICENSE-2.0

   Unless required by applicable law or agreed to in writing, software
   distributed under the License is distributed on an "AS IS" BASIS,
   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   See the License for the specific language governing permissions and
   limitations under the License.

Software: c-ares 1.15.0
Copyright notice:
Copyright (c) 2012 Dan Winship
Copyright (C) 2005 by Dominick Meglio
Copyright (C) 2009-2013 by Daniel Stenberg
Copyright (C) 2003-2018 Free Software Foundation, Inc.
Copyright (c) 2011 Daniel Stenberg <daniel@haxx.se>
Copyright (c) 1996-1999 by Internet Software Consortium.
Copyright (C) 2005, 2013 by Dominick Meglio
Copyright (C) 2017 by John Schember <john@nachtimwald.com>
Copyright (C) 2008-2013 by Daniel Stenberg
Copyright 2004 by Daniel Stenberg
define ARESCOPYRIGHT "2004 - 2017 Daniel Stenberg, <daniel@haxx.se>."
Copyright (c) 1996,1999 by Internet Software Consortium.
Copyright (c) 2013 Roy Stogner <roystgnr@ices.utexas.edu>
Copyright (C) 2004-2005, 2007-2008, 2011-2015 Free Software Foundation, Inc.
Copyright (C) 1996-2018 Free Software Foundation, Inc.
Copyright (C) 2005 - 2010, Daniel Stenberg
Copyright (c) 2012 Philip Withnall
Copyright (C) 2004 - 2012 by Daniel Stenberg et al
Copyright (C) 2004-2010 by Daniel Stenberg.
Copyright (C) 2004-2009 by Daniel Stenberg.
Copyright (C) 2004-2009 by Daniel Stenberg
Copyright 2003 Google Inc.
Copyright (c) 2008 Steven G. Johnson <stevenj@alum.mit.edu>
Copyright 2005 by Dominick Meglio.
Copyright (C) 2017 by John Schember
Copyright (C) 2010 Jeremy Lal <kapouer@melix.org>
Copyright (C) 2009 by Jakub Hrozek <jhrozek@redhat.com>
Copyright (c) 2012 Christian Persch
Copyright (C) 2013 by Daniel Stenberg
Copyright 2005, Google Inc.
Copyright 2013, Google Inc.
Copyright (C) 2011 Free Software Foundation, Inc.
Copyright (C) 2018 by John Schember <john@nachtimwald.com>
Copyright (c) 2008 Benjamin Kosnik <bkoz@redhat.com>
Copyright 2005 by Dominick Meglio
Copyright (C) 2004-2005, 2007, 2009, 2011-2015 Free Software Foundation, Inc.
Copyright (c) 2012 Paolo Borelli
Copyright (C) 2009 by Daniel Stenberg et al
Copyright (C) 1996-2001, 2003-2015 Free Software Foundation, Inc.
Copyright 1998, 2000 by the Massachusetts Institute of Technology.
Copyright (C) 2004-2005, 2007-2009, 2011-2015 Free Software Foundation, Inc.
Copyright (C) 2009-2018 Free Software Foundation, Inc.
Copyright 2005 by Dominick Meglio.
Copyright (c) 2013 Daniel Stenberg <daniel@haxx.se>
Copyright (C) 1994 X Consortium
Copyright 2008 Google Inc.
Copyright (C) 1999-2018 Free Software Foundation, Inc.
Copyright 1998, 2011, 2013 by the Massachusetts Institute of Technology.
Copyright 1998 by the Massachusetts Institute of Technology.
Copyright (C) 2004-2010 by Daniel Stenberg
Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC")
Copyright 1992-2018 Free Software Foundation, Inc.
Copyright 2015, Google Inc.
Copyright (C) 2004-2018 Free Software Foundation, Inc.
Copyright (C) 2012 Free Software Foundation, Inc.
Copyright (C) 2010-2012 by Daniel Stenberg
Copyright (c) 2012 Xan Lopez
- aresversion.h: copyright end range year is now 2013
Copyright (c) 2014, 2015 Google Inc.; contributed by Alexey Sokolov <sokolov@google.com>
Copyright 2000 by the Massachusetts Institute of Technology.
Copyright (C) 2009 - 2013 by Daniel Stenberg et al
Copyright (C) 2004 by Daniel Stenberg et al
Copyright (C) 2006-2018 Free Software Foundation, Inc.
Copyright (C) 2008 - 2013 by Daniel Stenberg et al
Copyright 2006, Google Inc.
Copyright (C) 2009-2016 by Daniel Stenberg
Copyright (C) 2004-2009 by Daniel Stenberg
Copyright (C) 2004-2010 by Daniel Stenberg
Copyright (c) 2007 - 2018, Daniel Stenberg with many contributors, see AUTHORS file.
Copyright 2010 by Ben Greear <greearb@candelatech.com>
Copyright 2007, Google Inc.
Copyright (C) 1997-2018 Free Software Foundation, Inc.
Copyright 1998, 2011 by the Massachusetts Institute of Technology.
Copyright 1998, 2000 by the Massachusetts Institute of Technology.
Copyright (C) 2004-2011 by Daniel Stenberg
Copyright (C) 2008 - 2009 by Daniel Stenberg et al
Copyright (C) 2005-2013 by Daniel Stenberg et al
Copyright 2008, Google Inc.
Copyright (C) 2004-2017 by Daniel Stenberg
Copyright (C) 2016 by Daniel Stenberg
Copyright (C) 2010-2013 by Daniel Stenberg
Copyright (c) 1987-2001 The Regents of the University of California.
Copyright (C) 2008 - 2012 by Daniel Stenberg et al
Copyright (C) 2009-2013 by Daniel Stenberg et al
Copyright (c) 2015 Bastien ROUCARIES
Copyright 2000 by the Massachusetts Institute of Technology.
Copyright 2005 Dominick Meglio
Copyright 1998 by Daniel Stenberg
Copyright (c) 2011 Daniel Richard G. <skunk@iSKUNK.ORG>
Copyright (C) 2001-2018 Free Software Foundation, Inc.
Copyright (C) 2004 - 2011 by Daniel Stenberg et al
Copyright (C) 2004 - 2013 by Daniel Stenberg et al
Copyright (C) 2012 Marko Kreen <markokr@gmail.com>
Copyright (C) 2008-2010 by Daniel Stenberg
Copyright (C) 2008 by Daniel Stenberg et al
Copyright 1998 by the Massachusetts Institute of Technology.
Copyright (C) 2008-2010 by Daniel Stenberg
Copyright (C) 2017 by John Schember
Copyright (C) 2004, 2011-2015 Free Software Foundation, Inc.
Copyright (C) 2002-2018 Free Software Foundation, Inc.
Copyright (C) 2007-2013 by Daniel Stenberg
Copyright 2009 Google Inc.
Copyright (C) 1994-2018 Free Software Foundation, Inc.
Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc.
Copyright (C) 2014 Free Software Foundation, Inc.
Copyright (c) 2012 Zack Weinberg <zackw@panix.com>

Copyright 1998 by the Massachusetts Institute of Technology.

Permission to use, copy, modify, and distribute this software and its
documentation for any purpose and without fee is hereby granted, provided that
the above copyright notice appear in all copies and that both that copyright
notice and this permission notice appear in supporting documentation, and that
the name of M.I.T. not be used in advertising or publicity pertaining to
distribution of the software without specific, written prior permission.
M.I.T. makes no representations about the suitability of this software for any
purpose.  It is provided "as is" without express or implied warranty.

Software: numpy 1.17.0
Copyright notice:
Copyright (c) 1995, 1996, 1997 Jim Hugunin, hugunin@mit.edu
Copyright 2014 Melissa O'Neill <oneill@pcg-random.org>
Copyright (c) 2006, University of Georgia and Pierre G.F. Gerard-Marchant All rights reserved.
Copyright 1999-2004 Pearu Peterson all rights reserved, Pearu Peterson <pearu@ioc.ee>
Copyright (c) 2009-2019: Jeff Bezanson, Stefan Karpinski, Viral B. Shah, and other contributors:
Copyright (c) 2003-2005, Jean-Sebastien Roy (js@jeannot.org)
copyright = '2008-2019, The SciPy community'
Copyright 2002 Pearu Peterson all rights reserved, Pearu Peterson <pearu@cens.ioc.ee>
Copyright (c) 2019 NumPy Developers
Copyright (c) 2005-2017, NumPy Developers.
Copyright (c) 2018 Melissa E. O'Neill
Copyright (c) 2008 Ian Bicking and Contributors
Copyright (c) 1992-2013 The University of Tennessee and The University of Tennessee Research Foundation.  All rights reserved.
Copyright 1999, 2000, 2001 Regents of the University of California.
Copyright (c) 2005, NumPy Developers
Copyright (c) 2019 Kevin Sheppard. All rights reserved.
Copyright 2010-2012, D. E. Shaw Research.
Copyright (c) 2011 by Mark Wiebe (mwwiebe@gmail.com)
Copyright 2006, Dean Edwards
Copyright (c) 2014 Ryan Juckett
Copyright 2001-2005 Pearu Peterson all rights reserved, Pearu Peterson <pearu@cens.ioc.ee>
copyright = u'2017-2018, NumPy Developers'
Copyright (C) 2004-2018 Max-Planck-Society \author Martin Reinecke
Copyright (c) 2010-2011 by Mark Wiebe (mwwiebe@gmail.com)
Copyright (c) 2012 Stephen Montgomery-Smith <stephen@FreeBSD.ORG>
Copyright (c) 2005-2019, NumPy Developers.
Copyright (c) 2011 Enthought, Inc
Copyright (c) 2007, 2011 David Schultz <das@FreeBSD.ORG>
Copyright (c) 2000-2013 The University of California Berkeley. All rights reserved.
Copyright (c) 2015 Pauli Virtanen All rights reserved.
Copyright 1999,2000 Pearu Peterson all rights reserved, Pearu Peterson <pearu@ioc.ee>
Copyright (C) 1997 - 2002, Makoto Matsumoto and Takuji Nishimura, All rights reserved.
Copyright (c) 2005-2015, NumPy Developers.
Copyright (c) 2011 by Enthought, Inc.
Copyright (c) 2010 by Mark Wiebe (mwwiebe@gmail.com)
Copyright 2000 Pearu Peterson all rights reserved, Pearu Peterson <pearu@ioc.ee>
f90: Copyright Absoft Corporation 1994-1998 mV2; Cray Research, Inc. 1994-1996 CF90 (2.x.x.x  f36t87) Version 2.3 Wed Apr 19, 2006  13:05:16
Copyright (c) 2006-2013 The University of Colorado Denver.  All rights reserved.
f90: Copyright Absoft Corporation 1994-2002; Absoft Pro FORTRAN Version 8.0
Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
Copyright 1999--2011 Pearu Peterson all rights reserved, Pearu Peterson <pearu@cens.ioc.ee>
Copyright 1999 - 2011 Pearu Peterson all rights reserved.
Copyright 2015 Robert Kern <robert.kern@gmail.com>
Copyright (c) 2015 Melissa E. O'Neill

Copyright (c) 2005-2019, NumPy Developers.
All rights reserved.

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are
met:

    * Redistributions of source code must retain the above copyright
       notice, this list of conditions and the following disclaimer.

    * Redistributions in binary form must reproduce the above
       copyright notice, this list of conditions and the following
       disclaimer in the documentation and/or other materials provided
       with the distribution.

    * Neither the name of the NumPy Developers nor the names of any
       contributors may be used to endorse or promote products derived
       from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

Software: Python 3.7.5
Copyright notice:
Copyright (c) 1999-2000 by Secret Labs AB
Copyright (C) 2005-2007   Gregory P. Smith (greg@krypto.org)
Copyright (c) 2003.
.  Copyright (C) 2005-2010   Gregory P. Smith (greg@krypto.org)
Copyright 1996,1997 by Oliver Andrich, Koblenz, Germany.
Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006 Python Software Foundation.
Copyright (c) 1995-2001 Corporation for National Research Initiatives.  All rights reserved.
Copyright 1994 by Lance Ellinghouse Cathedral City, California Republic, United States of America.
Copyright (C) 2001 Python Software Foundation Barry Warsaw <barry@python.org>, 2000.
libffi 2.00-beta - Copyright (c) 1996-2003  Red Hat, Inc.
Copyright (c) 2008-2012 Stefan Krah. All rights reserved.
2001-07-01 fl   added BIGCHARSET support (from Martin von Loewis)
``'Copyright 1991-1995 Stichting Mathematisch Centrum, Amsterdam'``
Copyright (C) 2003 Python Software Foundation
Copyright (C) 2001-2016 Vinay Sajip. All Rights Reserved.
Copyright 1995-1997, Automatrix, Inc., all rights reserved.
Copyright (c) 2002 MyCompanyName. All rights reserved.
<string>%version%, (c) 2001-2019 Python Software Foundation.</string>
Copyright (c) 2004 by Peter Astrand <astrand@lysator.liu.se>
Copyright (c) 1999-2002 by Fredrik Lundh.
Copyright (c) 1991-1995 Stichting Mathematisch Centrum, Amsterdam.\n\
AIX ABI support (c) 2002 Free Software Foundation, Inc.
( Copyright (c) 2011 Stefan Krah. All rights reserved. )
2013-02-04 mrab added fullmatch primitive
2003-10-17 gn   implemented non recursive scheme
2003-04-18 mvl  fully support 4-byte codes
Copyright (C) 1996-2018 Free Software Foundation, Inc.
portions copyright 2001, Autonomous Zones Industries, Inc., all rights...
Copyright (c) 1999-2002 by Secret Labs AB.
Copyright (C) 1986 Gary S. Brown.  You may use this program, or code or tables extracted from it, as desired without restriction.
-- Copyright (c) IBM Corporation, 2003, 2008.  All rights reserved.   --
; Copyright (c) 2008-2016 Stefan Krah. All rights reserved.
Copyright (c) 2001-2019 Python Software Foundation.\n\
Copyright 2008 Armin Ronacher.
Copyright © 2000 BeOpen.com. All rights reserved.
(c) 2005 Ian Bicking and contributors; written for Paste (http://pythonpaste.org)
Copyright (c) 2005-2006 ActiveState Software Inc.
Copyright (C) 1994 Steen Lumholt.
Copyright (c) 1999 by Fredrik Lundh.
libffi - Copyright (c) 1996-2003  Red Hat, Inc.
Copyright (c) 2006-2008 Alexander Chemeris
Copyright (C) 2002 Lars Gustaebel <lars@gustaebel.de>
Copyright (c) 1999-2003 Steve Purcell
Darwin ABI support (c) 2001 John Hornkvist
Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
Copyright (c) 1999-2008 by Fredrik Lundh
i.e., "Copyright © 1995-2001 Corporation for National Research Initiatives; All Rights Reserved" are retained in Python 1.6.1 alone or in any derivative version prepared by Licensee.  Alternately, in lieu of CNRI's License Agreement, Licensee may substitute the following text (omitting the quotes): "Python 1.6.1
-- Copyright (c) IBM Corporation, 2005, 2009.  All rights reserved.   --
Copyright (c) 2001-2017 Expat maintainers
Copyright (c) 2001-2012 Python Software Foundation. All Rights Reserved.
Copyright (C) 2002-2006 Python Software Foundation Author: Barry Warsaw Contact: email-sig@python.org
(c) 2002 Gregory P. Ward.  All Rights Reserved.
Copyright (c) 2000 BeOpen.com.\n\
Copyright (C) 2001-2007 Python Software Foundation Author: Ben Gertzfield, Barry Warsaw Contact: email-sig@python.org
Copyright (C) 2003-2004 Federico Di Gregorio <fog@debian.org>
2001-05-14 fl   fixes for 1.5.2 compatibility
Copyright © 1995-2000 Corporation for National Research Initiatives. All rights reserved.
Copyright (C) 1995, 1996, 1997, 1998, and 1999 WIDE Project.
copyright, i.e., "Copyright © 2001-2019 Python Software Foundation; All Rights Reserved" are retained in Python |release| alone or in any derivative version prepared by Licensee.
Copyright (C) 2001-2007 Python Software Foundation Author: Barry Warsaw, Thomas Wouters, Anthony Baxter Contact: email-sig@python.org
Copyright (C) 2005-2010   Gregory P. Smith (greg@krypto.org)
Copyright 2001-2017 by Vinay Sajip. All Rights Reserved.
Copyright (c) 2000 Doug White, 2006 James Knight, 2007 Christian Heimes All rights reserved.
Copyright (C) 1999-2001 Gregory P. Ward.
Copyright (c) 1999-2002 by Fredrik Lundh
+   Copyright 2007 Python Software Foundation.
else if (config == (void )2000 && (c) == 0x9B1D) {                 \
Copyright (c) 1999-2002 by Secret Labs AB
2002-11-09 fl   fixed empty sub/subn return type
Copyright 2009 Gabriel A. Genellina
Copyright (c) 2003-2009 by Fredrik Lundh.  All rights reserved.
Copyright 2004-2005 Elemental Security, Inc. All Rights Reserved.
(c) Copyright Guido van Rossum, 2000.
Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project.
Copyright (C) 2011-2012 Vinay Sajip.
Copyright 2006 Google, Inc. All Rights Reserved.
(c) Copyright Marc-Andre Lemburg, 2005.
Copyright (C) YEAR ORGANIZATION FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
Copyright (c) 1999-2000, Marc-Andre Lemburg; mailto:mal@lemburg.com
Copyright (c) 1995-2000, Corporation for National Research Initiatives.
Copyright (c) 1999 Toby Dickenson
Copyright (C) 2001,2002 Python Software Foundation csv package unit tests
Copyright (C) 2005, 2006 Martin von Löwis Licensed to PSF under a Contributor Agreement.
Copyright (c) 1997 by Fredrik Lundh
Copyright (c) 2002-2006 Python Software Foundation.  All rights reserved.
Copyright (c) 2002  Roger Sayle
Copyright 1995-1996 by Fred L. Drake, Jr. and Virginia Polytechnic Institute and State University, Blacksburg, Virginia, USA.
types.c - Copyright (c) 1996, 1998  Red Hat, Inc.
Copyright 2000, Mojam Media, Inc., all rights reserved.
Copyright (C) 1994 X Consortium
Copyright (C) 2002-2004 Python Software Foundation
Copyright (C) 2004-2006 Python Software Foundation Authors: Baxter, Wouters and Warsaw Contact: email-sig@python.org
Copyright (c) 2002 Jorge Acereda  <jacereda@users.sourceforge.net> &
darwin.S - Copyright (c) 1996, 1998, 2001, 2002, 2003  Red Hat, Inc.
Copyright © 1991 - 1995, Stichting Mathematisch Centrum Amsterdam, The Netherlands.  All rights reserved.
"Copyright 1995-1996 by Virginia Polytechnic Institute & State\n\
Copyright 2012, Samuel Neves <sneves@dei.uc.pt>.  You may use this under the terms of the CC0, the OpenSSL Licence, or the Apache Public License 2.0, at your option.  The terms of these licenses can be found at:
Copyright (C) 1995-2011 Jean-loup Gailly and Mark Adler
x86-ffitarget.h - Copyright (c) 1996-2003  Red Hat, Inc.
Copyright 1991-1995, Stichting Mathematisch Centrum, all rights reserved.
darwin64.S - Copyright (c) 2006 Free Software Foundation, Inc.
Copyright (C) 2001-2006 Python Software Foundation Author: Ben Gertzfield Contact: email-sig@python.org
Copyright (c) 2005 Don Owens All rights reserved.
win32.S - Copyright (c) 1996, 1998, 2001, 2002  Red Hat, Inc.
(c) Copyright 2005, Marc-Andre Lemburg (mal@lemburg.com).
library/xml.etree.elementtree,,:include,  Copyright (c) <xi:include href="year.txt" parse="text" />.
ffi.c - Copyright (c) 1998 Geoffrey Keating
Copyright 2006 Georg Brandl.
Copyright (C) 2005-2010 Gerhard Häring <gh@ghaering.de>
(c) 2013-2017 Christian Heimes <christian@python.org>
Copyright 1992-2018 Free Software Foundation, Inc.
Copyright (c) 1990-1995, Stichting Mathematisch Centrum.
Copyright (C) 2001-2017 Vinay Sajip. All Rights Reserved.
i.e., "Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019 Python Software Foundation;
2001-10-24 fl   added finditer primitive (for 2.2 only)
Copyright (C) 2001-2006 Python Software Foundation Author: Keith Dart Contact: email-sig@python.org
Copyright (c) 1999-2009 by Fredrik Lundh.
(c) 2000 Peter Bosch.  All Rights Reserved.
ffitarget.h - Copyright (c) 1996-2003  Red Hat, Inc.
Copyright (C) 2012 Free Software Foundation, Inc.
Copyright (C) 2002-2007 Python Software Foundation Author: Ben Gertzfield Contact: email-sig@python.org
Copyright 1994 by Lance Ellinghouse, Cathedral City, California Republic, United States of America.
Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
Copyright (C) 2006 - 2010  Gregor Lingl email: glingl@aon.at
Copyright © 2001-2019 Python Software Foundation. All rights reserved.
Copyright (c) 2009,2010 Zmanda Inc. <http://www.zmanda.com/>
Copyright (c) 1998-2008 The OpenSSL Project.  All rights reserved.
Copyright 1996 by Sam Rushing
Copyright (c) 1998-2000 Thai Open Source Software Center Ltd and Clark Cooper
(c) Craig Reese, Joe Campbell and Jeff Poskanzer 1989 /
Copyright (c) 1999, 2000, 2001 Steve Purcell This module is free software, and you may redistribute it and/or modify it under the same terms as Python itself, so long as this copyright message and disclaimer are retained in their original form.
-- Copyright (c) IBM Corporation, 2005, 2008.  All rights reserved.   --
Copyright (C) 2001-2012 Python Software Foundation. All Rights Reserved.
dnl Copyright © 2004 Scott James Remnant <scott@netsplit.com>.
Copyright (C) 2002-2007 Python Software Foundation Contact: email-sig@python.org
Copyright (c) 1998-2001 by Secret Labs AB.  All rights reserved.
Copyright (c) 2009,2010 Dustin J. Mitchell <dustin@zmanda.com>
Copyright (c) 2002  Bo Thorsen
2001-10-21 fl   added sub/subn primitive
copyright, i.e., "Copyright © 2001-2018 Python Software Foundation; All Rights Reserved" are retained in Python 3.7 alone or in any derivative version prepared by Licensee.
Copyright (C) 2011-2013 Vinay Sajip.
Copyright (c) 1991, 2000, 2001 by Lucent Technologies.
Copyright (c) 2010 Python Software Foundation. All Rights Reserved.
Copyright 1992-1994, David Gottner
" SRE 2.2.2 Copyright (c) 1997-2002 by Secret Labs AB ";
;   Copyright (c) 2004, Outercurve Foundation.
Copyright (c) 2003-2005 by Peter Astrand <astrand@lysator.liu.se>
Copyright (c) 1999 by Secret Labs AB
libffi PyOBJC - Copyright (c) 1996-2003  Red Hat, Inc.
Copyright (c) 1999-2009 by Fredrik Lundh
Copyright 2007 Google, Inc. All Rights Reserved.
-- Copyright (c) IBM Corporation, 2004, 2008.  All rights reserved.   --
Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019 Python Software Foundation.  All rights reserved.
Copyright (C) 2001-2007 Python Software Foundation Author: Barry Warsaw Contact: email-sig@python.org
Copyright (c) 2000 BeOpen.com.  All rights reserved.
Copyright © 1991-1995 Stichting Mathematisch Centrum. All rights reserved.
Copyright (C) 2000  Luke Kenneth Casson Leighton <lkcl@samba.org>
2001-12-07 fl   fixed memory leak in sub/subn (Guido van Rossum)
-- Copyright (c) IBM Corporation, 2001, 2008.  All rights reserved.   --
Virginia, USA.  Portions copyright 1991-1995 by Stichting Mathematisch\n\
Copyright (c) 2004 Free Software Foundation, Inc.
so portions are Copyright (C) 2001,2002 Python Software Foundation, and were written by Barry Warsaw.
Copyright (C) 2004-2010 Gerhard Häring <gh@ghaering.de>
Copyright (c) 2004 Python Software Foundation.
(c) Copyright 2000 Guido van Rossum.
Copyright 2007 Georg Brandl.
Copyright (c) 1999 by Secret Labs AB.
Copyright (c) 2002 Unicode, Inc.  All Rights reserved.
Copyright 2009 Brian Quinlan. All Rights Reserved.
Copyright (c) 2008-2009, Google Inc.
Copyright (c) 2001-2006 Twisted Matrix Laboratories.
(c) Copyright CNRI, All Rights Reserved. NO WARRANTY.
License Agreement and CNRI's notice of copyright, i.e., "Copyright (c) 1995-2001 Corporation for National Research Initiatives; All Rights Reserved" are retained in Python 1.6.1 alone or in any derivative version prepared by Licensee.  Alternately, in lieu of CNRI's License Agreement, Licensee may substitute the following text (omitting the quotes): "Python 1.6.1 is made available subject to the terms and conditions in CNRI's License Agreement.  This Agreement together with Python 1.6.1 may be located on the Internet using the following unique, persistent identifier (known as a handle): 1895.22/1013.  This Agreement may also be obtained from a proxy server on the Internet
Copyright (c) Corporation for National Research Initiatives.
Copyright (c) 2008-2016 Stefan Krah. All rights reserved.
Copyright 2001-2016 by Vinay Sajip. All Rights Reserved.
if (config == (void )2000 && (c) == 0x20B9F) {                     \
ppc-ffitarget.h - Copyright (c) 1996-2003  Red Hat, Inc.
Copyright (c) 2001-2006 Gregory P. Ward.  All rights reserved.
Copyright (c) 1997-2001 by Secret Labs AB.  All rights reserved.
Copyright 2000 by Timothy O'Malley <timo@alum.mit.edu>
Copyright (C) 2007-2012 Michael Foord & the mock team E-mail: fuzzyman AT voidspace DOT org DOT uk
Copyright (C) 2011-2014 Vinay Sajip.
Copyright (c) 2002  Ranjit Mathew
ppc-darwin.h - Copyright (c) 2002, 2003, 2004, Free Software Foundation, Inc.
ppc64-darwinclosure.S - Copyright (c) 2002, 2003, 2004, Free Software Foundation, Inc. based on ppcclosure.S
x86-ffi64.c - Copyright (c) 2002  Bo Thorsen <bo@suse.de>
Copyright (C) 2001-2006 Python Software Foundation Author: Barry Warsaw Contact: email-sig@python.org
Copyright (c) 2004, Outercurve Foundation.
Copyright (c) 1995-2001 Corporation for National Research Initiatives.\n\
Copyright 1999, Bioreason, Inc., all rights reserved.
2001-10-20 fl   added split primitive; re-enable unicode for 1.6/2.0/2.1
Copyright (C) 2001-2019 Vinay Sajip. All Rights Reserved.
Copyright (c) 2008 by Christian Heimes <christian@cheimes.de>
Copyright 2001-2019 by Vinay Sajip. All Rights Reserved.
Copyright (C) 2005 Martin v. Löwis Licensed to PSF under a contributor agreement.
ppc-darwin.S - Copyright (c) 2000 John Hornkvist
Copyright (c) 2000, BeOpen.com.
Copyright (C) 2001-2010 Python Software Foundation Author: Barry Warsaw Contact: email-sig@python.org
Copyright (C) 2001-2007 Python Software Foundation Author: Anthony Baxter Contact: email-sig@python.org
Copyright (c) 2004 by Fredrik Lundh <fredrik@pythonware.com>
Copyright Disney Enterprises, Inc.  All Rights Reserved.
ffi.c - Copyright (c) 1996, 1998, 1999, 2001  Red Hat, Inc.
Copyright (C) 2003-2013 Python Software Foundation
Copyright (c) 1991 - 1995, Stichting Mathematisch Centrum Amsterdam, The Netherlands.  All rights reserved.
Copyright (c) <xi:include href="year.txt" parse="text" />.
prepcif.c - Copyright (c) 1996, 1998  Red Hat, Inc.
self.assertEqual(list(c), list(range(2,2000)))
Copyright (C) 2002-2007 Python Software Foundation Author: Ben Gertzfield, Barry Warsaw Contact: email-sig@python.org
-- Copyright (c) IBM Corporation, 2000, 2008.  All rights reserved.   --
Copyright (C) 2012   Christian Heimes (christian@python.org)
fficommon.h - Copyright (c) 1996  Red Hat, Inc.
Copyright (C) 2012-2016  Christian Heimes (christian@python.org)
Copyright (C) 2004-2005 Gerhard Häring <gh@ghaering.de>
(c) 2002 Python Software Foundation.  All Rights Reserved.
Copyright (c) 2004 by Secret Labs AB, http://www.pythonware.com
Copyright (c) 2004, Outercurve Foundation.
Copyright (c) 2006-2008, R Oudkerk Licensed to PSF under a Contributor Agreement.
.. Copyright 1995 Virginia Polytechnic Institute and State University and Fred L. Drake, Jr.  This copyright notice must be distributed on all copies, but this document otherwise may be distributed as part of the Python distribution.  No fee may be charged for this document in any representation, either on paper or electronically.  This restriction does not affect other elements in a distributed package in any way.
Copyright 2012-2013 by Larry Hastings.
Copyright (C) 2002-2006 Python Software Foundation Contact: email-sig@python.org email package unit tests for (optional) Asian codecs
Copyright (c) 2002 Peter O'Gorman <ogorman@users.sourceforge.net>
Copyright 2007 Google Inc.
Copyright (c) 1999 by Fredrik Lundh
Copyright (C) 2001-2010 Python Software Foundation Contact: email-sig@python.org email package unit tests
Copyright (c) 2003-2004 by Fredrik Lundh.  All rights reserved.
Copyright (c) 1991-1999 Unicode, Inc.  All Rights reserved.
Copyright (c) 2000-2017 Expat development team Licensed under the MIT license:
Copyright (c) 1997-2000 Thai Open Source Software Center Ltd
Copyright (c) 1998 The Open Group
Copyright (c) 1991 - 1995, Stichting Mathematisch Centrum Amsterdam, The Netherlands. All rights reserved.\
<string>%version%, (c) 2001-2016 Python Software Foundation.</string>
Copyright (c) 2000-2010, eGenix.com Software GmbH; mailto:info@egenix.com
Copyright (C) 2005 Gerhard Häring <gh@ghaering.de>
copyright = '2001-%s, Python Software Foundation' % time.strftime('%Y')
Copyright (c) 1996-2008  Red Hat, Inc and others.
Copyright (C) 2005 Martin v. Löwis Licensed to PSF under a Contributor Agreement.
<string>(c) 2001-2016 Python Software Foundation.</string>
<string>%VERSION%, (c) 2001-2019 Python Software Foundation.</string>
Copyright (C) 1997, 2002, 2003, 2007, 2008 Martin von Loewis
Copyright (c) 2013  Marek Majkowski <marek@popcount.org>
Copyright (c) 1999-2008 by Fredrik Lundh.  All rights reserved.
Copyright (C) 1997 - 2002, Makoto Matsumoto and Takuji Nishimura, All rights reserved.
Copyright (c) 1998, 1999, 2000 Thai Open Source Software Center Ltd and Clark Cooper
2001-04-15 fl   export copyright as Python attribute, not global 2001-04-28 fl   added copy methods (work in progress)
Copyright (C) 2002, 2003 Python Software Foundation.
Copyright (c) 2004, 2005, 2006 Python Software Foundation.
dnl Copyright © 2012-2015 Dan Nicholson <dbn.lists@gmail.com>
Copyright (c) 1999-2009 by Secret Labs AB.  All rights reserved.
Copyright (c) 2003-2010 Python Software Foundation This module is free software, and you may redistribute it and/or modify it under the same terms as Python itself, so long as this copyright message and disclaimer are retained in their original form.
Copyright (c) 1991-1995 Stichting Mathematisch Centrum.  All rights reserved.
2001-10-18 fl   fixed group reset issue (from Matthew Mueller)
Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc.
-- Copyright (c) IBM Corporation, 1981, 2008.  All rights reserved.   --
Copyright (C) 2000  Bastian Kleineidam
ppc-darwinclosure.S - Copyright (c) 2002, 2003, 2004, Free Software Foundation, Inc. based on ppcclosure.S
Copyright (c) 2001  John Beniton
Portions copyright 1991-1995 by Stichting Mathematisch Centrum, Amsterdam, The Netherlands.  Copying is permitted under the terms associated with the main Python distribution, with the additional restriction that this additional notice be included and maintained on all distributed copies.

A. HISTORY OF THE SOFTWARE
==========================

Python was created in the early 1990s by Guido van Rossum at Stichting
Mathematisch Centrum (CWI, see http://www.cwi.nl) in the Netherlands
as a successor of a language called ABC.  Guido remains Python's
principal author, although it includes many contributions from others.

In 1995, Guido continued his work on Python at the Corporation for
National Research Initiatives (CNRI, see http://www.cnri.reston.va.us)
in Reston, Virginia where he released several versions of the
software.

In May 2000, Guido and the Python core development team moved to
BeOpen.com to form the BeOpen PythonLabs team.  In October of the same
year, the PythonLabs team moved to Digital Creations, which became
Zope Corporation.  In 2001, the Python Software Foundation (PSF, see
https://www.python.org/psf/) was formed, a non-profit organization
created specifically to own Python-related Intellectual Property.
Zope Corporation was a sponsoring member of the PSF.

All Python releases are Open Source (see http://www.opensource.org for
the Open Source Definition).  Historically, most, but not all, Python
releases have also been GPL-compatible; the table below summarizes
the various releases.

    Release         Derived     Year        Owner       GPL-
                    from                                compatible? (1)

    0.9.0 thru 1.2              1991-1995   CWI         yes
    1.3 thru 1.5.2  1.2         1995-1999   CNRI        yes
    1.6             1.5.2       2000        CNRI        no
    2.0             1.6         2000        BeOpen.com  no
    1.6.1           1.6         2001        CNRI        yes (2)
    2.1             2.0+1.6.1   2001        PSF         no
    2.0.1           2.0+1.6.1   2001        PSF         yes
    2.1.1           2.1+2.0.1   2001        PSF         yes
    2.1.2           2.1.1       2002        PSF         yes
    2.1.3           2.1.2       2002        PSF         yes
    2.2 and above   2.1.1       2001-now    PSF         yes

Footnotes:

(1) GPL-compatible doesn't mean that we're distributing Python under
    the GPL.  All Python licenses, unlike the GPL, let you distribute
    a modified version without making your changes open source.  The
    GPL-compatible licenses make it possible to combine Python with
    other software that is released under the GPL; the others don't.

(2) According to Richard Stallman, 1.6.1 is not GPL-compatible,
    because its license has a choice of law clause.  According to
    CNRI, however, Stallman's lawyer has told CNRI's lawyer that 1.6.1
    is "not incompatible" with the GPL.

Thanks to the many outside volunteers who have worked under Guido's
direction to make these releases possible.


B. TERMS AND CONDITIONS FOR ACCESSING OR OTHERWISE USING PYTHON
===============================================================

PYTHON SOFTWARE FOUNDATION LICENSE VERSION 2
--------------------------------------------

1. This LICENSE AGREEMENT is between the Python Software Foundation
("PSF"), and the Individual or Organization ("Licensee") accessing and
otherwise using this software ("Python") in source or binary form and
its associated documentation.

2. Subject to the terms and conditions of this License Agreement, PSF hereby
grants Licensee a nonexclusive, royalty-free, world-wide license to reproduce,
analyze, test, perform and/or display publicly, prepare derivative works,
distribute, and otherwise use Python alone or in any derivative version,
provided, however, that PSF's License Agreement and PSF's notice of copyright,
i.e., "Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010,
2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019 Python Software Foundation;
All Rights Reserved" are retained in Python alone or in any derivative version
prepared by Licensee.

3. In the event Licensee prepares a derivative work that is based on
or incorporates Python or any part thereof, and wants to make
the derivative work available to others as provided herein, then
Licensee hereby agrees to include in any such work a brief summary of
the changes made to Python.

4. PSF is making Python available to Licensee on an "AS IS"
basis.  PSF MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR
IMPLIED.  BY WAY OF EXAMPLE, BUT NOT LIMITATION, PSF MAKES NO AND
DISCLAIMS ANY REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS
FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF PYTHON WILL NOT
INFRINGE ANY THIRD PARTY RIGHTS.

5. PSF SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF PYTHON
FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS AS
A RESULT OF MODIFYING, DISTRIBUTING, OR OTHERWISE USING PYTHON,
OR ANY DERIVATIVE THEREOF, EVEN IF ADVISED OF THE POSSIBILITY THEREOF.

6. This License Agreement will automatically terminate upon a material
breach of its terms and conditions.

7. Nothing in this License Agreement shall be deemed to create any
relationship of agency, partnership, or joint venture between PSF and
Licensee.  This License Agreement does not grant permission to use PSF
trademarks or trade name in a trademark sense to endorse or promote
products or services of Licensee, or any third party.

8. By copying, installing or otherwise using Python, Licensee
agrees to be bound by the terms and conditions of this License
Agreement.


BEOPEN.COM LICENSE AGREEMENT FOR PYTHON 2.0
-------------------------------------------

BEOPEN PYTHON OPEN SOURCE LICENSE AGREEMENT VERSION 1

1. This LICENSE AGREEMENT is between BeOpen.com ("BeOpen"), having an
office at 160 Saratoga Avenue, Santa Clara, CA 95051, and the
Individual or Organization ("Licensee") accessing and otherwise using
this software in source or binary form and its associated
documentation ("the Software").

2. Subject to the terms and conditions of this BeOpen Python License
Agreement, BeOpen hereby grants Licensee a non-exclusive,
royalty-free, world-wide license to reproduce, analyze, test, perform
and/or display publicly, prepare derivative works, distribute, and
otherwise use the Software alone or in any derivative version,
provided, however, that the BeOpen Python License is retained in the
Software, alone or in any derivative version prepared by Licensee.

3. BeOpen is making the Software available to Licensee on an "AS IS"
basis.  BEOPEN MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR
IMPLIED.  BY WAY OF EXAMPLE, BUT NOT LIMITATION, BEOPEN MAKES NO AND
DISCLAIMS ANY REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS
FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF THE SOFTWARE WILL NOT
INFRINGE ANY THIRD PARTY RIGHTS.

4. BEOPEN SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF THE
SOFTWARE FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS
AS A RESULT OF USING, MODIFYING OR DISTRIBUTING THE SOFTWARE, OR ANY
DERIVATIVE THEREOF, EVEN IF ADVISED OF THE POSSIBILITY THEREOF.

5. This License Agreement will automatically terminate upon a material
breach of its terms and conditions.

6. This License Agreement shall be governed by and interpreted in all
respects by the law of the State of California, excluding conflict of
law provisions.  Nothing in this License Agreement shall be deemed to
create any relationship of agency, partnership, or joint venture
between BeOpen and Licensee.  This License Agreement does not grant
permission to use BeOpen trademarks or trade names in a trademark
sense to endorse or promote products or services of Licensee, or any
third party.  As an exception, the "BeOpen Python" logos available at
http://www.pythonlabs.com/logos.html may be used according to the
permissions granted on that web page.

7. By copying, installing or otherwise using the software, Licensee
agrees to be bound by the terms and conditions of this License
Agreement.


CNRI LICENSE AGREEMENT FOR PYTHON 1.6.1
---------------------------------------

1. This LICENSE AGREEMENT is between the Corporation for National
Research Initiatives, having an office at 1895 Preston White Drive,
Reston, VA 20191 ("CNRI"), and the Individual or Organization
("Licensee") accessing and otherwise using Python 1.6.1 software in
source or binary form and its associated documentation.

2. Subject to the terms and conditions of this License Agreement, CNRI
hereby grants Licensee a nonexclusive, royalty-free, world-wide
license to reproduce, analyze, test, perform and/or display publicly,
prepare derivative works, distribute, and otherwise use Python 1.6.1
alone or in any derivative version, provided, however, that CNRI's
License Agreement and CNRI's notice of copyright, i.e., "Copyright (c)
1995-2001 Corporation for National Research Initiatives; All Rights
Reserved" are retained in Python 1.6.1 alone or in any derivative
version prepared by Licensee.  Alternately, in lieu of CNRI's License
Agreement, Licensee may substitute the following text (omitting the
quotes): "Python 1.6.1 is made available subject to the terms and
conditions in CNRI's License Agreement.  This Agreement together with
Python 1.6.1 may be located on the Internet using the following
unique, persistent identifier (known as a handle): 1895.22/1013.  This
Agreement may also be obtained from a proxy server on the Internet
using the following URL: http://hdl.handle.net/1895.22/1013".

3. In the event Licensee prepares a derivative work that is based on
or incorporates Python 1.6.1 or any part thereof, and wants to make
the derivative work available to others as provided herein, then
Licensee hereby agrees to include in any such work a brief summary of
the changes made to Python 1.6.1.

4. CNRI is making Python 1.6.1 available to Licensee on an "AS IS"
basis.  CNRI MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR
IMPLIED.  BY WAY OF EXAMPLE, BUT NOT LIMITATION, CNRI MAKES NO AND
DISCLAIMS ANY REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS
FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF PYTHON 1.6.1 WILL NOT
INFRINGE ANY THIRD PARTY RIGHTS.

5. CNRI SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF PYTHON
1.6.1 FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS AS
A RESULT OF MODIFYING, DISTRIBUTING, OR OTHERWISE USING PYTHON 1.6.1,
OR ANY DERIVATIVE THEREOF, EVEN IF ADVISED OF THE POSSIBILITY THEREOF.

6. This License Agreement will automatically terminate upon a material
breach of its terms and conditions.

7. This License Agreement shall be governed by the federal
intellectual property law of the United States, including without
limitation the federal copyright law, and, to the extent such
U.S. federal law does not apply, by the law of the Commonwealth of
Virginia, excluding Virginia's conflict of law provisions.
Notwithstanding the foregoing, with regard to derivative works based
on Python 1.6.1 that incorporate non-separable material that was
previously distributed under the GNU General Public License (GPL), the
law of the Commonwealth of Virginia shall govern this License
Agreement only as to issues arising under or with respect to
Paragraphs 4, 5, and 7 of this License Agreement.  Nothing in this
License Agreement shall be deemed to create any relationship of
agency, partnership, or joint venture between CNRI and Licensee.  This
License Agreement does not grant permission to use CNRI trademarks or
trade name in a trademark sense to endorse or promote products or
services of Licensee, or any third party.

8. By clicking on the "ACCEPT" button where indicated, or by copying,
installing or otherwise using Python 1.6.1, Licensee agrees to be
bound by the terms and conditions of this License Agreement.

        ACCEPT


CWI LICENSE AGREEMENT FOR PYTHON 0.9.0 THROUGH 1.2
--------------------------------------------------

Copyright (c) 1991 - 1995, Stichting Mathematisch Centrum Amsterdam,
The Netherlands.  All rights reserved.

Permission to use, copy, modify, and distribute this software and its
documentation for any purpose and without fee is hereby granted,
provided that the above copyright notice appear in all copies and that
both that copyright notice and this permission notice appear in
supporting documentation, and that the name of Stichting Mathematisch
Centrum or CWI not be used in advertising or publicity pertaining to
distribution of the software without specific, written prior
permission.

STICHTING MATHEMATISCH CENTRUM DISCLAIMS ALL WARRANTIES WITH REGARD TO
THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
FITNESS, IN NO EVENT SHALL STICHTING MATHEMATISCH CENTRUM BE LIABLE
FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.

Software: Python 3.8.5
Copyright notice:
copyright, i.e., "Copyright © 2001-2018 Python Software Foundation; All Rights Reserved" are retained in Python 3.8 alone or in any derivative version prepared by Licensee.
Copyright (c) 1999-2000 by Secret Labs AB
Copyright (C) 2005-2007   Gregory P. Smith (greg@krypto.org)
Copyright (c) 2003.
.  Copyright (C) 2005-2010   Gregory P. Smith (greg@krypto.org)
Copyright 1996,1997 by Oliver Andrich, Koblenz, Germany.
Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006 Python Software Foundation.
Copyright (c) 1995-2001 Corporation for National Research Initiatives.  All rights reserved.
Copyright 1994 by Lance Ellinghouse Cathedral City, California Republic, United States of America.
Copyright (C) 2001 Python Software Foundation Barry Warsaw <barry@python.org>, 2000.
Copyright (c) 2008-2012 Stefan Krah. All rights reserved.
2001-07-01 fl   added BIGCHARSET support (from Martin von Loewis)
``'Copyright 1991-1995 Stichting Mathematisch Centrum, Amsterdam'``
Copyright (C) 2003 Python Software Foundation
Copyright (C) 2001-2016 Vinay Sajip. All Rights Reserved.
Copyright 1995-1997, Automatrix, Inc., all rights reserved.
Copyright (c) 2002 MyCompanyName. All rights reserved.
Copyright (c) 2004 by Peter Astrand <astrand@lysator.liu.se>
Copyright (c) 1999-2002 by Fredrik Lundh.
Copyright (c) 1991-1995 Stichting Mathematisch Centrum, Amsterdam.\n\
AIX ABI support (c) 2002 Free Software Foundation, Inc.
( Copyright (c) 2011 Stefan Krah. All rights reserved. )
2013-02-04 mrab added fullmatch primitive
2003-10-17 gn   implemented non recursive scheme
2003-04-18 mvl  fully support 4-byte codes
Copyright (c) 1999-2002 by Secret Labs AB.
portions copyright 2001, Autonomous Zones Industries, Inc., all rights...
Copyright © 2013 W3C® (MIT, ERCIM, Keio, Beihang), All Rights Reserved.
Copyright (C) 1986 Gary S. Brown.  You may use this program, or code or tables extracted from it, as desired without restriction.
-- Copyright (c) IBM Corporation, 2003, 2008.  All rights reserved.   --
; Copyright (c) 2008-2016 Stefan Krah. All rights reserved.
Copyright (c) 2001-2020 Python Software Foundation.  All rights reserved.
Copyright 2008 Armin Ronacher.
Copyright © 2000 BeOpen.com. All rights reserved.
(c) 2005 Ian Bicking and contributors; written for Paste (http://pythonpaste.org)
Copyright (c) 2005-2006 ActiveState Software Inc.
Copyright (C) 1994 Steen Lumholt.
Copyright (c) 1999 by Fredrik Lundh.
libffi - Copyright (c) 1996-2003  Red Hat, Inc.
Copyright (c) 2006-2008 Alexander Chemeris
Copyright (C) 2002 Lars Gustaebel <lars@gustaebel.de>
Copyright (c) 1999-2003 Steve Purcell
Darwin ABI support (c) 2001 John Hornkvist
Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
Copyright (c) 1999-2008 by Fredrik Lundh
i.e., "Copyright © 1995-2001 Corporation for National Research Initiatives; All Rights Reserved" are retained in Python 1.6.1 alone or in any derivative version prepared by Licensee.  Alternately, in lieu of CNRI's License Agreement, Licensee may substitute the following text (omitting the quotes): "Python 1.6.1
-- Copyright (c) IBM Corporation, 2005, 2009.  All rights reserved.   --
Copyright (c) 2001-2017 Expat maintainers
Copyright (c) 2001-2012 Python Software Foundation. All Rights Reserved.
Copyright (C) 2002-2006 Python Software Foundation Author: Barry Warsaw Contact: email-sig@python.org
(c) 2002 Gregory P. Ward.  All Rights Reserved.
Copyright (c) 2000 BeOpen.com.\n\
Copyright (C) 2001-2007 Python Software Foundation Author: Ben Gertzfield, Barry Warsaw Contact: email-sig@python.org
Copyright (C) 2003-2004 Federico Di Gregorio <fog@debian.org>
2001-05-14 fl   fixes for 1.5.2 compatibility
Copyright © 1995-2000 Corporation for National Research Initiatives. All rights reserved.
Copyright (c) 2013 W3C(R) (MIT, ERCIM, Keio, Beihang), All Rights Reserved.
Copyright (C) 1995, 1996, 1997, 1998, and 1999 WIDE Project.
Copyright (C) 2001-2007 Python Software Foundation Author: Barry Warsaw, Thomas Wouters, Anthony Baxter Contact: email-sig@python.org
Copyright (C) 2005-2010   Gregory P. Smith (greg@krypto.org)
Copyright 2001-2017 by Vinay Sajip. All Rights Reserved.
Copyright (c) 2000 Doug White, 2006 James Knight, 2007 Christian Heimes All rights reserved.
Copyright (C) 1999-2001 Gregory P. Ward.
Copyright (c) 1999-2002 by Fredrik Lundh
+   Copyright 2007 Python Software Foundation.
else if (config == (void )2000 && (c) == 0x9B1D) {                 \
Copyright (c) 1999-2002 by Secret Labs AB
2002-11-09 fl   fixed empty sub/subn return type
Copyright 2009 Gabriel A. Genellina
Copyright (c) 2003-2009 by Fredrik Lundh.  All rights reserved.
Copyright 2004-2005 Elemental Security, Inc. All Rights Reserved.
(c) Copyright Guido van Rossum, 2000.
Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project.
Copyright (C) 2011-2012 Vinay Sajip.
Copyright 2006 Google, Inc. All Rights Reserved.
(c) Copyright Marc-Andre Lemburg, 2005.
Copyright (C) 1996-2014 Free Software Foundation, Inc.
Copyright (C) YEAR ORGANIZATION FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
Copyright (c) 1999-2000, Marc-Andre Lemburg; mailto:mal@lemburg.com
Copyright (c) 1995-2000, Corporation for National Research Initiatives.
Copyright (c) 1999 Toby Dickenson
Copyright (C) 2001,2002 Python Software Foundation csv package unit tests
Copyright (C) 2005, 2006 Martin von Löwis Licensed to PSF under a Contributor Agreement.
Copyright (c) 1997 by Fredrik Lundh
Copyright (c) 2002-2006 Python Software Foundation.  All rights reserved.
Copyright (c) 2002  Roger Sayle
Copyright 1995-1996 by Fred L. Drake, Jr. and Virginia Polytechnic Institute and State University, Blacksburg, Virginia, USA.
types.c - Copyright (c) 1996, 1998  Red Hat, Inc.
Copyright 2000, Mojam Media, Inc., all rights reserved.
Copyright (C) 1994 X Consortium
copyright, i.e., "Copyright © 2001-2020 Python Software Foundation; All Rights Reserved" are retained in Python |release| alone or in any derivative version prepared by Licensee.
Copyright (C) 2004-2006 Python Software Foundation Authors: Baxter, Wouters and Warsaw Contact: email-sig@python.org
Copyright (C) 2002-2004 Python Software Foundation
Copyright (c) 2002 Jorge Acereda  <jacereda@users.sourceforge.net> &
darwin.S - Copyright (c) 1996, 1998, 2001, 2002, 2003  Red Hat, Inc.
Copyright © 1991 - 1995, Stichting Mathematisch Centrum Amsterdam, The Netherlands.  All rights reserved.
"Copyright 1995-1996 by Virginia Polytechnic Institute & State\n\
x86-ffitarget.h - Copyright (c) 1996-2003  Red Hat, Inc.
Copyright (C) 1995-2011 Jean-loup Gailly and Mark Adler
Copyright 1991-1995, Stichting Mathematisch Centrum, all rights reserved.
Copyright © 2001-2020 Python Software Foundation. All rights reserved.
<string>(c) 2001-2020 Python Software Foundation.</string>
Copyright (C) 2001-2006 Python Software Foundation Author: Ben Gertzfield Contact: email-sig@python.org
Copyright (c) 2005 Don Owens All rights reserved.
darwin64.S - Copyright (c) 2006 Free Software Foundation, Inc.
(c) Copyright 2005, Marc-Andre Lemburg (mal@lemburg.com).
library/xml.etree.elementtree,,:include,  Copyright (c) <xi:include href="year.txt" parse="text" />.
ffi.c - Copyright (c) 1998 Geoffrey Keating
Copyright 2006 Georg Brandl.
Copyright (C) 2005-2010 Gerhard Häring <gh@ghaering.de>
(c) 2013-2017 Christian Heimes <christian@python.org>
Copyright 1992-2018 Free Software Foundation, Inc.
Copyright (C) 2003-2013 Python Software Foundation import copy import operator import pickle import unittest import plistlib import os import datetime import codecs import binascii import collections from test import support from io import BytesIO
Copyright (C) 2001-2017 Vinay Sajip. All Rights Reserved.
Copyright (c) 1990-1995, Stichting Mathematisch Centrum.
2001-10-24 fl   added finditer primitive (for 2.2 only)
Copyright (C) 2001-2006 Python Software Foundation Author: Keith Dart Contact: email-sig@python.org
Copyright (c) 1999-2009 by Fredrik Lundh.
(c) 2000 Peter Bosch.  All Rights Reserved.
Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
Copyright (C) 2012 Free Software Foundation, Inc.
Copyright (C) 2002-2007 Python Software Foundation Author: Ben Gertzfield Contact: email-sig@python.org
i.e., "Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020 Python Software Foundation;
Copyright 1994 by Lance Ellinghouse, Cathedral City, California Republic, United States of America.
Copyright (C) 2006 - 2010  Gregor Lingl email: glingl@aon.at
Copyright (c) 2009,2010 Zmanda Inc. <http://www.zmanda.com/>
Copyright (c) 1998-2008 The OpenSSL Project.  All rights reserved.
Copyright 1996 by Sam Rushing
Copyright (c) 1998-2000 Thai Open Source Software Center Ltd and Clark Cooper
(c) Craig Reese, Joe Campbell and Jeff Poskanzer 1989 /
Copyright (c) 1999, 2000, 2001 Steve Purcell This module is free software, and you may redistribute it and/or modify it under the same terms as Python itself, so long as this copyright message and disclaimer are retained in their original form.
-- Copyright (c) IBM Corporation, 2005, 2008.  All rights reserved.   --
Copyright (C) 2001-2012 Python Software Foundation. All Rights Reserved.
dnl Copyright © 2004 Scott James Remnant <scott@netsplit.com>.
Copyright (C) 2002-2007 Python Software Foundation Contact: email-sig@python.org
Copyright (c) 1998-2001 by Secret Labs AB.  All rights reserved.
Copyright (c) 2009,2010 Dustin J. Mitchell <dustin@zmanda.com>
Copyright (c) 2002  Bo Thorsen
2001-10-21 fl   added sub/subn primitive
Copyright 1992-1994, David Gottner
Copyright (C) 2011-2013 Vinay Sajip.
Copyright (c) 1991, 2000, 2001 by Lucent Technologies.
Copyright (c) 2010 Python Software Foundation. All Rights Reserved.
" SRE 2.2.2 Copyright (c) 1997-2002 by Secret Labs AB ";
;   Copyright (c) 2004, Outercurve Foundation.
Copyright (c) 2003-2005 by Peter Astrand <astrand@lysator.liu.se>
Copyright (c) 1999 by Secret Labs AB
libffi PyOBJC - Copyright (c) 1996-2003  Red Hat, Inc.
Copyright (c) 1999-2009 by Fredrik Lundh
Copyright 2007 Google, Inc. All Rights Reserved.
-- Copyright (c) IBM Corporation, 2004, 2008.  All rights reserved.   --
Copyright (C) 2001-2007 Python Software Foundation Author: Barry Warsaw Contact: email-sig@python.org
Copyright (c) 2000 BeOpen.com.  All rights reserved.
<string>%version%, (c) 2001-2020 Python Software Foundation.</string>
Copyright © 1991-1995 Stichting Mathematisch Centrum. All rights reserved.
Copyright (C) 2000  Luke Kenneth Casson Leighton <lkcl@samba.org>
Copyright (C) 2005-2007 Gerhard Häring <gh@ghaering.de>
2001-12-07 fl   fixed memory leak in sub/subn (Guido van Rossum)
-- Copyright (c) IBM Corporation, 2001, 2008.  All rights reserved.   --
Virginia, USA.  Portions copyright 1991-1995 by Stichting Mathematisch\n\
Copyright (c) 2004 Free Software Foundation, Inc.
so portions are Copyright (C) 2001,2002 Python Software Foundation, and were written by Barry Warsaw.
Copyright (C) 2004-2010 Gerhard Häring <gh@ghaering.de>
Copyright (c) 2004 Python Software Foundation.
(c) Copyright 2000 Guido van Rossum.
Copyright 2007 Georg Brandl.
Copyright (c) 1999 by Secret Labs AB.
Copyright (c) 2002 Unicode, Inc.  All Rights reserved.
Copyright 2009 Brian Quinlan. All Rights Reserved.
Copyright (c) 2008-2009, Google Inc.
Copyright (c) 2001-2006 Twisted Matrix Laboratories.
(c) Copyright CNRI, All Rights Reserved. NO WARRANTY.
License Agreement and CNRI's notice of copyright, i.e., "Copyright (c) 1995-2001 Corporation for National Research Initiatives; All Rights Reserved" are retained in Python 1.6.1 alone or in any derivative version prepared by Licensee.  Alternately, in lieu of CNRI's License Agreement, Licensee may substitute the following text (omitting the quotes): "Python 1.6.1 is made available subject to the terms and conditions in CNRI's License Agreement.  This Agreement together with Python 1.6.1 may be located on the Internet using the following unique, persistent identifier (known as a handle): 1895.22/1013.  This Agreement may also be obtained from a proxy server on the Internet
Copyright (c) Corporation for National Research Initiatives.
Copyright (c) 2008-2016 Stefan Krah. All rights reserved.
Copyright 2001-2016 by Vinay Sajip. All Rights Reserved.
if (config == (void )2000 && (c) == 0x20B9F) {                     \
ppc-ffitarget.h - Copyright (c) 1996-2003  Red Hat, Inc.
Copyright (c) 2001-2006 Gregory P. Ward.  All rights reserved.
Copyright (c) 1997-2001 by Secret Labs AB.  All rights reserved.
Copyright 2000 by Timothy O'Malley <timo@alum.mit.edu>
Copyright (C) 2007-2012 Michael Foord & the mock team E-mail: fuzzyman AT voidspace DOT org DOT uk
Copyright (C) 2011-2014 Vinay Sajip.
ppc-darwin.h - Copyright (c) 2002, 2003, 2004, Free Software Foundation, Inc.
ppc64-darwinclosure.S - Copyright (c) 2002, 2003, 2004, Free Software Foundation, Inc. based on ppcclosure.S
x86-ffi64.c - Copyright (c) 2002  Bo Thorsen <bo@suse.de>
Copyright (c) 2002  Ranjit Mathew
Copyright (C) 2001-2006 Python Software Foundation Author: Barry Warsaw Contact: email-sig@python.org
Copyright (c) 2004, Outercurve Foundation.
Copyright (c) 1995-2001 Corporation for National Research Initiatives.\n\
Copyright 1999, Bioreason, Inc., all rights reserved.
2001-10-20 fl   added split primitive; re-enable unicode for 1.6/2.0/2.1
Copyright (C) 2001-2019 Vinay Sajip. All Rights Reserved.
Copyright (c) 2008 by Christian Heimes <christian@cheimes.de>
Copyright 2001-2019 by Vinay Sajip. All Rights Reserved.
Copyright (C) 2005 Martin v. Löwis Licensed to PSF under a contributor agreement.
ppc-darwin.S - Copyright (c) 2000 John Hornkvist
Download .txt
gitextract_vl65tc6t/

├── .clang-format
├── .gitee/
│   └── PULL_REQUEST_TEMPLATE.md
├── .gitignore
├── .gitmodules
├── .jenkins/
│   └── test/
│       └── config/
│           └── dependent_packages.yaml
├── CMakeLists.txt
├── LICENSE
├── NOTICE
├── OWNERS
├── README.md
├── README_CN.md
├── RELEASE.md
├── RELEASE_CN.md
├── Third_Party_Open_Source_Software_Notice
├── build.sh
├── cmake/
│   ├── check_requirements.cmake
│   ├── dependency_ms.cmake
│   ├── dependency_securec.cmake
│   ├── dependency_utils.cmake
│   ├── external_libs/
│   │   ├── absl.cmake
│   │   ├── c-ares.cmake
│   │   ├── eigen.cmake
│   │   ├── glog.cmake
│   │   ├── grpc.cmake
│   │   ├── gtest.cmake
│   │   ├── json.cmake
│   │   ├── libevent.cmake
│   │   ├── openssl.cmake
│   │   ├── protobuf.cmake
│   │   ├── pybind11.cmake
│   │   ├── re2.cmake
│   │   └── zlib.cmake
│   ├── mind_expression.cmake
│   ├── options.cmake
│   ├── package.cmake
│   ├── package_script.cmake
│   └── utils.cmake
├── docs/
│   └── api/
│       └── api_python/
│           ├── client/
│           │   ├── mindspore_serving.client.Client.rst
│           │   ├── mindspore_serving.client.SSLConfig.rst
│           │   └── mindspore_serving.client.rst
│           ├── mindspore_serving.client.rst
│           ├── mindspore_serving.server.rst
│           └── server/
│               ├── distributed/
│               │   ├── mindspore_serving.server.distributed.declare_servable.rst
│               │   ├── mindspore_serving.server.distributed.rst
│               │   ├── mindspore_serving.server.distributed.start_servable.rst
│               │   └── mindspore_serving.server.distributed.startup_agents.rst
│               ├── mindspore_serving.server.SSLConfig.rst
│               ├── mindspore_serving.server.ServableStartConfig.rst
│               ├── mindspore_serving.server.rst
│               ├── mindspore_serving.server.start_grpc_server.rst
│               ├── mindspore_serving.server.start_restful_server.rst
│               ├── mindspore_serving.server.start_servables.rst
│               ├── mindspore_serving.server.stop.rst
│               └── register/
│                   ├── mindspore_serving.server.register.AscendDeviceInfo.rst
│                   ├── mindspore_serving.server.register.CPUDeviceInfo.rst
│                   ├── mindspore_serving.server.register.Context.rst
│                   ├── mindspore_serving.server.register.GPUDeviceInfo.rst
│                   ├── mindspore_serving.server.register.Model.rst
│                   ├── mindspore_serving.server.register.add_stage.rst
│                   ├── mindspore_serving.server.register.declare_model.rst
│                   ├── mindspore_serving.server.register.register_method.rst
│                   └── mindspore_serving.server.register.rst
├── engine/
│   └── README.md
├── example/
│   ├── add_sub_pipeline/
│   │   ├── add_sub/
│   │   │   └── servable_config.py
│   │   ├── export_model/
│   │   │   └── add_sub_model.py
│   │   ├── serving_client.py
│   │   └── serving_server.py
│   ├── lenet/
│   │   ├── export_model/
│   │   │   ├── export_lenet.py
│   │   │   └── lenet/
│   │   │       ├── __init__.py
│   │   │       ├── export.py
│   │   │       └── src/
│   │   │           └── lenet.py
│   │   ├── lenet/
│   │   │   └── servable_config.py
│   │   ├── serving_client.py
│   │   └── serving_server.py
│   ├── matmul_distributed/
│   │   ├── export_model/
│   │   │   ├── distributed_inference.py
│   │   │   ├── export_model.sh
│   │   │   ├── net.py
│   │   │   └── rank_table_8pcs.json
│   │   ├── matmul/
│   │   │   └── servable_config.py
│   │   ├── rank_table_8pcs.json
│   │   ├── serving_agent.py
│   │   ├── serving_client.py
│   │   └── serving_server.py
│   ├── matmul_multi_subgraphs/
│   │   ├── export_model/
│   │   │   └── export_matmul.py
│   │   ├── matmul/
│   │   │   └── servable_config.py
│   │   ├── serving_client.py
│   │   └── serving_server.py
│   ├── resnet/
│   │   ├── export_model/
│   │   │   ├── export_resnet.py
│   │   │   └── resnet/
│   │   │       ├── __init__.py
│   │   │       ├── export.py
│   │   │       └── src/
│   │   │           ├── config.py
│   │   │           └── resnet.py
│   │   ├── resnet50/
│   │   │   └── servable_config.py
│   │   ├── serving_client.py
│   │   └── serving_server.py
│   └── tensor_add/
│       ├── add/
│       │   └── servable_config.py
│       ├── export_model/
│       │   └── add_model.py
│       ├── serving_client.py
│       ├── serving_client_with_check.py
│       └── serving_server.py
├── mindspore_serving/
│   ├── CMakeLists.txt
│   ├── __init__.py
│   ├── ccsrc/
│   │   ├── common/
│   │   │   ├── buffer_tensor.cc
│   │   │   ├── buffer_tensor.h
│   │   │   ├── exit_handle.cc
│   │   │   ├── exit_handle.h
│   │   │   ├── float16.h
│   │   │   ├── grpc_async_server.h
│   │   │   ├── grpc_client.cc
│   │   │   ├── grpc_client.h
│   │   │   ├── grpc_server.cc
│   │   │   ├── grpc_server.h
│   │   │   ├── heart_beat.cc
│   │   │   ├── heart_beat.h
│   │   │   ├── instance.h
│   │   │   ├── instance_data.h
│   │   │   ├── log.cc
│   │   │   ├── log.h
│   │   │   ├── proto_tensor.cc
│   │   │   ├── proto_tensor.h
│   │   │   ├── servable.cc
│   │   │   ├── servable.h
│   │   │   ├── serving_common.h
│   │   │   ├── shared_memory.cc
│   │   │   ├── shared_memory.h
│   │   │   ├── ssl_config.h
│   │   │   ├── status.h
│   │   │   ├── tensor.cc
│   │   │   ├── tensor.h
│   │   │   ├── tensor_base.cc
│   │   │   ├── tensor_base.h
│   │   │   ├── thread_pool.cc
│   │   │   ├── thread_pool.h
│   │   │   ├── utils.cc
│   │   │   └── utils.h
│   │   ├── master/
│   │   │   ├── dispacther.cc
│   │   │   ├── dispacther.h
│   │   │   ├── grpc/
│   │   │   │   ├── grpc_process.cc
│   │   │   │   ├── grpc_process.h
│   │   │   │   ├── grpc_server.cc
│   │   │   │   ├── grpc_server.h
│   │   │   │   └── master_server.h
│   │   │   ├── master_context.cc
│   │   │   ├── master_context.h
│   │   │   ├── model_thread.cc
│   │   │   ├── model_thread.h
│   │   │   ├── notify_worker/
│   │   │   │   ├── base_notify.h
│   │   │   │   ├── grpc_notify.cc
│   │   │   │   └── grpc_notify.h
│   │   │   ├── restful/
│   │   │   │   ├── http_handle.cc
│   │   │   │   ├── http_handle.h
│   │   │   │   ├── http_process.cc
│   │   │   │   ├── http_process.h
│   │   │   │   ├── restful_request.cc
│   │   │   │   ├── restful_request.h
│   │   │   │   ├── restful_server.cc
│   │   │   │   └── restful_server.h
│   │   │   ├── servable_endpoint.cc
│   │   │   ├── servable_endpoint.h
│   │   │   ├── server.cc
│   │   │   ├── server.h
│   │   │   ├── worker_context.cc
│   │   │   └── worker_context.h
│   │   ├── python/
│   │   │   ├── agent/
│   │   │   │   ├── agent_py.cc
│   │   │   │   └── agent_py.h
│   │   │   ├── master/
│   │   │   │   ├── master_py.cc
│   │   │   │   └── master_py.h
│   │   │   ├── serving_py.cc
│   │   │   ├── tensor_py.cc
│   │   │   ├── tensor_py.h
│   │   │   └── worker/
│   │   │       ├── servable_py.cc
│   │   │       ├── servable_py.h
│   │   │       ├── worker_py.cc
│   │   │       └── worker_py.h
│   │   └── worker/
│   │       ├── context.cc
│   │       ├── context.h
│   │       ├── distributed_worker/
│   │       │   ├── agent_process/
│   │       │   │   ├── agent_process.cc
│   │       │   │   └── agent_process.h
│   │       │   ├── agent_startup.cc
│   │       │   ├── agent_startup.h
│   │       │   ├── common.h
│   │       │   ├── distributed_model_loader.cc
│   │       │   ├── distributed_model_loader.h
│   │       │   ├── distributed_process/
│   │       │   │   ├── distributed_process.cc
│   │       │   │   ├── distributed_process.h
│   │       │   │   └── distributed_server.h
│   │       │   ├── notify_agent/
│   │       │   │   ├── base_notify_agent.h
│   │       │   │   ├── notify_agent.cc
│   │       │   │   └── notify_agent.h
│   │       │   ├── notify_distributed/
│   │       │   │   ├── notify_worker.cc
│   │       │   │   └── notify_worker.h
│   │       │   ├── worker_agent.cc
│   │       │   └── worker_agent.h
│   │       ├── extra_worker/
│   │       │   ├── remote_call_model.cc
│   │       │   └── remote_call_model.h
│   │       ├── grpc/
│   │       │   ├── worker_process.cc
│   │       │   ├── worker_process.h
│   │       │   ├── worker_server.cc
│   │       │   └── worker_server.h
│   │       ├── inference/
│   │       │   ├── inference.cc
│   │       │   ├── inference.h
│   │       │   ├── mindspore_model_wrap.cc
│   │       │   └── mindspore_model_wrap.h
│   │       ├── local_servable/
│   │       │   ├── local_model_loader.cc
│   │       │   └── local_model_loader.h
│   │       ├── model_loader_base.cc
│   │       ├── model_loader_base.h
│   │       ├── notfiy_master/
│   │       │   ├── base_notify.h
│   │       │   ├── grpc_notify.cc
│   │       │   └── grpc_notify.h
│   │       ├── predict_thread.cc
│   │       ├── predict_thread.h
│   │       ├── register/
│   │       │   └── argmax.cc
│   │       ├── servable_register.cc
│   │       ├── servable_register.h
│   │       ├── stage_function.cc
│   │       ├── stage_function.h
│   │       ├── task_queue.cc
│   │       ├── task_queue.h
│   │       ├── work_executor.cc
│   │       ├── work_executor.h
│   │       ├── worker.cc
│   │       └── worker.h
│   ├── client/
│   │   ├── __init__.py
│   │   ├── cpp/
│   │   │   ├── client.cc
│   │   │   └── client.h
│   │   └── python/
│   │       ├── __init__.py
│   │       └── client.py
│   ├── log.py
│   ├── proto/
│   │   ├── ms_agent.proto
│   │   ├── ms_distributed.proto
│   │   ├── ms_master.proto
│   │   ├── ms_service.proto
│   │   └── ms_worker.proto
│   └── server/
│       ├── __init__.py
│       ├── _servable_common.py
│       ├── _servable_local.py
│       ├── _server.py
│       ├── common/
│       │   ├── __init__.py
│       │   ├── check_type.py
│       │   ├── decorator.py
│       │   └── utils.py
│       ├── distributed/
│       │   ├── __init__.py
│       │   ├── _distributed.py
│       │   ├── _servable_distributed.py
│       │   └── start_distributed_worker.py
│       ├── master/
│       │   ├── __init__.py
│       │   ├── _master.py
│       │   └── context.py
│       ├── register/
│       │   ├── __init__.py
│       │   ├── method.py
│       │   ├── model.py
│       │   ├── stage_function.py
│       │   └── utils.py
│       ├── start_extra_worker.py
│       ├── start_worker.py
│       └── worker/
│           ├── __init__.py
│           ├── _worker.py
│           ├── check_version.py
│           ├── distributed/
│           │   ├── __init__.py
│           │   ├── agent_startup.py
│           │   ├── distributed_worker.py
│           │   ├── register.py
│           │   └── worker_agent.py
│           ├── init_mindspore.py
│           └── task.py
├── requirements_test.txt
├── scripts/
│   ├── check_clang_format.sh
│   └── format_source_code.sh
├── setup.py
├── tests/
│   ├── CMakeLists.txt
│   ├── st/
│   │   ├── add/
│   │   │   ├── __init__.py
│   │   │   ├── add.sh
│   │   │   └── test_serving.py
│   │   ├── add_sub_pipeline/
│   │   │   ├── __init__.py
│   │   │   ├── add_sub.sh
│   │   │   └── test_serving.py
│   │   ├── distributed_server_fault/
│   │   │   ├── __init__.py
│   │   │   ├── common.sh
│   │   │   ├── kill_15_agent.sh
│   │   │   ├── kill_15_server.sh
│   │   │   ├── kill_9_agent.sh
│   │   │   ├── kill_9_server.sh
│   │   │   └── test_distributed_fault.py
│   │   ├── matmul_distributed/
│   │   │   ├── __init__.py
│   │   │   ├── matmul_distribute.sh
│   │   │   └── test_matmul_distribute.py
│   │   ├── matmul_multi_subgraphs/
│   │   │   ├── __init__.py
│   │   │   ├── matmul_multi_subgraphs.sh
│   │   │   └── test_matmul_multi_subgraphs.py
│   │   ├── resnet/
│   │   │   ├── __init__.py
│   │   │   ├── resnet.sh
│   │   │   └── test_resnet.py
│   │   └── serving_fault/
│   │       ├── __init__.py
│   │       ├── common.sh
│   │       ├── kill_15_master.sh
│   │       ├── kill_15_worker.sh
│   │       ├── kill_9_master.sh
│   │       ├── kill_9_worker.sh
│   │       ├── restart.sh
│   │       └── test_serving_fault.py
│   └── ut/
│       ├── CMakeLists.txt
│       ├── coverage/
│       │   ├── cov_config
│       │   └── run_coverage.sh
│       ├── cpp/
│       │   ├── CMakeLists.txt
│       │   ├── common/
│       │   │   ├── common_test.cc
│       │   │   ├── common_test.h
│       │   │   ├── test_main.cc
│       │   │   └── test_servable_common.h
│       │   ├── runtest.sh
│       │   └── tests/
│       │       ├── test_agent_config_acquire.cc
│       │       ├── test_context.cc
│       │       ├── test_distributed_inference.cc
│       │       ├── test_init_config_on_start_up.cc
│       │       ├── test_master_worker.cc
│       │       ├── test_model_thread.cc
│       │       ├── test_parse_restful.cc
│       │       ├── test_shared_memory.cc
│       │       ├── test_start_preprocess_postprocess.cc
│       │       └── test_start_worker.cc
│       ├── python/
│       │   ├── CMakeLists.txt
│       │   ├── mindspore/
│       │   │   └── dataset/
│       │   │       └── __init__.py
│       │   ├── runtest.sh
│       │   ├── servable_config/
│       │   │   ├── add_servable_config.py
│       │   │   └── generate_certs.sh
│       │   └── tests/
│       │       ├── common.py
│       │       ├── common_restful.py
│       │       ├── test_distributed_worker.py
│       │       ├── test_grpc_request.py
│       │       ├── test_model_call.py
│       │       ├── test_model_context.py
│       │       ├── test_multi_model.py
│       │       ├── test_python_parallel.py
│       │       ├── test_register_method.py
│       │       ├── test_restful_base64_data.py
│       │       ├── test_restful_json_data.py
│       │       ├── test_restful_request.py
│       │       ├── test_server_client.py
│       │       ├── test_serving_log.py
│       │       ├── test_stage_function.py
│       │       ├── test_start_servable_config.py
│       │       └── test_start_sevables.py
│       ├── runtest.sh
│       └── stub/
│           ├── cxx_api/
│           │   ├── cell.cc
│           │   ├── context.cc
│           │   ├── factory.h
│           │   ├── graph/
│           │   │   ├── ascend/
│           │   │   │   ├── ascend_graph_impl.cc
│           │   │   │   └── ascend_graph_impl.h
│           │   │   ├── graph.cc
│           │   │   ├── graph_data.cc
│           │   │   ├── graph_data.h
│           │   │   └── graph_impl.h
│           │   ├── model/
│           │   │   ├── model.cc
│           │   │   ├── model_impl.cc
│           │   │   ├── model_impl.h
│           │   │   └── ms/
│           │   │       ├── ms_model.cc
│           │   │       └── ms_model.h
│           │   ├── serialization.cc
│           │   ├── status.cc
│           │   └── types.cc
│           ├── graph_impl_stub.cc
│           ├── graph_impl_stub.h
│           ├── include/
│           │   ├── api/
│           │   │   ├── allocator.h
│           │   │   ├── callback/
│           │   │   │   ├── callback.h
│           │   │   │   ├── ckpt_saver.h
│           │   │   │   ├── loss_monitor.h
│           │   │   │   ├── lr_scheduler.h
│           │   │   │   ├── time_monitor.h
│           │   │   │   └── train_accuracy.h
│           │   │   ├── cell.h
│           │   │   ├── cfg.h
│           │   │   ├── context.h
│           │   │   ├── data_type.h
│           │   │   ├── delegate.h
│           │   │   ├── dual_abi_helper.h
│           │   │   ├── format.h
│           │   │   ├── graph.h
│           │   │   ├── kernel.h
│           │   │   ├── metrics/
│           │   │   │   ├── accuracy.h
│           │   │   │   └── metrics.h
│           │   │   ├── model.h
│           │   │   ├── model_parallel_runner.h
│           │   │   ├── ops/
│           │   │   │   └── ops.h
│           │   │   ├── serialization.h
│           │   │   ├── status.h
│           │   │   ├── types.h
│           │   │   └── visible.h
│           │   ├── mindapi/
│           │   │   └── base/
│           │   │       ├── format.h
│           │   │       ├── type_id.h
│           │   │       └── types.h
│           │   └── utils/
│           │       ├── log_adapter.cc
│           │       ├── log_adapter.h
│           │       ├── log_adapter_common.cc
│           │       ├── overload.h
│           │       ├── utils.h
│           │       └── visible.h
│           ├── stub_inference.cc
│           ├── stub_postprocess.cc
│           └── stub_preprocess.cc
└── third_party/
    ├── patch/
    │   ├── c-ares/
    │   │   └── CVE-2021-3672.patch
    │   ├── glog/
    │   │   └── glog.patch001
    │   ├── grpc/
    │   │   └── grpc.patch001
    │   ├── libevent/
    │   │   └── libevent.patch001
    │   ├── openssl/
    │   │   ├── CVE-2021-3711.patch
    │   │   ├── CVE-2021-3712.patch
    │   │   ├── CVE-2021-4160.patch
    │   │   ├── CVE-2022-0778.patch
    │   │   ├── CVE-2022-1292.patch
    │   │   ├── CVE-2022-2068.patch
    │   │   ├── CVE-2022-2097.patch
    │   │   ├── CVE-2022-4304.patch
    │   │   ├── CVE-2022-4450.patch
    │   │   ├── CVE-2023-0215.patch
    │   │   ├── CVE-2023-0286.patch
    │   │   ├── CVE-2023-0464.patch
    │   │   ├── CVE-2023-0465.patch
    │   │   ├── CVE-2023-0466.patch
    │   │   ├── CVE-2023-2650.patch
    │   │   ├── CVE-2023-3446.patch
    │   │   └── CVE-2023-4807.patch
    │   ├── protobuf/
    │   │   ├── CVE-2021-22570.patch
    │   │   └── CVE-2022-1941.patch
    │   ├── pybind11/
    │   │   └── pybind11.patch001
    │   └── zlib/
    │       ├── CVE-2018-25032.patch
    │       └── CVE-2022-37434.patch
    └── securec/
        ├── CMakeLists.txt
        ├── include/
        │   ├── securec.h
        │   └── securectype.h
        └── src/
            ├── CMakeLists.txt
            ├── fscanf_s.c
            ├── fwscanf_s.c
            ├── gets_s.c
            ├── input.inl
            ├── memcpy_s.c
            ├── memmove_s.c
            ├── memset_s.c
            ├── output.inl
            ├── scanf_s.c
            ├── secinput.h
            ├── securecutil.c
            ├── securecutil.h
            ├── secureinput_a.c
            ├── secureinput_w.c
            ├── secureprintoutput.h
            ├── secureprintoutput_a.c
            ├── secureprintoutput_w.c
            ├── snprintf_s.c
            ├── sprintf_s.c
            ├── sscanf_s.c
            ├── strcat_s.c
            ├── strcpy_s.c
            ├── strncat_s.c
            ├── strncpy_s.c
            ├── strtok_s.c
            ├── swprintf_s.c
            ├── swscanf_s.c
            ├── vfscanf_s.c
            ├── vfwscanf_s.c
            ├── vscanf_s.c
            ├── vsnprintf_s.c
            ├── vsprintf_s.c
            ├── vsscanf_s.c
            ├── vswprintf_s.c
            ├── vswscanf_s.c
            ├── vwscanf_s.c
            ├── wcscat_s.c
            ├── wcscpy_s.c
            ├── wcsncat_s.c
            ├── wcsncpy_s.c
            ├── wcstok_s.c
            ├── wmemcpy_s.c
            ├── wmemmove_s.c
            └── wscanf_s.c
Download .txt
Showing preview only (204K chars total). Download the full file or copy to clipboard to get everything.
SYMBOL INDEX (1985 symbols across 311 files)

FILE: example/add_sub_pipeline/add_sub/servable_config.py
  function add_trans_datatype (line 21) | def add_trans_datatype(x1, x2):
  function add_1 (line 26) | def add_1(x):
  function add_sub_only_model (line 39) | def add_sub_only_model(x1, x2, x3):  # x1+x2-x3
  function add_sub_complex (line 48) | def add_sub_complex(x1, x2, x3):  # x1+x2+1-x3+1

FILE: example/add_sub_pipeline/export_model/add_sub_model.py
  class AddNet (line 28) | class AddNet(nn.Cell):
    method __init__ (line 31) | def __init__(self):
    method construct (line 35) | def construct(self, x_, y_):
  class SubNet (line 40) | class SubNet(nn.Cell):
    method __init__ (line 43) | def __init__(self):
    method construct (line 47) | def construct(self, x_, y_):
  function export_net (line 52) | def export_net():

FILE: example/add_sub_pipeline/serving_client.py
  function is_float_equal (line 22) | def is_float_equal(left, right):
  function run_add_sub_only_model (line 27) | def run_add_sub_only_model():
  function run_add_sub_complex (line 46) | def run_add_sub_complex():

FILE: example/add_sub_pipeline/serving_server.py
  function start (line 21) | def start():

FILE: example/lenet/export_model/lenet/export.py
  function export_lenet (line 35) | def export_lenet():

FILE: example/lenet/export_model/lenet/src/lenet.py
  class LeNet5 (line 20) | class LeNet5(nn.Cell):
    method __init__ (line 35) | def __init__(self, num_class=10, num_channel=1, include_top=True):
    method construct (line 48) | def construct(self, x):

FILE: example/lenet/lenet/servable_config.py
  function preprocess_eager (line 23) | def preprocess_eager(image):
  function postprocess_top1 (line 35) | def postprocess_top1(score):
  function classify_top1 (line 48) | def classify_top1(image):

FILE: example/lenet/serving_client.py
  function read_images (line 20) | def read_images():
  function run_classify_top1 (line 34) | def run_classify_top1():
  function run_classify_top1_async (line 48) | def run_classify_top1_async():
  function run_restful_classify_top1 (line 65) | def run_restful_classify_top1():

FILE: example/lenet/serving_server.py
  function start (line 22) | def start():

FILE: example/matmul_distributed/export_model/distributed_inference.py
  function test_inference (line 24) | def test_inference():
  function create_predict_data (line 38) | def create_predict_data():

FILE: example/matmul_distributed/export_model/net.py
  class Net (line 23) | class Net(Cell):
    method __init__ (line 26) | def __init__(self, matmul_size, transpose_a=False, transpose_b=False, ...
    method construct (line 36) | def construct(self, inputs):

FILE: example/matmul_distributed/matmul/servable_config.py
  function predict (line 23) | def predict(x):

FILE: example/matmul_distributed/serving_agent.py
  function start_agents (line 20) | def start_agents():

FILE: example/matmul_distributed/serving_client.py
  function run_matmul (line 20) | def run_matmul():

FILE: example/matmul_distributed/serving_server.py
  function start (line 23) | def start():

FILE: example/matmul_multi_subgraphs/export_model/export_matmul.py
  class Net (line 26) | class Net(Cell):
    method __init__ (line 29) | def __init__(self, matmul_size, init_val, transpose_a=False, transpose...
    method construct (line 37) | def construct(self, inputs):
  function export_net (line 44) | def export_net():

FILE: example/matmul_multi_subgraphs/matmul/servable_config.py
  function process (line 22) | def process(x, y):
  function predict (line 29) | def predict(x, y):

FILE: example/matmul_multi_subgraphs/serving_client.py
  function run_matmul (line 20) | def run_matmul():

FILE: example/matmul_multi_subgraphs/serving_server.py
  function start (line 22) | def start():

FILE: example/resnet/export_model/resnet/export.py
  function export_resnet (line 26) | def export_resnet(network_dataset, ckpt_file, output_file):

FILE: example/resnet/export_model/resnet/src/resnet.py
  function _conv_variance_scaling_initializer (line 25) | def _conv_variance_scaling_initializer(in_channel, out_channel, kernel_s...
  function _weight_variable (line 36) | def _weight_variable(shape, factor=0.01):
  function calculate_gain (line 41) | def calculate_gain(nonlinearity, param=None):
  function _calculate_fan_in_and_fan_out (line 65) | def _calculate_fan_in_and_fan_out(tensor):
  function _calculate_correct_fan (line 84) | def _calculate_correct_fan(tensor, mode):
  function kaiming_normal (line 93) | def kaiming_normal(inputs_shape, a=0, mode='fan_in', nonlinearity='leaky...
  function kaiming_uniform (line 100) | def kaiming_uniform(inputs_shape, a=0., mode='fan_in', nonlinearity='lea...
  function _conv3x3 (line 108) | def _conv3x3(in_channel, out_channel, stride=1, use_se=False, res_base=F...
  function _conv1x1 (line 121) | def _conv1x1(in_channel, out_channel, stride=1, use_se=False, res_base=F...
  function _conv7x7 (line 134) | def _conv7x7(in_channel, out_channel, stride=1, use_se=False, res_base=F...
  function _bn (line 147) | def _bn(channel, res_base=False):
  function _bn_last (line 155) | def _bn_last(channel):
  function _fc (line 160) | def _fc(in_channel, out_channel, use_se=False):
  class ResidualBlock (line 170) | class ResidualBlock(nn.Cell):
    method __init__ (line 189) | def __init__(self,
    method construct (line 237) | def construct(self, x):
  class ResidualBlockBase (line 271) | class ResidualBlockBase(nn.Cell):
    method __init__ (line 291) | def __init__(self,
    method construct (line 316) | def construct(self, x):
  class ResNet (line 336) | class ResNet(nn.Cell):
    method __init__ (line 363) | def __init__(self,
    method _make_layer (line 430) | def _make_layer(self, block, layer_num, in_channel, out_channel, strid...
    method construct (line 463) | def construct(self, x):
  function resnet18 (line 493) | def resnet18(class_num=10):
  function resnet34 (line 515) | def resnet34(class_num=10):
  function resnet50 (line 537) | def resnet50(class_num=10):
  function se_resnet50 (line 558) | def se_resnet50(class_num=1001):
  function resnet101 (line 580) | def resnet101(class_num=1001):

FILE: example/resnet/resnet50/servable_config.py
  function preprocess_eager (line 27) | def preprocess_eager(image):
  function preprocess_batch (line 49) | def preprocess_batch(instances):
  function postprocess_top1 (line 79) | def postprocess_top1(score):
  function postprocess_top5 (line 88) | def postprocess_top5(score):
  function call_resnet_model (line 103) | def call_resnet_model(image):
  function call_resnet_model_batch (line 110) | def call_resnet_model_batch(instances):
  function classify_top1_batch (line 125) | def classify_top1_batch(image):
  function classify_top1 (line 135) | def classify_top1(image):  # pipeline: preprocess_eager/postprocess_top1...
  function classify_top1_v2 (line 145) | def classify_top1_v2(image):  # without pipeline, call model with only o...
  function classify_top1_v3 (line 153) | def classify_top1_v3(image):  # without pipeline, call model with maximu...
  function classify_top5 (line 161) | def classify_top5(image):

FILE: example/resnet/serving_client.py
  function read_images (line 20) | def read_images():
  function run_classify_top1 (line 34) | def run_classify_top1(method_name):
  function run_classify_top5 (line 48) | def run_classify_top5():
  function run_classify_top5_async (line 68) | def run_classify_top5_async():
  function run_restful_classify_top1 (line 89) | def run_restful_classify_top1():

FILE: example/resnet/serving_server.py
  function start (line 22) | def start():

FILE: example/tensor_add/add/servable_config.py
  function add_trans_datatype (line 21) | def add_trans_datatype(x1, x2):
  function add_common (line 34) | def add_common(x1, x2):  # only support float32 inputs
  function add_cast (line 42) | def add_cast(x1, x2):

FILE: example/tensor_add/export_model/add_model.py
  class Net (line 28) | class Net(nn.Cell):
    method __init__ (line 31) | def __init__(self):
    method construct (line 35) | def construct(self, x_, y_):
  function export_net (line 40) | def export_net():

FILE: example/tensor_add/serving_client.py
  function run_add_common (line 21) | def run_add_common():
  function run_add_cast (line 45) | def run_add_cast():
  function post_restful (line 56) | def post_restful(address, servable_name, method_name, json_instances, ve...
  function run_add_restful (line 74) | def run_add_restful():

FILE: example/tensor_add/serving_client_with_check.py
  function check_result (line 23) | def check_result(result, y_data_list):
  function run_add_common (line 30) | def run_add_common():
  function run_add_cast (line 47) | def run_add_cast():
  function post_restful (line 61) | def post_restful(address, servable_name, method_name, json_instances, ve...
  function check_number_result (line 77) | def check_number_result(result, y_data_list, output_name="y"):
  function run_add_restful (line 89) | def run_add_restful():

FILE: example/tensor_add/serving_server.py
  function start (line 22) | def start():

FILE: mindspore_serving/ccsrc/common/buffer_tensor.cc
  type mindspore::serving (line 18) | namespace mindspore::serving {
    function DataType (line 34) | DataType BufferTensor::data_type() const { return type_; }

FILE: mindspore_serving/ccsrc/common/buffer_tensor.h
  function namespace (line 23) | namespace mindspore::serving {

FILE: mindspore_serving/ccsrc/common/exit_handle.cc
  type mindspore (line 21) | namespace mindspore {
    type serving (line 22) | namespace serving {
      function ExitSignalHandle (line 23) | ExitSignalHandle &ExitSignalHandle::Instance() {

FILE: mindspore_serving/ccsrc/common/exit_handle.h
  function namespace (line 24) | namespace mindspore {

FILE: mindspore_serving/ccsrc/common/float16.h
  function half_to_float (line 24) | inline float half_to_float(float16 h) { return static_cast<float>(h); }

FILE: mindspore_serving/ccsrc/common/grpc_async_server.h
  function namespace (line 31) | namespace mindspore::serving {

FILE: mindspore_serving/ccsrc/common/grpc_client.cc
  type mindspore (line 19) | namespace mindspore {
    type serving (line 20) | namespace serving {

FILE: mindspore_serving/ccsrc/common/grpc_client.h
  function namespace (line 37) | namespace mindspore {

FILE: mindspore_serving/ccsrc/common/grpc_server.cc
  type mindspore::serving (line 19) | namespace mindspore::serving {
    function Status (line 20) | Status GrpcServer::Start(const std::shared_ptr<grpc::Service> &service...

FILE: mindspore_serving/ccsrc/common/grpc_server.h
  function namespace (line 29) | namespace mindspore::serving {

FILE: mindspore_serving/ccsrc/common/heart_beat.cc
  type mindspore::serving (line 18) | namespace mindspore::serving {}

FILE: mindspore_serving/ccsrc/common/heart_beat.h
  function namespace (line 36) | namespace mindspore::serving {
  function StopTimer (line 65) | void StopTimer() {
  function StartWatch (line 105) | void StartWatch(const std::string &address) {
  function StopWatch (line 130) | void StopWatch(const std::string &address) {
  function SendPing (line 141) | void SendPing(const std::string &address) {
  function RecvPongTimeOut (line 190) | void RecvPongTimeOut(const std::string &address) {

FILE: mindspore_serving/ccsrc/common/instance.h
  function namespace (line 26) | namespace mindspore::serving {

FILE: mindspore_serving/ccsrc/common/instance_data.h
  function namespace (line 23) | namespace mindspore::serving {

FILE: mindspore_serving/ccsrc/common/log.cc
  type mindspore (line 25) | namespace mindspore {
    type serving (line 26) | namespace serving {
      function GetTimeString (line 29) | static std::string GetTimeString() {
      function GetProcName (line 57) | static std::string GetProcName() {
      function GetLogLevel (line 77) | static std::string GetLogLevel(MsLogLevel level) {
      function GetGlogLevel (line 94) | static int GetGlogLevel(MsLogLevel level) {
      function GetThresholdLevel (line 109) | static int GetThresholdLevel(const std::string &threshold) {
      function GetGlobalLogLevel (line 134) | static int GetGlobalLogLevel() { return FLAGS_v; }
      type LogConfigToken (line 136) | enum class LogConfigToken : size_t {
      function IsAlpha (line 159) | static inline bool IsAlpha(char ch) { return (ch >= 'A' && ch <= 'Z'...
      function IsDigit (line 161) | static inline bool IsDigit(char ch) { return ch >= '0' && ch <= '9'; }
      class LogConfigLexer (line 163) | class LogConfigLexer {
        method LogConfigLexer (line 165) | explicit LogConfigLexer(const std::string &text) : buffer_(text) {...
        method SkipWhiteSpace (line 169) | char SkipWhiteSpace() {
        method LogConfigToken (line 181) | LogConfigToken GetNext(std::string *const ptr) {
      class LogConfigParser (line 229) | class LogConfigParser {
        method LogConfigParser (line 231) | explicit LogConfigParser(const std::string &cfg) : lexer(cfg) {}
        method Expect (line 234) | bool Expect(LogConfigToken expected, LogConfigToken tok) const {
        method Parse (line 247) | std::map<std::string, std::string> Parse() {
      function ParseLogLevel (line 300) | bool ParseLogLevel(const std::string &str_level, MsLogLevel *ptr_lev...
      function InitSubModulesLogLevel (line 314) | void InitSubModulesLogLevel() {
      function common_log_init (line 336) | void common_log_init(void) {
  function mindspore_serving_log_init (line 370) | __attribute__((constructor)) void mindspore_serving_log_init(void) {

FILE: mindspore_serving/ccsrc/common/log.h
  function namespace (line 29) | namespace mindspore::serving {
  type MsLogLevel (line 166) | enum MsLogLevel {
  function IS_OUTPUT_ON (line 226) | inline bool IS_OUTPUT_ON(enum MsLogLevel level) { return static_cast<int...

FILE: mindspore_serving/ccsrc/common/proto_tensor.cc
  type mindspore::serving (line 32) | namespace mindspore::serving {
    function DataType (line 39) | DataType ProtoTensor::data_type() const {
    function DataType (line 176) | DataType ProtoTensor::TransDataType2Inference(proto::DataType data_typ...
    function Status (line 195) | Status ProtoTensor::AttachSharedMemory() const {
    function Status (line 333) | Status GrpcTensorHelper::CreateInstanceFromRequest(const MethodSignatu...
    function Status (line 360) | Status GrpcTensorHelper::CreateInstanceFromPredictReply(const RequestS...
    function Status (line 381) | Status GrpcTensorHelper::CreatePredictReplyFromInstances(const proto::...
    function Status (line 419) | Status GrpcTensorHelper::CreatePredictRequestFromInstances(const Reque...
    function Status (line 434) | Status GrpcTensorHelper::CreateReplyFromInstancesInner(const proto::Pr...
    function Status (line 515) | Status GrpcTensorHelper::CreateInstanceFromRequestInstances(const prot...
    function Status (line 579) | Status GrpcTensorHelper::CheckRequestInstances(const proto::PredictReq...
    function Status (line 658) | Status GrpcTensorHelper::CheckRequestTensor(const proto::Tensor &tenso...

FILE: mindspore_serving/ccsrc/common/proto_tensor.h
  function class (line 34) | class ProtoTensor : public TensorBase {

FILE: mindspore_serving/ccsrc/common/servable.cc
  type mindspore::serving (line 22) | namespace mindspore::serving {
    function MethodSignature (line 117) | const MethodSignature *ServableSignature::GetMethodDeclare(const std::...
    function ModelMeta (line 126) | const ModelMeta *ServableSignature::GetModelDeclare(const std::string ...

FILE: mindspore_serving/ccsrc/common/servable.h
  function namespace (line 29) | namespace mindspore::serving {

FILE: mindspore_serving/ccsrc/common/shared_memory.cc
  type mindspore (line 23) | namespace mindspore {
    type serving (line 24) | namespace serving {
      function SharedMemoryAllocator (line 25) | SharedMemoryAllocator &SharedMemoryAllocator::Instance() {
      function Status (line 49) | Status SharedMemoryAllocator::AddShmMemoryBuffer(SharedMemoryGroup *...
      function Status (line 96) | Status SharedMemoryAllocator::NewMemoryBuffer(const std::string &mem...
      function Status (line 115) | Status SharedMemoryAllocator::AllocMemoryItem(const std::string &mem...
      function SharedMemoryManager (line 171) | SharedMemoryManager &SharedMemoryManager::Instance() {
      function Status (line 188) | Status SharedMemoryManager::Attach(const std::string &memory_key, ui...
      function Status (line 207) | Status SharedMemoryManager::Detach(const std::string &memory_key) {
      function Status (line 222) | Status SharedMemoryManager::Attach(const std::string &memory_key, ui...

FILE: mindspore_serving/ccsrc/common/shared_memory.h
  function namespace (line 30) | namespace mindspore {

FILE: mindspore_serving/ccsrc/common/ssl_config.h
  function namespace (line 22) | namespace mindspore::serving {

FILE: mindspore_serving/ccsrc/common/status.h
  function namespace (line 26) | namespace mindspore::serving {
  type StatusCode (line 59) | enum StatusCode

FILE: mindspore_serving/ccsrc/common/tensor.cc
  type mindspore::serving (line 22) | namespace mindspore::serving {

FILE: mindspore_serving/ccsrc/common/tensor.h
  function namespace (line 23) | namespace mindspore::serving {

FILE: mindspore_serving/ccsrc/common/tensor_base.cc
  type mindspore::serving (line 23) | namespace mindspore::serving {
    function LogStream (line 92) | LogStream &operator<<(LogStream &stream, DataType data_type) {

FILE: mindspore_serving/ccsrc/common/tensor_base.h
  function namespace (line 29) | namespace mindspore {

FILE: mindspore_serving/ccsrc/common/thread_pool.cc
  type mindspore::serving (line 25) | namespace mindspore::serving {

FILE: mindspore_serving/ccsrc/common/thread_pool.h
  function namespace (line 31) | namespace mindspore::serving {

FILE: mindspore_serving/ccsrc/common/utils.cc
  type mindspore::serving::common (line 21) | namespace mindspore::serving::common {
    function Status (line 22) | Status CheckAddress(const std::string &address, const std::string &ser...
    function DirOrFileExist (line 62) | bool DirOrFileExist(const std::string &file_path) {

FILE: mindspore_serving/ccsrc/common/utils.h
  function namespace (line 23) | namespace mindspore::serving::common {

FILE: mindspore_serving/ccsrc/master/dispacther.cc
  type mindspore::serving (line 24) | namespace mindspore::serving {
    function Status (line 51) | Status Dispatcher::JudgeInferNum() {
    function Status (line 93) | Status Dispatcher::DispatchAsyncInner(const proto::PredictRequest &req...
    function Status (line 113) | Status Dispatcher::UnregisterServableCommon(const std::string &worker_...
    function Status (line 144) | Status Dispatcher::RegisterServable(const proto::RegisterRequest &requ...
    function Status (line 154) | Status Dispatcher::NotifyWorkerExit(const proto::ExitRequest &request,...
    function Status (line 176) | Status Dispatcher::NotifyWorkerNotAlive(WorkerContext *worker_context) {
    function Status (line 183) | Status Dispatcher::NotifyWorkerNotAvailable(WorkerContext *worker_cont...
    function Status (line 241) | Status Dispatcher::RegisterServableCommon(const WorkerRegSpec &worker_...
    function Status (line 269) | Status Dispatcher::NotifyWorkerFailed(const proto::NotifyFailedRequest...
    function Status (line 317) | Status Dispatcher::RegisterWorkerContext(std::shared_ptr<WorkerContext...

FILE: mindspore_serving/ccsrc/master/dispacther.h
  function namespace (line 34) | namespace mindspore::serving {

FILE: mindspore_serving/ccsrc/master/grpc/grpc_process.cc
  type mindspore (line 21) | namespace mindspore {
    type serving (line 22) | namespace serving {
      function GetProtorWorkerSpecRepr (line 24) | std::string GetProtorWorkerSpecRepr(const proto::WorkerRegSpec &work...

FILE: mindspore_serving/ccsrc/master/grpc/grpc_process.h
  function namespace (line 35) | namespace mindspore {

FILE: mindspore_serving/ccsrc/master/grpc/grpc_server.cc
  type mindspore (line 22) | namespace mindspore {
    type serving (line 23) | namespace serving {}

FILE: mindspore_serving/ccsrc/master/grpc/grpc_server.h
  function namespace (line 29) | namespace mindspore {

FILE: mindspore_serving/ccsrc/master/grpc/master_server.h
  function namespace (line 29) | namespace mindspore {

FILE: mindspore_serving/ccsrc/master/master_context.cc
  type mindspore::serving (line 19) | namespace mindspore::serving {

FILE: mindspore_serving/ccsrc/master/master_context.h
  function namespace (line 25) | namespace mindspore::serving {

FILE: mindspore_serving/ccsrc/master/model_thread.cc
  type mindspore::serving (line 20) | namespace mindspore::serving {
    function Status (line 84) | Status ModelThread::AddWorker(uint64_t pid, const std::shared_ptr<Work...
    function Status (line 103) | Status ModelThread::DelWorker(uint64_t pid) {
    function Status (line 136) | Status ModelThread::FindProcessQueue(uint64_t *pid) {
    function Status (line 158) | Status ModelThread::PushTasks(const proto::PredictRequest &request, pr...
    function Status (line 195) | Status ModelThread::DispatchAsync(const proto::PredictRequest &request...
    function Status (line 206) | Status ModelThread::Combine(const std::vector<std::pair<uint64_t, uint...

FILE: mindspore_serving/ccsrc/master/model_thread.h
  function namespace (line 34) | namespace mindspore::serving {

FILE: mindspore_serving/ccsrc/master/notify_worker/base_notify.h
  function namespace (line 27) | namespace mindspore {

FILE: mindspore_serving/ccsrc/master/notify_worker/grpc_notify.cc
  type mindspore (line 24) | namespace mindspore {
    type serving (line 25) | namespace serving {
      function Status (line 34) | Status GrpcNotifyWorker::DispatchAsync(const proto::PredictRequest &...

FILE: mindspore_serving/ccsrc/master/notify_worker/grpc_notify.h
  function namespace (line 27) | namespace mindspore {

FILE: mindspore_serving/ccsrc/master/restful/http_handle.cc
  type mindspore (line 26) | namespace mindspore {
    type serving (line 27) | namespace serving {
      function Base64Encode (line 40) | size_t Base64Encode(const uint8_t *input, size_t length, uint8_t *ou...
      function Base64Decode (line 70) | size_t Base64Decode(const uint8_t *target, size_t target_length, uin...
      function GetB64TargetSize (line 101) | size_t GetB64TargetSize(size_t origin_len) {
      function GetB64OriginSize (line 111) | size_t GetB64OriginSize(size_t target_len, size_t tail_size) {
      function GetTailEqualSize (line 120) | size_t GetTailEqualSize(const std::string &str) {

FILE: mindspore_serving/ccsrc/master/restful/http_handle.h
  function namespace (line 26) | namespace mindspore {

FILE: mindspore_serving/ccsrc/master/restful/http_process.cc
  type mindspore (line 33) | namespace mindspore {
    type serving (line 34) | namespace serving {
      function Status (line 67) | Status RestfulService::CheckObjTypeMatchShape(DataType data_type, co...
      function RequestType (line 78) | RequestType RestfulService::GetReqType(const std::string &str) {
      function Status (line 101) | Status RestfulService::CheckObjType(const string &type) {
      function DataType (line 110) | DataType RestfulService::GetObjDataType(const json &js) {
      function DataType (line 208) | DataType RestfulService::GetArrayDataType(const json &json_array, HT...
      function Status (line 241) | Status RestfulService::CheckReqJsonValid(const json &js_msg) {
      function Status (line 263) | Status RestfulService::GetInstancesType(const json &instances) {
      function Status (line 291) | Status RestfulService::CheckObj(const json &js) {
      function Status (line 369) | Status RestfulService::ParseItemScalar(const json &value, ProtoTenso...
      function Status (line 405) | Status RestfulService::ParseItemObject(const json &value, ProtoTenso...
      function Status (line 436) | Status RestfulService::ParseItemArray(const json &value, ProtoTensor...
      function Status (line 479) | Status RestfulService::ParseItem(const json &value, ProtoTensor *con...
      function Status (line 489) | Status RestfulService::RecursiveGetArray(const json &json_data, size...
      function Status (line 524) | Status RestfulService::GetArrayData(const json &js, size_t data_inde...
      function Status (line 565) | Status RestfulService::GetScalarByType(DataType type, const json &js...
      function Status (line 621) | Status RestfulService::GetScalarData(const json &js, size_t index, b...
      function Status (line 719) | Status RestfulService::ParseRequest(const std::shared_ptr<RestfulReq...
      function Status (line 747) | Status RestfulService::ParseReqCommonMsg(const std::shared_ptr<Restf...
      function Status (line 760) | Status RestfulService::ParseInstancesMsg(const json &js_msg, Predict...
      function Status (line 789) | Status RestfulService::ParseKeyInstances(const json &instances, Pred...
      function Status (line 825) | Status RestfulService::PaserKeyOneInstance(const json &instance_msg,...
      function Status (line 849) | Status RestfulService::ParseReplyDetail(const proto::Tensor &tensor,...
      function Status (line 871) | Status RestfulService::ParseScalar(const ProtoTensor &pb_tensor, siz...
      function Status (line 931) | Status RestfulService::ParseScalarData(const ProtoTensor &pb_tensor,...
      function Status (line 986) | Status RestfulService::RecursiveParseArray(const ProtoTensor &pb_ten...
      function Status (line 1023) | Status RestfulService::CheckReply(const ProtoTensor &pb_tensor) {
      function Status (line 1041) | Status RestfulService::ParseReply(const PredictReply &reply, json *c...
      function Status (line 1054) | Status RestfulService::ParseInstancesReply(const PredictReply &reply...

FILE: mindspore_serving/ccsrc/master/restful/http_process.h
  type RequestType (line 41) | enum RequestType { kInstanceType = 0, kInvalidType }
  type InstancesType (line 42) | enum InstancesType { kNokeyWay = 0, kKeyWay, kInvalidWay }
  type HTTP_DATA_TYPE (line 43) | enum HTTP_DATA_TYPE { HTTP_DATA_NONE, HTTP_DATA_INT, HTTP_DATA_FLOAT, HT...
  function class (line 44) | class RestfulService {

FILE: mindspore_serving/ccsrc/master/restful/restful_request.cc
  type mindspore (line 31) | namespace mindspore {
    type serving (line 32) | namespace serving {
      type evhttp_request (line 33) | struct evhttp_request
      function Status (line 56) | Status DecomposeEvRequest::GetPostMessageToJson() {
      function Status (line 93) | Status DecomposeEvRequest::CheckRequestMethodValid() {
      function Status (line 102) | Status DecomposeEvRequest::Decompose() {
      function Status (line 163) | Status RestfulRequest::RestfulReplayBufferInit() {
      function Status (line 171) | Status RestfulRequest::RestfulReplay(const std::string &replay) {

FILE: mindspore_serving/ccsrc/master/restful/restful_request.h
  function namespace (line 27) | namespace mindspore {

FILE: mindspore_serving/ccsrc/master/restful/restful_server.cc
  type mindspore::serving (line 29) | namespace mindspore::serving {
    function Status (line 63) | Status RestfulServer::CreatRestfulServer(int time_out_second) {
    function Status (line 74) | Status RestfulServer::CreatHttpsServer(int time_out_second, const SSLC...
    function Status (line 132) | Status RestfulServer::ServerSetupCerts(SSL_CTX *ctx, const SSLConfig &...
    type bufferevent (line 152) | struct bufferevent
    type event_base (line 152) | struct event_base
    type bufferevent (line 153) | struct bufferevent
    function Status (line 159) | Status RestfulServer::InitEvHttp() {
    function Status (line 198) | Status RestfulServer::StartRestfulServer() {
    function Status (line 218) | Status RestfulServer::GetSocketAddress(std::string *ip, uint16_t *port) {
    function Status (line 235) | Status RestfulServer::Start(const std::string &socket_address, const S...

FILE: mindspore_serving/ccsrc/master/restful/restful_server.h
  function namespace (line 40) | namespace mindspore::serving {

FILE: mindspore_serving/ccsrc/master/servable_endpoint.cc
  type mindspore::serving (line 19) | namespace mindspore::serving {
    function Status (line 26) | Status ServableEndPoint::DispatchAsync(const proto::PredictRequest &re...
    function Status (line 37) | Status ServableEndPoint::RegisterWorker(const ServableRegSpec &servabl...
    function Status (line 72) | Status ServableEndPoint::UnregisterWorker(const std::string &worker_ad...

FILE: mindspore_serving/ccsrc/master/servable_endpoint.h
  function namespace (line 30) | namespace mindspore::serving {

FILE: mindspore_serving/ccsrc/master/server.cc
  type mindspore (line 26) | namespace mindspore {
    type serving (line 27) | namespace serving {
      function Status (line 28) | Status Server::StartGrpcServer(const std::string &socket_address, co...
      function Status (line 41) | Status Server::StartGrpcMasterServer(const std::string &master_addre...
      function Status (line 51) | Status Server::StartRestfulServer(const std::string &socket_address,...
      function Server (line 73) | Server &Server::Instance() {

FILE: mindspore_serving/ccsrc/master/server.h
  function namespace (line 29) | namespace mindspore {

FILE: mindspore_serving/ccsrc/master/worker_context.cc
  type mindspore::serving (line 21) | namespace mindspore::serving {
    function Status (line 33) | Status WorkerContext::DispatchAsync(const proto::PredictRequest &reque...

FILE: mindspore_serving/ccsrc/master/worker_context.h
  function namespace (line 29) | namespace mindspore::serving {

FILE: mindspore_serving/ccsrc/python/agent/agent_py.cc
  type mindspore::serving (line 22) | namespace mindspore::serving {
    function DistributedServableConfig (line 23) | DistributedServableConfig PyAgent::GetAgentsConfigsFromWorker(const st...

FILE: mindspore_serving/ccsrc/python/agent/agent_py.h
  function namespace (line 30) | namespace mindspore {

FILE: mindspore_serving/ccsrc/python/master/master_py.cc
  type mindspore::serving (line 21) | namespace mindspore::serving {

FILE: mindspore_serving/ccsrc/python/master/master_py.h
  function namespace (line 30) | namespace mindspore {

FILE: mindspore_serving/ccsrc/python/serving_py.cc
  type mindspore::serving (line 33) | namespace mindspore::serving {
    function PyRegServable (line 34) | void PyRegServable(pybind11::module *m_ptr) {
    function PyRegMaster (line 122) | void PyRegMaster(pybind11::module *m_ptr) {
    function PyRegWorker (line 155) | void PyRegWorker(pybind11::module *m_ptr) {
    function PyRegWorkerAgent (line 207) | void PyRegWorkerAgent(pybind11::module *m_ptr) {
    class PyExitSignalHandle (line 229) | class PyExitSignalHandle {
      method Start (line 231) | static void Start() { ExitSignalHandle::Instance().Start(); }
      method HasStopped (line 232) | static bool HasStopped() { return ExitSignalHandle::Instance().HasSt...
    function PYBIND11_MODULE (line 236) | PYBIND11_MODULE(_mindspore_serving, m) {

FILE: mindspore_serving/ccsrc/python/tensor_py.cc
  type mindspore::serving (line 25) | namespace mindspore::serving {
    function GetStrides (line 26) | static std::vector<ssize_t> GetStrides(const std::vector<ssize_t> &sha...
    function DataType (line 40) | DataType NumpyTensor::GetDataType(const py::buffer_info &buf) {
    function GetPyTypeFormat (line 88) | static std::string GetPyTypeFormat(DataType data_type) {
    function IsCContiguous (line 120) | static bool IsCContiguous(const py::array &input) {
    function TensorBasePtr (line 125) | TensorBasePtr PyTensor::MakeTensor(const py::array &input) {
    function TensorBasePtr (line 153) | TensorBasePtr PyTensor::MakeTensorNoCopy(const py::array &input) {
    function InstanceData (line 220) | InstanceData PyTensor::AsInstanceData(const py::tuple &tuple) {

FILE: mindspore_serving/ccsrc/python/tensor_py.h
  function namespace (line 30) | namespace mindspore::serving {

FILE: mindspore_serving/ccsrc/python/worker/servable_py.cc
  type mindspore::serving (line 23) | namespace mindspore::serving {

FILE: mindspore_serving/ccsrc/python/worker/servable_py.h
  function namespace (line 30) | namespace mindspore::serving {

FILE: mindspore_serving/ccsrc/python/worker/worker_py.cc
  type mindspore::serving (line 31) | namespace mindspore::serving {
    function Status (line 60) | Status PyWorker::LoadLocalModels(const std::string &servable_directory...
    function TaskItem (line 179) | TaskItem PyWorker::GetPyTask() {

FILE: mindspore_serving/ccsrc/python/worker/worker_py.h
  function namespace (line 29) | namespace mindspore::serving {

FILE: mindspore_serving/ccsrc/worker/context.cc
  type mindspore::serving (line 19) | namespace mindspore::serving {
    function DeviceType (line 30) | DeviceType ServableContext::GetDeviceType() const { return device_type...
    function Status (line 36) | Status ServableContext::SetDeviceTypeStr(const std::string &device_typ...

FILE: mindspore_serving/ccsrc/worker/context.h
  function namespace (line 26) | namespace mindspore::serving {

FILE: mindspore_serving/ccsrc/worker/distributed_worker/agent_process/agent_process.cc
  type mindspore (line 20) | namespace mindspore {
    type serving (line 21) | namespace serving {

FILE: mindspore_serving/ccsrc/worker/distributed_worker/agent_process/agent_process.h
  function namespace (line 32) | namespace mindspore {

FILE: mindspore_serving/ccsrc/worker/distributed_worker/agent_startup.cc
  type mindspore (line 21) | namespace mindspore {
    type serving (line 22) | namespace serving {
      function WorkerAgentStartUp (line 23) | WorkerAgentStartUp &WorkerAgentStartUp::Instance() {
      function Status (line 28) | Status WorkerAgentStartUp::GetAgentsConfigsFromWorker(const std::str...
      function Status (line 32) | Status WorkerAgentStartUp::GetDistributedServableConfig(DistributedS...
      function Status (line 41) | Status WorkerAgentStartUp::NotifyFailed(const std::string &distribut...

FILE: mindspore_serving/ccsrc/worker/distributed_worker/agent_startup.h
  function namespace (line 25) | namespace mindspore {

FILE: mindspore_serving/ccsrc/worker/distributed_worker/common.h
  function namespace (line 27) | namespace mindspore {

FILE: mindspore_serving/ccsrc/worker/distributed_worker/distributed_model_loader.cc
  type mindspore (line 27) | namespace mindspore {
    type serving (line 28) | namespace serving {
      type DistributedPredictMsg (line 29) | struct DistributedPredictMsg {
      function Status (line 40) | Status DistributedModelLoader::Predict(const std::vector<TensorBaseP...
      function Status (line 57) | Status DistributedModelLoader::PredictInner(const std::vector<Tensor...
      function Status (line 175) | Status DistributedModelLoader::GetDistributedServableConfig(Distribu...
      function Status (line 190) | Status DistributedModelLoader::RegisterAgent(const std::vector<Worke...
      function Status (line 230) | Status DistributedModelLoader::OnAgentExit() {
      function Status (line 238) | Status DistributedModelLoader::LoadModel(const std::string &servable...
      function RealPath (line 287) | std::string RealPath(const std::string &path) {
      function Status (line 297) | Status DistributedModelLoader::InitConfigOnStartup(const std::string...
      function json (line 334) | json DistributedModelLoader::ParserArrayInJson(const json &json_arra...
      function Status (line 365) | Status DistributedModelLoader::ParserRankTableWithGroupList(const st...
      function Status (line 429) | Status DistributedModelLoader::ConvertStr2Int(const std::string &ran...
      function Status (line 448) | Status DistributedModelLoader::ParserRankTableWithServerList(const s...
      function Status (line 507) | Status DistributedModelLoader::WaitAgentsReady(uint64_t wait_agents_...
      function Status (line 537) | Status DistributedModelLoader::CompareTensorInfos(const std::vector<...
      function Status (line 558) | Status DistributedModelLoader::CheckAgentsInfosAndInitTensorInfos() {
      function Status (line 642) | Status DistributedModelLoader::CheckRankConfig() {

FILE: mindspore_serving/ccsrc/worker/distributed_worker/distributed_model_loader.h
  function namespace (line 32) | namespace mindspore {

FILE: mindspore_serving/ccsrc/worker/distributed_worker/distributed_process/distributed_process.cc
  type mindspore (line 22) | namespace mindspore {
    type serving (line 23) | namespace serving {

FILE: mindspore_serving/ccsrc/worker/distributed_worker/distributed_process/distributed_process.h
  function namespace (line 34) | namespace mindspore {

FILE: mindspore_serving/ccsrc/worker/distributed_worker/distributed_process/distributed_server.h
  function namespace (line 33) | namespace mindspore {

FILE: mindspore_serving/ccsrc/worker/distributed_worker/notify_agent/base_notify_agent.h
  function namespace (line 27) | namespace mindspore {

FILE: mindspore_serving/ccsrc/worker/distributed_worker/notify_agent/notify_agent.cc
  type mindspore (line 25) | namespace mindspore {
    type serving (line 26) | namespace serving {
      function Status (line 35) | Status GrpcNotifyAgent::Exit() {
      function Status (line 56) | Status GrpcNotifyAgent::DispatchAsync(const proto::DistributedPredic...

FILE: mindspore_serving/ccsrc/worker/distributed_worker/notify_agent/notify_agent.h
  function namespace (line 27) | namespace mindspore {

FILE: mindspore_serving/ccsrc/worker/distributed_worker/notify_distributed/notify_worker.cc
  type mindspore (line 25) | namespace mindspore {
    type serving (line 26) | namespace serving {
      function Status (line 36) | Status GrpcNotifyDistributeWorker::Register(const std::vector<Worker...
      function Status (line 57) | Status GrpcNotifyDistributeWorker::Unregister() {
      function Status (line 77) | Status GrpcNotifyDistributeWorker::NotifyFailed(const std::string &d...
      function Status (line 109) | Status GrpcNotifyDistributeWorker::GetAgentsConfigsFromWorker(const ...
      function Status (line 136) | Status GrpcNotifyDistributeWorker::ParseAgentConfigAcquireReply(cons...

FILE: mindspore_serving/ccsrc/worker/distributed_worker/notify_distributed/notify_worker.h
  function namespace (line 28) | namespace mindspore {

FILE: mindspore_serving/ccsrc/worker/distributed_worker/worker_agent.cc
  type mindspore (line 24) | namespace mindspore {
    type serving (line 25) | namespace serving {
      function WorkerAgent (line 26) | WorkerAgent &WorkerAgent::Instance() {
      function Status (line 31) | Status WorkerAgent::Clear() {
      function Status (line 47) | Status WorkerAgent::StartAgent(const AgentStartUpConfig &config, con...
      function Status (line 86) | Status WorkerAgent::StartGrpcServer() {
      function Status (line 91) | Status WorkerAgent::RegisterAgent() {
      class ProtoDistributedPredictRequest (line 116) | class ProtoDistributedPredictRequest : public RequestBase {
        method ProtoDistributedPredictRequest (line 118) | explicit ProtoDistributedPredictRequest(const proto::DistributedPr...
        method size (line 125) | size_t size() const override { return tensor_list_.size(); }
        method TensorBase (line 126) | const TensorBase *operator[](size_t index) const override {
      class ProtoDistributedPredictReply (line 138) | class ProtoDistributedPredictReply : public ReplyBase {
        method ProtoDistributedPredictReply (line 140) | explicit ProtoDistributedPredictReply(proto::DistributedPredictRep...
        method size (line 143) | size_t size() const override { return tensor_list_.size(); }
        method TensorBase (line 144) | TensorBase *operator[](size_t index) override {
        method TensorBase (line 150) | const TensorBase *operator[](size_t index) const override {
        method TensorBase (line 156) | TensorBase *add() override {
        method clear (line 162) | void clear() override { tensor_list_.clear(); }
      function Status (line 169) | Status WorkerAgent::Run(const proto::DistributedPredictRequest &requ...

FILE: mindspore_serving/ccsrc/worker/distributed_worker/worker_agent.h
  function namespace (line 29) | namespace mindspore {

FILE: mindspore_serving/ccsrc/worker/extra_worker/remote_call_model.cc
  type mindspore::serving (line 24) | namespace mindspore::serving {
    function Status (line 25) | Status RemoteCallModel::InitRemote(const std::string &servable_name, u...
    function Status (line 56) | Status RemoteCallModel::InitModel(const std::string &model_key, uint32...
    function Status (line 109) | Status RemoteCallModel::Predict(const std::vector<InstanceData> &input...
    function Status (line 121) | Status RemoteCallModel::InitModelExecuteInfo() {

FILE: mindspore_serving/ccsrc/worker/extra_worker/remote_call_model.h
  function namespace (line 25) | namespace mindspore::serving {

FILE: mindspore_serving/ccsrc/worker/grpc/worker_process.cc
  type mindspore (line 21) | namespace mindspore {
    type serving (line 22) | namespace serving {

FILE: mindspore_serving/ccsrc/worker/grpc/worker_process.h
  function namespace (line 34) | namespace mindspore {

FILE: mindspore_serving/ccsrc/worker/grpc/worker_server.cc
  type mindspore (line 22) | namespace mindspore {
    type serving (line 23) | namespace serving {}

FILE: mindspore_serving/ccsrc/worker/grpc/worker_server.h
  function namespace (line 29) | namespace mindspore {

FILE: mindspore_serving/ccsrc/worker/inference/inference.cc
  type mindspore::serving (line 21) | namespace mindspore::serving {
    function InferenceLoader (line 64) | InferenceLoader &InferenceLoader::Instance() {
    function SplitString (line 85) | std::vector<std::string> SplitString(const std::string &s, const std::...
    function Status (line 101) | Status InferenceLoader::LoadMindSporeModelWrap() {
    function DeviceType (line 183) | DeviceType InferenceLoader::GetSupportDeviceType(DeviceType device_typ...

FILE: mindspore_serving/ccsrc/worker/inference/inference.h
  type DeviceType (line 33) | enum DeviceType {
  type ModelType (line 40) | enum ModelType : uint32_t {
  function ModelContext (line 50) | struct MS_API ModelContext {
  function class (line 118) | class InferenceBase {

FILE: mindspore_serving/ccsrc/worker/inference/mindspore_model_wrap.cc
  type mindspore (line 24) | namespace mindspore {
    type serving (line 25) | namespace serving {
      function MS_API (line 27) | MS_API InferenceBase *ServingCreateInfer() {
      function TransInferDataType2ApiTypeId (line 35) | mindspore::DataType TransInferDataType2ApiTypeId(DataType data_type) {
      function DataType (line 60) | DataType TransTypeId2InferDataType(mindspore::DataType type_id) {
      function Status (line 79) | Status MindSporeModelWrap::LoadModelFromFile(serving::DeviceType dev...
      function Status (line 111) | Status MindSporeModelWrap::LoadLiteModelFromFileInner(serving::Devic...
      function Status (line 155) | Status MindSporeModelWrap::LoadModelFromFileInner(serving::DeviceTyp...
      function Status (line 234) | Status MindSporeModelWrap::SetApiModelInfo(serving::DeviceType devic...
      function Status (line 280) | Status MindSporeModelWrap::BuildOnPredict() {
      function DeviceInfo (line 386) | DeviceInfo MindSporeModelWrap::GetDeviceInfo(const std::vector<Devic...
      function Status (line 433) | Status MindSporeModelWrap::GetModelInfos(ApiModelInfo *api_model_inf...
      function Status (line 481) | Status MindSporeModelWrap::CalculateBatchSize(ApiModelInfo *api_mode...
      function Status (line 544) | Status MindSporeModelWrap::UnloadModel() {
      function Status (line 551) | Status MindSporeModelWrap::ExecuteModel(const RequestBase &request, ...
      function Status (line 578) | Status MindSporeModelWrap::ExecuteModel(const std::vector<TensorBase...
      function Status (line 608) | Status MindSporeModelWrap::ExecuteModelCommon(size_t request_size, c...

FILE: mindspore_serving/ccsrc/worker/inference/mindspore_model_wrap.h
  function namespace (line 35) | namespace serving {

FILE: mindspore_serving/ccsrc/worker/local_servable/local_model_loader.cc
  type mindspore::serving (line 24) | namespace mindspore::serving {
    function Status (line 34) | Status LocalModelLoader::Predict(const std::vector<TensorBasePtr> &inp...
    function Status (line 67) | Status LocalModelLoader::LoadModel(const std::string &servable_directo...
    function Status (line 99) | Status LocalModelLoader::InitDevice(ModelType model_type) {
    function Status (line 118) | Status LocalModelLoader::LoadModel(uint64_t version_number, const std:...

FILE: mindspore_serving/ccsrc/worker/local_servable/local_model_loader.h
  function namespace (line 31) | namespace mindspore::serving {

FILE: mindspore_serving/ccsrc/worker/model_loader_base.cc
  type mindspore::serving (line 20) | namespace mindspore::serving {
    function Status (line 21) | Status DirectModelLoaderBase::Predict(const std::vector<InstanceData> ...
    function Status (line 50) | Status DirectModelLoaderBase::PrePredict(const ModelExecutorSubgraphIn...
    function Status (line 91) | Status DirectModelLoaderBase::PostPredict(const ModelExecutorSubgraphI...
    function Status (line 129) | Status DirectModelLoaderBase::AfterLoadModel() {

FILE: mindspore_serving/ccsrc/worker/model_loader_base.h
  function class (line 31) | class ModelLoaderBase {

FILE: mindspore_serving/ccsrc/worker/notfiy_master/base_notify.h
  function namespace (line 23) | namespace mindspore {

FILE: mindspore_serving/ccsrc/worker/notfiy_master/grpc_notify.cc
  type mindspore (line 27) | namespace mindspore {
    type serving (line 28) | namespace serving {
      function Status (line 37) | Status GrpcNotifyMaster::Register(const WorkerRegSpec &worker_spec) {
      function Status (line 57) | Status GrpcNotifyMaster::Unregister() {
      function Status (line 80) | Status GrpcNotifyMaster::NotifyFailed(const std::string &master_addr...
      function Status (line 99) | Status GrpcNotifyMaster::GetModelInfos(const std::string &master_add...
      function Status (line 117) | Status GrpcNotifyMaster::CreateRequestShmInstance(const RemoteCallMo...
      function Status (line 151) | Status GrpcNotifyMaster::CreateResultShmInstance(const RemoteCallMod...
      function Status (line 177) | Status GrpcNotifyMaster::CallModelInner(const RemoteCallModelContext...
      function Status (line 244) | Status GrpcNotifyMaster::CallModel(const RemoteCallModelContext &mod...

FILE: mindspore_serving/ccsrc/worker/notfiy_master/grpc_notify.h
  function namespace (line 29) | namespace mindspore {

FILE: mindspore_serving/ccsrc/worker/predict_thread.cc
  type mindspore::serving (line 26) | namespace mindspore::serving {
    function Status (line 142) | Status PredictThread::PredictInner(const TaskInfo &task_info, const st...
    function Status (line 158) | Status PredictThread::CheckPredictInput(uint64_t subgraph, const Insta...

FILE: mindspore_serving/ccsrc/worker/predict_thread.h
  function namespace (line 33) | namespace mindspore::serving {

FILE: mindspore_serving/ccsrc/worker/register/argmax.cc
  type mindspore::serving (line 20) | namespace mindspore::serving {
    class ArgmaxStageFunc (line 21) | class ArgmaxStageFunc : public CppStageFunctionBase {
      method ArgmaxImp (line 24) | void ArgmaxImp(const void *input, size_t *output, size_t data_size, ...
      method Status (line 35) | Status Call(const std::string &, const InstanceData &input, Instance...
      method GetInputsCount (line 82) | size_t GetInputsCount(const std::string &) const override { return 1; }
      method GetOutputsCount (line 84) | size_t GetOutputsCount(const std::string &) const override { return ...

FILE: mindspore_serving/ccsrc/worker/servable_register.cc
  type mindspore (line 21) | namespace mindspore {
    type serving (line 22) | namespace serving {
      function ServableRegister (line 23) | ServableRegister &ServableRegister::Instance() {
      function Status (line 28) | Status ServableRegister::RegisterMethod(const MethodSignature &metho...
      function Status (line 42) | Status ServableRegister::DeclareModel(ModelMeta model) {
      function Status (line 86) | Status ServableRegister::DeclareDistributedModel(ModelMeta model) {
      function Status (line 111) | Status ServableRegister::RegisterInputOutputInfo(const std::string &...
      function Status (line 138) | Status ServableRegister::InitCallModelMethods(const std::map<std::st...
      function Status (line 160) | Status ServableRegister::RegisterOneCallModelMethod(const std::strin...
      function Status (line 192) | Status ServableRegister::CheckModels(const std::map<std::string, std...
      function Status (line 251) | Status ServableRegister::CheckOneMethod(const MethodSignature &metho...
      function Status (line 347) | Status ServableRegister::CheckMethods() {
      function Status (line 364) | Status ServableRegister::InitMethodBatchSize(const std::map<std::str...
      function Status (line 406) | Status ServableRegister::InitOnModelsLoad(const std::map<std::string...

FILE: mindspore_serving/ccsrc/worker/servable_register.h
  function namespace (line 29) | namespace mindspore {

FILE: mindspore_serving/ccsrc/worker/stage_function.cc
  type mindspore::serving (line 20) | namespace mindspore::serving {
    function CppStageFunctionStorage (line 39) | CppStageFunctionStorage &CppStageFunctionStorage::Instance() {

FILE: mindspore_serving/ccsrc/worker/stage_function.h
  function namespace (line 28) | namespace mindspore::serving {

FILE: mindspore_serving/ccsrc/worker/task_queue.cc
  type mindspore::serving (line 22) | namespace mindspore::serving {
    function Status (line 309) | Status CppTaskQueueThreadPool::HandleTask(const TaskItem &task_item) {

FILE: mindspore_serving/ccsrc/worker/task_queue.h
  function namespace (line 33) | namespace mindspore::serving {

FILE: mindspore_serving/ccsrc/worker/work_executor.cc
  type mindspore::serving (line 27) | namespace mindspore::serving {
    function Status (line 32) | Status WorkExecutor::Init(const std::map<std::string, std::shared_ptr<...
    function Status (line 139) | Status WorkExecutor::Work(const RequestSpec &request_spec, const std::...

FILE: mindspore_serving/ccsrc/worker/work_executor.h
  function namespace (line 32) | namespace mindspore::serving {

FILE: mindspore_serving/ccsrc/worker/worker.cc
  type mindspore (line 32) | namespace mindspore {
    type serving (line 33) | namespace serving {
      function Worker (line 34) | Worker &Worker::GetInstance() {
      function Status (line 39) | Status Worker::RegisterWorker(const std::string &master_address, con...
      function Status (line 49) | Status Worker::RunAsync(const proto::PredictRequest &request, proto:...
      function Status (line 82) | Status Worker::RunAsync(const RequestSpec &request_spec, const std::...
      function Status (line 99) | Status Worker::RunAsyncInner(const RequestSpec &request_spec, const ...
      function Status (line 115) | Status Worker::Run(const RequestSpec &request_spec, const std::vecto...
      function Status (line 135) | Status Worker::StartGrpcServer(const std::string &server_address) {
      function Status (line 144) | Status Worker::StartDistributedGrpcServer(std::shared_ptr<Distribute...
      function Status (line 154) | Status Worker::StartServable(const std::string &servable_directory, ...
      function Status (line 177) | Status Worker::StartServableInner(const std::string &servable_name, ...
      function GetAllChildrenPids (line 293) | static std::vector<int> GetAllChildrenPids(int cur_pid) {

FILE: mindspore_serving/ccsrc/worker/worker.h
  function namespace (line 38) | namespace mindspore {

FILE: mindspore_serving/client/cpp/client.cc
  type mindspore (line 27) | namespace mindspore {
    type serving (line 28) | namespace serving {
      type client (line 29) | namespace client {
        function Status (line 30) | Status &Status::operator<<(DataType val) {
        function Status (line 46) | Status &operator<<(Status &status, proto::DataType val) {
        function Status (line 63) | Status &operator<<(Status &status, grpc::StatusCode val) {
        function Status (line 92) | Status MutableTensor::SetBytesData(const std::vector<uint8_t> &val) {
        function Status (line 106) | Status MutableTensor::SetStrData(const std::string &val) {
        function Status (line 120) | Status MutableTensor::SetData(const std::vector<uint8_t> &val, con...
        function Status (line 124) | Status MutableTensor::SetData(const std::vector<uint16_t> &val, co...
        function Status (line 128) | Status MutableTensor::SetData(const std::vector<uint32_t> &val, co...
        function Status (line 132) | Status MutableTensor::SetData(const std::vector<uint64_t> &val, co...
        function Status (line 136) | Status MutableTensor::SetData(const std::vector<int8_t> &val, cons...
        function Status (line 140) | Status MutableTensor::SetData(const std::vector<int16_t> &val, con...
        function Status (line 144) | Status MutableTensor::SetData(const std::vector<int32_t> &val, con...
        function Status (line 148) | Status MutableTensor::SetData(const std::vector<int64_t> &val, con...
        function Status (line 152) | Status MutableTensor::SetData(const std::vector<bool> &val, const ...
        function Status (line 159) | Status MutableTensor::SetData(const std::vector<float> &val, const...
        function Status (line 163) | Status MutableTensor::SetData(const std::vector<double> &val, cons...
        function Status (line 167) | Status MutableTensor::SetData(const void *data, size_t data_len, c...
        function Status (line 226) | Status Tensor::GetBytesData(std::vector<uint8_t> *val) const {
        function Status (line 245) | Status Tensor::GetStrData(std::string *val) const {
        function Status (line 265) | Status GetInputImp(const proto::Tensor *proto_tensor, std::vector<...
        function Status (line 282) | Status Tensor::GetData(std::vector<uint8_t> *val) const { return G...
        function Status (line 284) | Status Tensor::GetData(std::vector<uint16_t> *val) const { return ...
        function Status (line 286) | Status Tensor::GetData(std::vector<uint32_t> *val) const { return ...
        function Status (line 288) | Status Tensor::GetData(std::vector<uint64_t> *val) const { return ...
        function Status (line 290) | Status Tensor::GetData(std::vector<int8_t> *val) const { return Ge...
        function Status (line 292) | Status Tensor::GetData(std::vector<int16_t> *val) const { return G...
        function Status (line 294) | Status Tensor::GetData(std::vector<int32_t> *val) const { return G...
        function Status (line 296) | Status Tensor::GetData(std::vector<int64_t> *val) const { return G...
        function Status (line 298) | Status Tensor::GetData(std::vector<bool> *val) const {
        function Status (line 311) | Status Tensor::GetData(std::vector<float> *val) const { return Get...
        function Status (line 313) | Status Tensor::GetData(std::vector<double> *val) const { return Ge...
        function Status (line 315) | Status Tensor::GetFp16Data(std::vector<uint16_t> *val) const {
        function DataType (line 319) | DataType Tensor::GetDataType() const {
        function Tensor (line 350) | Tensor Instance::Get(const std::string &item_name) const {
        function MutableTensor (line 379) | MutableTensor MutableInstance::Add(const std::string &item_name) {
        function MutableInstance (line 391) | MutableInstance InstancesRequest::AddInstance() {
        class ClientImpl (line 415) | class ClientImpl {
          method ClientImpl (line 417) | ClientImpl(const std::string &server_ip, uint64_t server_port) {
          method Status (line 422) | Status Predict(const proto::PredictRequest &request, proto::Pred...
        function Status (line 451) | Status Client::SendRequest(const InstancesRequest &request, Instan...

FILE: mindspore_serving/client/cpp/client.h
  function namespace (line 25) | namespace google {
  function namespace (line 31) | namespace mindspore {

FILE: mindspore_serving/client/python/client.py
  function _create_tensor (line 23) | def _create_tensor(data, tensor=None):
  function _create_scalar_tensor (line 54) | def _create_scalar_tensor(vals, tensor=None):
  function _create_bytes_tensor (line 61) | def _create_bytes_tensor(bytes_vals, tensor=None):
  function _create_str_tensor (line 75) | def _create_str_tensor(str_vals, tensor=None):
  function _create_numpy_from_tensor (line 89) | def _create_numpy_from_tensor(tensor):
  function _check_str (line 121) | def _check_str(arg_name, str_val):
  function _check_int (line 129) | def _check_int(arg_name, int_val, minimum=None, maximum=None):
  class SSLConfig (line 143) | class SSLConfig:
    method __init__ (line 160) | def __init__(self, certificate=None, private_key=None, custom_ca=None):
  class Client (line 173) | class Client:
    method __init__ (line 206) | def __init__(self, address, servable_name, method_name, version_number...
    method infer (line 246) | def infer(self, instances):
    method infer_async (line 282) | def infer_async(self, instances):
    method _create_request (line 319) | def _create_request(self, instances):
    method _create_instance (line 337) | def _create_instance(**kwargs):
    method _paser_result (line 355) | def _paser_result(result):
  class ClientGrpcAsyncResult (line 377) | class ClientGrpcAsyncResult:
    method __init__ (line 394) | def __init__(self, result_future):
    method result (line 397) | def result(self):
  class ClientGrpcAsyncError (line 408) | class ClientGrpcAsyncError:
    method __init__ (line 412) | def __init__(self, result_error):
    method result (line 415) | def result(self):

FILE: mindspore_serving/log.py
  class _MultiCompatibleRotatingFileHandler (line 73) | class _MultiCompatibleRotatingFileHandler(RotatingFileHandler):
    method rolling_rename (line 76) | def rolling_rename(self):
    method doRollover (line 88) | def doRollover(self):
  class _DataFormatter (line 119) | class _DataFormatter(logging.Formatter):
    method __init__ (line 122) | def __init__(self, sub_module, fmt=None, **kwargs):
    method formatTime (line 133) | def formatTime(self, record, datefmt=None):
    method format (line 153) | def format(self, record):
  function _get_logger (line 176) | def _get_logger():
  function _adapt_cfg (line 192) | def _adapt_cfg(kwargs):
  function info (line 216) | def info(msg, *args, **kwargs):
  function debug (line 227) | def debug(msg, *args, **kwargs):
  function error (line 238) | def error(msg, *args, **kwargs):
  function warning (line 243) | def warning(msg, *args, **kwargs):
  function get_level (line 248) | def get_level():
  function _get_formatter (line 267) | def _get_formatter():
  function _get_env_config (line 280) | def _get_env_config():
  function _verify_config (line 295) | def _verify_config(kwargs):
  function _verify_level (line 353) | def _verify_level(level):
  function get_log_config (line 368) | def get_log_config():
  function _clear_handler (line 405) | def _clear_handler(logger):
  function _find_caller (line 411) | def _find_caller(stack_info=False, _=1):
  function _get_stack_info (line 445) | def _get_stack_info(frame):
  function _setup_logger (line 461) | def _setup_logger(kwargs):

FILE: mindspore_serving/server/_servable_common.py
  class ServableContextDataBase (line 27) | class ServableContextDataBase:
    method __init__ (line 30) | def __init__(self):
    method servable_name (line 34) | def servable_name(self):
    method version_number (line 38) | def version_number(self):
    method to_string (line 41) | def to_string(self):
    method new_worker_process (line 45) | def new_worker_process(self):
    method can_restart (line 49) | def can_restart(self):
    method own_device (line 53) | def own_device(self):
  class WorkerContext (line 58) | class WorkerContext:
    method __init__ (line 61) | def __init__(self, context_data, master_address, sub_process):
    method servable_name (line 74) | def servable_name(self):
    method worker_pid (line 78) | def worker_pid(self):
    method master_address (line 82) | def master_address(self):
    method to_string (line 85) | def to_string(self):
    method is_in_process_switching (line 90) | def is_in_process_switching(self):
    method own_device (line 93) | def own_device(self):
    method ready (line 96) | def ready(self):
    method print_status (line 100) | def print_status(self):
    method is_in_starting (line 104) | def is_in_starting(self):
    method has_error_notified (line 108) | def has_error_notified(self):
    method get_notified_error (line 112) | def get_notified_error(self):
    method has_exit_notified (line 115) | def has_exit_notified(self):
    method can_be_restart (line 119) | def can_be_restart(self):
    method exit_for_enough_time (line 126) | def exit_for_enough_time(self):
    method is_alive (line 130) | def is_alive(self):
    method is_unavailable (line 141) | def is_unavailable(self):
    method update_worker_process (line 149) | def update_worker_process(self, new_sub_process):
    method _terminate (line 155) | def _terminate(self):
    method _shutdown_worker (line 158) | def _shutdown_worker(self):
    method _restart_worker (line 170) | def _restart_worker(self):
    method shutdown_worker (line 182) | def shutdown_worker(self):
    method restart_worker (line 186) | def restart_worker(self):
    method handle_worker_process (line 190) | def handle_worker_process(self, thread_fun):
    method send_exit_signal (line 201) | def send_exit_signal(self, sig):

FILE: mindspore_serving/server/_servable_local.py
  function _get_device_type (line 28) | def _get_device_type(target_device_type, enable_lite):
  function _all_reuse_device (line 47) | def _all_reuse_device():
  class ServableStartConfig (line 67) | class ServableStartConfig:
    method __init__ (line 102) | def __init__(self, servable_directory, servable_name, device_ids=None,...
    method servable_directory (line 155) | def servable_directory(self):
    method servable_name (line 159) | def servable_name(self):
    method version_number (line 163) | def version_number(self):
    method device_type (line 167) | def device_type(self):
    method device_ids (line 171) | def device_ids(self):
    method dec_key (line 175) | def dec_key(self):
    method dec_mode (line 179) | def dec_mode(self):
    method num_parallel_workers (line 183) | def num_parallel_workers(self):
    method _check_device_type (line 186) | def _check_device_type(self, enable_lite):
  class DeployConfig (line 205) | class DeployConfig:
    method __init__ (line 208) | def __init__(self, version_number, device_ids, num_parallel_workers=0,...
  class ServableStartConfigGroup (line 236) | class ServableStartConfigGroup:
    method __init__ (line 239) | def __init__(self, servable_directory, servable_name, device_type=None):
    method check_servable_location (line 261) | def check_servable_location(self):
    method append_deploy (line 275) | def append_deploy(self, deploy_config):
    method export_as_start_configs (line 293) | def export_as_start_configs(self):
  function _check_and_merge_config (line 308) | def _check_and_merge_config(configs):
  function merge_config (line 331) | def merge_config(configs):
  class ServableContextData (line 357) | class ServableContextData(ServableContextDataBase):
    method __init__ (line 360) | def __init__(self, servable_config, device_id, master_address, enable_...
    method servable_name (line 369) | def servable_name(self):
    method version_number (line 373) | def version_number(self):
    method to_string (line 376) | def to_string(self):
    method new_worker_process (line 380) | def new_worker_process(self):
  class ServableExtraContextData (line 430) | class ServableExtraContextData(ServableContextDataBase):
    method __init__ (line 433) | def __init__(self, servable_config, master_address, index, device_ids_...
    method servable_name (line 443) | def servable_name(self):
    method version_number (line 447) | def version_number(self):
    method own_device (line 450) | def own_device(self):
    method to_string (line 454) | def to_string(self):
    method new_worker_process (line 458) | def new_worker_process(self):

FILE: mindspore_serving/server/_server.py
  function start_servables (line 34) | def start_servables(servable_configs, enable_lite=False):
  function _start_workers_with_devices (line 125) | def _start_workers_with_devices(master_address, servable_configs, enable...
  function _start_extra_workers (line 151) | def _start_extra_workers(master_address, servable_configs, enable_lite):
  function _send_exit_signal_to_children (line 185) | def _send_exit_signal_to_children(worker_list):
  function _listening_workers_when_startup (line 212) | def _listening_workers_when_startup(worker_list):
  function _listening_workers_after_startup (line 246) | def _listening_workers_after_startup(worker_list, has_device_workers):

FILE: mindspore_serving/server/common/check_type.py
  function check_and_as_tuple_with_str_list (line 18) | def check_and_as_tuple_with_str_list(arg_name, strs):
  function check_and_as_str_tuple_list (line 57) | def check_and_as_str_tuple_list(arg_name, strs):
  function check_str (line 81) | def check_str(arg_name, str_val):
  function check_bytes (line 89) | def check_bytes(arg_name, bytes_val):
  function check_bool (line 97) | def check_bool(arg_name, bool_val):
  function check_int (line 103) | def check_int(arg_name, int_val, minimum=None, maximum=None, is_tuple_it...
  function check_ip_port (line 124) | def check_ip_port(arg_name, port):
  function check_and_as_int_tuple_list (line 129) | def check_and_as_int_tuple_list(arg_name, ints, minimum=None, maximum=No...
  function check_int_tuple_list (line 150) | def check_int_tuple_list(arg_name, ints, minimum=None, maximum=None):

FILE: mindspore_serving/server/common/decorator.py
  function deprecated (line 22) | def deprecated(version, substitute):

FILE: mindspore_serving/server/common/utils.py
  function get_abs_path (line 20) | def get_abs_path(path):

FILE: mindspore_serving/server/distributed/_distributed.py
  function start_servable (line 20) | def start_servable(servable_directory, servable_name, rank_table_json_fi...

FILE: mindspore_serving/server/distributed/_servable_distributed.py
  class DistributedStartConfig (line 25) | class DistributedStartConfig:
    method __init__ (line 45) | def __init__(self, servable_directory, servable_name, rank_table_json_...
    method servable_directory (line 74) | def servable_directory(self):
    method servable_name (line 78) | def servable_name(self):
    method version_number (line 82) | def version_number(self):
    method rank_table_json_file (line 86) | def rank_table_json_file(self):
    method distributed_address (line 90) | def distributed_address(self):
    method wait_agents_time_in_seconds (line 94) | def wait_agents_time_in_seconds(self):
  class DistributedContextData (line 98) | class DistributedContextData(ServableContextDataBase):
    method __init__ (line 101) | def __init__(self, distributed_config, master_address):
    method servable_name (line 111) | def servable_name(self):
    method version_number (line 115) | def version_number(self):
    method to_string (line 118) | def to_string(self):
    method new_worker_process (line 122) | def new_worker_process(self):
    method can_restart (line 146) | def can_restart(self):

FILE: mindspore_serving/server/distributed/start_distributed_worker.py
  function start_worker (line 26) | def start_worker(servable_directory, servable_name, version_number, rank...
  function parse_args_and_start (line 62) | def parse_args_and_start():

FILE: mindspore_serving/server/master/_master.py
  function add_atstop_proc (line 30) | def add_atstop_proc(func):
  function stop (line 36) | def stop():
  function stop_on_except (line 56) | def stop_on_except(func):
  class SSLConfig (line 71) | class SSLConfig:
    method __init__ (line 90) | def __init__(self, certificate, private_key, custom_ca=None, verify_cl...
  function start_grpc_server (line 104) | def start_grpc_server(address, max_msg_mb_size=100, ssl_config=None):
  function start_restful_server (line 153) | def start_restful_server(address, max_msg_mb_size=100, ssl_config=None):
  function start_master_server (line 189) | def start_master_server(address):
  function only_model_stage (line 196) | def only_model_stage(servable_name):

FILE: mindspore_serving/server/master/context.py
  function set_max_enqueued_requests (line 24) | def set_max_enqueued_requests(max_enqueued_requests):

FILE: mindspore_serving/server/register/method.py
  class _TensorDef (line 38) | class _TensorDef:
    method __init__ (line 41) | def __init__(self, tag, tensor_index):
    method as_pair (line 45) | def as_pair(self):
  function _create_tensor_def_outputs (line 49) | def _create_tensor_def_outputs(tag, outputs_cnt):
  function _wrap_fun_to_batch (line 57) | def _wrap_fun_to_batch(fun, input_count):
  function _get_stage_outputs_count (line 75) | def _get_stage_outputs_count(call_name):
  function call_preprocess (line 87) | def call_preprocess(preprocess_fun, *args):
  function call_preprocess_pipeline (line 136) | def call_preprocess_pipeline(preprocess_fun, *args):
  function call_postprocess (line 193) | def call_postprocess(postprocess_fun, *args):
  function call_postprocess_pipeline (line 222) | def call_postprocess_pipeline(postprocess_fun, *args):
  function call_servable (line 256) | def call_servable(*args):
  function add_stage (line 304) | def add_stage(stage, *args, outputs_count, batch_size=None, tag=None):
  function _ast_node_info (line 398) | def _ast_node_info(method_def_func, ast_node):
  function _get_method_def_stage_meta (line 421) | def _get_method_def_stage_meta(method_def_func):
  function register_method (line 491) | def register_method(output_names):

FILE: mindspore_serving/server/register/model.py
  function declare_servable (line 27) | def declare_servable(servable_file, model_format, with_batch_dim=True, o...
  class Model (line 54) | class Model:
    method __init__ (line 62) | def __init__(self, model_key):
    method call (line 65) | def call(self, *args, subgraph=0):
  function append_declared_model (line 164) | def append_declared_model(model_key):
  function declare_model (line 171) | def declare_model(model_file, model_format, with_batch_dim=True, options...
  class Context (line 253) | class Context:
    method __init__ (line 277) | def __init__(self, **kwargs):
    method append_device_info (line 290) | def append_device_info(self, device_info):
    method _set_thread_num (line 314) | def _set_thread_num(self, val):
    method _set_thread_affinity_core_list (line 318) | def _set_thread_affinity_core_list(self, val):
    method _set_enable_parallel (line 322) | def _set_enable_parallel(self, val):
    method __str__ (line 329) | def __str__(self):
  class DeviceInfoContext (line 336) | class DeviceInfoContext:
    method __init__ (line 337) | def __init__(self):
    method _as_context_map (line 340) | def _as_context_map(self):
  class CPUDeviceInfo (line 345) | class CPUDeviceInfo(DeviceInfoContext):
    method __init__ (line 365) | def __init__(self, **kwargs):
    method _set_precision_mode (line 375) | def _set_precision_mode(self, val):
    method _as_context_map (line 381) | def _as_context_map(self):
  class GPUDeviceInfo (line 390) | class GPUDeviceInfo(DeviceInfoContext):
    method __init__ (line 410) | def __init__(self, **kwargs):
    method _set_precision_mode (line 420) | def _set_precision_mode(self, val):
    method _as_context_map (line 436) | def _as_context_map(self):
  class AscendDeviceInfo (line 445) | class AscendDeviceInfo(DeviceInfoContext):
    method __init__ (line 477) | def __init__(self, **kwargs):
    method _set_insert_op_cfg_path (line 502) | def _set_insert_op_cfg_path(self, val):
    method _set_input_format (line 514) | def _set_input_format(self, val):
    method _set_input_shape (line 531) | def _set_input_shape(self, val):
    method _set_output_type (line 544) | def _set_output_type(self, val):
    method _set_precision_mode (line 560) | def _set_precision_mode(self, val):
    method _set_op_select_impl_mode (line 578) | def _set_op_select_impl_mode(self, val):
    method _set_fusion_switch_config_path (line 595) | def _set_fusion_switch_config_path(self, val):
    method _set_buffer_optimize_mode (line 599) | def _set_buffer_optimize_mode(self, val):
    method _as_context_map (line 606) | def _as_context_map(self):
  class AclOptions (line 629) | class AclOptions:
    method __init__ (line 660) | def __init__(self, **kwargs):
  class GpuOptions (line 669) | class GpuOptions:
    method __init__ (line 690) | def __init__(self, **kwargs):

FILE: mindspore_serving/server/register/stage_function.py
  function check_stage_function (line 22) | def check_stage_function(method_name, function_name, inputs_count, outpu...
  function get_stage_info (line 36) | def get_stage_info(function_name):
  class StageFunctionStorage (line 44) | class StageFunctionStorage:
    method __init__ (line 47) | def __init__(self):
    method register (line 51) | def register(self, method_name, fun, function_name, inputs_count, outp...
    method get (line 61) | def get(self, function_name):
  function register_stage_function (line 71) | def register_stage_function(method_name, func, inputs_count, outputs_cou...

FILE: mindspore_serving/server/register/utils.py
  function get_servable_dir (line 20) | def get_servable_dir():
  function get_func_name (line 34) | def get_func_name(func):

FILE: mindspore_serving/server/start_extra_worker.py
  function start_extra_worker (line 27) | def start_extra_worker(servable_directory, servable_name, version_number...
  function parse_args_and_start (line 66) | def parse_args_and_start():

FILE: mindspore_serving/server/start_worker.py
  function start_worker (line 27) | def start_worker(servable_directory, servable_name, version_number,
  function parse_args_and_start (line 65) | def parse_args_and_start():

FILE: mindspore_serving/server/worker/_worker.py
  function _set_enable_lite (line 32) | def _set_enable_lite(enable_lite):
  function _set_device_id (line 37) | def _set_device_id(device_id):
  function _set_device_type (line 42) | def _set_device_type(device_type):
  function get_newest_version_number (line 51) | def get_newest_version_number(servable_directory, servable_name):
  function stop (line 71) | def stop():
  function stop_on_except (line 90) | def stop_on_except(func):
  function _load_servable_config (line 105) | def _load_servable_config(servable_directory, servable_name):
  function start_servable (line 124) | def start_servable(servable_directory, servable_name, version_number,
  function start_extra_servable (line 164) | def start_extra_servable(servable_directory, servable_name, version_numb...

FILE: mindspore_serving/server/worker/check_version.py
  class AscendEnvChecker (line 24) | class AscendEnvChecker:
    method __init__ (line 27) | def __init__(self):
    method check_env (line 83) | def check_env(self, e):
    method set_env (line 88) | def set_env(self):
    method try_set_env_lib (line 147) | def try_set_env_lib(self):
    method _check_env (line 155) | def _check_env(self):
  class GPUEnvChecker (line 179) | class GPUEnvChecker():
    method __init__ (line 182) | def __init__(self):
    method _get_bin_path (line 193) | def _get_bin_path(self, bin_name):
    method _get_cuda_bin_path (line 199) | def _get_cuda_bin_path(self):
    method _get_nvcc_version (line 208) | def _get_nvcc_version(self, is_set_env):
    method check_env (line 225) | def check_env(self):
    method _check_version (line 250) | def _check_version(self, version_file):
    method _get_lib_path (line 259) | def _get_lib_path(self, lib_name):
    method _read_version (line 284) | def _read_version(self, file_path):
  function check_version_and_env_config (line 295) | def check_version_and_env_config(device_type):
  function check_version_and_try_set_env_lib (line 310) | def check_version_and_try_set_env_lib():

FILE: mindspore_serving/server/worker/distributed/agent_startup.py
  function _get_local_ip (line 35) | def _get_local_ip(rank_list, port):
  function _check_local_ip (line 54) | def _check_local_ip(agent_ip, port):
  function _check_model_files (line 70) | def _check_model_files(num, files, model_files, group_config_files):
  function _check_model_num (line 89) | def _check_model_num(model_files, group_config_files):
  function _update_model_files_path (line 98) | def _update_model_files_path(model_files, group_config_files):
  function _make_json_table_file (line 142) | def _make_json_table_file(distributed_config):
  function _recv_parent (line 162) | def _recv_parent(parent_process, index, recv_pipe, handle_stop_signal=Tr...
  function _agent_process (line 189) | def _agent_process(send_pipe, recv_pipe, index, start_config, dec_key, d...
  function _send_pipe_msg (line 217) | def _send_pipe_msg(send_pipe, msg):
  function _send_exit_signal_to_children (line 226) | def _send_exit_signal_to_children(subprocess_list):
  function _send_exit_msg_to_children (line 278) | def _send_exit_msg_to_children(send_pipe_list, subprocess_list):
  function _listening_agents_when_startup (line 294) | def _listening_agents_when_startup(p_recv_pipe, send_pipe_list, subproce...
  function _listening_agents_after_startup (line 323) | def _listening_agents_after_startup(subprocess_list, distributed_address...
  function _startup_agents (line 343) | def _startup_agents(common_meta, distributed_address,
  class DistributedServableConfig (line 399) | class DistributedServableConfig:
    method __init__ (line 402) | def __init__(self):
    method set (line 408) | def set(self, config):
    method get (line 424) | def get(self):
  function _get_worker_distributed_config (line 446) | def _get_worker_distributed_config(distributed_address):
  function startup_agents (line 474) | def startup_agents(distributed_address, model_files, group_config_files=...

FILE: mindspore_serving/server/worker/distributed/distributed_worker.py
  function start_servable (line 24) | def start_servable(servable_directory, servable_name, rank_table_json_fi...

FILE: mindspore_serving/server/worker/distributed/register.py
  function declare_servable (line 24) | def declare_servable(rank_size, stage_size, with_batch_dim=True, without...

FILE: mindspore_serving/server/worker/distributed/worker_agent.py
  function start_worker_agent (line 26) | def start_worker_agent(start_config, dec_key, dec_mode):
  function start_wait_and_clear (line 63) | def start_wait_and_clear():
  function stop (line 79) | def stop():

FILE: mindspore_serving/server/worker/init_mindspore.py
  function get_mindspore_whl_path (line 26) | def get_mindspore_whl_path():
  function check_mindspore_version (line 37) | def check_mindspore_version(ms_dir):
  function set_mindspore_cxx_env (line 64) | def set_mindspore_cxx_env():
  function init_mindspore_cxx_env (line 91) | def init_mindspore_cxx_env(enable_lite):

FILE: mindspore_serving/server/worker/task.py
  class ServingSystemException (line 26) | class ServingSystemException(Exception):
    method __init__ (line 29) | def __init__(self, msg):
    method __str__ (line 33) | def __str__(self):
  function has_worker_stopped (line 37) | def has_worker_stopped():
  class PyTaskHandler (line 42) | class PyTaskHandler:
    method run (line 45) | def run(self):
    method run_inner (line 66) | def run_inner(task):
    method push_failed (line 140) | def push_failed(count, failed_msg):
    method push_system_failed (line 145) | def push_system_failed(failed_msg):
    method push_result (line 150) | def push_result(instance_result):
  function _start_py_task (line 158) | def _start_py_task():

FILE: setup.py
  function _read_file (line 36) | def _read_file(filename):
  function _write_version (line 45) | def _write_version(file):
  function _write_config (line 49) | def _write_config(file):
  function _write_commit_file (line 53) | def _write_commit_file(file):
  function _write_package_name (line 57) | def _write_package_name(file):
  function build_dependencies (line 61) | def build_dependencies():
  function update_permissions (line 119) | def update_permissions(path):
  function bin_files (line 139) | def bin_files():
  class EggInfo (line 158) | class EggInfo(egg_info):
    method run (line 161) | def run(self):
  class BuildPy (line 167) | class BuildPy(build_py):
    method run (line 170) | def run(self):

FILE: tests/st/add/test_serving.py
  function test_serving_add (line 24) | def test_serving_add():

FILE: tests/st/add_sub_pipeline/test_serving.py
  function test_serving_add (line 24) | def test_serving_add():

FILE: tests/st/distributed_server_fault/test_distributed_fault.py
  function test_distribute_fault_kill_15_agent (line 24) | def test_distribute_fault_kill_15_agent():
  function test_distribute_fault_kill_9_agent (line 34) | def test_distribute_fault_kill_9_agent():
  function test_distribute_fault_kill_15_server (line 44) | def test_distribute_fault_kill_15_server():
  function test_distribute_fault_kill_9_server (line 54) | def test_distribute_fault_kill_9_server():

FILE: tests/st/matmul_distributed/test_matmul_distribute.py
  function test_serving_matmul_distributed (line 24) | def test_serving_matmul_distributed():

FILE: tests/st/matmul_multi_subgraphs/test_matmul_multi_subgraphs.py
  function test_serving_pipeline_distributed (line 24) | def test_serving_pipeline_distributed():

FILE: tests/st/resnet/test_resnet.py
  function test_resnet (line 24) | def test_resnet():

FILE: tests/st/serving_fault/test_serving_fault.py
  function test_serving_fault_kill_15_master (line 24) | def test_serving_fault_kill_15_master():
  function test_serving_fault_kill_9_master (line 34) | def test_serving_fault_kill_9_master():
  function test_serving_fault_kill_15_worker (line 44) | def test_serving_fault_kill_15_worker():
  function test_serving_fault_kill_9_worker (line 54) | def test_serving_fault_kill_9_worker():
  function serving_fault_restart (line 64) | def serving_fault_restart():

FILE: tests/ut/cpp/common/common_test.cc
  type UT (line 29) | namespace UT {

FILE: tests/ut/cpp/common/common_test.h
  function namespace (line 23) | namespace UT {

FILE: tests/ut/cpp/common/test_main.cc
  function GTEST_API_ (line 18) | GTEST_API_ int main(int argc, char **argv) {

FILE: tests/ut/cpp/common/test_servable_common.h
  function class (line 53) | class FakeNotifyMaster : public BaseNotifyMaster {
  function class (line 59) | class TestMasterWorker : public UT::Common {
  function CheckMultiInstanceResult (line 319) | void CheckMultiInstanceResult(const proto::PredictReply &reply,
  function CheckInstanceResult (line 346) | void CheckInstanceResult(const proto::PredictReply &reply, const std::ve...
  function CheckTensor (line 369) | static void CheckTensor(const proto::Tensor &output_tensor, const std::v...
  function grpc (line 412) | static grpc::Status Dispatch(const proto::PredictRequest &request, proto...

FILE: tests/ut/cpp/tests/test_agent_config_acquire.cc
  type mindspore (line 25) | namespace mindspore {
    type serving (line 26) | namespace serving {
      class TestAgentConfigAcquire (line 27) | class TestAgentConfigAcquire : public UT::Common {
        method TestAgentConfigAcquire (line 29) | TestAgentConfigAcquire() = default;
        method SetUp (line 30) | virtual void SetUp() {}
        method TearDown (line 31) | virtual void TearDown() {
      function TEST_F (line 36) | TEST_F(TestAgentConfigAcquire, test_agent_config_acquire_success) {
      function TEST_F (line 83) | TEST_F(TestAgentConfigAcquire, test_agent_config_acquire_not_load_co...

FILE: tests/ut/cpp/tests/test_context.cc
  type mindspore (line 24) | namespace mindspore {
    type serving (line 25) | namespace serving {
      class TestModelContext (line 26) | class TestModelContext : public UT::Common {
        method TestModelContext (line 28) | TestModelContext() = default;
        method Init (line 29) | void Init(std::string file_name) {
        method SetUp (line 40) | virtual void SetUp() {
        method TearDown (line 44) | virtual void TearDown() {
      function TEST_F (line 55) | TEST_F(TestModelContext, test_ms_set_ascend910) {
      function TEST_F (line 70) | TEST_F(TestModelContext, test_lite_set_gpu) {
      function TEST_F (line 82) | TEST_F(TestModelContext, test_lite_set_gpu_cpu) {
      function TEST_F (line 96) | TEST_F(TestModelContext, test_ms_set_gpu) {

FILE: tests/ut/cpp/tests/test_distributed_inference.cc
  type mindspore (line 30) | namespace mindspore {
    type serving (line 31) | namespace serving {
      type AgentInferResult (line 33) | struct AgentInferResult {
      class FakeNotifyAgent (line 40) | class FakeNotifyAgent : public BaseNotifyAgent {
        method FakeNotifyAgent (line 42) | explicit FakeNotifyAgent(int64_t prediction_time = 0, Status statu...
        method Status (line 46) | Status Exit() override { return SUCCESS; }
        method Status (line 47) | Status DispatchAsync(const proto::DistributedPredictRequest &reque...
      class TestDistributedInference (line 74) | class TestDistributedInference : public UT::Common {
        method TestDistributedInference (line 76) | TestDistributedInference() = default;
        method InitDistributedServable (line 79) | void InitDistributedServable(std::shared_ptr<DistributedModelLoade...
        method InitAgentSpecMap (line 87) | void InitAgentSpecMap(std::shared_ptr<DistributedModelLoader> serv...
      function TEST_F (line 99) | TEST_F(TestDistributedInference, test_agent_8_stage_1) {
      function TEST_F (line 113) | TEST_F(TestDistributedInference, test_agent_4) {
      function TEST_F (line 127) | TEST_F(TestDistributedInference, test_agent_32_stage_1) {
      function TEST_F (line 141) | TEST_F(TestDistributedInference, test_agent_32_stage_2) {
      function TEST_F (line 155) | TEST_F(TestDistributedInference, test_agent_32_stage_4) {
      function TEST_F (line 169) | TEST_F(TestDistributedInference, test_agent_64_stage_8) {
      function TEST_F (line 183) | TEST_F(TestDistributedInference, test_output_nullptr) {
      function TEST_F (line 197) | TEST_F(TestDistributedInference, test_agent_infer_more_than_10s) {
      function TEST_F (line 212) | TEST_F(TestDistributedInference, test_agent_exit) {
      function TEST_F (line 226) | TEST_F(TestDistributedInference, test_rank_size_not_equal_agent_num) {
      function TEST_F (line 240) | TEST_F(TestDistributedInference, test_agent_reply_with_error_msg) {
      function TEST_F (line 255) | TEST_F(TestDistributedInference, test_model_not_loaded) {

FILE: tests/ut/cpp/tests/test_init_config_on_start_up.cc
  type mindspore (line 24) | namespace mindspore {
    type serving (line 25) | namespace serving {
      class TestParseRankTableFile (line 26) | class TestParseRankTableFile : public UT::Common {
        method TestParseRankTableFile (line 28) | TestParseRankTableFile() = default;
        method SetUp (line 29) | virtual void SetUp() {}
        method TearDown (line 30) | virtual void TearDown() {
      function TEST_F (line 39) | TEST_F(TestParseRankTableFile, test_init_config_on_startup_empty_fil...
      function TEST_F (line 50) | TEST_F(TestParseRankTableFile, test_init_config_on_startup_success) {
      function TEST_F (line 75) | TEST_F(TestParseRankTableFile, test_parse_rank_table_file_with_serve...
      function TEST_F (line 112) | TEST_F(TestParseRankTableFile, test_parse_rank_table_file_not_server...
      function TEST_F (line 125) | TEST_F(TestParseRankTableFile, test_parse_rank_table_file_invalid_se...
      function TEST_F (line 139) | TEST_F(TestParseRankTableFile, test_parse_rank_table_file_empty_serv...
      function TEST_F (line 153) | TEST_F(TestParseRankTableFile, test_parse_rank_table_file_with_not_s...
      function TEST_F (line 174) | TEST_F(TestParseRankTableFile, test_parse_rank_table_file_with_inval...
      function TEST_F (line 196) | TEST_F(TestParseRankTableFile, test_parse_rank_table_file_with_empty...
      function TEST_F (line 218) | TEST_F(TestParseRankTableFile, test_parse_rank_table_file_with_not_d...
      function TEST_F (line 237) | TEST_F(TestParseRankTableFile, test_parse_rank_table_file_with_inval...
      function TEST_F (line 257) | TEST_F(TestParseRankTableFile, test_parse_rank_table_file_with_empty...
      function TEST_F (line 277) | TEST_F(TestParseRankTableFile, test_parse_rank_table_file_with_not_d...
      function TEST_F (line 298) | TEST_F(TestParseRankTableFile, test_parse_rank_table_file_with_inval...
      function TEST_F (line 319) | TEST_F(TestParseRankTableFile, test_parse_rank_table_file_with_not_r...
      function TEST_F (line 340) | TEST_F(TestParseRankTableFile, test_parse_rank_table_file_with_inval...
      function TEST_F (line 361) | TEST_F(TestParseRankTableFile, test_parse_rank_table_file_with_inval...
      function TEST_F (line 382) | TEST_F(TestParseRankTableFile, test_parse_rank_table_file_with_group...
      function TEST_F (line 425) | TEST_F(TestParseRankTableFile, test_parse_rank_table_file_not_group_...
      function TEST_F (line 440) | TEST_F(TestParseRankTableFile, test_parse_rank_table_file_invalid_gr...
      function TEST_F (line 455) | TEST_F(TestParseRankTableFile, test_parse_rank_table_file_empty_grou...
      function TEST_F (line 470) | TEST_F(TestParseRankTableFile, test_parse_rank_table_file_not_instan...
      function TEST_F (line 490) | TEST_F(TestParseRankTableFile, test_parse_rank_table_file_invalid_in...
      function TEST_F (line 511) | TEST_F(TestParseRankTableFile, test_parse_rank_table_file_empty_inst...
      function TEST_F (line 532) | TEST_F(TestParseRankTableFile, test_parse_rank_table_file_with_group...
      function TEST_F (line 555) | TEST_F(TestParseRankTableFile, test_parse_rank_table_file_with_group...
      function TEST_F (line 579) | TEST_F(TestParseRankTableFile, test_parse_rank_table_file_with_group...
      function TEST_F (line 603) | TEST_F(TestParseRankTableFile, test_parse_rank_table_file_with_group...
      function TEST_F (line 626) | TEST_F(TestParseRankTableFile, test_parse_rank_table_file_with_group...
      function TEST_F (line 650) | TEST_F(TestParseRankTableFile, test_parse_rank_table_file_with_group...
      function TEST_F (line 674) | TEST_F(TestParseRankTableFile, test_parse_rank_table_file_with_group...
      function TEST_F (line 698) | TEST_F(TestParseRankTableFile, test_parse_rank_table_file_with_group...
      function TEST_F (line 722) | TEST_F(TestParseRankTableFile, test_parse_rank_table_file_with_group...
      function TEST_F (line 745) | TEST_F(TestParseRankTableFile, test_parse_rank_table_file_with_group...
      function TEST_F (line 769) | TEST_F(TestParseRankTableFile, test_parse_rank_table_file_with_group...

FILE: tests/ut/cpp/tests/test_master_worker.cc
  type mindspore (line 24) | namespace mindspore {
    type serving (line 25) | namespace serving {
      function TEST_F (line 27) | TEST_F(TestMasterWorkerClient, test_master_worker_success) {
      function TEST_F (line 53) | TEST_F(TestMasterWorkerClient, test_master_worker_success_version_nu...
      function TEST_F (line 79) | TEST_F(TestMasterWorkerClient, test_master_worker_success_version_nu...
      function TEST_F (line 98) | TEST_F(TestMasterWorkerClient, test_master_worker_success_version_nu...
      function TEST_F (line 117) | TEST_F(TestMasterWorkerClient, test_master_worker_success_multi_vers...
      function TEST_F (line 139) | TEST_F(TestMasterWorkerClient, test_master_worker_success_version_nu...
      function TEST_F (line 161) | TEST_F(TestMasterWorkerClient, test_master_worker_success_version_nu...
      function TEST_F (line 184) | TEST_F(TestMasterWorkerClient, test_master_worker_three_instance_suc...
      function TEST_F (line 204) | TEST_F(TestMasterWorkerClient, test_master_worker_input_size_not_mat...
      function TEST_F (line 246) | TEST_F(TestMasterWorkerClient, test_master_worker_with_batch_dim_tru...
      function TEST_F (line 266) | TEST_F(TestMasterWorkerClient, test_master_worker_with_batch_dim_tru...
      function TEST_F (line 285) | TEST_F(TestMasterWorkerClient, test_master_worker_error_servable_nam...
      function TEST_F (line 305) | TEST_F(TestMasterWorkerClient, test_master_worker_error_method_name) {
      function TEST_F (line 326) | TEST_F(TestMasterWorkerClient, test_master_worker_error_version_numb...
      function TEST_F (line 346) | TEST_F(TestMasterWorkerClient, test_master_worker_invalid_input_name) {
      function TEST_F (line 389) | TEST_F(TestMasterWorkerClient, test_master_worker_three_instance_one...
      function TEST_F (line 414) | TEST_F(TestMasterWorkerClient, test_master_worker_extra_input_succes...
      function TEST_F (line 458) | TEST_F(TestMasterWorkerClient, test_master_worker_invalid_input_data...
      function TEST_F (line 501) | TEST_F(TestMasterWorkerClient, test_master_worker_with_batch_dim_tru...
      function TEST_F (line 544) | TEST_F(TestMasterWorkerClient, test_master_worker_invalid_input_data...
      function TEST_F (line 587) | TEST_F(TestMasterWorkerClient, test_master_worker_invalid_input_data...
      function TEST_F (line 630) | TEST_F(TestMasterWorkerClient, test_master_worker_with_batch_dim_tru...

FILE: tests/ut/cpp/tests/test_model_thread.cc
  type mindspore (line 25) | namespace mindspore {
    type serving (line 26) | namespace serving {
      class TestModelThead (line 27) | class TestModelThead : public UT::Common {
        method TestModelThead (line 29) | TestModelThead() = default;
      function BaseNotifyWorker (line 32) | class MS_API TestNotify : public BaseNotifyWorker {
  function Status (line 47) | Status TestNotify::DispatchAsync(const proto::PredictRequest &request, p...
  function InitWorkerContext (line 54) | std::shared_ptr<WorkerContext> InitWorkerContext(proto::PredictReply *re...
  function TEST_F (line 67) | TEST_F(TestModelThead, AddWorker) {
  function TEST_F (line 81) | TEST_F(TestModelThead, DelWorker) {
  function TEST_F (line 94) | TEST_F(TestModelThead, Dispatch) {
  function TEST_F (line 116) | TEST_F(TestModelThead, Dispatch1) {
  function TEST_F (line 139) | TEST_F(TestModelThead, Commit) {

FILE: tests/ut/cpp/tests/test_parse_restful.cc
  type mindspore (line 25) | namespace mindspore {
    type serving (line 26) | namespace serving {
      class TestParseInput (line 27) | class TestParseInput : public UT::Common {
        method TestParseInput (line 29) | TestParseInput() = default;
      class TestParseReply (line 32) | class TestParseReply : public UT::Common {
        method TestParseReply (line 34) | TestParseReply() = default;
      function TEST_F (line 37) | TEST_F(TestParseInput, test_parse_SUCCESS) {
      function TEST_F (line 249) | TEST_F(TestParseInput, test_instances_empty_FAIL) {
      function TEST_F (line 276) | TEST_F(TestParseInput, test_instances_incorrect_FAIL) {
      function TEST_F (line 303) | TEST_F(TestParseInput, test_key_empty_FAIL) {
      function TEST_F (line 330) | TEST_F(TestParseInput, test_value_empty_SUCCESS) {
      function TEST_F (line 357) | TEST_F(TestParseInput, test_obj_unknown_key_FAIL) {
      function TEST_F (line 384) | TEST_F(TestParseInput, test_obj_nob64_key_FAIL) {
      function TEST_F (line 411) | TEST_F(TestParseInput, test_obj_illegal_b64value_FAIL) {
      function TEST_F (line 438) | TEST_F(TestParseInput, test_obj_unknown_type_FAIL) {
      function TEST_F (line 465) | TEST_F(TestParseInput, test_obj_error_shape_format_FAIL) {
      function TEST_F (line 492) | TEST_F(TestParseInput, test_obj_error_shape_format2_FAIL) {
      function TEST_F (line 519) | TEST_F(TestParseInput, test_obj_error_shape_value_FAIL) {
      function TEST_F (line 546) | TEST_F(TestParseInput, test_obj_error_shape_value2_FAIL) {
      function TEST_F (line 573) | TEST_F(TestParseInput, test_obj_error_shape_value3_FAIL) {
      function TEST_F (line 600) | TEST_F(TestParseInput, test_tensor_value_empty_FAIL) {
      function TEST_F (line 627) | TEST_F(TestParseInput, test_tensor_value_diff_type_FAIL) {
      function TEST_F (line 654) | TEST_F(TestParseInput, test_tensor_value_diff_dimention_FAIL) {
      function TEST_F (line 681) | TEST_F(TestParseInput, test_tensor_multi_object_FAIL) {
      function TEST_F (line 708) | TEST_F(TestParseReply, test_reply_SUCCESS) {
      function TEST_F (line 957) | TEST_F(TestParseReply, test_reply_instances_num_not_match_FAIL) {
      function TEST_F (line 1107) | TEST_F(TestParseReply, test_reply_error_num_not_match_FAIL) {
      function TEST_F (line 1147) | TEST_F(TestParseReply, test_reply_type_not_set_FAIL) {
      function TEST_F (line 1193) | TEST_F(TestParseReply, test_reply_type_fp16_SUCCESS) {

FILE: tests/ut/cpp/tests/test_shared_memory.cc
  type mindspore (line 25) | namespace mindspore {
    type serving (line 26) | namespace serving {
      class TestSharedMemory (line 28) | class TestSharedMemory : public UT::Common {
        method SetUp (line 30) | void SetUp() override {
        method TearDown (line 33) | void TearDown() override {
      function TEST_F (line 38) | TEST_F(TestSharedMemory, test_alloc_release_shared_memory_success) {
      function TEST_F (line 103) | TEST_F(TestSharedMemory, test_alloc_release_shared_memory_repeat_rel...
      function TEST_F (line 123) | TEST_F(TestSharedMemory, test_alloc_attach_shared_memory_success) {
      function TEST_F (line 145) | TEST_F(TestSharedMemory, test_alloc_twice_attach_shared_memory_succe...
      function TEST_F (line 186) | TEST_F(TestSharedMemory, test_alloc_re_attach_shared_memory_success) {
      function TEST_F (line 226) | TEST_F(TestSharedMemory, test_alloc_attach_shared_memory_attach_repe...
      function TEST_F (line 246) | TEST_F(TestSharedMemory, test_alloc_attach_shared_memory_detach_repe...
      function TEST_F (line 265) | TEST_F(TestSharedMemory, test_alloc_attach_invalid_shared_memory_fai...

FILE: tests/ut/cpp/tests/test_start_preprocess_postprocess.cc
  type mindspore (line 18) | namespace mindspore {
    type serving (line 19) | namespace serving {
      class TestPreprocessPostprocess (line 20) | class TestPreprocessPostprocess : public TestMasterWorkerClient {
        method TestPreprocessPostprocess (line 22) | TestPreprocessPostprocess() = default;
        method SetUp (line 24) | virtual void SetUp() {}
        method TearDown (line 25) | virtual void TearDown() { TestMasterWorkerClient::TearDown(); }
        method MethodSignature (line 26) | MethodSignature InitDefaultMethod() {
        method MethodSignature (line 39) | MethodSignature InitMethodSig() {
      function TEST_F (line 50) | TEST_F(TestPreprocessPostprocess, test_master_worker_with_preproces_...
      function TEST_F (line 77) | TEST_F(TestPreprocessPostprocess, test_master_worker_with_preproces_...
      function TEST_F (line 106) | TEST_F(TestPreprocessPostprocess, test_master_worker_with_only_prepr...
      function TEST_F (line 141) | TEST_F(TestPreprocessPostprocess, test_master_worker_with_only_prepr...
      function TEST_F (line 175) | TEST_F(TestPreprocessPostprocess, test_master_worker_with_only_postp...
      function TEST_F (line 209) | TEST_F(TestPreprocessPostprocess, test_master_worker_with_only_postp...
      function TEST_F (line 245) | TEST_F(TestPreprocessPostprocess, test_worker_start_preprocess_not_f...
      function TEST_F (line 267) | TEST_F(TestPreprocessPostprocess, test_worker_start_postprocess_not_...
      function TEST_F (line 289) | TEST_F(TestPreprocessPostprocess, test_preproces_process_failed) {
      function TEST_F (line 314) | TEST_F(TestPreprocessPostprocess, test_postproces_process_failed) {
      function TEST_F (line 351) | TEST_F(TestPreprocessPostprocess, test_preproces_input_invalid1_fail...
      function TEST_F (line 374) | TEST_F(TestPreprocessPostprocess, test_preproces_input_invalid2_fail...
      function TEST_F (line 396) | TEST_F(TestPreprocessPostprocess, test_preproces_input_invalid3_fail...
      function TEST_F (line 418) | TEST_F(TestPreprocessPostprocess, test_preproces_input_invalid4_fail...
      function TEST_F (line 441) | TEST_F(TestPreprocessPostprocess, test_predict_input_invalid1_failed) {
      function TEST_F (line 463) | TEST_F(TestPreprocessPostprocess, test_predict_input_invalid2_failed) {
      function TEST_F (line 485) | TEST_F(TestPreprocessPostprocess, test_predict_input_invalid3_failed) {
      function TEST_F (line 509) | TEST_F(TestPreprocessPostprocess, test_predict_input_invalid4_failed) {
      function TEST_F (line 532) | TEST_F(TestPreprocessPostprocess, test_postprocess_input_invalid1_fa...
      function TEST_F (line 554) | TEST_F(TestPreprocessPostprocess, test_postprocess_input_invalid2_fa...
      function TEST_F (line 577) | TEST_F(TestPreprocessPostprocess, test_postprocess_input_invalid3_fa...
      function TEST_F (line 601) | TEST_F(TestPreprocessPostprocess, test_postprocess_input_invalid4_fa...
      function TEST_F (line 624) | TEST_F(TestPreprocessPostprocess, test_return_invalid1_failed) {
      function TEST_F (line 648) | TEST_F(TestPreprocessPostprocess, test_return_invalid2_failed) {
      function TEST_F (line 672) | TEST_F(TestPreprocessPostprocess, test_return_invalid3_failed) {
      function TEST_F (line 695) | TEST_F(TestPreprocessPostprocess, test_return_invalid4_failed) {

FILE: tests/ut/cpp/tests/test_start_worker.cc
  type mindspore (line 18) | namespace mindspore {
    type serving (line 19) | namespace serving {
      class TestStartWorker (line 20) | class TestStartWorker : public TestMasterWorker {
        method TestStartWorker (line 22) | TestStartWorker() = default;
        method SetUp (line 24) | virtual void SetUp() {}
        method TearDown (line 25) | virtual void TearDown() { TestMasterWorker::TearDown(); }
      function TEST_F (line 28) | TEST_F(TestStartWorker, test_worker_start_success) {
      function TEST_F (line 37) | TEST_F(TestStartWorker, test_worker_start_error_model_file_name) {
      function TEST_F (line 48) | TEST_F(TestStartWorker, test_worker_start_error_version_number) {
      function TEST_F (line 62) | TEST_F(TestStartWorker, test_worker_start_multi_version_number) {
      function TEST_F (line 76) | TEST_F(TestStartWorker, test_worker_start_version_number_no_valid) {
      function TEST_F (line 93) | TEST_F(TestStartWorker, test_worker_start_error_servable_dir) {
      function TEST_F (line 107) | TEST_F(TestStartWorker, test_worker_start_error_servable_name) {
      function TEST_F (line 119) | TEST_F(TestStartWorker, test_worker_start_error_servable_format) {
      function TEST_F (line 130) | TEST_F(TestStartWorker, test_worker_start_no_registered_method) {
      function TEST_F (line 141) | TEST_F(TestStartWorker, test_worker_start_no_declared_servable) {
      function TEST_F (line 150) | TEST_F(TestStartWorker, test_worker_start_multi_method) {
      function TEST_F (line 160) | TEST_F(TestStartWorker, test_worker_start_method_servable_input_coun...
      function TEST_F (line 172) | TEST_F(TestStartWorker, test_worker_start_method_servable_output_cou...
      function TEST_F (line 185) | TEST_F(TestStartWorker, test_worker_start_preprocess_not_found) {
      function TEST_F (line 208) | TEST_F(TestStartWorker, test_worker_start_with_preproces_and_postpro...

FILE: tests/ut/python/servable_config/add_servable_config.py
  function add_trans_datatype (line 21) | def add_trans_datatype(x1, x2):
  function add_common (line 34) | def add_common(x1, x2):  # only support float32 inputs
  function add_cast (line 42) | def add_cast(x1, x2):

FILE: tests/ut/python/tests/common.py
  class ServingTestBase (line 27) | class ServingTestBase:
    method __init__ (line 28) | def __init__(self):
    method init_servable (line 36) | def init_servable(self, version_number, config_file, model_file="tenso...
    method init_servable_with_servable_config (line 46) | def init_servable_with_servable_config(self, version_number, servable_...
    method init_distributed_servable (line 82) | def init_distributed_servable(self, servable_config_content, rank_size...
    method add_on_exit (line 122) | def add_on_exit(fun):
  function serving_test (line 131) | def serving_test(func):
  function create_client (line 173) | def create_client(address, servable_name, method_name, version_number=0,...
  function generate_cert (line 179) | def generate_cert(server_ip="0.0.0.0", server_host_name="serving", commo...
  function release_client (line 190) | def release_client(client):
  function init_add_servable (line 226) | def init_add_servable():
  function init_str_servable (line 237) | def init_str_servable():
  function init_bytes_servable (line 270) | def init_bytes_servable():
  function init_bool_int_float_servable (line 306) | def init_bool_int_float_servable():
  function start_serving_server (line 340) | def start_serving_server(servable_content, model_file="tensor_add.mindir...

FILE: tests/ut/python/tests/common_restful.py
  function compare_float_value (line 26) | def compare_float_value(result, expect):
  function create_multi_instances_fp32 (line 36) | def create_multi_instances_fp32(instance_count):
  function create_multi_instances_with_batch_fp32 (line 48) | def create_multi_instances_with_batch_fp32(instance_count):
  function check_number_result (line 60) | def check_number_result(result, y_data_list, output_name="y"):
  function post_restful (line 71) | def post_restful(address, servable_name, method_name, json_instances, ve...
  function start_str_restful_server (line 115) | def start_str_restful_server():
  function start_bytes_restful_server (line 122) | def start_bytes_restful_server():
  function start_bool_int_float_restful_server (line 129) | def start_bool_int_float_restful_server():

FILE: tests/ut/python/tests/test_distributed_worker.py
  function init_distributed_servable (line 62) | def init_distributed_servable():
  function start_distributed_grpc_server (line 76) | def start_distributed_grpc_server():
  function start_distributed_worker (line 81) | def start_distributed_worker(base):
  function wait_worker_registered_ready (line 103) | def wait_worker_registered_ready(worker, recv_pipe):
  function start_agents (line 123) | def start_agents(model_file_list, group_config_list, start_port, dec_key...
  function send_exit (line 159) | def send_exit(process):
  function start_distributed_serving_server (line 180) | def start_distributed_serving_server():
  function test_distributed_worker_worker_exit_success (line 191) | def test_distributed_worker_worker_exit_success():
  function test_distributed_worker_agent_exit_success (line 234) | def test_distributed_worker_agent_exit_success():
  function test_distributed_worker_agent_startup_killed_exit_success (line 274) | def test_distributed_worker_agent_startup_killed_exit_success():
  function test_distributed_worker_agent_killed_exit_success (line 315) | def test_distributed_worker_agent_killed_exit_success():
  function test_distributed_worker_agent_invalid_model_files_failed (line 357) | def test_distributed_worker_agent_invalid_model_files_failed():
  function test_distributed_worker_dec_model_success (line 376) | def test_distributed_worker_dec_model_success():

FILE: tests/ut/python/tests/test_grpc_request.py
  function start_str_grpc_server (line 24) | def start_str_grpc_server():
  function start_bytes_grpc_server (line 31) | def start_bytes_grpc_server():
  function start_bool_int_float_grpc_server (line 38) | def start_bool_int_float_grpc_server():
  function test_grpc_request_str_input_output_success (line 46) | def test_grpc_request_str_input_output_success():
  function test_grpc_request_empty_str_input_output_success (line 65) | def test_grpc_request_empty_str_input_output_success():
  function test_grpc_request_str_shape1_list_input_failed (line 83) | def test_grpc_request_str_shape1_list_input_failed():
  function test_grpc_request_str_np_1d_array_input_failed (line 102) | def test_grpc_request_str_np_1d_array_input_failed():
  function test_grpc_request_bytes_input_output_success (line 122) | def test_grpc_request_bytes_input_output_success():
  function test_grpc_request_empty_bytes_input_output_success (line 140) | def test_grpc_request_empty_bytes_input_output_success():
  function test_grpc_request_bytes_1d_array_input_failed (line 158) | def test_grpc_request_bytes_1d_array_input_failed():
  function test_grpc_request_bool_scalar_input_output_success (line 177) | def test_grpc_request_bool_scalar_input_output_success():
  function test_grpc_request_bool_1d_array_input_output_success (line 192) | def test_grpc_request_bool_1d_array_input_output_success():
  function test_grpc_request_bool_2d_array_input_output_success (line 209) | def test_grpc_request_bool_2d_array_input_output_success():
  function test_grpc_request_bool_invalid_2d_array_input_failed (line 228) | def test_grpc_request_bool_invalid_2d_array_input_failed():
  function test_grpc_request_int_scalar_input_output_success (line 246) | def test_grpc_request_int_scalar_input_output_success():
  function common_test_grpc_request_np_int_type_scalar_input_output_success (line 261) | def common_test_grpc_request_np_int_type_scalar_input_output_success(dty...
  function test_grpc_request_np_int8_type_scalar_input_output_success (line 277) | def test_grpc_request_np_int8_type_scalar_input_output_success():
  function test_grpc_request_np_int16_type_scalar_input_output_success (line 282) | def test_grpc_request_np_int16_type_scalar_input_output_success():
  function test_grpc_request_np_int32_type_scalar_input_output_success (line 287) | def test_grpc_request_np_int32_type_scalar_input_output_success():
  function test_grpc_request_np_int64_type_scalar_input_output_success (line 292) | def test_grpc_request_np_int64_type_scalar_input_output_success():
  function common_test_grpc_request_np_uint_type_scalar_input_output_success (line 296) | def common_test_grpc_request_np_uint_type_scalar_input_output_success(dt...
  function test_grpc_request_np_uint8_type_scalar_input_output_success (line 312) | def test_grpc_request_np_uint8_type_scalar_input_output_success():
  function test_grpc_request_np_uint16_type_scalar_input_output_success (line 317) | def test_grpc_request_np_uint16_type_scalar_input_output_success():
  function test_grpc_request_np_uint32_type_scalar_input_output_success (line 322) | def test_grpc_request_np_uint32_type_scalar_input_output_success():
  function test_grpc_request_np_uint64_type_scalar_input_output_success (line 327) | def test_grpc_request_np_uint64_type_scalar_input_output_success():
  function common_test_grpc_request_np_int_type_1d_array_input_output_success (line 331) | def common_test_grpc_request_np_int_type_1d_array_input_output_success(d...
  function test_grpc_request_np_int8_type_1d_array_input_output_success (line 348) | def test_grpc_request_np_int8_type_1d_array_input_output_success():
  function test_grpc_request_np_int16_type_1d_array_input_output_success (line 353) | def test_grpc_request_np_int16_type_1d_array_input_output_success():
  function test_grpc_request_np_int32_type_1d_array_input_output_success (line 358) | def test_grpc_request_np_int32_type_1d_array_input_output_success():
  function test_grpc_request_np_int64_type_1d_array_input_output_success (line 363) | def test_grpc_request_np_int64_type_1d_array_input_output_success():
  function common_test_grpc_request_np_uint_type_1d_array_input_output_success (line 367) | def common_test_grpc_request_np_uint_type_1d_array_input_output_success(...
  function test_grpc_request_np_uint8_type_1d_array_input_output_success (line 384) | def test_grpc_request_np_uint8_type_1d_array_input_output_success():
  function test_grpc_request_np_uint16_type_1d_array_input_output_success (line 389) | def test_grpc_request_np_uint16_type_1d_array_input_output_success():
  function test_grpc_request_np_uint32_type_1d_array_input_output_success (line 394) | def test_grpc_request_np_uint32_type_1d_array_input_output_success():
  function test_grpc_request_np_uint64_type_1d_array_input_output_success (line 399) | def test_grpc_request_np_uint64_type_1d_array_input_output_success():
  function common_test_grpc_request_np_int_type_2d_array_input_output_success (line 403) | def common_test_grpc_request_np_int_type_2d_array_input_output_success(d...
  function test_grpc_request_np_int8_type_2d_array_input_output_success (line 422) | def test_grpc_request_np_int8_type_2d_array_input_output_success():
  function test_grpc_request_np_int16_type_2d_array_input_output_success (line 427) | def test_grpc_request_np_int16_type_2d_array_input_output_success():
  function test_grpc_request_np_int32_type_2d_array_input_output_success (line 432) | def test_grpc_request_np_int32_type_2d_array_input_output_success():
  function test_grpc_request_np_int64_type_2d_array_input_output_success (line 437) | def test_grpc_request_np_int64_type_2d_array_input_output_success():
  function common_test_grpc_request_np_uint_type_2d_array_input_output_success (line 441) | def common_test_grpc_request_np_uint_type_2d_array_input_output_success(...
  function test_grpc_request_np_uint8_type_2d_array_input_output_success (line 460) | def test_grpc_request_np_uint8_type_2d_array_input_output_success():
  function test_grpc_request_np_uint16_type_2d_array_input_output_success (line 465) | def test_grpc_request_np_uint16_type_2d_array_input_output_success():
  function test_grpc_request_np_uint32_type_2d_array_input_output_success (line 470) | def test_grpc_request_np_uint32_type_2d_array_input_output_success():
  function test_grpc_request_np_uint64_type_2d_array_input_output_success (line 475) | def test_grpc_request_np_uint64_type_2d_array_input_output_success():
  function test_grpc_request_float_scalar_input_output_success (line 480) | def test_grpc_request_float_scalar_input_output_success():
  function common_test_grpc_request_np_float_type_scalar_input_output_success (line 494) | def common_test_grpc_request_np_float_type_scalar_input_output_success(d...
  function test_grpc_request_np_float16_scalar_input_output_success (line 516) | def test_grpc_request_np_float16_scalar_input_output_success():
  function test_grpc_request_np_float32_scalar_input_output_success (line 521) | def test_grpc_request_np_float32_scalar_input_output_success():
  function test_grpc_request_np_float64_scalar_input_output_success (line 526) | def test_grpc_request_np_float64_scalar_input_output_success():
  function common_test_grpc_request_np_float_type_1d_array_input_output_success (line 530) | def common_test_grpc_request_np_float_type_1d_array_input_output_success...
  function test_grpc_request_np_float16_1d_array_input_output_success (line 553) | def test_grpc_request_np_float16_1d_array_input_output_success():
  function test_grpc_request_np_float32_1d_array_input_output_success (line 558) | def test_grpc_request_np_float32_1d_array_input_output_success():
  function test_grpc_request_np_float64_1d_array_input_output_success (line 563) | def test_grpc_request_np_float64_1d_array_input_output_success():
  function common_test_grpc_request_np_float_type_2d_array_input_output_success (line 567) | def common_test_grpc_request_np_float_type_2d_array_input_output_success...
  function test_grpc_request_np_float16_2d_array_input_output_success (line 592) | def test_grpc_request_np_float16_2d_array_input_output_success():
  function test_grpc_request_np_float32_2d_array_input_output_success (line 597) | def test_grpc_request_np_float32_2d_array_input_output_success():
  function test_grpc_request_np_float64_2d_array_input_output_success (line 602) | def test_grpc_request_np_float64_2d_array_input_output_success():
  function test_grpc_request_unix_domain_socket_success (line 607) | def test_grpc_request_unix_domain_socket_success():

FILE: tests/ut/python/tests/test_model_call.py
  function test_call_model_two_input_one_output_normal_success (line 24) | def test_call_model_two_input_one_output_normal_success():
  function test_call_model_two_input_one_output_multi_times_success (line 53) | def test_call_model_two_input_one_output_multi_times_success():
  function test_call_model_two_input_one_output_multi_times_2success (line 85) | def test_call_model_two_input_one_output_multi_times_2success():
  function test_call_model_two_input_one_output_batch_call_success (line 118) | def test_call_model_two_input_one_output_batch_call_success():
  function test_call_model_batch_call_one_input_one_output_success (line 159) | def test_call_model_batch_call_one_input_one_output_success():
  function test_call_model_batch_call_one_input_two_output_success (line 198) | def test_call_model_batch_call_one_input_two_output_success():
  function test_call_model_batch_call_one_input_two_output_batch_call_success (line 232) | def test_call_model_batch_call_one_input_two_output_batch_call_success():
  function test_call_model_two_input_one_output_none_instances_failed (line 279) | def test_call_model_two_input_one_output_none_instances_failed():
  function test_call_model_two_input_one_output_zero_instances_failed (line 307) | def test_call_model_two_input_one_output_zero_instances_failed():
  function test_call_model_two_input_one_output_invalid_inputs_format_failed (line 335) | def test_call_model_two_input_one_output_invalid_inputs_format_failed():
  function test_call_model_two_input_one_output_zero_inputs_failed (line 363) | def test_call_model_two_input_one_output_zero_inputs_failed():
  function test_call_model_two_input_one_output_data_size_error_failed (line 391) | def test_call_model_two_input_one_output_data_size_error_failed():
  function test_call_model_two_input_one_output_data_type_error_failed (line 419) | def test_call_model_two_input_one_output_data_type_error_failed():
  function test_call_model_two_input_one_output_call_batch_data_size_error_failed (line 448) | def test_call_model_two_input_one_output_call_batch_data_size_error_fail...
  function test_call_model_two_input_one_output_call_batch_data_type_error_failed (line 481) | def test_call_model_two_input_one_output_call_batch_data_type_error_fail...
  function test_call_model_two_input_one_output_more_inputs_failed (line 515) | def test_call_model_two_input_one_output_more_inputs_failed():
  function test_call_model_two_input_one_output_batch_call_more_inputs_failed (line 544) | def test_call_model_two_input_one_output_batch_call_more_inputs_failed():
  function test_call_model_two_input_one_output_batch_call_more_inputs2_failed (line 573) | def test_call_model_two_input_one_output_batch_call_more_inputs2_failed():
  function test_call_model_two_input_one_output_less_inputs_failed (line 602) | def test_call_model_two_input_one_output_less_inputs_failed():
  function test_call_model_two_input_one_output_batch_call_less_inputs_failed (line 631) | def test_call_model_two_input_one_output_batch_call_less_inputs_failed():
  function test_call_model_two_input_one_output_batch_call_less_inputs2_failed (line 660) | def test_call_model_two_input_one_output_batch_call_less_inputs2_failed():
  function test_call_model_two_input_one_output_batch_call_less_inputs3_failed (line 689) | def test_call_model_two_input_one_output_batch_call_less_inputs3_failed():
  function test_call_model_two_input_one_output_invalid_model_failed (line 718) | def test_call_model_two_input_one_output_invalid_model_failed():
  function test_call_model_two_input_one_output_with_stage_model_success (line 748) | def test_call_model_two_input_one_output_with_stage_model_success():
  function test_call_model_two_input_one_output_invalid_subgraph_failed (line 781) | def test_call_model_two_input_one_output_invalid_subgraph_failed():
  function test_call_model_two_input_one_output_two_subgraph_success (line 809) | def test_call_model_two_input_one_output_two_subgraph_success():
  function test_call_model_diff_input_output_two_subgraph_success (line 841) | def test_call_model_diff_input_output_two_subgraph_success():
  function test_call_model_diff_input_output_two_subgraph2_success (line 875) | def test_call_model_diff_input_output_two_subgraph2_success():
  function test_call_model_diff_input_output_two_subgraph_inputs_count_not_match_failed (line 909) | def test_call_model_diff_input_output_two_subgraph_inputs_count_not_matc...
  function test_call_model_two_input_one_output_two_model_success (line 942) | def test_call_model_two_input_one_output_two_model_success():
  function test_call_model_diff_input_output_two_model_success (line 973) | def test_call_model_diff_input_output_two_model_success():
  function test_call_model_diff_input_output_two_model2_success (line 1007) | def test_call_model_diff_input_output_two_model2_success():
  function test_call_model_diff_input_output_two_model_inputs_count_not_match_failed (line 1041) | def test_call_model_diff_input_output_two_model_inputs_count_not_match_f...
  function test_call_model_diff_input_output_two_model_with_bach_dim_success (line 1074) | def test_call_model_diff_input_output_two_model_with_bach_dim_success():

FILE: tests/ut/python/tests/test_model_context.py
  function test_model_context_device_info_set_get_success (line 25) | def test_model_context_device_info_set_get_success():
  function test_model_context_device_info_repeat_append_ascend_failed (line 83) | def test_model_context_device_info_repeat_append_ascend_failed():
  function test_model_context_options_set_get_success (line 99) | def test_model_context_options_set_get_success():
  function test_model_context_gpu_device_info_serving_server_success (line 133) | def test_model_context_gpu_device_info_serving_server_success():
  function test_model_context_cpu_device_info_serving_server_success (line 170) | def test_model_context_cpu_device_info_serving_server_success():
  function test_model_context_ascend_device_info_serving_server_success (line 207) | def test_model_context_ascend_device_info_serving_server_success():
  function test_model_context_all_device_info_serving_server_success (line 243) | def test_model_context_all_device_info_serving_server_success():
  function test_model_context_acl_options_serving_server_success (line 281) | def test_model_context_acl_options_serving_server_success():
  function test_model_context_gpu_options_serving_server_success (line 316) | def test_model_context_gpu_options_serving_server_success():
  function test_model_context_gpu_options_invalid_parameter_failed (line 351) | def test_model_context_gpu_options_invalid_parameter_failed():
  function test_model_context_gpu_options_invalid_parameter2_failed (line 380) | def test_model_context_gpu_options_invalid_parameter2_failed():
  function test_model_context_gpu_cpu_device_device_ids_none_serving_server_success (line 409) | def test_model_context_gpu_cpu_device_device_ids_none_serving_server_suc...
  function test_model_context_only_support_gpu_device_device_ids_none_serving_server_failed (line 442) | def test_model_context_only_support_gpu_device_device_ids_none_serving_s...

FILE: tests/ut/python/tests/test_multi_model.py
  function is_float_equal (line 22) | def is_float_equal(left, right):
  function test_multi_model_success (line 27) | def test_multi_model_success():
  function test_multi_model_2_success (line 61) | def test_multi_model_2_success():
  function test_multi_model_with_batch_dim_success (line 98) | def test_multi_model_with_batch_dim_success():
  function test_multi_model_with_function_front_success (line 132) | def test_multi_model_with_function_front_success():
  function test_multi_model_with_function_tail_success (line 172) | def test_multi_model_with_function_tail_success():
  function test_multi_model_with_function_mid_success (line 212) | def test_multi_model_with_function_mid_success():
  function test_multi_model_with_function_interlace_success (line 252) | def test_multi_model_with_function_interlace_success():
  function test_multi_model_with_function_call_model_success (line 295) | def test_multi_model_with_function_call_model_success():
  function test_multi_model_diff_input_output_count_success (line 339) | def test_multi_model_diff_input_output_count_success():

FILE: tests/ut/python/tests/test_python_parallel.py
  function start_serving_server (line 25) | def start_serving_server(servable_content, model_file="tensor_add.mindir...
  function is_float_equal (line 34) | def is_float_equal(left, right):
  function check_infer_log (line 38) | def check_infer_log(servable_name, version, device_id, extra_id):
  function test_python_parallel_without_model_success (line 56) | def test_python_parallel_without_model_success():
  function test_python_parallel_with_model_success (line 92) | def test_python_parallel_with_model_success():
  function test_python_parallel_with_call_model_success (line 132) | def test_python_parallel_with_call_model_success():
  function test_python_parallel_with_call_model_multi_process_success (line 172) | def test_python_parallel_with_call_model_multi_process_success():
  function test_python_parallel_with_call_model_with_batch_size_success (line 214) | def test_python_parallel_with_call_model_with_batch_size_success():
  function test_python_parallel_multi_models_success (line 254) | def test_python_parallel_multi_models_success():
  function test_python_parallel_multi_models_diff_input_output_success (line 296) | def test_python_parallel_multi_models_diff_input_output_success():

FILE: tests/ut/python/tests/test_register_method.py
  function test_register_method_with_model_success (line 26) | def test_register_method_with_model_success():
  function test_register_method_without_add_stage_success (line 60) | def test_register_method_without_add_stage_success():
  function test_register_method_without_register_method_failed (line 91) | def test_register_method_without_register_method_failed():
  function test_register_method_two_input_one_output_one_model_stage_input_more_failed (line 111) | def test_register_method_two_input_one_output_one_model_stage_input_more...
  function test_register_method_two_input_one_output_one_model_stage_input_less_failed (line 135) | def test_register_method_two_input_one_output_one_model_stage_input_less...
  function test_register_method_two_input_one_output_one_model_stage_input_less2_failed (line 159) | def test_register_method_two_input_one_output_one_model_stage_input_less...
  function test_register_method_two_input_one_output_one_model_stage_input_less3_failed (line 184) | def test_register_method_two_input_one_output_one_model_stage_input_less...
  function test_register_method_two_input_one_output_one_model_stage_with_batch_dim_input_more_failed (line 213) | def test_register_method_two_input_one_output_one_model_stage_with_batch...
  function test_register_method_two_input_one_output_one_model_stage_with_batch_dim_input_less_failed (line 237) | def test_register_method_two_input_one_output_one_model_stage_with_batch...
  function test_register_method_two_input_two_output_one_model_stage_output_more_failed (line 261) | def test_register_method_two_input_two_output_one_model_stage_output_mor...
  function test_register_method_three_input_two_output_one_model_stage_output_less_failed (line 285) | def test_register_method_three_input_two_output_one_model_stage_output_l...
  function test_register_method_three_input_two_output_one_model_stage_output_less2_failed (line 309) | def test_register_method_three_input_two_output_one_model_stage_output_l...
  function test_register_method_three_input_two_output_one_model_stage_output_less3_failed (line 334) | def test_register_method_three_input_two_output_one_model_stage_output_l...
  function test_register_method_model_file_repeat_failed (line 363) | def test_register_method_model_file_repeat_failed():
  function test_register_method_model_file_repeat2_failed (line 388) | def test_register_method_model_file_repeat2_failed():
  function test_register_method_model_file_repeat3_failed (line 413) | def test_register_method_model_file_repeat3_failed():
  function test_register_method_method_registered_repeat_failed (line 438) | def test_register_method_method_registered_repeat_failed():
  function test_register_method_input_arg_invalid_failed (line 466) | def test_register_method_input_arg_invalid_failed():
  function test_register_method_input_arg_invalid2_failed (line 489) | def test_register_method_input_arg_invalid2_failed():
  function test_register_method_function_stage_invalid_input_failed (line 512) | def test_register_method_function_stage_invalid_input_failed():
  function test_register_method_function_stage_invalid_input2_failed (line 540) | def test_register_method_function_stage_invalid_input2_failed():
  function test_register_method_model_stage_invalid_input_failed (line 568) | def test_register_method_model_stage_invalid_input_failed():
  function test_register_method_invalid_return_failed (line 592) | def test_register_method_invalid_return_failed():
  function test_register_method_function_stage_batch_input_count_not_same_failed (line 616) | def test_register_method_function_stage_batch_input_count_not_same_faile...
  function test_register_method_function_stage_batch_input_count_not_same2_failed (line 658) | def test_register_method_function_stage_batch_input_count_not_same2_fail...
  function test_register_method_function_stage_batch_output_count_not_same_failed (line 700) | def test_register_method_function_stage_batch_output_count_not_same_fail...
  function test_register_method_function_stage_batch_output_count_not_same2_failed (line 742) | def test_register_method_function_stage_batch_output_count_not_same2_fai...
  function test_register_method_method_output_count_not_match_output_names_failed (line 784) | def test_register_method_method_output_count_not_match_output_names_fail...
  function test_register_method_method_python_function_batch_size_exist_inconsistently_failed (line 810) | def test_register_method_method_python_function_batch_size_exist_inconsi...

FILE: tests/ut/python/tests/test_restful_base64_data.py
  function b64_decode_to_str (line 28) | def b64_decode_to_str(a):
  function common_test_restful_base64_str_scalar_input_output_success (line 32) | def common_test_restful_base64_str_scalar_input_output_success(shape):
  function test_restful_base64_str_scalar_input_output_success (line 56) | def test_restful_base64_str_scalar_input_output_success():
  function test_restful_base64_str_scalar_shape1_input_output_success (line 61) | def test_restful_base64_str_scalar_shape1_input_output_success():
  function test_restful_base64_str_scalar_shape_empty_input_output_success (line 66) | def test_restful_base64_str_scalar_shape_empty_input_output_success():
  function test_restful_base64_empty_str_input_output_success (line 71) | def test_restful_base64_empty_str_input_output_success():
  function test_restful_base64_str_scalar_invalid_shape0_input_failed (line 89) | def test_restful_base64_str_scalar_invalid_shape0_input_failed():
  function test_restful_base64_str_scalar_invalid_shape_input_failed (line 105) | def test_restful_base64_str_scalar_invalid_shape_input_failed():
  function test_restful_base64_str_1d_array_failed (line 121) | def test_restful_base64_str_1d_array_failed():
  function common_test_restful_bytes_input_output_success (line 137) | def common_test_restful_bytes_input_output_success(shape):
  function test_restful_bytes_input_output_success (line 159) | def test_restful_bytes_input_output_success():
  function test_restful_bytes_empty_shape_success (line 164) | def test_restful_bytes_empty_shape_success():
  function test_restful_bytes_shape1_success (line 169) | def test_restful_bytes_shape1_success():
  function test_restful_empty_bytes_input_output_success (line 174) | def test_restful_empty_bytes_input_output_success():
  function test_restful_bytes_1d_array_failed (line 192) | def test_restful_bytes_1d_array_failed():
  function test_restful_bytes_invalid_shape_input_failed (line 209) | def test_restful_bytes_invalid_shape_input_failed():
  function test_restful_base64_bool_scalar_input_output_success (line 225) | def test_restful_base64_bool_scalar_input_output_success():
  function test_restful_base64_bool_1d_array_input_output_success (line 241) | def test_restful_base64_bool_1d_array_input_output_success():
  function test_restful_base64_bool_2d_array_input_output_success (line 258) | def test_restful_base64_bool_2d_array_input_output_success():
  function test_restful_base64_int_scalar_input_output_success (line 277) | def test_restful_base64_int_scalar_input_output_success():
  function test_restful_base64_int_1d_empty_input_output_success (line 293) | def test_restful_base64_int_1d_empty_input_output_success():
  function test_restful_base64_int_2d_empty_input_output_success (line 313) | def test_restful_base64_int_2d_empty_input_output_success():
  function test_restful_base64_int_2d_empty_invalid_shape_failed (line 333) | def test_restful_base64_int_2d_empty_invalid_shape_failed():
  function test_restful_base64_int_1d_array_input_output_success (line 347) | def test_restful_base64_int_1d_array_input_output_success():
  function common_test_restful_base64_int_type_2d_array_input_output_success (line 364) | def common_test_restful_base64_int_type_2d_array_input_output_success(dt...
  function test_restful_base64_int8_2d_array_input_output_success (line 385) | def test_restful_base64_int8_2d_array_input_output_success():
  function test_restful_base64_int16_2d_array_input_output_success (line 390) | def test_restful_base64_int16_2d_array_input_output_success():
  function test_restful_base64_int32_2d_array_input_output_success (line 395) | def test_restful_base64_int32_2d_array_input_output_success():
  function test_restful_base64_int64_2d_array_input_output_success (line 400) | def test_restful_base64_int64_2d_array_input_output_success():
  function common_test_restful_base64_uint_type_2d_array_input_output_success (line 404) | def common_test_restful_base64_uint_type_2d_array_input_output_success(d...
  function test_restful_base64_uint8_2d_array_input_output_success (line 425) | def test_restful_base64_uint8_2d_array_input_output_success():
  function test_restful_base64_uint16_2d_array_input_output_success (line 430) | def test_restful_base64_uint16_2d_array_input_output_success():
  function test_restful_base64_uint32_2d_array_input_output_success (line 435) | def test_restful_base64_uint32_2d_array_input_output_success():
  function test_restful_base64_uint64_2d_array_input_output_success (line 440) | def test_restful_base64_uint64_2d_array_input_output_success():
  function test_restful_base64_float_scalar_input_output_success (line 445) | def test_restful_base64_float_scalar_input_output_success():
  function test_restful_base64_float_1d_array_input_output_success (line 461) | def test_restful_base64_float_1d_array_input_output_success():
  function common_test_restful_base64_float_type_2d_array_input_output_success (line 476) | def common_test_restful_base64_float_type_2d_array_input_output_success(...
  function test_restful_base64_float16_2d_array_input_output_success (line 500) | def test_restful_base64_float16_2d_array_input_output_success():
  function test_restful_base64_float32_2d_array_input_output_success (line 505) | def test_restful_base64_float32_2d_array_input_output_success():
  function test_restful_base64_float64_2d_array_input_output_success (line 510) | def test_restful_base64_float64_2d_array_input_output_success():
  function test_restful_base64_float16_2_2d_array_input_output_success (line 515) | def test_restful_base64_float16_2_2d_array_input_output_success():
  function test_restful_base64_float32_2_2d_array_input_output_success (line 520) | def test_restful_base64_float32_2_2d_array_input_output_success():
  function test_restful_base64_float64_2_2d_array_input_output_success (line 525) | def test_restful_base64_float64_2_2d_array_input_output_success():
  function test_restful_base64_mix_all_type_success (line 530) | def test_restful_base64_mix_all_type_success():
  function test_restful_base64_without_b64_key_failed (line 577) | def test_restful_base64_without_b64_key_failed():
  function test_restful_base64_b64_invalid_type_failed (line 599) | def test_restful_base64_b64_invalid_type_failed():
  function test_restful_base64_b64_invalid_value_failed (line 621) | def test_restful_base64_b64_invalid_value_failed():
  function test_restful_base64_b64_value_empty_failed (line 645) | def test_restful_base64_b64_value_empty_failed():
  function test_restful_base64_dtype_unknow_failed (line 662) | def test_restful_base64_dtype_unknow_failed():
  function test_restful_base64_dtype_empty_failed (line 685) | def test_restful_base64_dtype_empty_failed():
  function test_restful_base64_dtype_invalid_type_failed (line 708) | def test_restful_base64_dtype_invalid_type_failed():
  function test_restful_base64_float16_2d_array_dtype_not_match_empty_data_failed (line 731) | def test_restful_base64_float16_2d_array_dtype_not_match_empty_data_fail...
  function test_restful_base64_float16_2d_array_dtype_not_match_size_failed (line 750) | def test_restful_base64_float16_2d_array_dtype_not_match_size_failed():
  function test_restful_base64_float16_2d_array_shape_large_failed (line 770) | def test_restful_base64_float16_2d_array_shape_large_failed():
  function test_restful_base64_float16_2d_array_shape_small_failed (line 793) | def test_restful_base64_float16_2d_array_shape_small_failed():
  function test_restful_base64_float16_2d_array_shape_small2_failed (line 816) | def test_restful_base64_float16_2d_array_shape_small2_failed():
  function test_restful_base64_float16_2d_array_empty_shape_failed (line 839) | def test_restful_base64_float16_2d_array_empty_shape_failed():
  function test_restful_base64_float16_2d_array_none_shape_failed (line 859) | def test_restful_base64_float16_2d_array_none_shape_failed():
  function test_restful_base64_float16_2d_array_invalid_2d_shape_failed (line 878) | def test_restful_base64_float16_2d_array_invalid_2d_shape_failed():
  function test_restful_base64_float16_2d_array_invalid_shape_str_shape_failed (line 897) | def test_restful_base64_float16_2d_array_invalid_shape_str_shape_failed():
  function test_restful_base64_float16_2d_array_float_shape_failed (line 916) | def test_restful_base64_float16_2d_array_float_shape_failed():
  function test_restful_base64_float16_2d_array_negative_shape_failed (line 935) | def test_restful_base64_float16_2d_array_negative_shape_failed():

FILE: tests/ut/python/tests/test_restful_json_data.py
  function test_restful_str_scalar_input_output_success (line 24) | def test_restful_str_scalar_input_output_success():
  function test_restful_str_scalar_shape1_input_output_success (line 42) | def test_restful_str_scalar_shape1_input_output_success():
  function test_restful_empty_str_input_output_success (line 60) | def test_restful_empty_str_input_output_success():
  function test_restful_str_2d_array_one_item_input_output_failed (line 78) | def test_restful_str_2d_array_one_item_input_output_failed():
  function test_restful_str_1d_array_input_failed (line 94) | def test_restful_str_1d_array_input_failed():
  function test_restful_str_invalid_array_input_failed (line 109) | def test_restful_str_invalid_array_input_failed():
  function test_restful_str_invalid_str_message_failed (line 124) | def test_restful_str_invalid_str_message_failed():
  function test_restful_bool_scalar_input_output_success (line 134) | def test_restful_bool_scalar_input_output_success():
  function test_restful_bool_1d_array_input_output_success (line 149) | def test_restful_bool_1d_array_input_output_success():
  function test_restful_bool_2d_array_input_output_success (line 164) | def test_restful_bool_2d_array_input_output_success():
  function test_restful_bool_invalid_array_array_scalar_mix_input_failed (line 181) | def test_restful_bool_invalid_array_array_scalar_mix_input_failed():
  function test_restful_bool_invalid_array2_scalar_array_mix_input_failed (line 193) | def test_restful_bool_invalid_array2_scalar_array_mix_input_failed():
  function test_restful_bool_invalid_array3_array_dim_not_match_input_failed (line 205) | def test_restful_bool_invalid_array3_array_dim_not_match_input_failed():
  function test_restful_bool_invalid_array4_array_dim_not_match_input_failed (line 217) | def test_restful_bool_invalid_array4_array_dim_not_match_input_failed():
  function test_restful_int_scalar_input_output_success (line 229) | def test_restful_int_scalar_input_output_success():
  function test_restful_int_empty_input_output_failed (line 245) | def test_restful_int_empty_input_output_failed():
  function test_restful_int_1d_array_input_output_success (line 261) | def test_restful_int_1d_array_input_output_success():
  function test_restful_int_2d_array_input_output_success (line 278) | def test_restful_int_2d_array_input_output_success():
  function test_restful_float_scalar_input_output_success (line 295) | def test_restful_float_scalar_input_output_success():
  function test_restful_float_1d_array_input_output_success (line 311) | def test_restful_float_1d_array_input_output_success():
  function test_restful_float_2d_array_input_output_success (line 327) | def test_restful_float_2d_array_input_output_success():
  function test_restful_mix_bool_int_input_failed (line 344) | def test_restful_mix_bool_int_input_failed():
  function test_restful_mix_bool_int2_input_failed (line 356) | def test_restful_mix_bool_int2_input_failed():
  function test_restful_mix_float_int_input_failed (line 368) | def test_restful_mix_float_int_input_failed():
  function test_restful_mix_float_int2_input_failed (line 380) | def test_restful_mix_float_int2_input_failed():
  function test_restful_mix_int_float_input_failed (line 392) | def test_restful_mix_int_float_input_failed():
  function test_restful_mix_int_float2_input_failed (line 404) | def test_restful_mix_int_float2_input_failed():
  function test_restful_mix_str_float_input_failed (line 416) | def test_restful_mix_str_float_input_failed():
  function test_restful_mix_str_float2_input_failed (line 428) | def test_restful_mix_str_float2_input_failed():
  function test_restful_mix_float_str_input_failed (line 440) | def test_restful_mix_float_str_input_failed():
  function test_restful_mix_float_str2_input_failed (line 452) | def test_restful_mix_float_str2_input_failed():
  function test_restful_mix_bytes_str_input_failed (line 464) | def test_restful_mix_bytes_str_input_failed():
  function test_restful_mix_bytes_bool_input_failed (line 476) | def test_restful_mix_bytes_bool_input_failed():
  function test_restful_mix_bool_bytes_input_failed (line 488) | def test_restful_mix_bool_bytes_input_failed():

FILE: tests/ut/python/tests/test_restful_request.py
  function test_restful_request_success (line 29) | def test_restful_request_success():
  function test_https_one_way_auth_success (line 42) | def test_https_one_way_auth_success():
  function test_https_mutual_auth_success (line 58) | def test_https_mutual_auth_success():
  function test_https_client_auth_failed (line 74) | def test_https_client_auth_failed():
  function test_https_missing_cert_failed (line 93) | def test_https_missing_cert_failed():
  function test_https_unmatched_cert_failed (line 111) | def test_https_unmatched_cert_failed():
  function test_restful_request_multi_times_success (line 126) | def test_restful_request_multi_times_success():
  function test_restful_request_multi_times_int32_success (line 138) | def test_restful_request_multi_times_int32_success():
  function test_restful_request_servable_invalid_failed (line 158) | def test_restful_request_servable_invalid_failed():
  function test_restful_request_method_invalid_failed (line 171) | def test_restful_request_method_invalid_failed():
  function test_restful_request_with_version_number_0_success (line 184) | def test_restful_request_with_version_number_0_success():
  function test_restful_request_with_version_number_1_success (line 197) | def test_restful_request_with_version_number_1_success():
  function test_restful_request_with_version_number_2_invalid_failed (line 210) | def test_restful_request_with_version_number_2_invalid_failed():
  function test_restful_request_version_number_negative_failed (line 223) | def test_restful_request_version_number_negative_failed():
  function test_restful_request_without_model_invalid_failed (line 236) | def test_restful_request_without_model_invalid_failed():
  function test_restful_request_without_method_invalid_failed (line 256) | def test_restful_request_without_method_invalid_failed():
  function test_restful_request_servable_version_reverse_success (line 276) | def test_restful_request_servable_version_reverse_success():
  function test_restful_request_preprocess_raise_exception_with_batch_failed (line 296) | def test_restful_request_preprocess_raise_exception_with_batch_failed():
  function test_restful_request_larger_than_server_receive_max_size (line 325) | def test_restful_request_larger_than_server_receive_max_size():

FILE: tests/ut/python/tests/test_server_client.py
  function create_multi_instances_fp32 (line 32) | def create_multi_instances_fp32(instance_count):
  function check_result (line 44) | def check_result(result, y_data_list):
  function is_float_equal (line 50) | def is_float_equal(left, right):
  function test_grpc_success (line 55) | def test_grpc_success():
  function test_grpc_multi_times_success (line 71) | def test_grpc_multi_times_success():
  function test_grpc_async_success (line 85) | def test_grpc_async_success():
  function test_grpc_async_multi_times_success (line 102) | def test_grpc_async_multi_times_success():
  function test_grpc_start_grpc_twice_failed (line 117) | def test_grpc_start_grpc_twice_failed():
  function test_grpc_start_restful_server_twice_failed (line 130) | def test_grpc_start_restful_server_twice_failed():
  function test_grpc_alone_repeat_grpc_and_restful_port_failed (line 143) | def test_grpc_alone_repeat_grpc_and_restful_port_failed():
  function test_grpc_alone_repeat_grpc_and_restful_port2_failed (line 155) | def test_grpc_alone_repeat_grpc_and_restful_port2_failed():
  function test_grpc_servable_content_success (line 167) | def test_grpc_servable_content_success():
  function test_grpc_one_way_auth_success (line 189) | def test_grpc_one_way_auth_success():
  function test_grpc_mutual_auth_success (line 209) | def test_grpc_mutual_auth_success():
  function test_grpc_client_auth_failed (line 229) | def test_grpc_client_auth_failed():
  function test_grpc_missing_cert_failed (line 249) | def test_grpc_missing_cert_failed():
  function test_grpc_unmatched_cert_failed (line 269) | def test_grpc_unmatched_cert_failed():
  function test_grpc_preprocess_outputs_count_not_match_failed (line 284) | def test_grpc_preprocess_outputs_count_not_match_failed():
  function test_grpc_postprocess_outputs_count_not_match_failed (line 312) | def test_grpc_postprocess_outputs_count_not_match_failed():
  function test_grpc_preprocess_update_numpy_success (line 340) | def test_grpc_preprocess_update_numpy_success():
  function test_grpc_larger_than_server_receive_max_size (line 386) | def test_grpc_larger_than_server_receive_max_size():
  function test_server_client_input_param_less (line 407) | def test_server_client_input_param_less():
  function test_server_client_servable_not_available (line 434) | def test_server_client_servable_not_available():
  function test_server_client_max_request_count (line 461) | def test_server_client_max_request_count():
  function test_server_client_one_model_stage_with_batch_dim_success (line 507) | def test_server_client_one_model_stage_with_batch_dim_success():
  function test_server_client_one_model_stage_success (line 534) | def test_server_client_one_model_stage_success():
  function test_server_client_with_batch_dim_data_size_invalid_failed (line 561) | def test_server_client_with_batch_dim_data_size_invalid_failed():
  function test_server_client_with_batch_dim_data_type_invalid_failed (line 590) | def test_server_client_with_batch_dim_data_type_invalid_failed():
  function test_server_client_data_size_invalid_failed (line 620) | def test_server_client_data_size_invalid_failed():
  function test_server_client_data_type_invalid_failed (line 649) | def test_server_client_data_type_invalid_failed():
  function test_server_client_two_model_stage_success (line 679) | def test_server_client_two_model_stage_success():
  function test_server_client_one_model_stage_with_function_front_success (line 712) | def test_server_client_one_model_stage_with_function_front_success():
  function test_server_client_one_model_stage_with_function_tail_success (line 748) | def test_server_client_one_model_stage_with_function_tail_success():
  function test_server_client_one_model_stage_with_function_front_and_tail_success (line 784) | def test_server_client_one_model_stage_with_function_front_and_tail_succ...
  function test_server_client_one_model_stage_with_function_front_and_tail_double_success (line 822) | def test_server_client_one_model_stage_with_function_front_and_tail_doub...
  function test_server_client_two_model_stage_with_function_front_and_tail_success (line 864) | def test_server_client_two_model_stage_with_function_front_and_tail_succ...
  function test_server_client_two_model_stage_with_function_front_and_tail_with_batch_dim_success (line 906) | def test_server_client_two_model_stage_with_function_front_and_tail_with...
  function test_server_client_worker_exit_success (line 948) | def test_server_client_worker_exit_success():
  function test_server_client_worker_kill_restart_success (line 973) | def test_server_client_worker_kill_restart_success():
  function test_server_client_worker_kill_no_restart_success (line 998) | def test_server_client_worker_kill_no_restart_success():
  function test_start_server_invalid_grpc_address_failed (line 1020) | def test_start_server_invalid_grpc_address_failed():
  function test_start_server_invalid_grpc_address2_failed (line 1029) | def test_start_server_invalid_grpc_address2_failed():
  function test_start_server_invalid_grpc_address3_failed (line 1038) | def test_start_server_invalid_grpc_address3_failed():
  function test_start_server_invalid_grpc_address4_failed (line 1047) | def test_start_server_invalid_grpc_address4_failed():
  function test_start_server_invalid_grpc_address5_failed (line 1056) | def test_start_server_invalid_grpc_address5_failed():
  function test_start_server_invalid_grpc_address6_failed (line 1065) | def test_start_server_invalid_grpc_address6_failed():
  function test_start_server_invalid_grpc_address7_failed (line 1074) | def test_start_server_invalid_grpc_address7_failed():
  function test_start_server_invalid_restful_address_failed (line 1083) | def test_start_server_invalid_restful_address_failed():
  function test_start_server_invalid_restful_address2_failed (line 1092) | def test_start_server_invalid_restful_address2_failed():
  function test_start_server_invalid_restful_address3_failed (line 1101) | def test_start_server_invalid_restful_address3_failed():
  function test_start_server_invalid_restful_address4_failed (line 1110) | def test_start_server_invalid_restful_address4_failed():
  function test_start_server_invalid_restful_address5_failed (line 1119) | def test_start_server_invalid_restful_address5_failed():
  function test_start_server_invalid_restful_address6_failed (line 1128) | def test_start_server_invalid_restful_address6_failed():

FILE: tests/ut/python/tests/test_serving_log.py
  function start_new_log_process (line 22) | def start_new_log_process(log_py_context, env_set):
  function start_new_log_process_py (line 52) | def start_new_log_process_py(env_set):
  function start_new_log_process_cpp (line 68) | def start_new_log_process_cpp(env_set):
  function test_log_level_python_debug (line 88) | def test_log_level_python_debug():
  function test_log_level_python_info (line 96) | def test_log_level_python_info():
  function test_log_level_python_warning (line 104) | def test_log_level_python_warning():
  function test_log_level_python_error (line 112) | def test_log_level_python_error():
  function test_log_level_cpp_debug (line 120) | def test_log_level_cpp_debug():
  function test_log_level_cpp_info (line 127) | def test_log_level_cpp_info():
  function test_log_level_cpp_warning (line 134) | def test_log_level_cpp_warning():
  function test_log_level_cpp_error (line 141) | def test_log_level_cpp_error():
  function test_log_level_cpp_debug2 (line 148) | def test_log_level_cpp_debug2():
  function test_log_level_cpp_info2 (line 155) | def test_log_level_cpp_info2():
  function test_log_level_cpp_warning2 (line 162) | def test_log_level_cpp_warning2():
  function test_log_level_cpp_error2 (line 169) | def test_log_level_cpp_error2():

FILE: tests/ut/python/tests/test_stage_function.py
  function is_float_equal (line 22) | def is_float_equal(left, right):
  function test_stage_function_one_function_stage_float_success (line 27) | def test_stage_function_one_function_stage_float_success():
  function test_stage_function_one_function_stage_two_output_success (line 72) | def test_stage_function_one_function_stage_two_output_success():
  function test_stage_function_one_function_stage_output_more_failed (line 117) | def test_stage_function_one_function_stage_output_more_failed():
  function test_stage_function_one_function_stage_output_less_failed (line 154) | def test_stage_function_one_function_stage_output_less_failed():
  function test_stage_function_one_function_stage_error_outputs_count_failed (line 191) | def test_stage_function_one_function_stage_error_outputs_count_failed():
  function test_stage_function_one_function_stage_error_outputs_count2_failed (line 218) | def test_stage_function_one_function_stage_error_outputs_count2_failed():
  function test_stage_function_one_function_stage_input_more_failed (line 245) | def test_stage_function_one_function_stage_input_more_failed():
  function test_stage_function_one_function_stage_input_less_failed (line 272) | def test_stage_function_one_function_stage_input_less_failed():
  function test_stage_function_one_function_stage_raise_exception_failed (line 299) | def test_stage_function_one_function_stage_raise_exception_failed():
  function test_stage_function_one_function_stage_none_outputs_failed (line 336) | def test_stage_function_one_function_stage_none_outputs_failed():
  function test_stage_function_one_function_stage_invalid_output_dtype_failed (line 373) | def test_stage_function_one_function_stage_invalid_output_dtype_failed():
  function test_stage_function_one_function_stage_batch_size_success (line 410) | def test_stage_function_one_function_stage_batch_size_success():
  function test_stage_function_one_function_stage_batch_size2_success (line 453) | def test_stage_function_one_function_stage_batch_size2_success():
  function test_stage_function_one_function_stage_batch_size3_success (line 496) | def test_stage_function_one_function_stage_batch_size3_success():
  function test_stage_function_one_function_stage_batch_size4_success (line 538) | def test_stage_function_one_function_stage_batch_size4_success():
  function test_stage_function_one_function_stage_batch_size_equal1_success (line 580) | def test_stage_function_one_function_stage_batch_size_equal1_success():
  function test_stage_function_one_function_stage_batch_size_0_success (line 622) | def test_stage_function_one_function_stage_batch_size_0_success():
  function test_stage_function_one_function_stage_error_batch_size_failed (line 664) | def test_stage_function_one_function_stage_error_batch_size_failed():
  function test_stage_function_one_function_stage_batch_size_two_outputs_success (line 694) | def test_stage_function_one_function_stage_batch_size_two_outputs_succes...
  function test_stage_function_one_function_stage_batch_size_two_outputs_multi_times_success (line 743) | def test_stage_function_one_function_stage_batch_size_two_outputs_multi_...
  function test_stage_function_one_function_stage_batch_size_two_outputs2_success (line 793) | def test_stage_function_one_function_stage_batch_size_two_outputs2_succe...
  function test_stage_function_one_function_stage_batch_size_input_more_success (line 843) | def test_stage_function_one_function_stage_batch_size_input_more_success():
  function test_stage_function_one_function_stage_batch_size_input_less_failed (line 894) | def test_stage_function_one_function_stage_batch_size_input_less_failed():
  function test_stage_function_one_function_stage_batch_size_output_more_failed (line 937) | def test_stage_function_one_function_stage_batch_size_output_more_failed():
  function test_stage_function_one_function_stage_batch_size_output_less_failed (line 981) | def test_stage_function_one_function_stage_batch_size_output_less_failed():
  function test_stage_function_one_function_stage_batch_size_output_less2_failed (line 1025) | def test_stage_function_one_function_stage_batch_size_output_less2_faile...
  function test_stage_function_one_function_stage_batch_size_raise_exception_failed (line 1068) | def test_stage_function_one_function_stage_batch_size_raise_exception_fa...
  function test_stage_function_one_function_stage_batch_size_none_return_failed (line 1107) | def test_stage_function_one_function_stage_batch_size_none_return_failed():
  function test_stage_function_one_function_stage_batch_size_invalid_output_dtype_failed (line 1146) | def test_stage_function_one_function_stage_batch_size_invalid_output_dty...
  function test_servable_postprocess_result_count_less (line 1190) | def test_servable_postprocess_result_count_less():
  function test_servable_postprocess_result_count_more (line 1232) | def test_servable_postprocess_result_count_more():
  function test_stage_function_preprocess_result_count_less (line 1276) | def test_stage_function_preprocess_result_count_less():
  function test_stage_function_preprocess_result_count_more (line 1321) | def test_stage_function_preprocess_result_count_more():
  function test_stage_function_push_no_forc_array (line 1363) | def test_stage_function_push_no_forc_array():

FILE: tests/ut/python/tests/test_start_servable_config.py
  function test_register_method_common_success (line 52) | def test_register_method_common_success():
  function test_register_method_no_declare_servable_failed (line 65) | def test_register_method_no_declare_servable_failed():
  function test_register_method_reference_invalid_preprocess_failed (line 82) | def test_register_method_reference_invalid_preprocess_failed():
  function test_register_method_preprocess_after_predict_failed (line 100) | def test_register_method_preprocess_after_predict_failed():
  function test_register_method_preprocess_after_postprocess_failed (line 121) | def test_register_method_preprocess_after_postprocess_failed():
  function test_register_method_preprocess_after_postprocess_pipeline_failed (line 143) | def test_register_method_preprocess_after_postprocess_pipeline_failed():
  function test_register_method_preprocess_pipeline_after_predict_failed (line 166) | def test_register_method_preprocess_pipeline_after_predict_failed():
  function test_register_method_preprocess_pipeline_after_postprocess_failed (line 187) | def test_register_method_preprocess_pipeline_after_postprocess_failed():
  function test_register_method_preprocess_pipeline_after_postprocess_pipeline_failed (line 210) | def test_register_method_preprocess_pipeline_after_postprocess_pipeline_...
  function test_register_method_preprocess_twice_failed (line 234) | def test_register_method_preprocess_twice_failed():
  function test_register_method_preprocess_twice2_failed (line 256) | def test_register_method_preprocess_twice2_failed():
  function test_register_method_preprocess_pipeline_twice_failed (line 278) | def test_register_method_preprocess_pipeline_twice_failed():
  function test_register_method_postprocess_twice_failed (line 301) | def test_register_method_postprocess_twice_failed():
  function test_register_method_postprocess_twice2_failed (line 325) | def test_register_method_postprocess_twice2_failed():
  function test_register_method_postprocess_pipeline_twice_failed (line 349) | def test_register_method_postprocess_pipeline_twice_failed():
  function test_register_method_call_servable_twice_failed (line 374) | def test_register_method_call_servable_twice_failed():
  function test_register_method_call_servable_after_postprocess_failed (line 396) | def test_register_method_call_servable_after_postprocess_failed():
  function test_register_method_call_servable_after_postprocess_pipeline_failed (line 417) | def test_register_method_call_servable_after_postprocess_pipeline_failed():
  function test_register_method_without_call_servable_failed (line 438) | def test_register_method_without_call_servable_failed():
  function test_register_method_invalid_call_servable (line 466) | def test_register_method_invalid_call_servable():
  function test_register_method_invalid_call_servable2 (line 490) | def test_register_method_invalid_call_servable2():
  function test_register_method_invalid_call_preprocess (line 513) | def test_register_method_invalid_call_preprocess():
  function test_register_method_invalid_call_preprocess_pipeline (line 540) | def test_register_method_invalid_call_preprocess_pipeline():
  function test_register_method_invalid_call_postprocess (line 567) | def test_register_method_invalid_call_postprocess():
  function test_register_method_invalid_call_postprocess_pipeline (line 594) | def test_register_method_invalid_call_postprocess_pipeline():
  function test_register_method_invalid_call_preprocess_with_condition (line 621) | def test_register_method_invalid_call_preprocess_with_condition():
  function test_register_method_invalid_call_preprocess_with_condition2 (line 649) | def test_register_method_invalid_call_preprocess_with_condition2():
  function test_register_method_mix_call_xxx_add_stage_failed (line 677) | def test_register_method_mix_call_xxx_add_stage_failed():
  function test_register_method_mix_call_xxx_add_stage2_failed (line 704) | def test_register_method_mix_call_xxx_add_stage2_failed():
  function test_register_method_mix_call_xxx_add_stage3_failed (line 731) | def test_register_method_mix_call_xxx_add_stage3_failed():

FILE: tests/ut/python/tests/test_start_sevables.py
  function test_start_servable_servable_dir_invalid_failed (line 26) | def test_start_servable_servable_dir_invalid_failed():
  function test_start_worker_no_servable_config_file_failed (line 44) | def test_start_worker_no_servable_config_file_failed():
  function test_start_worker_no_model_file_failed (line 61) | def test_start_worker_no_model_file_failed():
  function test_start_servable_servable_dir_empty_invalid_failed (line 78) | def test_start_servable_servable_dir_empty_invalid_failed():
  function test_start_worker_type_servable_dir_invalid_failed (line 94) | def test_start_worker_type_servable_dir_invalid_failed():
  function test_start_worker_type_servable_name_invalid_failed (line 110) | def test_start_worker_type_servable_name_invalid_failed():
  function test_start_servable_version_number_invalid_failed (line 126) | def test_start_servable_version_number_invalid_failed():
  function test_start_servable_version_number_invalid2_failed (line 143) | def test_start_servable_version_number_invalid2_failed():
  function test_start_worker_type_version_number_invalid_failed (line 160) | def test_start_worker_type_version_number_invalid_failed():
  function test_start_worker_type_device_id_invalid_failed (line 186) | def test_start_worker_type_device_id_invalid_failed():
  function test_start_worker_device_id_range_invalid_failed (line 203) | def test_start_worker_device_id_range_invalid_failed():
  function test_start_worker_type_device_type_invalid_failed (line 220) | def test_start_worker_type_device_type_invalid_failed():
  function test_start_worker_device_type_value_invalid_failed (line 238) | def test_start_worker_device_type_value_invalid_failed():
  function test_start_worker_device_type_value_invalid2_failed (line 256) | def test_start_worker_device_type_value_invalid2_failed():
  function test_start_worker_type_device_type_none_success (line 273) | def test_start_worker_type_device_type_none_success():
  function test_start_worker_type_device_type_none2_success (line 286) | def test_start_worker_type_device_type_none2_success():
  function test_servable_start_config_merge_same_version_same_device_ids_success (line 299) | def test_servable_start_config_merge_same_version_same_device_ids_succes...
  function test_servable_start_config_merge_same_version_diff_device_ids_success (line 317) | def test_servable_start_config_merge_same_version_diff_device_ids_succes...
  function test_servable_start_config_merge_diff_version_diff_device_ids_success (line 337) | def test_servable_start_config_merge_diff_version_diff_device_ids_succes...
  function test_servable_start_config_merge_diff_version_same_device_ids_failed (line 362) | def test_servable_start_config_merge_diff_version_same_device_ids_failed():
  function test_servable_start_config_same_servable_name_diff_directory_failed (line 382) | def test_servable_start_config_same_servable_name_diff_directory_failed():
  function test_servable_start_config_multi_servable_same_device_id (line 401) | def test_servable_start_config_multi_servable_same_device_id():
  function test_servable_start_config_multi_servable_diff_device_id (line 423) | def test_servable_start_config_multi_servable_diff_device_id():
  function test_servable_start_config_merge_diff_version_diff_dec_key_success (line 453) | def test_servable_start_config_merge_diff_version_diff_dec_key_success():
  function test_servable_start_config_merge_same_version_diff_dec_key_failed (line 477) | def test_servable_start_config_merge_same_version_diff_dec_key_failed():
  function test_servable_start_config_with_dec_success (line 497) | def test_servable_start_config_with_dec_success():
  function test_start_servables_without_declared_model_none_device_ids_start_version0_success (line 520) | def test_start_servables_without_declared_model_none_device_ids_start_ve...
  function test_start_servables_without_declared_model_none_device_ids_start_version1_success (line 554) | def test_start_servables_without_declared_model_none_device_ids_start_ve...
  function test_start_servables_without_declared_model_with_device_ids_start_version0_success (line 588) | def test_start_servables_without_declared_model_with_device_ids_start_ve...
  function test_start_servables_without_declared_model_with_device_ids_start_version0_with_extra_worker_success (line 622) | def test_start_servables_without_declared_model_with_device_ids_start_ve...
  function test_start_servables_without_declared_model_with_device_ids_start_version1_with_extra_worker_success (line 656) | def test_start_servables_without_declared_model_with_device_ids_start_ve...
  function test_start_servables_with_declared_model_none_device_ids_start_version0_with_extra_worker_fail (line 690) | def test_start_servables_with_declared_model_none_device_ids_start_versi...
  function test_start_servables_with_declared_model_none_device_ids_start_version1_with_extra_worker_fail (line 720) | def test_start_servables_with_declared_model_none_device_ids_start_versi...
  function test_start_servables_with_declared_model_none_device_ids_start_version0_with_version_dir_fail (line 750) | def test_start_servables_with_declared_model_none_device_ids_start_versi...
  function test_start_servables_with_declared_model_none_device_ids_start_version1_with_version_dir_fail (line 781) | def test_start_servables_with_declared_model_none_device_ids_start_versi...
  function test_start_servables_with_declared_model_with_device_ids_start_version0_without_version_dir_fail (line 812) | def test_start_servables_with_declared_model_with_device_ids_start_versi...
  function test_start_servables_with_declared_model_with_device_ids_start_version1_without_version_dir_fail (line 842) | def test_start_servables_with_declared_model_with_device_ids_start_versi...
  function test_start_servables_enable_cpu_none_device_id_cpu_device_type_success (line 872) | def test_start_servables_enable_cpu_none_device_id_cpu_device_type_succe...
  function test_start_servables_enable_cpu_none_device_id_none_device_type_none_success (line 897) | def test_start_servables_enable_cpu_none_device_id_none_device_type_none...
  function test_start_servables_enable_cpu_device_type_with_device_id_cpu_device_type_success (line 922) | def test_start_servables_enable_cpu_device_type_with_device_id_cpu_devic...
  function test_start_servables_ascend_device_reuse_device_ids_failed (line 947) | def test_start_servables_ascend_device_reuse_device_ids_failed():
  function test_start_servables_ascend_device_reuse_device_ids_none_device_type_failed (line 968) | def test_start_servables_ascend_device_reuse_device_ids_none_device_type...
  function test_start_servables_ascend_device_without_reuse_device_ids_none_device_type_success (line 988) | def test_start_servables_ascend_device_without_reuse_device_ids_none_dev...
  function test_start_servables_gpu_device_reuse_device_ids_success (line 1005) | def test_start_servables_gpu_device_reuse_device_ids_success():
  function test_start_servables_gpu_device_reuse_device_ids_none_device_type_success (line 1023) | def test_start_servables_gpu_device_reuse_device_ids_none_device_type_su...
  function test_start_servables_gpu_device_ascend_device_type_failed (line 1040) | def test_start_servables_gpu_device_ascend_device_type_failed():
  function test_start_servable_number_of_worker_invalid_failed (line 1064) | def test_start_servable_number_of_worker_invalid_failed():

FILE: tests/ut/stub/cxx_api/cell.cc
  type mindspore (line 21) | namespace mindspore {
    function ParameterCell (line 30) | ParameterCell &ParameterCell::operator=(const ParameterCell &cell) {
    function ParameterCell (line 42) | ParameterCell &ParameterCell::operator=(ParameterCell &&cell) {
    function ParameterCell (line 56) | ParameterCell &ParameterCell::operator=(const MSTensor &tensor) {
    function ParameterCell (line 65) | ParameterCell &ParameterCell::operator=(MSTensor &&tensor) {
    function Status (line 88) | Status GraphCell::Run(const std::vector<MSTensor> &inputs, std::vector...
    function Status (line 100) | Status GraphCell::Load(uint32_t device_id) {

FILE: tests/ut/stub/cxx_api/context.cc
  type mindspore (line 42) | namespace mindspore {
    class Allocator (line 43) | class Allocator {}
    type Context::Data (line 45) | struct Context::Data {
    type DeviceInfoContext::Data (line 53) | struct DeviceInfoContext::Data {
    function U (line 60) | static const U &GetValue(const std::shared_ptr<DeviceInfoContext::Data...
    type DataType (line 277) | enum DataType
    type DataType (line 281) | enum DataType
    type DataType (line 283) | enum DataType

FILE: tests/ut/stub/cxx_api/factory.h
  type DeviceType (line 27) | enum DeviceType
  function Factory (line 49) | static Factory &Instance() {
  function Register (line 54) | void Register(U &&creator) { creators_.push_back(creator); }

FILE: tests/ut/stub/cxx_api/graph/ascend/ascend_graph_impl.cc
  type mindspore (line 22) | namespace mindspore {
    function Status (line 33) | Status AscendGraphImpl::Load(uint32_t device_id) {
    function Status (line 39) | Status AscendGraphImpl::Run(const std::vector<MSTensor> &inputs, std::...

FILE: tests/ut/stub/cxx_api/graph/ascend/ascend_graph_impl.h
  function namespace (line 29) | namespace mindspore {

FILE: tests/ut/stub/cxx_api/graph/graph.cc
  type mindspore (line 20) | namespace mindspore {
    function ModelType (line 35) | ModelType Graph::ModelType() const {

FILE: tests/ut/stub/cxx_api/graph/graph_data.cc
  type mindspore (line 22) | namespace mindspore {
    type ModelType (line 23) | enum ModelType
    type ModelType (line 32) | enum ModelType
    function FuncGraphPtr (line 56) | FuncGraphPtr Graph::GraphData::GetFuncGraph() const {
    function Buffer (line 65) | Buffer Graph::GraphData::GetOMData() const {

FILE: tests/ut/stub/cxx_api/graph/graph_data.h
  function namespace (line 27) | namespace mindspore {

FILE: tests/ut/stub/cxx_api/graph/graph_impl.h
  function namespace (line 30) | namespace mindspore {

FILE: tests/ut/stub/cxx_api/model/model.cc
  type mindspore (line 23) | namespace mindspore {
    function Status (line 24) | Status Model::Build(GraphCell graph_cell, const std::shared_ptr<Contex...
    function Status (line 56) | Status Model::Build(const std::vector<char> &model_path, ModelType mod...
    function Status (line 67) | Status Model::Build(const std::vector<char> &model_path, ModelType mod...
    function Status (line 77) | Status Model::Resize(const std::vector<MSTensor> &inputs, const std::v...
    function Status (line 85) | Status Model::Predict(const std::vector<MSTensor> &inputs, std::vector...
    function MSTensor (line 110) | MSTensor Model::GetInputByTensorName(const std::vector<char> &tensor_n...
    function MSTensor (line 130) | MSTensor Model::GetOutputByTensorName(const std::vector<char> &tensor_...
    type DeviceType (line 149) | enum DeviceType
    function Status (line 157) | Status Model::LoadConfig(const std::vector<char> &config_path) {

FILE: tests/ut/stub/cxx_api/model/model_impl.cc
  type mindspore (line 18) | namespace mindspore {
    function Status (line 19) | Status ModelImpl::Predict(const std::vector<MSTensor> &inputs, std::ve...

FILE: tests/ut/stub/cxx_api/model/model_impl.h
  function namespace (line 30) | namespace mindspore {

FILE: tests/ut/stub/cxx_api/model/ms/ms_model.cc
  type mindspore (line 23) | namespace mindspore {
    function GenerateShapeKey (line 27) | static std::string GenerateShapeKey(const std::vector<std::vector<int6...
    function Status (line 68) | Status MsModel::Build() {
    function Status (line 97) | Status MsModel::Resize(const std::vector<MSTensor> &inputs, const std:...
    type DeviceType (line 154) | enum DeviceType

FILE: tests/ut/stub/cxx_api/model/ms/ms_model.h
  function namespace (line 29) | namespace mindspore {

FILE: tests/ut/stub/cxx_api/serialization.cc
  type mindspore (line 22) | namespace mindspore {
    function Status (line 23) | static Status RealPath(const std::string &file, std::string *realpath_...
    function Buffer (line 39) | static Buffer ReadFile(const std::string &file) {
    function Status (line 96) | Status Serialization::Load(const void *model_data, size_t data_size, M...
    function Status (line 149) | Status Serialization::Load(const std::vector<char> &file, ModelType mo...
    function Status (line 153) | Status Serialization::Load(const std::vector<char> &file, ModelType mo...
    function Status (line 205) | Status Serialization::Load(const std::vector<std::vector<char>> &files...
    function Status (line 267) | Status Serialization::SetParameters(const std::map<std::string, Buffer...
    function Status (line 272) | Status Serialization::ExportModel(const Model &, ModelType, Buffer *) {
    function Status (line 277) | Status Serialization::ExportModel(const Model &, ModelType, const std:...

FILE: tests/ut/stub/cxx_api/status.cc
  type mindspore (line 26) | namespace mindspore {
    type Status::Data (line 27) | struct Status::Data {
      type StatusCode (line 28) | enum StatusCode
    type StatusCode (line 37) | enum StatusCode
    type StatusCode (line 46) | enum StatusCode
    type StatusCode (line 74) | enum StatusCode
    type StatusCode (line 102) | enum StatusCode
    type StatusCode (line 103) | enum StatusCode
    type StatusCode (line 197) | enum StatusCode
    type StatusCode (line 199) | enum StatusCode
    function Status (line 204) | Status Status::OK() { return StatusCode::kSuccess; }

FILE: tests/ut/stub/cxx_api/types.cc
  type mindspore (line 22) | namespace mindspore {
    class Buffer::Impl (line 23) | class Buffer::Impl {
      method Impl (line 25) | Impl() : data_() {}
      method Impl (line 27) | Impl(const void *data, size_t data_len) {
      method DataSize (line 37) | size_t DataSize() const { return data_.size(); }
      method ResizeData (line 39) | bool ResizeData(size_t data_len) {
      method SetData (line 44) | bool SetData(const void *data, size_t data_len) {
    class TensorDefaultImpl (line 72) | class TensorDefaultImpl : public MSTensor::Impl {
      method TensorDefaultImpl (line 74) | TensorDefaultImpl() : buffer_(), name_(), type_(DataType::kTypeUnkno...
      method TensorDefaultImpl (line 76) | TensorDefaultImpl(const std::string &name, enum DataType type, const...
      method DataType (line 81) | enum DataType DataType() const override { return type_; }
      method Data (line 84) | std::shared_ptr<const void> Data() const override {
      method DataSize (line 89) | size_t DataSize() const override { return buffer_.DataSize(); }
      method IsDevice (line 91) | bool IsDevice() const override { return false; }
      method Clone (line 93) | std::shared_ptr<Impl> Clone() const override {
      type DataType (line 100) | enum DataType
    class TensorReferenceImpl (line 104) | class TensorReferenceImpl : public MSTensor::Impl {
      method TensorReferenceImpl (line 106) | TensorReferenceImpl()
      method TensorReferenceImpl (line 109) | TensorReferenceImpl(const std::string &name, enum DataType type, con...
      method DataType (line 114) | enum DataType DataType() const override { return type_; }
      method Data (line 117) | std::shared_ptr<const void> Data() const override {
      method DataSize (line 122) | size_t DataSize() const override { return data_size_; }
      method IsDevice (line 124) | bool IsDevice() const override { return is_device_; }
      method Clone (line 126) | std::shared_ptr<Impl> Clone() const override {
      type DataType (line 134) | enum DataType
    function MSTensor (line 139) | MSTensor *MSTensor::CreateTensor(const std::vector<char> &name, enum D...
    function MSTensor (line 155) | MSTensor *MSTensor::CreateRefTensor(const std::vector<char> &name, enu...
    function MSTensor (line 172) | MSTensor MSTensor::CreateDeviceTensor(const std::vector<char> &name, e...
    function MSTensor (line 187) | MSTensor *MSTensor::CharStringsToTensor(const std::vector<char> &name,...
    type DataType (line 294) | enum DataType
    function MSTensor (line 303) | MSTensor *MSTensor::Clone() const {
    type DataType (line 323) | enum DataType
    type DataType (line 365) | enum DataType
    function Buffer (line 387) | Buffer Buffer::Clone() const {
    function CharVersion (line 419) | std::vector<char> CharVersion() { return {}; }

FILE: tests/ut/stub/graph_impl_stub.cc
  type mindspore (line 18) | namespace mindspore {
    function Status (line 48) | Status GraphImplStubAdd::Run(const std::vector<MSTensor> &inputs, std:...
    function Status (line 98) | Status GraphImplStubAdd::Load(uint32_t device_id) {
    function Status (line 114) | Status GraphImplStubAdd::CheckContext() {

FILE: tests/ut/stub/graph_impl_stub.h
  function namespace (line 31) | namespace mindspore {

FILE: tests/ut/stub/include/api/allocator.h
  function namespace (line 23) | namespace mindspore {

FILE: tests/ut/stub/include/api/callback/callback.h
  function namespace (line 27) | namespace mindspore {

FILE: tests/ut/stub/include/api/callback/ckpt_saver.h
  function namespace (line 26) | namespace mindspore {

FILE: tests/ut/stub/include/api/callback/loss_monitor.h
  function namespace (line 24) | namespace mindspore {

FILE: tests/ut/stub/include/api/callback/lr_scheduler.h
  function namespace (line 25) | namespace mindspore {

FILE: tests/ut/stub/include/api/callback/time_monitor.h
  function namespace (line 25) | namespace mindspore {

FILE: tests/ut/stub/include/api/callback/train_accuracy.h
  function namespace (line 27) | namespace mindspore {

FILE: tests/ut/stub/include/api/cell.h
  function namespace (line 26) | namespace mindspore {
  function MS_API (line 43) | MS_API Cell : public CellBase {
  function override (line 87) | const override { return std::make_shared<T>(static_cast<const T &>(*this...
  function class (line 115) | class MS_API InputAndOutput {

FILE: tests/ut/stub/include/api/cfg.h
  function namespace (line 27) | namespace mindspore {

FILE: tests/ut/stub/include/api/context.h
  type DeviceType (line 27) | enum DeviceType {
  function class (line 43) | class MS_API Context {
  function std (line 152) | inline std::string GetProvider() const;
  function SetProvider (line 188) | void DeviceInfoContext::SetProvider(const std::string &provider) { SetPr...
  function SetProviderDevice (line 190) | void DeviceInfoContext::SetProviderDevice(const std::string &device) { S...
  type DeviceType (line 199) | enum DeviceType
  type DeviceType (line 219) | enum DeviceType
  type DeviceType (line 239) | enum DeviceType
  function GetDeviceID (line 249) | uint32_t GetDeviceID() const;
  type DeviceType (line 328) | enum DeviceType
  function GetDeviceID (line 338) | uint32_t GetDeviceID() const;
  function SetInputFormat (line 470) | void AscendDeviceInfo::SetInputFormat(const std::string &format) { SetIn...
  function SetInputShape (line 473) | void AscendDeviceInfo::SetInputShape(const std::string &shape) { SetInpu...
  function SetDynamicImageSize (line 478) | void AscendDeviceInfo::SetDynamicImageSize(const std::string &dynamic_im...
  function SetPrecisionMode (line 484) | void AscendDeviceInfo::SetPrecisionMode(const std::string &precision_mod...
  function SetOpSelectImplMode (line 489) | void AscendDeviceInfo::SetOpSelectImplMode(const std::string &op_select_...
  function SetFusionSwitchConfigPath (line 494) | void AscendDeviceInfo::SetFusionSwitchConfigPath(const std::string &cfg_...
  function SetBufferOptimizeMode (line 501) | void AscendDeviceInfo::SetBufferOptimizeMode(const std::string &buffer_o...

FILE: tests/ut/stub/include/api/data_type.h
  function DataType (line 22) | enum class DataType : int {

FILE: tests/ut/stub/include/api/delegate.h
  function namespace (line 27) | namespace mindspore {

FILE: tests/ut/stub/include/api/dual_abi_helper.h
  function namespace (line 29) | namespace mindspore {
  function std (line 49) | inline std::vector<std::string> VectorCharToString(const std::vector<std...
  function std (line 56) | inline std::set<std::vector<char>> SetStringToChar(const std::set<std::s...
  function std (line 63) | inline std::set<std::string> SetCharToString(const std::set<std::vector<...
  function TensorMapCharToString (line 173) | void TensorMapCharToString(const std::map<std::vector<char>, T> *c, std:...

FILE: tests/ut/stub/include/api/graph.h
  function namespace (line 26) | namespace mindspore {

FILE: tests/ut/stub/include/api/kernel.h
  function namespace (line 27) | namespace mindspore::kernel {

FILE: tests/ut/stub/include/api/metrics/accuracy.h
  function namespace (line 21) | namespace mindspore {

FILE: tests/ut/stub/include/api/metrics/metrics.h
  function namespace (line 21) | namespace mindspore {

FILE: tests/ut/stub/include/api/model.h
  function namespace (line 33) | namespace mindspore {

FILE: tests/ut/stub/include/api/model_parallel_runner.h
  function namespace (line 24) | namespace mindspore {

FILE: tests/ut/stub/include/api/ops/ops.h
  type MS_API (line 28) | struct MS_API

FILE: tests/ut/stub/include/api/serialization.h
  function namespace (line 29) | namespace mindspore {

FILE: tests/ut/stub/include/api/status.h
  function namespace (line 27) | namespace mindspore {

FILE: tests/ut/stub/include/api/types.h
  function namespace (line 29) | namespace mindspore {
  function SetTensorName (line 365) | void MSTensor::SetTensorName(const std::string &name) { SetTensorName(St...
  type MSCallBackParam (line 378) | struct MSCallBackParam {
  function std (line 390) | inline std::string Version() { return CharToString(CharVersion()); }

FILE: tests/ut/stub/include/mindapi/base/format.h
  function namespace (line 22) | namespace mindspore {

FILE: tests/ut/stub/include/mindapi/base/type_id.h
  function namespace (line 20) | namespace mindspore {

FILE: tests/ut/stub/include/mindapi/base/types.h
  type CoordinateTransformMode (line 23) | enum CoordinateTransformMode : int64_t {
  type class (line 30) | enum class
  type class (line 37) | enum class
  type RoundMode (line 45) | enum RoundMode : int64_t {
  type ActivationType (line 50) | enum ActivationType : int64_t {
  type ReduceMode (line 75) | enum ReduceMode : int64_t {
  type EltwiseMode (line 86) | enum EltwiseMode : int64_t {
  type Reduction (line 93) | enum Reduction : int64_t {
  type PadMode (line 99) | enum PadMode : int64_t {
  function LshProjectionType (line 105) | enum class LshProjectionType : int64_t {

FILE: tests/ut/stub/include/utils/log_adapter.cc
  function GetProcName (line 33) | static std::string GetProcName() {
  function GetLogLevel (line 53) | static std::string GetLogLevel(MsLogLevel level) {
  function GetGlogLevel (line 69) | static int GetGlogLevel(MsLogLevel level) {
  function GetThresholdLevel (line 83) | static int GetThresholdLevel(const std::string &threshold) {
  function GetEnv (line 139) | static std::string GetEnv(const std::string &envvar) {
  type LogConfigToken (line 149) | enum class LogConfigToken : size_t {
  function IsAlpha (line 172) | static inline bool IsAlpha(char ch) { return (ch >= 'A' && ch <= 'Z') ||...
  function IsDigit (line 174) | static inline bool IsDigit(char ch) { return ch >= '0' && ch <= '9'; }
  function LogConfigLexer (line 178) | explicit LogConfigLexer(const std::string &text) : buffer_(text), cur_id...
  function SkipWhiteSpace (line 182) | char SkipWhiteSpace() {
  function LogConfigToken (line 205) | LogConfigToken GetNextInner(std::string *ptr) {
  class LogConfigParser (line 254) | class LogConfigParser {
    method LogConfigParser (line 256) | explicit LogConfigParser(const std::string &cfg) : lexer(cfg) {}
    method Expect (line 259) | bool Expect(LogConfigToken expected, LogConfigToken tok) const {
    method Parse (line 272) | std::map<std::string, std::string> Parse() {
  function ParseLogLevel (line 325) | bool ParseLogLevel(const std::string &str_level, MsLogLevel *ptr_level) {
  function MsLogLevel (line 340) | static MsLogLevel GetGlobalLogLevel() {
  function InitSubModulesLogLevel (line 344) | void InitSubModulesLogLevel() {
  function common_log_init (line 383) | __attribute__((constructor)) void common_log_init(void) {

FILE: tests/ut/stub/include/utils/log_adapter.h
  function GetRelPathPos (line 40) | static constexpr size_t GetRelPathPos() noexcept {
  function namespace (line 44) | namespace mindspore {
  type MsLogLevel (line 106) | enum MsLogLevel : int { DEBUG = 0, INFO, WARNING, ERROR, EXCEPTION }
  type SubModuleId (line 108) | enum SubModuleId : int {
  function class (line 155) | class LogWriter {

FILE: tests/ut/stub/include/utils/log_adapter_common.cc
  type mindspore (line 24) | namespace mindspore {
    function GetSubModuleName (line 59) | const std::string GetSubModuleName(SubModuleId module_id) {
    function GetTimeString (line 63) | std::string GetTimeString() {

FILE: tests/ut/stub/include/utils/overload.h
  function string (line 122) | string ToString(const std::unordered_map<T1, T2> &map) {
  function string (line 130) | string ToString(const std::map<T1, T2> &map) {

FILE: tests/ut/stub/include/utils/utils.h
  function namespace (line 29) | namespace mindspore {

FILE: tests/ut/stub/stub_inference.cc
  type mindspore::serving (line 20) | namespace mindspore::serving {
    function InferenceLoader (line 42) | InferenceLoader &InferenceLoader::Instance() {
    function Status (line 51) | Status InferenceLoader::LoadMindSporeModelWrap() { return SUCCESS; }
    function DeviceType (line 55) | DeviceType InferenceLoader::GetSupportDeviceType(DeviceType device_typ...

FILE: tests/ut/stub/stub_postprocess.cc
  type mindspore::serving (line 20) | namespace mindspore::serving {
    class StubCastFp32toInt32Postprocess (line 22) | class StubCastFp32toInt32Postprocess : public CppStageFunctionBase {
      method Status (line 24) | Status Call(const std::string &postprocess_name, const InstanceData ...
      method GetInputsCount (line 44) | size_t GetInputsCount(const std::string &postprocess_name) const ove...
      method GetOutputsCount (line 46) | size_t GetOutputsCount(const std::string &postprocess_name) const ov...

FILE: tests/ut/stub/stub_preprocess.cc
  type mindspore::serving (line 20) | namespace mindspore::serving {
    class StubCastInt32toFp32Preprocess (line 22) | class StubCastInt32toFp32Preprocess : public CppStageFunctionBase {
      method Status (line 24) | Status Call(const std::string &postprocess_name, const InstanceData ...
      method GetInputsCount (line 59) | size_t GetInputsCount(const std::string &postprocess_name) const ove...
      method GetOutputsCount (line 61) | size_t GetOutputsCount(const std::string &postprocess_name) const ov...

FILE: third_party/securec/include/securec.h
  type errno_t (line 43) | typedef int errno_t;

FILE: third_party/securec/src/fscanf_s.c
  function fscanf_s (line 43) | int fscanf_s(FILE *stream, const char *format, ...)

FILE: third_party/securec/src/fwscanf_s.c
  function fwscanf_s (line 42) | int fwscanf_s(FILE *stream, const wchar_t *format, ...)

FILE: third_party/securec/src/gets_s.c
  function SecTrimCRLF (line 19) | static void SecTrimCRLF(char *buffer, size_t len)

FILE: third_party/securec/src/memcpy_s.c
  function SecIsAddrAligned8 (line 32) | static int SecIsAddrAligned8(const void *addr, const void *zeroAddr)
  function errno_t (line 442) | static errno_t SecMemcpyError(void *dest, size_t destMax, const void *sr...
  function SecDoMemcpyOpt (line 478) | static void SecDoMemcpyOpt(void *dest, const void *src, size_t count)
  function errno_t (line 531) | errno_t memcpy_s(void *dest, size_t destMax, const void *src, size_t count)
  function errno_t (line 553) | errno_t memcpy_sOptAsm(void *dest, size_t destMax, const void *src, size...
  function errno_t (line 564) | errno_t memcpy_sOptTc(void *dest, size_t destMax, const void *src, size_...

FILE: third_party/securec/src/memmove_s.c
  function SecUtilMemmove (line 23) | static void SecUtilMemmove(void *dst, const void *src, size_t count)
  function errno_t (line 83) | errno_t memmove_s(void *dest, size_t destMax, const void *src, size_t co...

FILE: third_party/securec/src/memset_s.c
  function SecIsAddrAligned8 (line 34) | static int SecIsAddrAligned8(const void *addr, const void *zeroAddr)
  type SecStrBuf32Union (line 40) | typedef union {
  function SecStrBuf32Union (line 88) | static const SecStrBuf32Union *SecStrictAliasingCast(const SecStrBuf32 *...
  function errno_t (line 416) | static errno_t SecMemsetError(void *dest, size_t destMax, int c, size_t ...
  function SecDoMemsetOpt (line 438) | static void SecDoMemsetOpt(void *dest, int c, size_t count)
  function errno_t (line 476) | errno_t memset_s(void *dest, size_t destMax, int c, size_t count)
  function errno_t (line 499) | errno_t memset_sOptAsm(void *dest, size_t destMax, int c, size_t count)
  function errno_t (line 512) | errno_t memset_sOptTc(void *dest, size_t destMax, int c, size_t count)

FILE: third_party/securec/src/scanf_s.c
  function scanf_s (line 42) | int scanf_s(const char *format, ...)

FILE: third_party/securec/src/secinput.h
  type SecFileStream (line 43) | typedef struct {

FILE: third_party/securec/src/securecutil.c
  function wctomb (line 27) | int wctomb(char *s, wchar_t wc)
  function mbtowc (line 37) | int mbtowc(wchar_t *pwc, const char *s, size_t n)

FILE: third_party/securec/src/securecutil.h
  type __int64 (line 198) | typedef __int64 SecInt64;
  type SecUnsignedInt64 (line 199) | typedef unsigned __int64 SecUnsignedInt64;
  type SecUnsignedInt32 (line 201) | typedef unsigned int SecUnsignedInt32;
  type SecUnsignedInt32 (line 203) | typedef unsigned __int32 SecUnsignedInt32;
  type SecUnsignedInt32 (line 206) | typedef unsigned int SecUnsignedInt32;
  type SecInt64 (line 207) | typedef long long SecInt64;
  type SecUnsignedInt64 (line 208) | typedef unsigned long long SecUnsignedInt64;
  type wchar_t (line 213) | typedef wchar_t wint_t;
  type wchar_t (line 215) | typedef wchar_t SecChar;
  type wchar_t (line 216) | typedef wchar_t SecUnsignedChar;
  type wint_t (line 217) | typedef wint_t SecInt;
  type wint_t (line 218) | typedef wint_t SecUnsignedInt;
  type SecChar (line 220) | typedef char SecChar;
  type SecUnsignedChar (line 221) | typedef unsigned char SecUnsignedChar;
  type SecInt (line 222) | typedef int SecInt;
  type SecUnsignedInt (line 223) | typedef unsigned int SecUnsignedInt;
  type SecStrBuf1 (line 248) | typedef struct {
  type SecStrBuf2 (line 251) | typedef struct {
  type SecStrBuf3 (line 254) | typedef struct {
  type SecStrBuf4 (line 257) | typedef struct {
  type SecStrBuf5 (line 260) | typedef struct {
  type SecStrBuf6 (line 263) | typedef struct {
  type SecStrBuf7 (line 266) | typedef struct {
  type SecStrBuf8 (line 269) | typedef struct {
  type SecStrBuf9 (line 272) | typedef struct {
  type SecStrBuf10 (line 275) | typedef struct {
  type SecStrBuf11 (line 278) | typedef struct {
  type SecStrBuf12 (line 281) | typedef struct {
  type SecStrBuf13 (line 284) | typedef struct {
  type SecStrBuf14 (line 287) | typedef struct {
  type SecStrBuf15 (line 290) | typedef struct {
  type SecStrBuf16 (line 293) | typedef struct {
  type SecStrBuf17 (line 296) | typedef struct {
  type SecStrBuf18 (line 299) | typedef struct {
  type SecStrBuf19 (line 302) | typedef struct {
  type SecStrBuf20 (line 305) | typedef struct {
  type SecStrBuf21 (line 308) | typedef struct {
  type SecStrBuf22 (line 311) | typedef struct {
  type SecStrBuf23 (line 314) | typedef struct {
  type SecStrBuf24 (line 317) | typedef struct {
  type SecStrBuf25 (line 320) | typedef struct {
  type SecStrBuf26 (line 323) | typedef struct {
  type SecStrBuf27 (line 326) | typedef struct {
  type SecStrBuf28 (line 329) | typedef struct {
  type SecStrBuf29 (line 332) | typedef struct {
  type SecStrBuf30 (line 335) | typedef struct {
  type SecStrBuf31 (line 338) | typedef struct {
  type SecStrBuf32 (line 341) | typedef struct {
  type SecStrBuf33 (line 344) | typedef struct {
  type SecStrBuf34 (line 347) | typedef struct {
  type SecStrBuf35 (line 350) | typedef struct {
  type SecStrBuf36 (line 353) | typedef struct {
  type SecStrBuf37 (line 356) | typedef struct {
  type SecStrBuf38 (line 359) | typedef struct {
  type SecStrBuf39 (line 362) | typedef struct {
  type SecStrBuf40 (line 365) | typedef struct {
  type SecStrBuf41 (line 368) | typedef struct {
  type SecStrBuf42 (line 371) | typedef struct {
  type SecStrBuf43 (line 374) | typedef struct {
  type SecStrBuf44 (line 377) | typedef struct {
  type SecStrBuf45 (line 380) | typedef struct {
  type SecStrBuf46 (line 383) | typedef struct {
  type SecStrBuf47 (line 386) | typedef struct {
  type SecStrBuf48 (line 389) | typedef struct {
  type SecStrBuf49 (line 392) | typedef struct {
  type SecStrBuf50 (line 395) | typedef struct {
  type SecStrBuf51 (line 398) | typedef struct {
  type SecStrBuf52 (line 401) | typedef struct {
  type SecStrBuf53 (line 404) | typedef struct {
  type SecStrBuf54 (line 407) | typedef struct {
  type SecStrBuf55 (line 410) | typedef struct {
  type SecStrBuf56 (line 413) | typedef struct {
  type SecStrBuf57 (line 416) | typedef struct {
  type SecStrBuf58 (line 419) | typedef struct {
  type SecStrBuf59 (line 422) | typedef struct {
  type SecStrBuf60 (line 425) | typedef struct {
  type SecStrBuf61 (line 428) | typedef struct {
  type SecStrBuf62 (line 431) | typedef struct {
  type SecStrBuf63 (line 434) | typedef struct {
  type SecStrBuf64 (line 437) | typedef struct {
  function SecDoMemcpy (line 492) | static void SecDoMemcpy(void *dest, const void *src, size_t count)
  function SecDoMemset (line 507) | static void SecDoMemset(void *dest, int c, size_t count)
  function SecStrMinLen (line 519) | static size_t SecStrMinLen(const char *str, size_t maxLen)
  function SecStrMinLenOpt (line 529) | static size_t SecStrMinLenOpt(const char *str, size_t maxLen)

FILE: third_party/securec/src/secureprintoutput.h
  type SecFmtState (line 46) | typedef enum {
  type SecPrintfStream (line 59) | typedef struct {

FILE: third_party/securec/src/secureprintoutput_a.c
  function SecVsnprintfImpl (line 48) | int SecVsnprintfImpl(char *string, size_t count, const char *format, va_...
  function SecWriteMultiChar (line 71) | static void SecWriteMultiChar(char ch, int num, SecPrintfStream *f, int ...
  function SecWriteString (line 87) | static void SecWriteString(const char *string, int len, SecPrintfStream ...

FILE: third_party/securec/src/secureprintoutput_w.c
  function SecVswprintfImpl (line 61) | int SecVswprintfImpl(wchar_t *string, size_t sizeInWchar, const wchar_t ...
  function SecPutZeroChar (line 85) | static int SecPutZeroChar(SecPrintfStream *str)
  function SecPutWcharStrEndingZero (line 99) | static int SecPutWcharStrEndingZero(SecPrintfStream *str, int zeroCount)
  function wchar_t (line 117) | static wchar_t SecPutCharW(wchar_t ch, SecPrintfStream *f)
  function SecWriteCharW (line 133) | static void SecWriteCharW(wchar_t ch, SecPrintfStream *f, int *pnumwritten)
  function SecWriteMultiCharW (line 145) | static void SecWriteMultiCharW(wchar_t ch, int num, SecPrintfStream *f, ...
  function SecWriteStringW (line 159) | static void SecWriteStringW(const wchar_t *string, int len, SecPrintfStr...

FILE: third_party/securec/src/snprintf_s.c
  function snprintf_s (line 49) | int snprintf_s(char *strDest, size_t destMax, size_t count, const char *...
  function snprintf_truncated_s (line 95) | int snprintf_truncated_s(char *strDest, size_t destMax, const char *form...

FILE: third_party/securec/src/sprintf_s.c
  function sprintf_s (line 45) | int sprintf_s(char *strDest, size_t destMax, const char *format, ...)

FILE: third_party/securec/src/sscanf_s.c
  function sscanf_s (line 45) | int sscanf_s(const char *buffer, const char *format, ...)

FILE: third_party/securec/src/strcat_s.c
  function errno_t (line 25) | static errno_t SecDoStrcat(char *strDest, size_t destMax, const char *st...
  function errno_t (line 82) | errno_t strcat_s(char *strDest, size_t destMax, const char *strSrc)

FILE: third_party/securec/src/strcpy_s.c
  function SecIsAddrAligned8 (line 31) | static int SecIsAddrAligned8(const void *addr, const void *zeroAddr)
  function errno_t (line 250) | static errno_t CheckSrcRange(char *strDest, size_t destMax, const char *...
  function errno_t (line 270) | errno_t strcpy_error(char *strDest, size_t destMax, const char *strSrc)
  function SecDoStrcpyOpt (line 289) | static void SecDoStrcpyOpt(char *strDest, const char *strSrc, size_t src...
  function errno_t (line 328) | errno_t strcpy_s(char *strDest, size_t destMax, const char *strSrc)

FILE: third_party/securec/src/strncat_s.c
  function errno_t (line 25) | static errno_t SecDoStrncat(char *strDest, size_t destMax, const char *s...
  function errno_t (line 89) | errno_t strncat_s(char *strDest, size
Condensed preview — 473 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (2,951K chars).
[
  {
    "path": ".clang-format",
    "chars": 4037,
    "preview": "---\nLanguage:        Cpp\n# BasedOnStyle:  Google\nAccessModifierOffset: -1\nAlignAfterOpenBracket: Align\nAlignConsecutiveA"
  },
  {
    "path": ".gitee/PULL_REQUEST_TEMPLATE.md",
    "chars": 884,
    "preview": "<!--  Thanks for sending a pull request!  Here are some tips for you:\r\n\r\n1) If this is your first time, please read our "
  },
  {
    "path": ".gitignore",
    "chars": 1348,
    "preview": "# MindSpore Serving\nbuild/\nmindspore_serving/lib\noutput\n*.ir\n.coverage*\nhtmlcov/\ncov_output/\n\n# Cmake files\nCMakeFiles/\n"
  },
  {
    "path": ".gitmodules",
    "chars": 115,
    "preview": "[submodule \"third_party/mindspore\"]\n\tpath = third_party/mindspore\n\turl = https://gitee.com/mindspore/mindspore.git\n"
  },
  {
    "path": ".jenkins/test/config/dependent_packages.yaml",
    "chars": 123,
    "preview": "mindspore:\n  'mindspore/mindspore/version/202310/20231010/master_20231010144855_e5008bcfa07e3e6f3fa50f3ba0ac90175504dfd7"
  },
  {
    "path": "CMakeLists.txt",
    "chars": 2794,
    "preview": "cmake_minimum_required(VERSION 3.14.1)\nproject(MindSpore_Serving)\n\nif(CMAKE_CXX_COMPILER_ID STREQUAL \"GNU\" AND CMAKE_CXX"
  },
  {
    "path": "LICENSE",
    "chars": 11558,
    "preview": "                                 Apache License\r\n                           Version 2.0, January 2004\r\n                 "
  },
  {
    "path": "NOTICE",
    "chars": 64,
    "preview": "MindSpore Serving\r\nCopyright 2020 Huawei Technologies Co., Ltd\r\n"
  },
  {
    "path": "OWNERS",
    "chars": 56,
    "preview": "approvers:\n- zhaizhiqiang\n- zhangxuetong\n- hangangqiang\n"
  },
  {
    "path": "README.md",
    "chars": 4119,
    "preview": "# MindSpore Serving\n\n[查看中文](./README_CN.md)\n\n<!-- TOC -->\n\n- [MindSpore Serving](#mindspore-serving)\n    - [Overview](#o"
  },
  {
    "path": "README_CN.md",
    "chars": 2487,
    "preview": "# MindSpore Serving\n\n[View English](./README.md)\n\n<!-- TOC -->\n\n- [MindSpore Serving](#mindspore-serving)\n    - [概述](#概述"
  },
  {
    "path": "RELEASE.md",
    "chars": 28786,
    "preview": "# MindSpore Serving Release Notes\n\n[查看中文](./RELEASE_CN.md)\n\n## MindSpore Serving 2.0.2 Release Notes\n\n### Major Features"
  },
  {
    "path": "RELEASE_CN.md",
    "chars": 1634,
    "preview": "# MindSpore Serving Release Notes\n\n[View English](./RELEASE.md)\n\n## MindSpore Serving 2.0.2 Release Notes\n\n### 主要特性和增强\n\n"
  },
  {
    "path": "Third_Party_Open_Source_Software_Notice",
    "chars": 209931,
    "preview": "OPEN SOURCE SOFTWARE NOTICE\n\nPlease note we provide an open source software notice along with this product and/or this p"
  },
  {
    "path": "build.sh",
    "chars": 4765,
    "preview": "#!/bin/bash\nset -e\nPROJECTPATH=$(cd \"$(dirname $0)\"; pwd)\nexport BUILD_PATH=\"${PROJECTPATH}/build/\"\n\n# print usage messa"
  },
  {
    "path": "cmake/check_requirements.cmake",
    "chars": 1727,
    "preview": "## define customized find functions, print customized error messages\nfunction(find_required_package pkg_name)\n    find_p"
  },
  {
    "path": "cmake/dependency_ms.cmake",
    "chars": 840,
    "preview": "# Compile MindSpore\n\nmessage(STATUS \"**********begin to compile MindSpore**********\")\nset(MS_SOURCE_DIR ${CMAKE_SOURCE_D"
  },
  {
    "path": "cmake/dependency_securec.cmake",
    "chars": 709,
    "preview": "# securec library\n#\n#\n# SECUREC_LIBRARY\n#\n\nif(NOT TARGET securec)\n    set(_ms_tmp_CMAKE_POSITION_INDEPENDENT_CODE ${CMAK"
  },
  {
    "path": "cmake/dependency_utils.cmake",
    "chars": 968,
    "preview": "# MS Utils\n#\n\nfunction(find_python_package out_inc out_lib)\n    # Use PYTHON_EXECUTABLE if it is defined, otherwise defa"
  },
  {
    "path": "cmake/external_libs/absl.cmake",
    "chars": 1809,
    "preview": "if(ENABLE_GITEE_EULER)\n    set(GIT_REPOSITORY \"https://gitee.com/src-openeuler/abseil-cpp.git\")\n    set(GIT_TAG \"openEul"
  },
  {
    "path": "cmake/external_libs/c-ares.cmake",
    "chars": 865,
    "preview": "if(ENABLE_GITEE)\n    set(REQ_URL \"https://gitee.com/mirrors/c-ares/repository/archive/cares-1_15_0.tar.gz\")\n    set(SHA2"
  },
  {
    "path": "cmake/external_libs/eigen.cmake",
    "chars": 656,
    "preview": "set(Eigen3_CXXFLAGS \"-D_FORTIFY_SOURCE=2 -O2\")\nset(Eigen3_CFLAGS \"-D_FORTIFY_SOURCE=2 -O2\")\n\n\nset(REQ_URL \"https://gitla"
  },
  {
    "path": "cmake/external_libs/glog.cmake",
    "chars": 1358,
    "preview": "set(glog_CXXFLAGS \"-D_FORTIFY_SOURCE=2 -O2 ${SECURE_CXX_FLAGS} -Dgoogle=mindspore_serving_private\")\nset(glog_CFLAGS \"-D_"
  },
  {
    "path": "cmake/external_libs/grpc.cmake",
    "chars": 6570,
    "preview": "set(grpc_USE_STATIC_LIBS OFF)\nif(${CMAKE_SYSTEM_NAME} MATCHES \"Darwin\")\n    set(grpc_CXXFLAGS \"-fstack-protector-all -Wn"
  },
  {
    "path": "cmake/external_libs/gtest.cmake",
    "chars": 2278,
    "preview": "set(gtest_CXXFLAGS \"-D_FORTIFY_SOURCE=2 -O2\")\nset(gtest_CFLAGS \"-D_FORTIFY_SOURCE=2 -O2\")\n\nset(CMAKE_OPTION\n        -DBU"
  },
  {
    "path": "cmake/external_libs/json.cmake",
    "chars": 1076,
    "preview": "if(MSVC)\n    set(flatbuffers_CXXFLAGS \"${CMAKE_CXX_FLAGS}\")\n    set(flatbuffers_CFLAGS \"${CMAKE_CXX_FLAGS}\")\n    set(fla"
  },
  {
    "path": "cmake/external_libs/libevent.cmake",
    "chars": 1612,
    "preview": "set(openssl_USE_STATIC_LIBS ON)\nset(libevent_CFLAGS \"-fPIC -fvisibility=hidden -fstack-protector-all -D_FORTIFY_SOURCE=2"
  },
  {
    "path": "cmake/external_libs/openssl.cmake",
    "chars": 2069,
    "preview": "if(ENABLE_GITEE OR ENABLE_GITEE_EULER) # Channel GITEE_EULER is NOT supported now, use GITEE instead.\n    set(REQ_URL \"h"
  },
  {
    "path": "cmake/external_libs/protobuf.cmake",
    "chars": 2264,
    "preview": "set(protobuf_USE_STATIC_LIBS ON)\n\nif(${CMAKE_SYSTEM_NAME} MATCHES \"Darwin\")\n    set(protobuf_CXXFLAGS \"-fstack-protector"
  },
  {
    "path": "cmake/external_libs/pybind11.cmake",
    "chars": 2810,
    "preview": "set(PYTHON_VERSION ${Python3_VERSION_MAJOR}.${Python3_VERSION_MINOR})\n\nif(ENABLE_GITEE OR ENABLE_GITEE_EULER) # Channel "
  },
  {
    "path": "cmake/external_libs/re2.cmake",
    "chars": 750,
    "preview": "if(ENABLE_GITEE)\n    set(REQ_URL \"https://gitee.com/mirrors/re2/repository/archive/2019-12-01.tar.gz\")\n    set(SHA256 \"7"
  },
  {
    "path": "cmake/external_libs/zlib.cmake",
    "chars": 759,
    "preview": "if(ENABLE_GITEE)\n    set(REQ_URL \"https://gitee.com/mirrors/zlib/repository/archive/v1.2.11.tar.gz\")\n    set(SHA256 \"f21"
  },
  {
    "path": "cmake/mind_expression.cmake",
    "chars": 1401,
    "preview": "set(SECURE_CXX_FLAGS \"\")\nif(\"${CMAKE_CXX_COMPILER_ID}\" STREQUAL \"GNU\")\n    set(SECURE_CXX_FLAGS \"-fstack-protector-all -"
  },
  {
    "path": "cmake/options.cmake",
    "chars": 1988,
    "preview": "option(DEBUG_MODE \"Debug mode, default off\" OFF)\noption(ENABLE_COVERAGE \"Enable code coverage report\" OFF)\noption(ENABLE"
  },
  {
    "path": "cmake/package.cmake",
    "chars": 2779,
    "preview": "# include dependency\ninclude(CMakePackageConfigHelpers)\ninclude(GNUInstallDirs)\n\n# set package information\nset(CPACK_PAC"
  },
  {
    "path": "cmake/package_script.cmake",
    "chars": 3584,
    "preview": "# find exec\nfind_package(Python3 3.7 COMPONENTS Interpreter)\nif(NOT Python3_FOUND)\n    message(FATAL_ERROR \"No python3 f"
  },
  {
    "path": "cmake/utils.cmake",
    "chars": 18216,
    "preview": "include(FetchContent) # 下载第三方库\nset(FETCHCONTENT_QUIET OFF)\n\nfunction(mindspore_add_submodule_obj des_submodule_objs sub_"
  },
  {
    "path": "docs/api/api_python/client/mindspore_serving.client.Client.rst",
    "chars": 1333,
    "preview": "\n.. py:class:: mindspore_serving.client.Client(address, servable_name, method_name, version_number=0, ssl_config=None)\n"
  },
  {
    "path": "docs/api/api_python/client/mindspore_serving.client.SSLConfig.rst",
    "chars": 477,
    "preview": "\n.. py:class:: mindspore_serving.client.SSLConfig(certificate=None, private_key=None, custom_ca=None)\n\n    Serving服务器gR"
  },
  {
    "path": "docs/api/api_python/client/mindspore_serving.client.rst",
    "chars": 57,
    "preview": "MindSpore Serving客户端API,用于通过gRPC访问MindSpore Serving服务器。\n"
  },
  {
    "path": "docs/api/api_python/mindspore_serving.client.rst",
    "chars": 275,
    "preview": "mindspore_serving.client\n==========================\n\n.. include:: client/mindspore_serving.client.rst\n\n.. include:: clie"
  },
  {
    "path": "docs/api/api_python/mindspore_serving.server.rst",
    "chars": 1880,
    "preview": "mindspore_serving.server\n=========================\n\n.. include:: server/mindspore_serving.server.rst\n\n.. include:: serve"
  },
  {
    "path": "docs/api/api_python/server/distributed/mindspore_serving.server.distributed.declare_servable.rst",
    "chars": 1064,
    "preview": "\n.. py:function:: mindspore_serving.server.distributed.declare_servable(rank_size, stage_size, with_batch_dim=True, wit"
  },
  {
    "path": "docs/api/api_python/server/distributed/mindspore_serving.server.distributed.rst",
    "chars": 162,
    "preview": "Serving服务器启动分布式模型服务的接口。如何配置和启动分布式模型,请查看 \n`基于MindSpore Serving部署分布式推理服务 <https://www.mindspore.cn/serving/docs/zh-CN/mas"
  },
  {
    "path": "docs/api/api_python/server/distributed/mindspore_serving.server.distributed.start_servable.rst",
    "chars": 903,
    "preview": "\n.. py:function:: mindspore_serving.server.distributed.start_servable(servable_directory, servable_name, rank_table_jso"
  },
  {
    "path": "docs/api/api_python/server/distributed/mindspore_serving.server.distributed.startup_agents.rst",
    "chars": 1367,
    "preview": "\n.. py:function:: mindspore_serving.server.distributed.startup_agents(distributed_address, model_files, group_config_fi"
  },
  {
    "path": "docs/api/api_python/server/mindspore_serving.server.SSLConfig.rst",
    "chars": 644,
    "preview": "\n.. py:class:: mindspore_serving.server.SSLConfig(certificate, private_key, custom_ca=None, verify_client=False)\n\n    S"
  },
  {
    "path": "docs/api/api_python/server/mindspore_serving.server.ServableStartConfig.rst",
    "chars": 1519,
    "preview": "\n.. py:class:: mindspore_serving.server.ServableStartConfig(servable_directory, servable_name, device_ids=None, version"
  },
  {
    "path": "docs/api/api_python/server/mindspore_serving.server.rst",
    "chars": 195,
    "preview": "MindSpore Serving是一个轻量级、高性能的服务模块,旨在帮助MindSpore开发者在生产环境中高效部署在线推理服务。\n\n用户可通过MindSpore Serving server API启动服务,启动gRPC和RESTful"
  },
  {
    "path": "docs/api/api_python/server/mindspore_serving.server.start_grpc_server.rst",
    "chars": 724,
    "preview": "\n.. py:function:: mindspore_serving.server.start_grpc_server(address, max_msg_mb_size=100, ssl_config=None)\n\n    启动gRPC"
  },
  {
    "path": "docs/api/api_python/server/mindspore_serving.server.start_restful_server.rst",
    "chars": 525,
    "preview": "\n.. py:function:: mindspore_serving.server.start_restful_server(address, max_msg_mb_size=100, ssl_config=None)\n\n    启动R"
  },
  {
    "path": "docs/api/api_python/server/mindspore_serving.server.start_servables.rst",
    "chars": 886,
    "preview": "\n.. py:function:: mindspore_serving.server.start_servables(servable_configs, enable_lite=False)\n\n    用于Serving服务器中启动一个或"
  },
  {
    "path": "docs/api/api_python/server/mindspore_serving.server.stop.rst",
    "chars": 73,
    "preview": "\n.. py:function:: mindspore_serving.server.stop()\n\n    停止Serving服务器的运行。\n"
  },
  {
    "path": "docs/api/api_python/server/register/mindspore_serving.server.register.AscendDeviceInfo.rst",
    "chars": 1173,
    "preview": "\n.. py:class:: mindspore_serving.server.register.AscendDeviceInfo(**kwargs)\n\n    用于设置Ascend设备配置。\n\n    参数:\n        - **i"
  },
  {
    "path": "docs/api/api_python/server/register/mindspore_serving.server.register.CPUDeviceInfo.rst",
    "chars": 308,
    "preview": "\n.. py:class:: mindspore_serving.server.register.CPUDeviceInfo(**kwargs)\n\n    用于CPU设备配置。\n\n    参数:\n        - **precision"
  },
  {
    "path": "docs/api/api_python/server/register/mindspore_serving.server.register.Context.rst",
    "chars": 859,
    "preview": "\n.. py:class:: mindspore_serving.server.register.Context(**kwargs)\n\n    Context用于自定义设备配置,如果不指定Context,MindSpore Serving"
  },
  {
    "path": "docs/api/api_python/server/register/mindspore_serving.server.register.GPUDeviceInfo.rst",
    "chars": 308,
    "preview": "\n.. py:class:: mindspore_serving.server.register.GPUDeviceInfo(**kwargs)\n\n    用于GPU设备配置。\n\n    参数:\n        - **precision"
  },
  {
    "path": "docs/api/api_python/server/register/mindspore_serving.server.register.Model.rst",
    "chars": 542,
    "preview": "\n.. py:class:: mindspore_serving.server.register.Model(model_key)\n\n    用于表示一个声明的模型。用户不应该直接构造 `Model` 对象,而是来自于 `declare_"
  },
  {
    "path": "docs/api/api_python/server/register/mindspore_serving.server.register.add_stage.rst",
    "chars": 972,
    "preview": "\n.. py:function:: mindspore_serving.server.register.add_stage(stage, *args, outputs_count, batch_size=None, tag=None)\n\n"
  },
  {
    "path": "docs/api/api_python/server/register/mindspore_serving.server.register.declare_model.rst",
    "chars": 1303,
    "preview": "\n.. py:function:: mindspore_serving.server.register.declare_model(model_file, model_format, with_batch_dim=True, option"
  },
  {
    "path": "docs/api/api_python/server/register/mindspore_serving.server.register.register_method.rst",
    "chars": 706,
    "preview": "\n.. py:function:: mindspore_serving.server.register.register_method(output_names)\n\n    在服务的servable_config.py配置文件中使用,用于"
  },
  {
    "path": "docs/api/api_python/server/register/mindspore_serving.server.register.rst",
    "chars": 162,
    "preview": "服务注册接口,在服务的servable_config.py配置文件中使用。如何配置servable_config.py文件,请查看 \n`通过配置模型提供Servable <https://www.mindspore.cn/serving/"
  },
  {
    "path": "engine/README.md",
    "chars": 56,
    "preview": "## Overview\n\nAn engine supports finetune and inference.\n"
  },
  {
    "path": "example/add_sub_pipeline/add_sub/servable_config.py",
    "chars": 2256,
    "preview": "# Copyright 2020 Huawei Technologies Co., Ltd\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you "
  },
  {
    "path": "example/add_sub_pipeline/export_model/add_sub_model.py",
    "chars": 2364,
    "preview": "# Copyright 2020 Huawei Technologies Co., Ltd\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you "
  },
  {
    "path": "example/add_sub_pipeline/serving_client.py",
    "chars": 2254,
    "preview": "# Copyright 2020 Huawei Technologies Co., Ltd\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you "
  },
  {
    "path": "example/add_sub_pipeline/serving_server.py",
    "chars": 1230,
    "preview": "# Copyright 2021 Huawei Technologies Co., Ltd\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you "
  },
  {
    "path": "example/lenet/export_model/export_lenet.py",
    "chars": 1015,
    "preview": "# Copyright 2020 Huawei Technologies Co., Ltd\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you "
  },
  {
    "path": "example/lenet/export_model/lenet/__init__.py",
    "chars": 693,
    "preview": "# Copyright 2020 Huawei Technologies Co., Ltd\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you "
  },
  {
    "path": "example/lenet/export_model/lenet/export.py",
    "chars": 1749,
    "preview": "# Copyright 2020 Huawei Technologies Co., Ltd\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you "
  },
  {
    "path": "example/lenet/export_model/lenet/src/lenet.py",
    "chars": 2102,
    "preview": "# Copyright 2020 Huawei Technologies Co., Ltd\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you "
  },
  {
    "path": "example/lenet/lenet/servable_config.py",
    "chars": 2037,
    "preview": "# Copyright 2020 Huawei Technologies Co., Ltd\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you "
  },
  {
    "path": "example/lenet/serving_client.py",
    "chars": 3278,
    "preview": "# Copyright 2020 Huawei Technologies Co., Ltd\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you "
  },
  {
    "path": "example/lenet/serving_server.py",
    "chars": 1123,
    "preview": "# Copyright 2020 Huawei Technologies Co., Ltd\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you "
  },
  {
    "path": "example/matmul_distributed/export_model/distributed_inference.py",
    "chars": 1664,
    "preview": "# Copyright 2021 Huawei Technologies Co., Ltd\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you "
  },
  {
    "path": "example/matmul_distributed/export_model/export_model.sh",
    "chars": 1125,
    "preview": "#!/bin/bash\n\nEXEC_PATH=$(pwd)\n\nexport RANK_TABLE_FILE=${EXEC_PATH}/rank_table_8pcs.json\nexport RANK_SIZE=8\n\nrm -rf devic"
  },
  {
    "path": "example/matmul_distributed/export_model/net.py",
    "chars": 1450,
    "preview": "# Copyright 2021 Huawei Technologies Co., Ltd\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you "
  },
  {
    "path": "example/matmul_distributed/export_model/rank_table_8pcs.json",
    "chars": 1084,
    "preview": "{\n  \"version\": \"1.0\",\n  \"server_count\": \"1\",\n  \"server_list\": [\n    {\n      \"server_id\": \"127.0.0.1\",\n      \"device\": [\n"
  },
  {
    "path": "example/matmul_distributed/matmul/servable_config.py",
    "chars": 1024,
    "preview": "# Copyright 2021 Huawei Technologies Co., Ltd\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you "
  },
  {
    "path": "example/matmul_distributed/rank_table_8pcs.json",
    "chars": 1084,
    "preview": "{\n  \"version\": \"1.0\",\n  \"server_count\": \"1\",\n  \"server_list\": [\n    {\n      \"server_id\": \"127.0.0.1\",\n      \"device\": [\n"
  },
  {
    "path": "example/matmul_distributed/serving_agent.py",
    "chars": 1240,
    "preview": "# Copyright 2021 Huawei Technologies Co., Ltd\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you "
  },
  {
    "path": "example/matmul_distributed/serving_client.py",
    "chars": 1110,
    "preview": "# Copyright 2021 Huawei Technologies Co., Ltd\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you "
  },
  {
    "path": "example/matmul_distributed/serving_server.py",
    "chars": 1284,
    "preview": "# Copyright 2021 Huawei Technologies Co., Ltd\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you "
  },
  {
    "path": "example/matmul_multi_subgraphs/export_model/export_matmul.py",
    "chars": 2684,
    "preview": "# Copyright 2021 Huawei Technologies Co., Ltd\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you "
  },
  {
    "path": "example/matmul_multi_subgraphs/matmul/servable_config.py",
    "chars": 1261,
    "preview": "# Copyright 2021 Huawei Technologies Co., Ltd\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you "
  },
  {
    "path": "example/matmul_multi_subgraphs/serving_client.py",
    "chars": 1117,
    "preview": "# Copyright 2021 Huawei Technologies Co., Ltd\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you "
  },
  {
    "path": "example/matmul_multi_subgraphs/serving_server.py",
    "chars": 1205,
    "preview": "# Copyright 2021 Huawei Technologies Co., Ltd\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you "
  },
  {
    "path": "example/resnet/export_model/export_resnet.py",
    "chars": 1739,
    "preview": "# Copyright 2020 Huawei Technologies Co., Ltd\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you "
  },
  {
    "path": "example/resnet/export_model/resnet/__init__.py",
    "chars": 693,
    "preview": "# Copyright 2020 Huawei Technologies Co., Ltd\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you "
  },
  {
    "path": "example/resnet/export_model/resnet/export.py",
    "chars": 2901,
    "preview": "# Copyright 2020 Huawei Technologies Co., Ltd\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you "
  },
  {
    "path": "example/resnet/export_model/resnet/src/config.py",
    "chars": 2794,
    "preview": "# Copyright 2020 Huawei Technologies Co., Ltd\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you "
  },
  {
    "path": "example/resnet/export_model/resnet/src/resnet.py",
    "chars": 21549,
    "preview": "# Copyright 2020-2021 Huawei Technologies Co., Ltd\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n#"
  },
  {
    "path": "example/resnet/resnet50/servable_config.py",
    "chars": 6404,
    "preview": "# Copyright 2020 Huawei Technologies Co., Ltd\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you "
  },
  {
    "path": "example/resnet/serving_client.py",
    "chars": 4565,
    "preview": "# Copyright 2020 Huawei Technologies Co., Ltd\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you "
  },
  {
    "path": "example/resnet/serving_server.py",
    "chars": 1341,
    "preview": "# Copyright 2020 Huawei Technologies Co., Ltd\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you "
  },
  {
    "path": "example/tensor_add/add/servable_config.py",
    "chars": 1861,
    "preview": "# Copyright 2020 Huawei Technologies Co., Ltd\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you "
  },
  {
    "path": "example/tensor_add/export_model/add_model.py",
    "chars": 1795,
    "preview": "# Copyright 2020 Huawei Technologies Co., Ltd\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you "
  },
  {
    "path": "example/tensor_add/serving_client.py",
    "chars": 3106,
    "preview": "# Copyright 2020 Huawei Technologies Co., Ltd\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you "
  },
  {
    "path": "example/tensor_add/serving_client_with_check.py",
    "chars": 3902,
    "preview": "# Copyright 2021 Huawei Technologies Co., Ltd\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you "
  },
  {
    "path": "example/tensor_add/serving_server.py",
    "chars": 1227,
    "preview": "# Copyright 2021 Huawei Technologies Co., Ltd\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you "
  },
  {
    "path": "mindspore_serving/CMakeLists.txt",
    "chars": 4045,
    "preview": "# This branch assumes that gRPC and all its dependencies are already installed\n# on this system, so they can be located "
  },
  {
    "path": "mindspore_serving/__init__.py",
    "chars": 692,
    "preview": "# Copyright 2020 Huawei Technologies Co., Ltd\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you "
  },
  {
    "path": "mindspore_serving/ccsrc/common/buffer_tensor.cc",
    "chars": 2208,
    "preview": "/**\n * Copyright 2020 Huawei Technologies Co., Ltd\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");"
  },
  {
    "path": "mindspore_serving/ccsrc/common/buffer_tensor.h",
    "chars": 2549,
    "preview": "/**\n * Copyright 2020 Huawei Technologies Co., Ltd\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");"
  },
  {
    "path": "mindspore_serving/ccsrc/common/exit_handle.cc",
    "chars": 3060,
    "preview": "/**\n * Copyright 2020 Huawei Technologies Co., Ltd\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");"
  },
  {
    "path": "mindspore_serving/ccsrc/common/exit_handle.h",
    "chars": 1678,
    "preview": "/**\n * Copyright 2020 Huawei Technologies Co., Ltd\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");"
  },
  {
    "path": "mindspore_serving/ccsrc/common/float16.h",
    "chars": 1156,
    "preview": "/**\n * Copyright 2020 Huawei Technologies Co., Ltd\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");"
  },
  {
    "path": "mindspore_serving/ccsrc/common/grpc_async_server.h",
    "chars": 6959,
    "preview": "/**\r\n * Copyright 2020 Huawei Technologies Co., Ltd\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License"
  },
  {
    "path": "mindspore_serving/ccsrc/common/grpc_client.cc",
    "chars": 859,
    "preview": "/**\r\n * Copyright 2021 Huawei Technologies Co., Ltd\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License"
  },
  {
    "path": "mindspore_serving/ccsrc/common/grpc_client.h",
    "chars": 3895,
    "preview": "/**\r\n * Copyright 2021 Huawei Technologies Co., Ltd\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License"
  },
  {
    "path": "mindspore_serving/ccsrc/common/grpc_server.cc",
    "chars": 2808,
    "preview": "/**\n * Copyright 2020 Huawei Technologies Co., Ltd\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");"
  },
  {
    "path": "mindspore_serving/ccsrc/common/grpc_server.h",
    "chars": 1648,
    "preview": "/**\n * Copyright 2020 Huawei Technologies Co., Ltd\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");"
  },
  {
    "path": "mindspore_serving/ccsrc/common/heart_beat.cc",
    "chars": 706,
    "preview": "/**\n * Copyright 2021 Huawei Technologies Co., Ltd\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");"
  },
  {
    "path": "mindspore_serving/ccsrc/common/heart_beat.h",
    "chars": 9698,
    "preview": "/**\n * Copyright 2021 Huawei Technologies Co., Ltd\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");"
  },
  {
    "path": "mindspore_serving/ccsrc/common/instance.h",
    "chars": 1290,
    "preview": "/**\n * Copyright 2020 Huawei Technologies Co., Ltd\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");"
  },
  {
    "path": "mindspore_serving/ccsrc/common/instance_data.h",
    "chars": 989,
    "preview": "/**\n * Copyright 2021 Huawei Technologies Co., Ltd\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");"
  },
  {
    "path": "mindspore_serving/ccsrc/common/log.cc",
    "chars": 11438,
    "preview": "/**\n * Copyright 2020 Huawei Technologies Co., Ltd\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");"
  },
  {
    "path": "mindspore_serving/ccsrc/common/log.h",
    "chars": 7827,
    "preview": "/**\n * Copyright 2020 Huawei Technologies Co., Ltd\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");"
  },
  {
    "path": "mindspore_serving/ccsrc/common/proto_tensor.cc",
    "chars": 31236,
    "preview": "/**\n * Copyright 2020 Huawei Technologies Co., Ltd\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");"
  },
  {
    "path": "mindspore_serving/ccsrc/common/proto_tensor.h",
    "chars": 5511,
    "preview": "/**\n * Copyright 2020 Huawei Technologies Co., Ltd\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");"
  },
  {
    "path": "mindspore_serving/ccsrc/common/servable.cc",
    "chars": 4553,
    "preview": "/**\n * Copyright 2020 Huawei Technologies Co., Ltd\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");"
  },
  {
    "path": "mindspore_serving/ccsrc/common/servable.h",
    "chars": 5210,
    "preview": "/**\n * Copyright 2020 Huawei Technologies Co., Ltd\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");"
  },
  {
    "path": "mindspore_serving/ccsrc/common/serving_common.h",
    "chars": 870,
    "preview": "/**\n * Copyright 2020 Huawei Technologies Co., Ltd\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");"
  },
  {
    "path": "mindspore_serving/ccsrc/common/shared_memory.cc",
    "chars": 10072,
    "preview": "/**\n * Copyright 2021 Huawei Technologies Co., Ltd\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");"
  },
  {
    "path": "mindspore_serving/ccsrc/common/shared_memory.h",
    "chars": 3174,
    "preview": "/**\n * Copyright 2021 Huawei Technologies Co., Ltd\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");"
  },
  {
    "path": "mindspore_serving/ccsrc/common/ssl_config.h",
    "chars": 971,
    "preview": "/**\n * Copyright 2021 Huawei Technologies Co., Ltd\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");"
  },
  {
    "path": "mindspore_serving/ccsrc/common/status.h",
    "chars": 3671,
    "preview": "/**\n * Copyright 2020 Huawei Technologies Co., Ltd\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");"
  },
  {
    "path": "mindspore_serving/ccsrc/common/tensor.cc",
    "chars": 2020,
    "preview": "/**\n * Copyright 2020 Huawei Technologies Co., Ltd\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");"
  },
  {
    "path": "mindspore_serving/ccsrc/common/tensor.h",
    "chars": 1915,
    "preview": "/**\n * Copyright 2020 Huawei Technologies Co., Ltd\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");"
  },
  {
    "path": "mindspore_serving/ccsrc/common/tensor_base.cc",
    "chars": 3735,
    "preview": "/**\n * Copyright 2020 Huawei Technologies Co., Ltd\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");"
  },
  {
    "path": "mindspore_serving/ccsrc/common/tensor_base.h",
    "chars": 3386,
    "preview": "/**\n * Copyright 2020 Huawei Technologies Co., Ltd\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");"
  },
  {
    "path": "mindspore_serving/ccsrc/common/thread_pool.cc",
    "chars": 2011,
    "preview": "/**\n * Copyright 2019-2020 Huawei Technologies Co., Ltd\n *\n * Licensed under the Apache License, Version 2.0 (the \"Licen"
  },
  {
    "path": "mindspore_serving/ccsrc/common/thread_pool.h",
    "chars": 2114,
    "preview": "/**\n * Copyright 2019-2020 Huawei Technologies Co., Ltd\n *\n * Licensed under the Apache License, Version 2.0 (the \"Licen"
  },
  {
    "path": "mindspore_serving/ccsrc/common/utils.cc",
    "chars": 2656,
    "preview": "/**\n * Copyright 2020 Huawei Technologies Co., Ltd\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");"
  },
  {
    "path": "mindspore_serving/ccsrc/common/utils.h",
    "chars": 1233,
    "preview": "/**\n * Copyright 2020 Huawei Technologies Co., Ltd\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");"
  },
  {
    "path": "mindspore_serving/ccsrc/master/dispacther.cc",
    "chars": 12814,
    "preview": "/**\n * Copyright 2020 Huawei Technologies Co., Ltd\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");"
  },
  {
    "path": "mindspore_serving/ccsrc/master/dispacther.h",
    "chars": 3035,
    "preview": "/**\n * Copyright 2020 Huawei Technologies Co., Ltd\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");"
  },
  {
    "path": "mindspore_serving/ccsrc/master/grpc/grpc_process.cc",
    "chars": 3423,
    "preview": "/**\n * Copyright 2020 Huawei Technologies Co., Ltd\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");"
  },
  {
    "path": "mindspore_serving/ccsrc/master/grpc/grpc_process.h",
    "chars": 2413,
    "preview": "/**\n * Copyright 2020 Huawei Technologies Co., Ltd\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");"
  },
  {
    "path": "mindspore_serving/ccsrc/master/grpc/grpc_server.cc",
    "chars": 837,
    "preview": "/**\r\n * Copyright 2020 Huawei Technologies Co., Ltd\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License"
  },
  {
    "path": "mindspore_serving/ccsrc/master/grpc/grpc_server.h",
    "chars": 3320,
    "preview": "/**\r\n * Copyright 2020 Huawei Technologies Co., Ltd\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License"
  },
  {
    "path": "mindspore_serving/ccsrc/master/grpc/master_server.h",
    "chars": 6748,
    "preview": "/**\r\n * Copyright 2020 Huawei Technologies Co., Ltd\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License"
  },
  {
    "path": "mindspore_serving/ccsrc/master/master_context.cc",
    "chars": 1156,
    "preview": "/**\n * Copyright 2021 Huawei Technologies Co., Ltd\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");"
  },
  {
    "path": "mindspore_serving/ccsrc/master/master_context.h",
    "chars": 1173,
    "preview": "/**\n * Copyright 2021 Huawei Technologies Co., Ltd\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");"
  },
  {
    "path": "mindspore_serving/ccsrc/master/model_thread.cc",
    "chars": 11877,
    "preview": "/**\r\n * Copyright 2021 Huawei Technologies Co., Ltd\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License"
  },
  {
    "path": "mindspore_serving/ccsrc/master/model_thread.h",
    "chars": 3292,
    "preview": "/**\r\n * Copyright 2021 Huawei Technologies Co., Ltd\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License"
  },
  {
    "path": "mindspore_serving/ccsrc/master/notify_worker/base_notify.h",
    "chars": 1320,
    "preview": "/**\n * Copyright 2020 Huawei Technologies Co., Ltd\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");"
  },
  {
    "path": "mindspore_serving/ccsrc/master/notify_worker/grpc_notify.cc",
    "chars": 1971,
    "preview": "/**\n * Copyright 2020 Huawei Technologies Co., Ltd\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");"
  },
  {
    "path": "mindspore_serving/ccsrc/master/notify_worker/grpc_notify.h",
    "chars": 1459,
    "preview": "/**\n * Copyright 2020 Huawei Technologies Co., Ltd\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");"
  },
  {
    "path": "mindspore_serving/ccsrc/master/restful/http_handle.cc",
    "chars": 4503,
    "preview": "/**\n * Copyright 2020 Huawei Technologies Co., Ltd\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");"
  },
  {
    "path": "mindspore_serving/ccsrc/master/restful/http_handle.h",
    "chars": 1299,
    "preview": "/**\n * Copyright 2020 Huawei Technologies Co., Ltd\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");"
  },
  {
    "path": "mindspore_serving/ccsrc/master/restful/http_process.cc",
    "chars": 37911,
    "preview": "/**\n * Copyright 2020 Huawei Technologies Co., Ltd\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");"
  },
  {
    "path": "mindspore_serving/ccsrc/master/restful/http_process.h",
    "chars": 5064,
    "preview": "/**\n * Copyright 2020 Huawei Technologies Co., Ltd\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");"
  },
  {
    "path": "mindspore_serving/ccsrc/master/restful/restful_request.cc",
    "chars": 7377,
    "preview": "/**\n * Copyright 2020 Huawei Technologies Co., Ltd\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");"
  },
  {
    "path": "mindspore_serving/ccsrc/master/restful/restful_request.h",
    "chars": 2174,
    "preview": "/**\n * Copyright 2020 Huawei Technologies Co., Ltd\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");"
  },
  {
    "path": "mindspore_serving/ccsrc/master/restful/restful_server.cc",
    "chars": 9377,
    "preview": "/**\n * Copyright 2020 Huawei Technologies Co., Ltd\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");"
  },
  {
    "path": "mindspore_serving/ccsrc/master/restful/restful_server.h",
    "chars": 2493,
    "preview": "/**\n * Copyright 2020 Huawei Technologies Co., Ltd\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");"
  },
  {
    "path": "mindspore_serving/ccsrc/master/servable_endpoint.cc",
    "chars": 4088,
    "preview": "/**\n * Copyright 2021 Huawei Technologies Co., Ltd\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");"
  },
  {
    "path": "mindspore_serving/ccsrc/master/servable_endpoint.h",
    "chars": 2007,
    "preview": "/**\n * Copyright 2021 Huawei Technologies Co., Ltd\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");"
  },
  {
    "path": "mindspore_serving/ccsrc/master/server.cc",
    "chars": 2876,
    "preview": "/**\n * Copyright 2020 Huawei Technologies Co., Ltd\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");"
  },
  {
    "path": "mindspore_serving/ccsrc/master/server.h",
    "chars": 2021,
    "preview": "/**\n * Copyright 2020 Huawei Technologies Co., Ltd\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");"
  },
  {
    "path": "mindspore_serving/ccsrc/master/worker_context.cc",
    "chars": 6371,
    "preview": "/**\n * Copyright 2021 Huawei Technologies Co., Ltd\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");"
  },
  {
    "path": "mindspore_serving/ccsrc/master/worker_context.h",
    "chars": 3897,
    "preview": "/**\n * Copyright 2021 Huawei Technologies Co., Ltd\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");"
  },
  {
    "path": "mindspore_serving/ccsrc/python/agent/agent_py.cc",
    "chars": 2372,
    "preview": "/**\n * Copyright 2020 Huawei Technologies Co., Ltd\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");"
  },
  {
    "path": "mindspore_serving/ccsrc/python/agent/agent_py.h",
    "chars": 1592,
    "preview": "/**\n * Copyright 2020 Huawei Technologies Co., Ltd\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");"
  },
  {
    "path": "mindspore_serving/ccsrc/python/master/master_py.cc",
    "chars": 2107,
    "preview": "/**\n * Copyright 2020 Huawei Technologies Co., Ltd\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");"
  },
  {
    "path": "mindspore_serving/ccsrc/python/master/master_py.h",
    "chars": 1576,
    "preview": "/**\n * Copyright 2020 Huawei Technologies Co., Ltd\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");"
  },
  {
    "path": "mindspore_serving/ccsrc/python/serving_py.cc",
    "chars": 12012,
    "preview": "/**\n * Copyright 2020 Huawei Technologies Co., Ltd\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");"
  },
  {
    "path": "mindspore_serving/ccsrc/python/tensor_py.cc",
    "chars": 9630,
    "preview": "/**\n * Copyright 2020 Huawei Technologies Co., Ltd\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");"
  },
  {
    "path": "mindspore_serving/ccsrc/python/tensor_py.h",
    "chars": 3538,
    "preview": "/**\n * Copyright 2020 Huawei Technologies Co., Ltd\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");"
  },
  {
    "path": "mindspore_serving/ccsrc/python/worker/servable_py.cc",
    "chars": 4490,
    "preview": "/**\n * Copyright 2020 Huawei Technologies Co., Ltd\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");"
  },
  {
    "path": "mindspore_serving/ccsrc/python/worker/servable_py.h",
    "chars": 1563,
    "preview": "/**\n * Copyright 2020 Huawei Technologies Co., Ltd\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");"
  },
  {
    "path": "mindspore_serving/ccsrc/python/worker/worker_py.cc",
    "chars": 11596,
    "preview": "/**\n * Copyright 2020 Huawei Technologies Co., Ltd\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");"
  },
  {
    "path": "mindspore_serving/ccsrc/python/worker/worker_py.h",
    "chars": 3209,
    "preview": "/**\n * Copyright 2020 Huawei Technologies Co., Ltd\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");"
  },
  {
    "path": "mindspore_serving/ccsrc/worker/context.cc",
    "chars": 2293,
    "preview": "/**\n * Copyright 2020 Huawei Technologies Co., Ltd\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");"
  },
  {
    "path": "mindspore_serving/ccsrc/worker/context.h",
    "chars": 1441,
    "preview": "/**\n * Copyright 2020 Huawei Technologies Co., Ltd\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");"
  },
  {
    "path": "mindspore_serving/ccsrc/worker/distributed_worker/agent_process/agent_process.cc",
    "chars": 2108,
    "preview": "/**\r\n * Copyright 2021 Huawei Technologies Co., Ltd\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License"
  },
  {
    "path": "mindspore_serving/ccsrc/worker/distributed_worker/agent_process/agent_process.h",
    "chars": 2261,
    "preview": "/**\r\n * Copyright 2021 Huawei Technologies Co., Ltd\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License"
  },
  {
    "path": "mindspore_serving/ccsrc/worker/distributed_worker/agent_startup.cc",
    "chars": 1825,
    "preview": "/**\n * Copyright 2021 Huawei Technologies Co., Ltd\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");"
  },
  {
    "path": "mindspore_serving/ccsrc/worker/distributed_worker/agent_startup.h",
    "chars": 1619,
    "preview": "/**\n * Copyright 2021 Huawei Technologies Co., Ltd\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");"
  },
  {
    "path": "mindspore_serving/ccsrc/worker/distributed_worker/common.h",
    "chars": 1608,
    "preview": "/**\n * Copyright 2021 Huawei Technologies Co., Ltd\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");"
  },
  {
    "path": "mindspore_serving/ccsrc/worker/distributed_worker/distributed_model_loader.cc",
    "chars": 29166,
    "preview": "/**\n * Copyright 2021 Huawei Technologies Co., Ltd\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");"
  },
  {
    "path": "mindspore_serving/ccsrc/worker/distributed_worker/distributed_model_loader.h",
    "chars": 4257,
    "preview": "/**\n * Copyright 2021 Huawei Technologies Co., Ltd\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");"
  },
  {
    "path": "mindspore_serving/ccsrc/worker/distributed_worker/distributed_process/distributed_process.cc",
    "chars": 5881,
    "preview": "/**\n * Copyright 2021 Huawei Technologies Co., Ltd\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");"
  },
  {
    "path": "mindspore_serving/ccsrc/worker/distributed_worker/distributed_process/distributed_process.h",
    "chars": 2831,
    "preview": "/**\r\n * Copyright 2021 Huawei Technologies Co., Ltd\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License"
  },
  {
    "path": "mindspore_serving/ccsrc/worker/distributed_worker/distributed_process/distributed_server.h",
    "chars": 8460,
    "preview": "/**\r\n * Copyright 2020 Huawei Technologies Co., Ltd\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License"
  },
  {
    "path": "mindspore_serving/ccsrc/worker/distributed_worker/notify_agent/base_notify_agent.h",
    "chars": 1381,
    "preview": "/**\n * Copyright 2021 Huawei Technologies Co., Ltd\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");"
  },
  {
    "path": "mindspore_serving/ccsrc/worker/distributed_worker/notify_agent/notify_agent.cc",
    "chars": 2734,
    "preview": "/**\n * Copyright 2021 Huawei Technologies Co., Ltd\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");"
  },
  {
    "path": "mindspore_serving/ccsrc/worker/distributed_worker/notify_agent/notify_agent.h",
    "chars": 1524,
    "preview": "/**\n * Copyright 2021 Huawei Technologies Co., Ltd\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");"
  },
  {
    "path": "mindspore_serving/ccsrc/worker/distributed_worker/notify_distributed/notify_worker.cc",
    "chars": 7666,
    "preview": "/**\n * Copyright 2021 Huawei Technologies Co., Ltd\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");"
  },
  {
    "path": "mindspore_serving/ccsrc/worker/distributed_worker/notify_distributed/notify_worker.h",
    "chars": 2086,
    "preview": "/**\n * Copyright 2021 Huawei Technologies Co., Ltd\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");"
  },
  {
    "path": "mindspore_serving/ccsrc/worker/distributed_worker/worker_agent.cc",
    "chars": 7831,
    "preview": "/**\n * Copyright 2021 Huawei Technologies Co., Ltd\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");"
  },
  {
    "path": "mindspore_serving/ccsrc/worker/distributed_worker/worker_agent.h",
    "chars": 1768,
    "preview": "/**\n * Copyright 2021 Huawei Technologies Co., Ltd\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");"
  },
  {
    "path": "mindspore_serving/ccsrc/worker/extra_worker/remote_call_model.cc",
    "chars": 6978,
    "preview": "/**\n * Copyright 2021 Huawei Technologies Co., Ltd\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");"
  },
  {
    "path": "mindspore_serving/ccsrc/worker/extra_worker/remote_call_model.h",
    "chars": 2271,
    "preview": "/**\n * Copyright 2021 Huawei Technologies Co., Ltd\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");"
  },
  {
    "path": "mindspore_serving/ccsrc/worker/grpc/worker_process.cc",
    "chars": 1832,
    "preview": "/**\r\n * Copyright 2020 Huawei Technologies Co., Ltd\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License"
  },
  {
    "path": "mindspore_serving/ccsrc/worker/grpc/worker_process.h",
    "chars": 1683,
    "preview": "/**\r\n * Copyright 2020 Huawei Technologies Co., Ltd\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License"
  },
  {
    "path": "mindspore_serving/ccsrc/worker/grpc/worker_server.cc",
    "chars": 833,
    "preview": "/**\r\n * Copyright 2020 Huawei Technologies Co., Ltd\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License"
  },
  {
    "path": "mindspore_serving/ccsrc/worker/grpc/worker_server.h",
    "chars": 3911,
    "preview": "/**\r\n * Copyright 2020 Huawei Technologies Co., Ltd\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License"
  },
  {
    "path": "mindspore_serving/ccsrc/worker/inference/inference.cc",
    "chars": 8479,
    "preview": "/**\n * Copyright 2020 Huawei Technologies Co., Ltd\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");"
  }
]

// ... and 273 more files (download for full content)

About this extraction

This page contains the full source code of the mindspore-ai/serving GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 473 files (2.7 MB), approximately 724.5k tokens, and a symbol index with 1985 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.

Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.

Copied to clipboard!