mirror of
https://github.com/pentoo/pentoo-overlay
synced 2026-04-21 14:21:02 +02:00
python_dependencies: pyproject initial support
This commit is contained in:
parent
560fe5a45c
commit
24298db40f
1 changed files with 33 additions and 9 deletions
|
|
@ -7,6 +7,9 @@ import distutils.core
|
|||
import sys
|
||||
import re
|
||||
|
||||
import os
|
||||
import tomli
|
||||
|
||||
__author__ = "Anton Bolshakov"
|
||||
__license__ = "GPL-3"
|
||||
__email__ = "blshkv@pentoo.ch"
|
||||
|
|
@ -14,12 +17,6 @@ __email__ = "blshkv@pentoo.ch"
|
|||
#FIXME: missing deps if platform_system is specified, see:
|
||||
#dev-python/libsast
|
||||
|
||||
#TODO: https://github.com/uiri/toml
|
||||
#def read_toml
|
||||
#msoffcrypto-tool-4.12.0
|
||||
#or? >>> import pep517.meta
|
||||
#>>> import pprint
|
||||
|
||||
def portage_mapping(search):
|
||||
mapping = {
|
||||
"dev-python/androguard": "dev-util/androguard",
|
||||
|
|
@ -35,6 +32,7 @@ def portage_mapping(search):
|
|||
"dev-python/flask-WTF": "dev-python/flask-wtf",
|
||||
"dev-python/frida": "dev-python/frida-python",
|
||||
"dev-python/lief": "dev-util/lief",
|
||||
"dev-python/jinja2": "dev-python/jinja",
|
||||
"dev-python/Markdown": "dev-python/markdown",
|
||||
"dev-python/Pillow": "dev-python/pillow",
|
||||
"dev-python/prompt-toolkit": "dev-python/prompt_toolkit",
|
||||
|
|
@ -43,7 +41,10 @@ def portage_mapping(search):
|
|||
"dev-python/pyOpenSSL": "dev-python/pyopenssl",
|
||||
"dev-python/pypykatz": "app-exploits/pypykatz",
|
||||
"dev-python/pysocks": "dev-python/PySocks",
|
||||
"dev-python/python-iptools": "dev-python/iptools",
|
||||
"dev-python/PyMySQL": "dev-python/pymysql",
|
||||
"dev-python/PyYAML": "dev-python/pyyaml",
|
||||
"dev-python/flask-SocketIO": "dev-python/flask-socketio",
|
||||
"dev-python/PyJWT": "dev-python/pyjwt",
|
||||
"dev-python/psycopg2-binary": "dev-python/psycopg",
|
||||
"dev-python/redis": "dev-python/redis-py",
|
||||
|
|
@ -51,6 +52,7 @@ def portage_mapping(search):
|
|||
"dev-python/ruamel.yaml": "dev-python/ruamel-yaml",
|
||||
"dev-python/scapy": "net-analyzer/scapy",
|
||||
"dev-python/SQLAlchemy": "dev-python/sqlalchemy",
|
||||
"dev-python/sqlalchemy-Utc": "dev-python/sqlalchemy-utc",
|
||||
"dev-python/tls-parser": "dev-python/tls_parser",
|
||||
"dev-python/tornado": "www-servers/tornado",
|
||||
"dev-python/unicorn": "dev-util/unicorn[python]",
|
||||
|
|
@ -60,9 +62,27 @@ def portage_mapping(search):
|
|||
search = search.replace(key, mapping[key])
|
||||
return search
|
||||
|
||||
def main():
|
||||
# setup.py can be generated by flit for pyproject.toml projects as a workaround
|
||||
setup = distutils.core.run_setup("./setup.py")
|
||||
def pyproject_toml():
|
||||
with open('./pyproject.toml') as f:
|
||||
try:
|
||||
dependencies = tomli.load(f)['tool']['poetry']['dependencies']
|
||||
except:
|
||||
print("pyproject.toml not found")
|
||||
return 1
|
||||
#Debug
|
||||
#print(dependencies ) # List of static requirements
|
||||
for key, value in dependencies.items():
|
||||
if value == "*":
|
||||
print("\t"+portage_mapping("dev-python/" +key))
|
||||
else:
|
||||
print("\t>="+portage_mapping("dev-python/" + key + '-' + value.replace('^','')))
|
||||
|
||||
def distutils_setup():
|
||||
try:
|
||||
setup = distutils.core.run_setup("./setup.py")
|
||||
except FileNotFoundError:
|
||||
print("setup.py not found")
|
||||
return 1
|
||||
|
||||
if not hasattr(setup, 'install_requires') or len(setup.install_requires)==0:
|
||||
print("RDEPEND=\"\"")
|
||||
|
|
@ -94,5 +114,9 @@ def main():
|
|||
|
||||
print("\"")
|
||||
|
||||
def main():
|
||||
if pyproject_toml():
|
||||
distutils_setup()
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
|
|
|
|||
Loading…
Reference in a new issue