srv_utils.py 1.8 KB
Newer Older
B
BinLong 已提交
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
#coding:utf-8
# Copyright (c) 2019  PaddlePaddle Authors. All Rights Reserved.
#
# 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.
import os
import requests
B
BinLong 已提交
17
import time
18
import paddle
B
BinLong 已提交
19

B
BinLong 已提交
20
from random import randint, seed
21

B
BinLong 已提交
22
from paddlehub import version
B
BinLong 已提交
23
from paddlehub.common.server_config import default_stat_config
B
BinLong 已提交
24 25 26


def get_stat_server():
B
BinLong 已提交
27 28 29 30 31
    seed(int(time.time()))
    stat_env = os.environ.get('HUB_SERVER_STAT_SRV')
    if stat_env:
        server_list = stat_env.split(';')
    else:
32
        server_list = default_stat_config['server_list']
B
BinLong 已提交
33
    return server_list[randint(0, len(server_list) - 1)]
B
BinLong 已提交
34 35 36 37


def hub_stat(argv):
    try:
38 39 40 41 42
        params = {
            'command': ' '.join(argv),
            'hub_version': version.hub_version,
            'paddle_version': paddle.__version__
        }
B
BinLong 已提交
43 44 45 46
        stat_api = get_stat_server()
        r = requests.get(stat_api, params=params, timeout=0.5)
    except:
        pass
47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65


def uri_path(server_url, api):
    srv = server_url
    if server_url.endswith('/'):
        srv = server_url[:-1]
    if api.startswith('/'):
        srv += api
    else:
        api = '/' + api
        srv += api
    return srv


def hub_request(api, params):
    params['hub_version'] = version.hub_version
    params['paddle_version'] = paddle.__version__
    r = requests.get(api, params)
    return r.json()