Skip to content

Commit 87f07fd

Browse files
authoredFeb 14, 2023
Various improvements to the SDK generation process (cvat-ai#5678)
1 parent 89f403b commit 87f07fd

17 files changed

+24
-288
lines changed
 

‎.github/workflows/full.yml

+1-3
Original file line numberDiff line numberDiff line change
@@ -78,9 +78,7 @@ jobs:
7878
--entrypoint /bin/bash -u root cvat/server \
7979
-c 'python manage.py spectacular --file /transfer/schema.yml'
8080
pip3 install --user -r cvat-sdk/gen/requirements.txt
81-
cd cvat-sdk/
82-
gen/generate.sh
83-
cd ..
81+
./cvat-sdk/gen/generate.sh
8482
8583
cp -r cvat-sdk/* /tmp/cvat_sdk/
8684

‎.github/workflows/helm.yml

+1-3
Original file line numberDiff line numberDiff line change
@@ -72,9 +72,7 @@ jobs:
7272
kubectl exec $(kubectl get pods -l component=server -o jsonpath='{.items[0].metadata.name}') -- /bin/bash -c "python manage.py spectacular --file /tmp/schema.yml"
7373
kubectl cp $(kubectl get pods -l component=server -o jsonpath='{.items[0].metadata.name}'):/tmp/schema.yml cvat-sdk/schema/schema.yml
7474
pip3 install --user -r cvat-sdk/gen/requirements.txt
75-
cd cvat-sdk/
76-
gen/generate.sh
77-
cd ..
75+
./cvat-sdk/gen/generate.sh
7876
7977
- name: Install test requirements
8078
run: |

‎.github/workflows/main.yml

+1-3
Original file line numberDiff line numberDiff line change
@@ -79,9 +79,7 @@ jobs:
7979
--entrypoint /bin/bash -u root cvat/server \
8080
-c 'python manage.py spectacular --file /transfer/schema.yml'
8181
pip3 install --user -r cvat-sdk/gen/requirements.txt
82-
cd cvat-sdk/
83-
gen/generate.sh
84-
cd ..
82+
./cvat-sdk/gen/generate.sh
8583
8684
cp -r cvat-sdk/* /tmp/cvat_sdk/
8785

‎.github/workflows/schedule.yml

+1-3
Original file line numberDiff line numberDiff line change
@@ -203,9 +203,7 @@ jobs:
203203
--entrypoint /bin/bash -u root cvat/server \
204204
-c 'python manage.py spectacular --file /transfer/schema.yml'
205205
pip3 install --user -r cvat-sdk/gen/requirements.txt
206-
cd cvat-sdk/
207-
gen/generate.sh
208-
cd ..
206+
./cvat-sdk/gen/generate.sh
209207
210208
pip3 install --user 'cvat-sdk/[pytorch]'
211209
pip3 install --user cvat-cli/

‎cvat-sdk/.gitignore

+1-3
Original file line numberDiff line numberDiff line change
@@ -72,8 +72,6 @@ schema/
7272
# Generated code
7373
/cvat_sdk/api_client/
7474
/cvat_sdk/version.py
75-
/requirements/
7675
/docs/
76+
/requirements/api_client.txt
7777
/setup.py
78-
/README.md
79-
/MANIFEST.in

‎cvat-sdk/.openapi-generator-ignore

+2
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
#!docs/README.md
2424

2525
# For safety
26+
/MANIFEST.in
2627
/cvat_sdk/__init__.py
2728
/config
2829
/gen
@@ -31,6 +32,7 @@
3132
/types.py
3233

3334
# Don't generate these files
35+
/README.md
3436
/git_push.sh
3537
/setup.cfg
3638
/test-requirements.txt

‎cvat-sdk/.remarkignore

-1
Original file line numberDiff line numberDiff line change
@@ -1,2 +1 @@
11
cvat-sdk/docs/
2-
cvat-sdk/README.md
File renamed without changes.
File renamed without changes.

‎cvat-sdk/gen/generate.sh

+15-18
Original file line numberDiff line numberDiff line change
@@ -11,42 +11,39 @@ GENERATOR_VERSION="v6.0.1"
1111
VERSION="2.3.0"
1212
LIB_NAME="cvat_sdk"
1313
LAYER1_LIB_NAME="${LIB_NAME}/api_client"
14-
DST_DIR="."
15-
TEMPLATE_DIR="gen"
14+
DST_DIR="$(cd "$(dirname -- "$0")/.." && pwd)"
15+
TEMPLATE_DIR_NAME="gen"
16+
TEMPLATE_DIR="$DST_DIR/$TEMPLATE_DIR_NAME"
1617
POST_PROCESS_SCRIPT="${TEMPLATE_DIR}/postprocess.py"
1718

18-
mkdir -p "${DST_DIR}/"
19-
rm -f -r "${DST_DIR}/docs" "${DST_DIR}/${LAYER1_LIB_NAME}" "requirements/"
20-
cp "${TEMPLATE_DIR}/templates/openapi-generator/.openapi-generator-ignore" "${DST_DIR}/"
19+
rm -f -r "${DST_DIR}/docs" "${DST_DIR}/${LAYER1_LIB_NAME}" \
20+
"${DST_DIR}/requirements/api_client.txt"
2121

2222
# Pass template dir here
2323
# https://github.com/OpenAPITools/openapi-generator/issues/8420
24-
docker run --rm -v "$PWD":"/local" -u "$(id -u)":"$(id -g)" \
24+
docker run --rm -v "$DST_DIR:/local" -u "$(id -u)":"$(id -g)" \
2525
openapitools/openapi-generator-cli:${GENERATOR_VERSION} generate \
26-
-t "/local/${TEMPLATE_DIR}/templates/openapi-generator/" \
26+
-t "/local/${TEMPLATE_DIR_NAME}/templates/openapi-generator/" \
2727
-i "/local/schema/schema.yml" \
28-
--config "/local/${TEMPLATE_DIR}/generator-config.yml" \
28+
--config "/local/${TEMPLATE_DIR_NAME}/generator-config.yml" \
29+
-p "packageVersion=$VERSION" \
2930
-g python \
30-
-o "/local/${DST_DIR}/"
31+
-o "/local/"
3132

32-
sed -e "s|{{packageVersion}}|${VERSION}|g" "${TEMPLATE_DIR}/templates/version.py.template" > "${DST_DIR}/${LIB_NAME}/version.py"
33-
cp -r "${TEMPLATE_DIR}/templates/requirements" "${DST_DIR}/"
34-
cp -r "${TEMPLATE_DIR}/templates/MANIFEST.in" "${DST_DIR}/"
33+
echo "VERSION = \"$VERSION\"" > "${DST_DIR}/${LIB_NAME}/version.py"
3534
mv "${DST_DIR}/requirements.txt" "${DST_DIR}/requirements/api_client.txt"
3635

3736
# Do custom postprocessing for code files
38-
"${POST_PROCESS_SCRIPT}" --schema "schema/schema.yml" --input-path "${DST_DIR}/${LIB_NAME}"
37+
"${POST_PROCESS_SCRIPT}" --schema "${DST_DIR}/schema/schema.yml" \
38+
--input-path "${DST_DIR}/${LIB_NAME}"
3939

4040
# Do custom postprocessing for docs files
41-
"${POST_PROCESS_SCRIPT}" --schema "schema/schema.yml" --input-path "${DST_DIR}/docs" --file-ext '.md'
42-
"${POST_PROCESS_SCRIPT}" --schema "schema/schema.yml" --input-path "${DST_DIR}/README.md"
41+
"${POST_PROCESS_SCRIPT}" --schema "${DST_DIR}/schema/schema.yml" \
42+
--input-path "${DST_DIR}/docs" --file-ext '.md'
4343

4444
API_DOCS_DIR="${DST_DIR}/docs/apis/"
4545
MODEL_DOCS_DIR="${DST_DIR}/docs/models/"
4646
mkdir "${API_DOCS_DIR}"
4747
mkdir "${MODEL_DOCS_DIR}"
4848
mv "${DST_DIR}/docs/"*Api.md "${API_DOCS_DIR}"
4949
mv "${DST_DIR}/docs/"*.md "${MODEL_DOCS_DIR}"
50-
mv "${DST_DIR}/README.md" "${DST_DIR}/docs/"
51-
52-
cp "${TEMPLATE_DIR}/templates/README.md.template" "${DST_DIR}/README.md"

‎cvat-sdk/gen/generator-config.yml

-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
additionalProperties:
22
projectName: "cvat_sdk"
3-
packageVersion: "2.0-alpha"
43
packageUrl: "https://github.com/cvat-ai/cvat"
54
packageName: "cvat_sdk.api_client"
65
initRequiredVars: true

‎cvat-sdk/gen/postprocess.py

+2
Original file line numberDiff line numberDiff line change
@@ -161,6 +161,8 @@ def main(args=None):
161161
processor.process_dir(args.input_path, file_ext=args.file_ext)
162162
elif osp.isfile(args.input_path):
163163
processor.process_file(args.input_path)
164+
else:
165+
return f"error: input {args.input_path} is neither a file nor a directory"
164166

165167
return 0
166168

‎cvat-sdk/gen/templates/openapi-generator/.openapi-generator-ignore

-40
This file was deleted.

‎cvat-sdk/gen/templates/openapi-generator/README.mustache

-36
This file was deleted.

‎cvat-sdk/gen/templates/openapi-generator/README_common.mustache

-176
This file was deleted.

‎cvat-sdk/gen/templates/version.py.template

-1
This file was deleted.
File renamed without changes.

0 commit comments

Comments
 (0)
Please sign in to comment.