Skip to content

Commit

Permalink
overhauled metadata
Browse files Browse the repository at this point in the history
  • Loading branch information
DrTexx committed Nov 4, 2019
1 parent 2652a7b commit 453a659
Show file tree
Hide file tree
Showing 2 changed files with 87 additions and 228 deletions.
254 changes: 29 additions & 225 deletions setup.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
#!/usr/bin/env python -e

"""A setuptools based setup module.
See:
https://packaging.python.org/en/latest/distributing.html
Expand All @@ -8,250 +10,52 @@
# (navigate to repo root first)
# sphinx-apidoc -o docs/modules . test_* cpaudio setup.py voluxdisplay/cpdisplay

import volux

# how-to metadata
# https://packaging.python.org/specifications/core-metadata/

github_username = 'DrTexx'
donate_link = 'https://paypal.me/denverpallis'
import volux # CHANGE THIS TO MATCH YOUR PACKAGE'S NAME!

mypackage = volux
package_name = mypackage.__name__
package_version = mypackage.__version__
package_author = mypackage.__author__
package_license = mypackage.__license__
package_description = 'High-level media/entertainment workflow automation platform'
package_requirements = [
'lifxlan==1.2.5',
'pycaw; platform_system == "Windows"',
'comtypes==1.1.7; platform_system == "Windows"',
'pyalsaaudio==0.8.4; platform_system == "Linux"',
'colorama==0.4.1'
]

readme_filename = 'README.md'
readme_encoding = 'utf-8'
long_description_content_type = 'text/markdown'
url = 'https://github.com/{}/{}'.format(github_username,package_name)
docs_url = 'https://{}.readthedocs.io'.format(package_name)
meta_dev_status='4 - Beta' # 3 - Alpha, 4 - Beta, 5 - Production/Stable
meta_audience = 'End Users/Desktop'
meta_topic = 'Multimedia'
meta_license = 'GNU General Public License v3 or later (GPLv3+)'
meta_py_version = '3'
meta_keywords='volux media interface workflow automation platform iot lifx volume sound light tk tkinter'
project_urls = {
'Bug Reports': 'https://github.com/{}/{}/issues'.format(github_username,package_name),
'Source': 'https://github.com/{}/{}/'.format(github_username,package_name),
'Funding': donate_link,
'Docs': docs_url
}


# Always prefer setuptools over distutils
import setuptools
# To use a consistent encoding
from codecs import open
import setuptools # Always prefer setuptools over distutils
from codecs import open # To use a consistent encoding
from os import path

here = path.abspath(path.dirname(__file__))

# Get the long description from the README file
with open(path.join(here, readme_filename), encoding=readme_encoding) as f:
long_description = f.read()

# Arguments marked as "Required" below must be included for upload to PyPI.
# Fields marked as "Optional" may be commented out.
long_description = f.read() # Get the long description from the README file

setuptools.setup(
name=package_name, # Required
version=package_version, # Required
description=package_description, # Required
packages=setuptools.find_packages(exclude=['contrib', 'docs', 'tests']), # Required
install_requires=package_requirements, # Optional
metadata_version=mypackage.__metadata_version__, # Optional
name=mypackage.__name__, # Required
version=mypackage.__version__, # Required
summary=mypackage.__summary__, # Optional
description=mypackage.__description__, # Optional
description_content_type=mypackage.__description_content_type__, # Optional
keywords=mypackage.__keywords__,
url=mypackage.__homepage__,
author=mypackage.__author__,
author_email=mypackage.__author_email__,
license=mypackage.__license__,
classifiers=mypackage.__classifiers__,
install_requires=mypackage.__requires_dist__,
requires_python=mypackage.__requires_python__,
requires_external=mypackage.__requires_external__,
project_urls=mypackage.__project_urls__,

long_description=long_description, # Optional
long_description_content_type=long_description_content_type, # Optional
url=url, # Optional
author=package_author, # Optional
license=package_license, # Optional
classifiers=[ # Optional
'Development Status :: {}'.format(meta_dev_status),
'Intended Audience :: {}'.format(meta_audience),
'Topic :: {}'.format(meta_topic),
'License :: OSI Approved :: {}'.format(meta_license),
'Programming Language :: Python :: {}'.format(meta_py_version),
],
keywords=meta_keywords, # Optional (note that this is a string of words separated by whitespace, not a list.)

package_data={ # Optional
'sample': ['package_data.dat'],
},
entry_points={ # Optional
'console_scripts': [
'{}={}:__main__.main'.format(package_name,package_name),
'{}={}:__main__.main'.format(mypackage.__name__,mypackage.__name__),
],
},
project_urls=project_urls, # Optional

# ---------------
# This is the name of your project. The first time you publish this
# package, this name will be registered for you. It will determine how
# users can install this project, e.g.:
#
# $ pip install sampleproject
#
# And where it will live on PyPI: https://pypi.org/project/sampleproject/
#
# There are some restrictions on what makes a valid project name
# specification here:
# https://packaging.python.org/specifications/core-metadata/#name
# name=package_name, # Required

# Versions should comply with PEP 440:
# https://www.python.org/dev/peps/pep-0440/
#
# 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=script_version, # Required

# This is a one-line description or tagline of what your project does. This
# corresponds to the "Summary" metadata field:
# https://packaging.python.org/specifications/core-metadata/#summary
# description=script_description, # Required

# This is an optional longer description of y our project that represents
# the body of text which users will see when they visit PyPI.
#
# Often, this is the same as your README, so you can just read it in from
# that file directly (as we have already done above)
#
# This field corresponds to the "Description" metadata field:
# https://packaging.python.org/specifications/core-metadata/#description-optional
# long_description=long_description, # Optional

# long_description_content_type=long_description_content_type,

# This should be a valid link to your project's main homepage.
#
# This field corresponds to the "Home-Page" metadata field:
# https://packaging.python.org/specifications/core-metadata/#home-page-optional
# url='https://github.com/{}/{}'.format(github_username,package_name), # Optional

# This should be your name or the name of the organization which owns the
# project.
# author=script_author, # Optional

# License isn't default in here? Let's fix that.
# license=license, # Optional

# python_requires isn't here? Let's fix that.
# python_requires='>=3.2',

# This should be a valid email address corresponding to the author listed
# above.
# author_email='[email protected]', # Optional

# Classifiers help users find your project by categorizing it.
#
# For a list of valid classifiers, see
# https://pypi.python.org/pypi?%3Aaction=list_classifiers,
# classifiers=[ # Optional
# # How mature is this project? Common values are
# # 3 - Alpha
# # 4 - Beta
# # 5 - Production/Stable
# 'Development Status :: {}'.format(meta_dev_status),
#
# # Indicate who your project is intended for
# 'Intended Audience :: {}'.format(meta_audience),
# 'Topic :: {}'.format(meta_topic),
#
# # Pick your license as you wish
# 'License :: OSI Approved :: {}'.format(meta_license),
#
# # 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 :: {}'.format(meta_py_version),
# ],

# This field adds keywords for your project which will appear on the
# project page. What does your project relate to?
#
# Note that this is a string of words separated by whitespace, not a list.
# keywords=meta_keywords, # Optional

# You can just specify package directories manually here if your project is
# simple. Or you can use find_packages().
#
# Alternatively, if you just want to distribute a single Python file, use
# the `py_modules` argument instead as follows, which will expect a file
# called `my_module.py` to exist:
#
# py_modules=["my_module"],
#
# packages=setuptools.find_packages(exclude=['contrib', 'docs', 'tests']), # Required

# This field lists other packages that your project depends on to run.
# Any package you put here will be installed by pip when your project is
# installed, so they must be valid existing projects.
#
# For an analysis of "install_requires" vs pip's requirements files see:
# https://packaging.python.org/en/latest/requirements.html
# install_requires=script_requirements, # Optional

# List additional groups of dependencies here (e.g. development
# dependencies). Users will be able to install these using the "extras"
# syntax, for example:
#
# $ pip install sampleproject[dev]
#
# Similar to `install_requires` above, these must be valid existing
# projects.
# extras_require={ # Optional
# '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 earlier, then these have to be included in
# MANIFEST.in as well.
# package_data={ # Optional
# 'sample': ['package_data.dat'],
# },

# 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
#
# In this case, 'data_file' will be installed into '<sys.prefix>/my_data'
# data_files=[('my_data', ['data/data_file'])], # Optional

# 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.
#
# For example, the following would provide a command called `sample` which
# executes the function `main` from this package when invoked:
# entry_points={ # Optional
# 'console_scripts': [
# '{}={}:__main__'.format(package_name,package_name),
# ],
# },

# List additional URLs that are relevant to your project as a dict.
#
# This field corresponds to the "Project-URL" metadata fields:
# https://packaging.python.org/specifications/core-metadata/#project-url-multiple-use
#
# Examples listed include a pattern for specifying where the package tracks
# issues, where the source is hosted, where to say thanks to the package
# maintainers, and where to support the project financially. The key is
# what's used to render the link text on PyPI.
# project_urls={ # Optional
# 'Bug Reports': 'https://github.com/{}/{}/issues'.format(github_username,package_name),
# 'Funding': donate_link,
# # 'Say Thanks!': 'http://saythanks.io/to/demos',
# 'Source': 'https://github.com/{}/{}/'.format(github_username,package_name),
# },
packages=setuptools.find_packages(exclude=['contrib', 'docs', 'tests']), # Required
)
61 changes: 58 additions & 3 deletions volux/__init__.py
Original file line number Diff line number Diff line change
@@ -1,11 +1,66 @@
#!/usr/bin/env python -e

"""
docstring
"""

from .operator import *
from .module import *
from .core import *
from .demo import *

__version__ = "0.9.6"
__metadata_version__ = "2.1"
__name__ = "volux"
__version__ = "0.9.7"
# __platform__ = "" # (multiple-use) only if the platform is not listed in the “Operating System” Trove classifiers
# __supported_platform__ = #
__summary__ = "High-level media/entertainment workflow automation platform"
__description__ = "High-level media/entertainment workflow automation platform"
__url__ = "http://github.com/drtexx/volux"
__description_content_type__ = "text/markdown"
__keywords__ = "volux media interface workflow automation platform iot lifx volume sound light tk tkinter gui modular" # A list of additional keywords to be used to assist searching for the distribution in a larger catalog.
__homepage__ = "https://github.com/drtexx/volux"
__author__ = "Denver Pallis"
# __authoremail__ = ''
__author_email__ = "[email protected]"
# __maintainer__ = "Denver Pallis" # should be omitted if it is identical to Author
# __maintainer_email__ = "[email protected]" # should be omitted if it is identical to Author
__license__ = "GPLv3+"
__classifiers__ = [
"Development Status :: 4 - Beta",
"Environment :: Console",
"Environment :: MacOS X",
"Environment :: Win32 (MS Windows)",
"Environment :: X11 Applications",
"Intended Audience :: Developers",
"Intended Audience :: End Users/Desktop",
"License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)",
"Natural Language :: English",
"Operating System :: MacOS",
"Operating System :: Microsoft :: Windows",
"Operating System :: POSIX :: Linux",
"Programming Language :: Python",
"Programming Language :: Python :: 3",
"Topic :: Games/Entertainment",
"Topic :: Home Automation",
"Topic :: Multimedia",
"Topic :: Scientific/Engineering :: Human Machine Interfaces",
"Topic :: Software Development",
"Topic :: Software Development :: Libraries",
"Topic :: Software Development :: User Interfaces",
]
__requires_dist__ = [ # requirements
"lifxlan==1.2.5",
"pycaw; platform_system == 'Windows'",
"comtypes==1.1.7; platform_system == 'Windows'",
"pyalsaaudio==0.8.4; platform_system == 'Linux'",
"colorama==0.4.1",
]
__requires_python__ = [">=3"] # required python version
__requires_external__ = [] # external requirements
__project_urls__ = { # a browsable URL for the project and a label for it, separated by a comma
"Bug Reports": "https://github.com/drtexx/{}/issues".format(__name__),
"Source": "https://github.com/drtexx/{}".format(__name__),
"Funding": "https://paypal.me/denverpallis",
"Docs": "https://{}.readthedocs.io".format(__name__),
}

# metadata standard: https://packaging.python.org/specifications/core-metadata/

0 comments on commit 453a659

Please sign in to comment.