Python Entry Points

基本原理

setup.py

entry_points={key: value}

  • key -> Plugin group
  • value -> [“Plugin name = Plugin value“, …]

Plugin value -> python_module:function_name

示例(vLLM)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# inside `setup.py` file
from setuptools import setup

setup(name='vllm_add_dummy_model',
version='0.1',
packages=['vllm_add_dummy_model'],
entry_points={
'vllm.general_plugins':
["register_dummy_model = vllm_add_dummy_model:register"]
})

# inside `vllm_add_dummy_model.py` file
def register():
from vllm import ModelRegistry

if "MyLlava" not in ModelRegistry.get_supported_archs():
ModelRegistry.register_model("MyLlava",
"vllm_add_dummy_model.my_llava:MyLlava")

参考资料