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
OpenDAS
MMCV
Commits
fabee855
"docs/git@developer.sourcefind.cn:OpenDAS/torchaudio.git" did not exist on "30c7077b5119664a23b0d1b266ff6856a7c3d818"
Unverified
Commit
fabee855
authored
May 15, 2020
by
Jerry Jiarui XU
Committed by
GitHub
May 15, 2020
Browse files
Add requirement parser (#286)
parent
eb93599e
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
87 additions
and
10 deletions
+87
-10
mmcv/version.py
mmcv/version.py
+1
-1
setup.py
setup.py
+86
-9
No files found.
mmcv/version.py
View file @
fabee855
# Copyright (c) Open-MMLab. All rights reserved.
# Copyright (c) Open-MMLab. All rights reserved.
__version__
=
'0.5.
3
'
__version__
=
'0.5.
4
'
setup.py
View file @
fabee855
...
@@ -22,15 +22,6 @@ def choose_requirement(primary, secondary):
...
@@ -22,15 +22,6 @@ def choose_requirement(primary, secondary):
return
str
(
primary
)
return
str
(
primary
)
install_requires
=
[
'addict'
,
'numpy'
,
'pyyaml'
,
'yapf'
]
# If first not installed install second package
CHOOSE_INSTALL_REQUIRES
=
[(
'opencv-python-headless>=3'
,
'opencv-python>=3'
)]
for
main
,
secondary
in
CHOOSE_INSTALL_REQUIRES
:
install_requires
.
append
(
choose_requirement
(
main
,
secondary
))
def
readme
():
def
readme
():
with
open
(
'README.rst'
,
encoding
=
'utf-8'
)
as
f
:
with
open
(
'README.rst'
,
encoding
=
'utf-8'
)
as
f
:
content
=
f
.
read
()
content
=
f
.
read
()
...
@@ -44,6 +35,92 @@ def get_version():
...
@@ -44,6 +35,92 @@ 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 requirements file but strips
specific versioning information.
Args:
fname (str): path to requirements 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())"
"""
import
sys
from
os.path
import
exists
import
re
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
]
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
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 first not installed install second package
CHOOSE_INSTALL_REQUIRES
=
[(
'opencv-python-headless>=3'
,
'opencv-python>=3'
)]
install_requires
=
parse_requirements
()
for
main
,
secondary
in
CHOOSE_INSTALL_REQUIRES
:
install_requires
.
append
(
choose_requirement
(
main
,
secondary
))
if
platform
.
system
()
==
'Darwin'
:
if
platform
.
system
()
==
'Darwin'
:
extra_compile_args
=
[
'-stdlib=libc++'
]
extra_compile_args
=
[
'-stdlib=libc++'
]
extra_link_args
=
[
'-stdlib=libc++'
]
extra_link_args
=
[
'-stdlib=libc++'
]
...
...
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