Browse Source

First review of setup.py + add _version.py file. (cherry-picked and modified by @thomaspierson)

nico 8 years ago
parent
commit
dc5e91d7c4
2 changed files with 38 additions and 76 deletions
  1. 3 0
      kalliope/_version.py
  2. 35 76
      setup.py

+ 3 - 0
kalliope/_version.py

@@ -0,0 +1,3 @@
+# https://www.python.org/dev/peps/pep-0440/
+# version based on epoch
+version_str = "2016.11.20"

+ 35 - 76
setup.py

@@ -1,84 +1,61 @@
-"""A setuptools based setup module.
-
-See:
-https://packaging.python.org/en/latest/distributing.html
-https://github.com/pypa/sampleproject
-"""
-
-# Always prefer setuptools over distutils
+#! /usr/bin/env python
+# -*- coding: utf-8 -*-
+import re
 from setuptools import setup, find_packages
-# To use a consistent encoding
 from codecs import open
 from os import path
 
-here = path.abspath(path.dirname(__file__))
+basedir = path.abspath(path.dirname(__file__))
 
 # Get the long description from the README file
-with open(path.join(here, 'README.md'), encoding='utf-8') as f:
+with open(path.join(basedir, 'README.md'), encoding='utf-8') as f:
     long_description = f.read()
 
-setup(
-    name='kalliope',
 
-    # 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.1.0',
+# locate our version number
+def read_version_py(file_name):
+    try:
+        version_string_line = open(file_name, "rt").read()
+    except EnvironmentError:
+        return None
+    else:
+        version_regex = r"^version_str = ['\"]([^'\"]*)['\"]"
+        mo = re.search(version_regex, version_string_line, re.M)
+        if mo:
+            return mo.group(1)
+
+VERSION_PY_FILENAME = 'kalliope/_version.py'
+version = read_version_py(VERSION_PY_FILENAME)
 
+setup(
+    name='kalliope',
+    version=version,
     description='Kalliope is a modular always-on voice controlled personal assistant designed for home automation.',
     long_description=long_description,
-
-    # The project's main homepage.
     url='https://github.com/kalliope-project/kalliope',
-
-    # Author details
-    author='Kalliope developers',
-    author_email='kalliope@noreply.github.com',
-
-    # Choose your license
+    author='The dream team of Kalliope-project',
+    author_email='kalliope-project@googlegroups.com',
     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
+        'Environment :: Console',
         'Intended Audience :: Developers',
-        'Topic :: Software Development :: Build Tools',
-
-        # Pick your license as you wish (should match "license" above)
         'License :: OSI Approved :: MIT License',
-
-        # Specify the Python versions you support here. In particular, ensure
-        # that you indicate whether you support Python 2, Python 3 or both.
+        'Operating System :: POSIX :: Linux',
         'Programming Language :: Python :: 2',
-        'Programming Language :: Python :: 2.6',
         'Programming Language :: Python :: 2.7',
-        'Programming Language :: Python :: 3',
-        'Programming Language :: Python :: 3.3',
-        'Programming Language :: Python :: 3.4',
-        'Programming Language :: Python :: 3.5',
+        'Topic :: Home Automation',
+        'Topic :: Multimedia :: Sound/Audio :: Speech',
+        'Topic :: Multimedia :: Sound/Audio :: Sound Synthesis',
+        'Topic :: Scientific/Engineering :: Artificial Intelligence'
     ],
+    keywords='assistant bot TTS STT',
 
-    # What does your project relate to?
-    keywords='voice control assistant',
-
-    # You can just specify the packages manually here if your project is
-    # simple. Or you can use find_packages().
+    # included packages
     packages=find_packages(exclude=['contrib', 'docs', 'tests']),
 
-    # 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
+    # required libs
     install_requires=[
         'SpeechRecognition==3.4.6',
         'markupsafe==0.23',
@@ -99,18 +76,8 @@ setup(
         'wikipedia==1.4.0',
     ],
 
-    # 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={
-        'dev': ['check-manifest'],
-        'test': ['coverage'],
-    },
 
-    # 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.
+    # additional files
     package_data={
         'kalliope': [
             'brains/*.yml',
@@ -123,15 +90,7 @@ setup(
          ],
     },
 
-    # 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 '<sys.prefix>/my_data'
-    #data_files=[('my_data', ['data/data_file'])],
-
-    # 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 point script
     entry_points={
         'console_scripts': [
             'kalliope=kalliope:main',