提交 4696569b 编写于 作者: W wuzewu

add search command

上级 0ff7ae70
......@@ -20,4 +20,5 @@ from . import version
from . import list
from . import install
from . import uninstall
from . import search
from . import help
# 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.
from __future__ import absolute_import
from __future__ import division
from __future__ import print_function
from paddle_hub.tools.logger import logger
from paddle_hub.commands.base_command import BaseCommand
from paddle_hub.tools import utils
from paddle_hub.tools.downloader import default_downloader
from paddle_hub.module.manager import default_manager
class SearchCommand(BaseCommand):
name = "search"
def __init__(self, name):
super(SearchCommand, self).__init__(name)
self.show_in_help = True
self.description = "Search a paddle hub module with keyword."
def exec(self, argv):
module_name = argv[0]
module_list = default_downloader.search_module(module_name)
text = "\n"
text += " %-20s\t\t%s\n" % ("ModuleName", "ModuleVersion")
text += " %-20s\t\t%s\n" % ("--", "--")
for module_name, module_version in module_list:
text += " %-20s\t\t%s\n" % (module_name, module_version)
print(text)
command = SearchCommand.instance()
......@@ -131,6 +131,23 @@ class Downloader:
retry_limit=retry_limit)
return self.uncompress(file, delete_file=delete_file)
def search_module(self, module_name):
if not self.module_list_file:
#TODO(wuzewu): download file in tmp directory
self.module_list_file = self.download_file(
url="https://paddlehub.bj.bcebos.com/module_file_list.csv")
self.module_list_file = csv_reader.read(self.module_list_file)
match_module_index_list = [
index
for index, module in enumerate(self.module_list_file['module_name'])
if module_name in module
]
return [(self.module_list_file['module_name'][index],
self.module_list_file['version'][index])
for index in match_module_index_list]
def get_module_url(self, module_name, version=None):
if not self.module_list_file:
#TODO(wuzewu): download file in tmp directory
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册