mirror of
https://github.com/pentoo/pentoo-overlay
synced 2026-05-08 20:43:38 +02:00
python_dependencies.py
This commit is contained in:
parent
2dce20fd56
commit
e28638c18a
1 changed files with 25 additions and 15 deletions
|
|
@ -4,17 +4,14 @@
|
|||
"""
|
||||
|
||||
import distutils.core
|
||||
import sys
|
||||
import re
|
||||
|
||||
__author__ = "Anton Bolshakov"
|
||||
__license__ = "GPL-3"
|
||||
__email__ = "blshkv@pentoo.ch"
|
||||
|
||||
#def split_re(delimiters, string, maxsplit=0):
|
||||
# import re
|
||||
# regexPattern = '|'.join(map(re.escape, delimiters))
|
||||
# return re.split(regexPattern, string, maxsplit)
|
||||
|
||||
def gentoo_mapping(search):
|
||||
def portage_mapping(search):
|
||||
mapping = {
|
||||
"dev-python/prompt-toolkit": "dev-python/prompt_toolkit",
|
||||
"dev-python/bs4": "dev-python/beautifulsoup:4",
|
||||
|
|
@ -24,27 +21,40 @@ def gentoo_mapping(search):
|
|||
"dev-python/frida": "dev-python/frida-python",
|
||||
"dev-python/lief": "dev-util/lief",
|
||||
"dev-python/androguard": "dev-util/androguard",
|
||||
"dev-python/tls-parser": "dev-python/tls_parser",
|
||||
}
|
||||
|
||||
for key in mapping:
|
||||
search = search.replace(key, mapping[key])
|
||||
return search
|
||||
|
||||
def split_re(delimiters, string, maxsplit=0):
|
||||
import re
|
||||
return re.split(delimiters, string, maxsplit)
|
||||
|
||||
def main():
|
||||
setup = distutils.core.run_setup("./setup.py")
|
||||
#print(setup.install_requires)
|
||||
print(setup.install_requires)
|
||||
|
||||
print("RDEPEND=\"")
|
||||
for i in setup.install_requires:
|
||||
requires = split_re(">=|==",i,1)
|
||||
if len(requires) == 2:
|
||||
print("\t>="+gentoo_mapping("dev-python/"+requires[0])+"-"+requires[1]+"[${PYTHON_USEDEP}]")
|
||||
|
||||
#match: my-na.me<5.0.0,>=4.0.0
|
||||
#and match: my-na.me
|
||||
pattern = '([-.\w]+)(>=|>|==|=<|<)?([\d.]+)?(,)?(>=|>|==|=<|<)?([\d.]+)?'
|
||||
match = re.search(pattern, i)
|
||||
# if match:
|
||||
# print("Match:", match.group(1), match.group(2), match.group(3), match.group(4), match.group(5), match.group(6))
|
||||
# print("Match0:", match.group(0) )
|
||||
# else:
|
||||
# print("pattern not found")
|
||||
|
||||
if match.group(2) == ">=" or match.group(2) == "==":
|
||||
print("\t>="+portage_mapping("dev-python/"+match.group(1))+"-"+ match.group(3)+"[${PYTHON_USEDEP}]")
|
||||
elif match.group(5) == ">=" or match.group(5) == "==":
|
||||
print("\t>="+portage_mapping("dev-python/"+match.group(1))+"-"+ match.group(6)+"[${PYTHON_USEDEP}]")
|
||||
elif match.group(1):
|
||||
print("\t"+portage_mapping("dev-python/"+match.group(1)))
|
||||
else:
|
||||
print("\t"+gentoo_mapping("dev-python/"+requires[0])+"[${PYTHON_USEDEP}]")
|
||||
print("Error: fail to detect dependency name")
|
||||
sys.exit(1)
|
||||
|
||||
print("\"")
|
||||
|
||||
if __name__ == '__main__':
|
||||
|
|
|
|||
Loading…
Reference in a new issue