1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 |
- #!/usr/bin/env bash
- DL_DIR="/tmp/_paddlers_cv_repos"
- MODELS_DIR="paddlers/models"
- IMPORT_PREFIX="paddlers.models."
- mkdir -p "${DL_DIR}"
- trap "rm -rf ${DL_DIR}" EXIT
- function update_apis_from_remote_repo() {
- local src_mod_name="$1"
- local repo_url="$2"
-
- local dst_mod_name="${src_mod_name}"
- local dl_path="${DL_DIR}/${dst_mod_name}"
- local src_mod_path="${dl_path}/${src_mod_name}"
- local dst_mod_path="${MODELS_DIR}/${dst_mod_name}"
- # Clone default branch
- git clone --depth 1 "${repo_url}" "${dl_path}"
- if [ -d "${src_mod_path}" ]; then
- if [ -d "${dst_mod_path}" ]; then
- echo ""
- read -p "${dst_mod_path} already exists. Do you want to remove it?" yes_or_no
- if [ "${yes_or_no}" = 'yes' ]; then
- rm -rf "${dst_mod_path}"
- else
- return 0
- fi
- fi
- else
- return 1
- fi
- cp -r "${src_mod_path}" "${dst_mod_path}"
- # Record commit id
- git -C "${dl_path}" rev-parse HEAD > "${dst_mod_path}/hash.txt"
- }
- function update_import_statements() {
- local mod_name="$1"
- for f in $(find "${MODELS_DIR}/${mod_name}" -type f -name '*.py'); do
- sed -i -E "s/^([\s]*)import ${mod_name}/\1import ${IMPORT_PREFIX}${mod_name}/g" "$f"
- sed -i -E "s/from ${mod_name}(.*) import/from ${IMPORT_PREFIX}${mod_name}\1 import/g" "$f"
- done
- }
- update_apis_from_remote_repo 'ppcls' https://github.com/PaddlePaddle/PaddleClas.git
- # For paddleclas, we trim the `configs` directory
- if [ -d "${MODELS_DIR}/ppcls/configs" ]; then
- rm -rf "${MODELS_DIR}/ppcls/configs"
- fi
- update_import_statements 'ppcls'
- update_apis_from_remote_repo 'ppdet' https://github.com/PaddlePaddle/PaddleDetection.git
- update_import_statements 'ppdet'
- update_apis_from_remote_repo 'paddleseg' https://github.com/PaddlePaddle/PaddleSeg.git
- update_import_statements 'paddleseg'
- update_apis_from_remote_repo 'ppgan' https://github.com/PaddlePaddle/PaddleGAN.git
- update_import_statements 'ppgan'
|