forked from thevickypedia/Jarvis
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathsetup.py
98 lines (84 loc) · 3.37 KB
/
setup.py
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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
import os
from typing import List
from setuptools import setup
from version import version_info
base_url = 'https://github.com/thevickypedia/Jarvis'
# https://pypi.org/classifiers/
classifiers = [
'Development Status :: 5 - Production/Stable',
'Intended Audience :: Information Technology',
'Operating System :: MacOS :: MacOS X',
'Operating System :: Microsoft :: Windows :: Windows 10',
'Operating System :: POSIX :: Linux',
'License :: OSI Approved :: MIT License',
'Programming Language :: Python :: 3.8',
'Programming Language :: Python :: 3.9',
'Programming Language :: Python :: 3.10',
'Programming Language :: Python :: 3.11',
'Topic :: Multimedia :: Sound/Audio :: Speech',
'Topic :: Scientific/Engineering :: Human Machine Interfaces',
'Topic :: Scientific/Engineering :: Artificial Intelligence',
'Topic :: Home Automation',
'Topic :: Scientific/Engineering :: Image Recognition',
'Topic :: System :: Hardware :: Universal Serial Bus (USB) :: Wireless Controller',
'Topic :: Multimedia :: Sound/Audio :: Conversion',
'Topic :: Software Development :: Libraries :: Python Modules',
'Topic :: System :: Hardware :: Hardware Drivers',
'Topic :: System :: Hardware :: Symmetric Multi-processing',
'Topic :: System :: Hardware :: Universal Serial Bus (USB) :: Human Interface Device (HID)',
'Framework :: FastAPI',
'Framework :: Flake8',
'Framework :: AsyncIO',
'Framework :: Sphinx',
'Framework :: aiohttp',
'Natural Language :: English'
]
def read(name: str) -> str:
"""Reads the file that was received as argument.
Args:
name: Name of the file that has to be opened and read.
Returns:
str:
Content of the file that was read.
References:
https://pythonhosted.org/an_example_pypi_project/setuptools.html#setting-up-setup-py
"""
with open(os.path.join(os.path.dirname(__file__), name)) as file:
content = file.read()
return content
def dependencies() -> List[str]:
"""Gathers dependencies from requirements file.
Returns:
list:
List of dependencies to be installed.
"""
requirement_file = os.path.join(os.path.dirname(os.path.realpath(__file__)), 'lib', 'requirements.txt')
if os.path.isfile(requirement_file):
with open(requirement_file) as requirements:
install_requires = requirements.read().splitlines()
return install_requires
setup(
name='jarvis-ironman',
version='.'.join(str(c) for c in version_info),
description="IronMan's Jarvis with python.",
long_description=read('README.md'),
long_description_content_type='text/markdown',
author='Vignesh Sivanandha Rao',
author_email='[email protected]',
License='MIT',
url=base_url,
python_requires=">=3.8",
install_requires=dependencies(),
classifiers=classifiers,
keywords='python, home-automation, natural-language-processing, text-to-speech, speech-recognition, jarvis, '
'hotword-detection, virtual-assistant',
download_url=f'{base_url}/archive/master.zip',
project_urls={
'Source': base_url,
'Docs': 'https://thevickypedia.github.io/Jarvis',
'Release Notes': f'{base_url}/blob/master/release_notes.rst',
'Demo': 'https://vigneshrao.com/Jarvis/Jarvis_Demo.mp4',
'Bug Tracker': f'{base_url}/issues'
},
zip_safe=True
)