"""A setuptools based setup module. See: https://packaging.python.org/en/latest/distributing.html https://github.com/pypa/sampleproject """ # Always prefer setuptools over distutils from setuptools import setup, find_packages, Extension from setuptools.command.develop import develop from setuptools.command.install import install # To use a consistent encoding from codecs import open from os import path import os from subprocess import check_call import sysconfig class PostDevelopCommand(develop): """Post-installation for development mode.""" def run(self): check_call("apt-get -y install julius festival festlex-cmu python-xlib portaudio19-dev python-all-dev flac libnotify-bin python-egenix-mx-base-dev python-lxml python-nltk python-pyaudio python-httplib2 libxpm-dev".split()) check_call("wget -c http://www.speech.cs.cmu.edu/cmu_arctic/packed/cmu_us_clb_arctic-0.95-release.tar.bz2 -P /usr/share/festival/voices/english/".split()) check_call("tar jxf /usr/share/festival/voices/english/cmu_us_clb_arctic-0.95-release.tar.bz2 -C /usr/share/festival/voices/english/".split()) check_call("ln -fs /usr/share/festival/voices/english/cmu_us_clb_arctic /usr/share/festival/voices/english/cmu_us_clb_arctic_clunits".split()) check_call("cp /etc/festival.scm /etc/festival.scm.backup".split()) check_call("chmod o+w /etc/festival.scm".split()) with open("/etc/festival.scm", "a") as myfile: myfile.write("(set! voice_default 'voice_cmu_us_clb_arctic_clunits)") check_call("python -m spacy download en".split()) import nltk nltk.download("names") nltk.download("brown") nltk.download('wordnet') develop.run(self) class PostInstallCommand(install): """Post-installation for installation mode.""" def run(self): check_call("apt-get -y install julius festival festlex-cmu python-xlib portaudio19-dev python-all-dev flac libnotify-bin python-egenix-mx-base-dev python-lxml python-nltk python-pyaudio python-httplib2 libxpm-dev".split()) check_call("wget -c http://www.speech.cs.cmu.edu/cmu_arctic/packed/cmu_us_clb_arctic-0.95-release.tar.bz2 -P /usr/share/festival/voices/english/".split()) check_call("tar jxf /usr/share/festival/voices/english/cmu_us_clb_arctic-0.95-release.tar.bz2 -C /usr/share/festival/voices/english/".split()) check_call("ln -fs /usr/share/festival/voices/english/cmu_us_clb_arctic /usr/share/festival/voices/english/cmu_us_clb_arctic_clunits".split()) check_call("cp /etc/festival.scm /etc/festival.scm.backup".split()) check_call("chmod o+w /etc/festival.scm".split()) with open("/etc/festival.scm", "a") as myfile: myfile.write("(set! voice_default 'voice_cmu_us_clb_arctic_clunits)") check_call("python -m spacy download en".split()) import nltk nltk.download("names") nltk.download("brown") nltk.download('wordnet') install.run(self) here = path.abspath(path.dirname(__file__)) # Get the long description from the README file with open(path.join(here, 'README.rst'), encoding='utf-8') as f: long_description = f.read() cflags = sysconfig.get_config_var('CFLAGS').split() cflags += ['-g'] ldflags = sysconfig.get_config_var('LDFLAGS').split() ldflags += ['-L/usr/X11R6/lib', '-lXpm', '-lXext', '-lX11', '-lm'] setup( name='dragonfire', # Versions should comply with PEP440. For a discussion on single-sourcing # the version across setup.py and the project code, see # https://packaging.python.org/en/latest/single_source_version.html version='0.9.4', description='Dragonfire is an open source virtual assistant project for Ubuntu based Linux distributions', long_description=long_description, # The project's main homepage. url='https://github.com/mertyildiran/Dragonfire', # Author details author='Mehmet Mert Yildiran', author_email='mert.yildiran@bil.omu.edu.tr', # Choose your license license='MIT', # See https://pypi.python.org/pypi?%3Aaction=list_classifiers classifiers=[ # How mature is this project? Common values are # 3 - Alpha # 4 - Beta # 5 - Production/Stable 'Development Status :: 3 - Alpha', # Indicate who your project is intended for 'Intended Audience :: Developers', 'Topic :: Scientific/Engineering :: Human Machine Interfaces', # Pick your license as you wish (should match "license" above) 'License :: OSI Approved :: MIT License', # Intended language 'Natural Language :: English', # Target Operating System 'Operating System :: POSIX :: Linux', # Specify the Python versions you support here. In particular, ensure # that you indicate whether you support Python 2, Python 3 or both. 'Programming Language :: Python :: 2.7', ], # What does your project relate to? keywords='virtual assistant machine learining artifical intelligence chat bot', # You can just specify the packages manually here if your project is # simple. Or you can use find_packages(). packages=find_packages(), # Alternatively, if you want to distribute just a my_module.py, uncomment # this: # py_modules=["my_module"], # List run-time dependencies here. These will be installed by pip when # your project is installed. For an analysis of "install_requires" vs pip's # requirements files see: # https://packaging.python.org/en/latest/requirements.html install_requires=['wikipedia','PyUserInput','google-api-python-client','SpeechRecognition','tinydb','youtube_dl','spacy'], # List additional groups of dependencies here (e.g. development # dependencies). You can install these using the following syntax, # for example: # $ pip install -e .[dev,test] extras_require={ 'optionals': ['egenix-mx-base','lxml','nltk','pyaudio','httplib2>=0.9.1'] }, # If there are data files included in your packages that need to be # installed, specify them here. If using Python 2.6 or less, then these # have to be included in MANIFEST.in as well. package_data={ # If any package contains *.txt files, include them: '': ['*.txt'], '': ['*.ini'], '': ['*.jconf'], '': ['*.dfa'], '': ['*.dict'], '': ['*.grammar'], '': ['*.term'], '': ['*.voca'], '': ['*.aiml'], }, # Although 'package_data' is the preferred approach, in some case you may # need to place data files outside of your packages. See: # http://docs.python.org/3.4/distutils/setupscript.html#installing-additional-files # noqa # In this case, 'data_file' will be installed into '/my_data' data_files=[], # To provide executable scripts, use entry points in preference to the # "scripts" keyword. Entry points provide cross-platform support and allow # pip to create the appropriate form of executable for the target platform. entry_points={ 'console_scripts': [ 'dragonfire=dragonfire:initiate', ], }, #cmdclass={ # 'develop': PostDevelopCommand, # 'install': PostInstallCommand, #}, ext_modules=[Extension('realhud', ['dragonfire/realhud/realhud.c'], extra_compile_args=cflags, extra_link_args=ldflags ) ] )