"""A setuptools based setup module. See: https://packaging.python.org/en/latest/distributing.html https://github.com/pypa/sampleproject """ import os import re # To use a consistent encoding from codecs import open from os import path # Always prefer setuptools over distutils from setuptools import find_packages, setup here = path.abspath(path.dirname(__file__)) def get_requires(filename): requirements = [] with open(filename, "rt") as req_file: for line in req_file.read().splitlines(): if not line.strip().startswith("#"): requirements.append(line) return requirements project_requirements = get_requires("requirements.txt") def generate_long_description_file(): this_directory = path.abspath(path.dirname(__file__)) with open(path.join(this_directory, 'README.md'), encoding='utf-8') as f: long_description = f.read() return long_description def get_version(): env = dict() with open('mymuell2caldav/version.py', 'r') as f: exec(f.read(), env) return env['VERSION'] setup( name='mymuell2caldav', # 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=get_version(), description='Tool to sync garbage disposal events from MyMüll.de to standard CalDAV server, e.g. Nextcloud', long_description=generate_long_description_file(), long_description_content_type='text/markdown', # The project's main homepage. url='https://github.com/Av3m/MyMuell2CalDAV', # Author details author='Av3m', author_email='7688354+Av3m@users.noreply.github.com', # Choose your license license='GPLv3', # See https://pypi.python.org/pypi?%3Aaction=list_classifiers classifiers=[ 'Development Status :: 4 - Beta', 'Intended Audience :: Developers', 'Topic :: Home Automation', 'Topic :: Office/Business :: Scheduling', 'License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)', 'Programming Language :: Python :: 3', 'Programming Language :: Python :: 3.6', 'Programming Language :: Python :: 3.7', 'Programming Language :: Python :: 3.8' ], # What does your project relate to? keywords=['caldav', 'mymuell', 'sync', 'garbage disposal'], # 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=project_requirements, # 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={ }, # 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={ }, # 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=[('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_points={ 'console_scripts': [ 'mymuell2caldav=mymuell2caldav.mymuell2caldav:main', ], }, )