summaryrefslogtreecommitdiff
path: root/pkgtools/url2pkg/files/python/url2pkg.py
blob: 5b1798e23b284815f84f0348852304cb35683ac1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
# $NetBSD: url2pkg.py,v 1.2 2022/08/25 19:56:07 rillig Exp $
#
# Forwards the module metadata from distutils and setuptools to url2pkg.

def print_depends(varname, depends):
    for dep in depends:
        print('%s\t%s%s' % (varname, dep.replace(' ', ''), '' if '>' in dep else '>=0'))


def print_var(varname, value):
    if value != '':
        print('var\t%s\t%s' % (varname, value))


def print_cmd(cmd, arg):
    print('\t'.join(('cmd', cmd, arg)))


def print_license(license_name):
    if license_name == '':
        return
    print_cmd('license', license_name)
    print_cmd(
        'license_default',
        '%s # TODO: from setup.py; needs to be adjusted' % license_name)


def setup(**kwargs):
    print_depends('DEPENDS', kwargs.get('requires', []))  # only for distutils.core
    print_depends('DEPENDS', kwargs.get('install_requires', []))
    print_depends('TEST_DEPENDS', kwargs.get('tests_require', []))
    print_depends('BUILD_DEPENDS', kwargs.get('extras_require', {}).get('dev', []))
    print_depends('BUILD_DEPENDS', kwargs.get('setup_requires', []))
    print_var('COMMENT', kwargs.get('description', '').rstrip('.'))
    print_var('HOMEPAGE', kwargs.get('url', ''))
    print_license(kwargs.get('license', ''))

    # TODO: implement 'python_requires'
    #  example pkgsrc package: devel/py-futures
    #  example values: >=2.6, <3, >=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*