Spaces:
				
			
			
	
			
			
		Running
		
			on 
			
			Zero
	
	
	
			
			
	
	
	
	
		
		
		Running
		
			on 
			
			Zero
	| # Copyright (c) 2022-2023, NVIDIA CORPORATION. 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. | |
| .PHONY: clean clean-build clean-tritonserver clean-pyc clean-docs clean-test docs lint test coverage release dist build-triton extract-triton install install-dev help | |
| .DEFAULT_GOAL := help | |
| define BROWSER_PYSCRIPT | |
| import os, webbrowser, sys | |
| from urllib.request import pathname2url | |
| webbrowser.open("file://" + pathname2url(os.path.abspath(sys.argv[1]))) | |
| endef | |
| export BROWSER_PYSCRIPT | |
| define PRINT_HELP_PYSCRIPT | |
| import re, sys | |
| for line in sys.stdin: | |
| match = re.match(r'^([a-zA-Z_-]+):.*?## (.*)$$', line) | |
| if match: | |
| target, help = match.groups() | |
| print("%-20s %s" % (target, help)) | |
| endef | |
| export PRINT_HELP_PYSCRIPT | |
| BROWSER := python -c "$$BROWSER_PYSCRIPT" | |
| PIP_INSTALL := pip install --extra-index-url https://pypi.ngc.nvidia.com | |
| TRITONSERVER_IMAGE_VERSION = 23.10 | |
| TRITONSERVER_IMAGE_NAME = nvcr.io/nvidia/tritonserver:$(TRITONSERVER_IMAGE_VERSION)-pyt-python-py3 | |
| TRITONSERVER_OUTPUT_DIR = ${PWD}/pytriton/tritonserver | |
| TRITONSERVER_BASENAME = pytriton | |
| PYTRITON_IMAGE_NAME = $(TRITONSERVER_BASENAME):$(TRITONSERVER_IMAGE_VERSION) | |
| # to set PLATFORM from outside, use: make PLATFORM=linux/arm64; | |
| # correct values are: linux/amd64 (default), linux/arm64 | |
| PLATFORM=linux/amd64 | |
| help: | |
| clean: clean-build clean-pyc clean-test clean-tritonserver clean-docs ## remove all build, tritonserver, test, docs, coverage and Python artifacts | |
| clean-build: ## remove build artifacts | |
| rm -fr build/ | |
| rm -fr dist/ | |
| rm -fr .eggs/ | |
| find . -name '*.egg-info' -exec rm -fr {} + | |
| find . -name '*.egg' -exec rm -f {} + | |
| clean-tritonserver: | |
| rm -fr pytriton/tritonserver | |
| clean-pyc: ## remove Python file artifacts | |
| find . -name '*.pyc' -exec rm -f {} + | |
| find . -name '*.pyo' -exec rm -f {} + | |
| find . -name '*~' -exec rm -f {} + | |
| find . -name '__pycache__' -exec rm -fr {} + | |
| clean-docs: ## remove test and coverage artifacts | |
| rm -rf site | |
| clean-test: ## remove test and coverage artifacts | |
| rm -fr .tox/ | |
| rm -f .coverage | |
| rm -fr htmlcov/ | |
| rm -fr .pytest_cache | |
| rm -fr .pytype/ | |
| docs: clean-docs ## generate site | |
| cp CHANGELOG.md docs | |
| cp CONTRIBUTING.md docs | |
| cp LICENSE docs/LICENSE.md | |
| cp examples/README.md docs/examples.md | |
| mkdocs build --clean | |
| docs-serve: docs | |
| mkdocs serve | |
| lint: ## check style with pre-commit and pytype | |
| tox -e pytype,pre-commit --develop | |
| test: ## run tests on every Python version with tox | |
| tox --develop --skip-missing-interpreters | |
| coverage: ## check code coverage quickly with the default Python | |
| coverage run --source pytriton -m pytest | |
| coverage report -m | |
| coverage html | |
| $(BROWSER) htmlcov/index.html | |
| dist: clean build-triton extract-triton ## builds source and wheel package | |
| bash ./scripts/build_wheel.sh $(PLATFORM) | |
| ls -lh dist | |
| find ./dist -iname *-linux*.whl -type f -exec bash ./scripts/add_libs_to_wheel.sh $(PYTRITON_IMAGE_NAME) $(TRITONSERVER_OUTPUT_DIR) {} $(PLATFORM) \; | |
| find ./dist -iname *-linux*.whl -type f -delete | |
| ls -lh dist | |
| twine check dist/* | |
| build-triton: ## build Triton with Python Stubs | |
| bash ./scripts/build_triton.sh $(TRITONSERVER_IMAGE_NAME) $(PYTRITON_IMAGE_NAME) $(PLATFORM) | |
| echo "export PYTRITON_IMAGE_NAME=$(PYTRITON_IMAGE_NAME)" > .env | |
| extract-triton: build-triton ## extract Triton binaries and libraries | |
| # changing dst path, change also in clean-build and pyproject.toml | |
| bash ./scripts/extract_triton.sh $(PYTRITON_IMAGE_NAME) $(TRITONSERVER_OUTPUT_DIR) $(PLATFORM) | |
| install: clean extract-triton ## install the package to the active Python's site-packages | |
| $(PIP_INSTALL) --upgrade pip | |
| $(PIP_INSTALL) . | |
| install-dev: clean-build clean-pyc | |
| $(PIP_INSTALL) --upgrade pip | |
| $(PIP_INSTALL) -e .[dev] | |