barcode-server/setup.py
2022-06-24 12:14:10 -07:00

73 lines
2.0 KiB
Python

import os
from setuptools import setup, find_packages
DEVELOPMENT_STATUS = "Development Status :: 5 - Production/Stable"
def read_version(package):
with open(os.path.join(package, '__init__.py'), 'r') as fd:
for line in fd:
if line.startswith('__version__ = '):
return line.split()[-1].strip().strip("'").strip("\"")
def readme_type() -> str:
import os
if os.path.exists("README.rst"):
return "text/x-rst"
if os.path.exists("README.md"):
return "text/markdown"
def readme() -> [str]:
with open('README.md') as f:
return f.read()
def locked_requirements(section):
"""
Look through the 'Pipfile.lock' to fetch requirements by section.
"""
import json
with open('Pipfile.lock') as pip_file:
pipfile_json = json.load(pip_file)
if section not in pipfile_json:
print("{0} section missing from Pipfile.lock".format(section))
return []
return [package + detail.get('version', "")
for package, detail in pipfile_json[section].items()]
setup(
name='barcode-server',
version=read_version("barcode_server"),
description='A simple daemon to expose USB Barcode Scanner data on the network.',
long_description=readme(),
long_description_content_type=readme_type(),
license='GPLv3+',
author='Markus Ressel',
author_email='mail@markusressel.de',
url='https://github.com/markusressel/barcode-server',
packages=find_packages(),
# python_requires='>=3.4',
classifiers=[
DEVELOPMENT_STATUS,
'License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)',
'Programming Language :: Python :: 3',
'Programming Language :: Python :: 3.7',
'Programming Language :: Python :: 3.8',
'Programming Language :: Python :: 3.9'
],
install_requires=locked_requirements('default'),
tests_require=locked_requirements('develop'),
entry_points={
'console_scripts': [
'barcode-server = barcode_server.cli:cli'
]
}
)