setup   A
last analyzed

Complexity

Total Complexity 3

Size/Duplication

Total Lines 76
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
wmc 3
eloc 61
dl 0
loc 76
rs 10
c 0
b 0
f 0

1 Function

Rating   Name   Duplication   Size   Complexity  
A package_files() 0 8 3
1
"""
2
KanbanView configuration file for py2app and pipy.
3
"""
4
5
import os
6
from setuptools import setup, find_packages  # type: ignore
7
8
9
def package_files(directory):
10
    """Automatically add data resources."""
11
    paths = []
12
    # pylint: disable=unused-variable
13
    for (path, _directories, filenames) in os.walk(directory):
14
        for filename in filenames:
15
            paths.append((directory, [os.path.join(path, filename)]))
16
    return paths
17
18
19
APP = ["bin/things-app"]
20
APP_NAME = "KanbanView"
21
AUTHOR = "Alexander Willner"
22
AUTHOR_MAIL = "[email protected]"
23
DESCRIPTON = "A simple read-only Kanban App for Things 3"
24
URL = "https://kanbanview.app"
25
VERSION = "2.9.0"
26
DATA_FILES = package_files("resources")
27
OPTIONS = {
28
    "argv_emulation": False,
29
    "iconfile": "resources/icon.icns",
30
    "plist": {
31
        "CFBundleName": APP_NAME,
32
        "CFBundleDisplayName": APP_NAME,
33
        "CFBundleGetInfoString": APP_NAME,
34
        "CFBundleIdentifier": "ws.willner.kanbanview",
35
        "CFBundleVersion": VERSION,
36
        "LSApplicationCategoryType": "public.app-category.productivity",
37
        "LSMinimumSystemVersion": "10.15.0",
38
        "NSHumanReadableCopyright": "Copyright 2021 " + AUTHOR,
39
    },
40
    "optimize": "2",
41
}
42
43
with open("README.md", "r", encoding="utf-8") as fh:
44
    LONG_DESRIPTION = fh.read()
45
46
setup(
47
    app=APP,
48
    author=AUTHOR,
49
    author_email=AUTHOR_MAIL,
50
    name="things3-api",
51
    description=DESCRIPTON,
52
    long_description=LONG_DESRIPTION,
53
    long_description_content_type="text/markdown",
54
    url=URL,
55
    packages=find_packages(),
56
    classifiers=[
57
        "Development Status :: 4 - Beta",
58
        "Programming Language :: Python :: 3",
59
        "License :: OSI Approved :: Apache Software License",
60
        "Operating System :: MacOS :: MacOS X",
61
        "Environment :: Console",
62
        "Framework :: Flask",
63
        "Natural Language :: English",
64
    ],
65
    python_requires=">=3.6",
66
    version=VERSION,
67
    data_files=DATA_FILES,
68
    options={"py2app": OPTIONS},
69
    setup_requires=["py2app"],
70
    install_requires=["things.py>=0.0.15", "pywebview>=3.0.0"],
71
    entry_points={
72
        "console_scripts": [
73
            "things-cli = things3.things3_cli:main",
74
            "things-api = things3.things3_api:main",
75
            "things-kanban = things3.things3_app:main",
76
        ]
77
    },
78
)
79