Switch from requirements.txt to setup.py

This commit is contained in:
Andrew Morgan 2020-08-06 17:01:20 -07:00 committed by Andrew Morgan
parent ad0174e186
commit 8af9655620
4 changed files with 87 additions and 3 deletions

10
my-project-name Executable file
View File

@ -0,0 +1,10 @@
#!/usr/bin/env python3
import asyncio
try:
from my_project_name import main
# Run the main function of the bot
asyncio.get_event_loop().run_until_complete(main.main())
except ImportError:
print("Unable to import my_project_main.main")

View File

@ -1,3 +0,0 @@
matrix-nio>=0.8.0
Markdown>=3.1.1
PyYAML>=5.1.2

19
setup.cfg Normal file
View File

@ -0,0 +1,19 @@
[flake8]
# see https://pycodestyle.readthedocs.io/en/latest/intro.html#error-codes
# for error codes. The ones we ignore are:
# W503: line break before binary operator
# W504: line break after binary operator
# E203: whitespace before ':' (which is contrary to pep8?)
# E731: do not assign a lambda expression, use a def
# E501: Line too long (black enforces this for us)
ignore=W503,W504,E203,E731,E501
[isort]
line_length = 88
sections=FUTURE,STDLIB,COMPAT,THIRDPARTY,FIRSTPARTY,TESTS,LOCALFOLDER
default_section=THIRDPARTY
known_first_party=my_project_name
known_tests=tests
multi_line_output=3
include_trailing_comma=true
combine_as_imports=true

58
setup.py Normal file
View File

@ -0,0 +1,58 @@
#!/usr/bin/env python3
import os
from setuptools import find_packages, setup
def exec_file(path_segments):
"""Execute a single python file to get the variables defined in it"""
result = {}
code = read_file(path_segments)
exec(code, result)
return result
def read_file(path_segments):
"""Read a file from the package. Takes a list of strings to join to
make the path"""
file_path = os.path.join(os.path.abspath(os.path.dirname(__file__)), *path_segments)
with open(file_path) as f:
return f.read()
version = exec_file(("my_project_name", "__init__.py"))["__version__"]
long_description = read_file(("README.md",))
setup(
name="my-project-name",
version=version,
url="https://github.com/anoadragon453/nio-template",
description="A matrix bot to remind you about things!",
packages=find_packages(exclude=["tests", "tests.*"]),
install_requires=[
"matrix-nio[e2e]>=0.10.0",
"Markdown>=3.1.1",
"PyYAML>=5.1.2",
],
extras_require={
"dev": [
"isort==5.0.4",
"flake8==3.8.3",
"flake8-comprehensions==3.2.3",
"black==19.10b0",
],
},
classifiers=[
"License :: OSI Approved :: Apache Software License",
"Programming Language :: Python :: 3 :: Only",
"Programming Language :: Python :: 3.5",
"Programming Language :: Python :: 3.6",
"Programming Language :: Python :: 3.7",
"Programming Language :: Python :: 3.8",
],
long_description=long_description,
long_description_content_type="text/markdown",
# Allow the user to run the bot with `my-project-name ...`
scripts=["my-project-name"],
)