Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
ModelZoo
Qwen_lmdeploy
Commits
d2c9caa4
Unverified
Commit
d2c9caa4
authored
Jul 05, 2023
by
RunningLeon
Committed by
GitHub
Jul 05, 2023
Browse files
Update setup for build python wheel (#61)
parent
08252a83
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
84 additions
and
1 deletion
+84
-1
CMakeLists.txt
CMakeLists.txt
+4
-1
setup.py
setup.py
+80
-0
No files found.
CMakeLists.txt
View file @
d2c9caa4
...
@@ -40,6 +40,7 @@ if(NOT USE_TRITONSERVER_DATATYPE)
...
@@ -40,6 +40,7 @@ if(NOT USE_TRITONSERVER_DATATYPE)
option
(
USE_TRITONSERVER_DATATYPE
"Build triton backend for triton server"
OFF
)
option
(
USE_TRITONSERVER_DATATYPE
"Build triton backend for triton server"
OFF
)
endif
()
endif
()
option
(
BUILD_PY_FFI
"Build python ffi"
ON
)
option
(
BUILD_PY_FFI
"Build python ffi"
ON
)
option
(
BUILD_TEST
"Build tests"
OFF
)
include
(
FetchContent
)
include
(
FetchContent
)
...
@@ -283,7 +284,9 @@ link_directories(
...
@@ -283,7 +284,9 @@ link_directories(
add_subdirectory
(
src
)
add_subdirectory
(
src
)
add_subdirectory
(
examples
)
add_subdirectory
(
examples
)
add_subdirectory
(
tests
)
if
(
BUILD_TEST
)
add_subdirectory
(
tests
)
endif
()
# # Mesaure the compile time
# # Mesaure the compile time
option
(
MEASURE_BUILD_TIME
"Measure the build time of each module"
OFF
)
option
(
MEASURE_BUILD_TIME
"Measure the build time of each module"
OFF
)
...
...
setup.py
View file @
d2c9caa4
import
os
import
os
import
re
import
sys
from
setuptools
import
find_packages
,
setup
from
setuptools
import
find_packages
,
setup
...
@@ -18,6 +20,81 @@ def get_version():
...
@@ -18,6 +20,81 @@ def get_version():
return
locals
()[
'__version__'
]
return
locals
()[
'__version__'
]
def
parse_requirements
(
fname
=
'requirements.txt'
,
with_version
=
True
):
"""Parse the package dependencies listed in a file but strips specific
versioning information.
Args:
fname (str): path to the file
with_version (bool, default=False): if True include version specs
Returns:
List[str]: list of requirements items
CommandLine:
python -c "import setup; print(setup.parse_requirements())"
"""
require_fpath
=
fname
def
parse_line
(
line
):
"""Parse information from a line in a requirements text file."""
if
line
.
startswith
(
'-r '
):
# Allow specifying requirements in other files
target
=
line
.
split
(
' '
)[
1
]
for
info
in
parse_require_file
(
target
):
yield
info
else
:
info
=
{
'line'
:
line
}
if
line
.
startswith
(
'-e '
):
info
[
'package'
]
=
line
.
split
(
'#egg='
)[
1
]
elif
'@git+'
in
line
:
info
[
'package'
]
=
line
else
:
# Remove versioning from the package
pat
=
'('
+
'|'
.
join
([
'>='
,
'=='
,
'>'
])
+
')'
parts
=
re
.
split
(
pat
,
line
,
maxsplit
=
1
)
parts
=
[
p
.
strip
()
for
p
in
parts
]
info
[
'package'
]
=
parts
[
0
]
if
len
(
parts
)
>
1
:
op
,
rest
=
parts
[
1
:]
if
';'
in
rest
:
# Handle platform specific dependencies
# http://setuptools.readthedocs.io/en/latest/setuptools.html#declaring-platform-specific-dependencies
version
,
platform_deps
=
map
(
str
.
strip
,
rest
.
split
(
';'
))
info
[
'platform_deps'
]
=
platform_deps
else
:
version
=
rest
# NOQA
info
[
'version'
]
=
(
op
,
version
)
yield
info
def
parse_require_file
(
fpath
):
with
open
(
fpath
,
'r'
)
as
f
:
for
line
in
f
.
readlines
():
line
=
line
.
strip
()
if
line
and
not
line
.
startswith
(
'#'
):
for
info
in
parse_line
(
line
):
yield
info
def
gen_packages_items
():
if
os
.
path
.
exists
(
require_fpath
):
for
info
in
parse_require_file
(
require_fpath
):
parts
=
[
info
[
'package'
]]
if
with_version
and
'version'
in
info
:
parts
.
extend
(
info
[
'version'
])
if
not
sys
.
version
.
startswith
(
'3.4'
):
# apparently package_deps are broken in 3.4
platform_deps
=
info
.
get
(
'platform_deps'
)
if
platform_deps
is
not
None
:
parts
.
append
(
';'
+
platform_deps
)
item
=
''
.
join
(
parts
)
yield
item
packages
=
list
(
gen_packages_items
())
return
packages
if
__name__
==
'__main__'
:
if
__name__
==
'__main__'
:
setup
(
name
=
'lmdeploy'
,
setup
(
name
=
'lmdeploy'
,
version
=
get_version
(),
version
=
get_version
(),
...
@@ -28,6 +105,9 @@ if __name__ == '__main__':
...
@@ -28,6 +105,9 @@ if __name__ == '__main__':
author_email
=
'openmmlab@gmail.com'
,
author_email
=
'openmmlab@gmail.com'
,
packages
=
find_packages
(
packages
=
find_packages
(
exclude
=
(
'lmdeploy/serve/turbomind/triton_models'
,
)),
exclude
=
(
'lmdeploy/serve/turbomind/triton_models'
,
)),
include_package_data
=
True
,
setup_requires
=
parse_requirements
(
'requirements.txt'
),
install_requires
=
parse_requirements
(
'requirements.txt'
),
classifiers
=
[
classifiers
=
[
'Programming Language :: Python :: 3.8'
,
'Programming Language :: Python :: 3.8'
,
'Programming Language :: Python :: 3.9'
,
'Programming Language :: Python :: 3.9'
,
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment